Building new Repetier firmware for a delta printer (D-force) So my printer's calibration got screwed after a sudden reboot and since the current firmware (0.92.6) is licensed, I cannot edit it. So I'm building a new one.

These are the controller boards of my printer:

1. Main controller board:

The black board is a MKS Base v1.3

The other green board beside it has a DC to DC SMPS (HRD12008) on it, along with Z-min, X-min, T0, Fan-, D11 and a flat ribbon wire connector (can be seen in the picture).

The other box with an acrylic top is a solid state relay.

2. Cooling fan and Z-probe PCB:

The brand on all these boards is "D-force". I've traced the printer down to a Taiwanese manufacturer: D-FORCE.TW - 3D Printer.

There are a few parts available:

Fan & Z-probe PCB;
Main controller board, and;
Servo motor for calibration (Z-probe).

I haven't been able to find the other green board (with the HRD12008 SMPS on it), yet.

I've downloaded a new firmware from Repetier website. It can be found here, Repetier-Firmware-2017-06-09.

Now, while compiling the firmware, I need to specify the Z-probe pin. I'm unable to do so because it's not plugged into the main board.

Here is a close-up of the Z-probe & the servo motor that pins it down.

Any help would be appreciated here. On the web these printers are known as "D-force printers".

Edit1: I found this on the manufacturer's Facebook group:

Please note that this is v1.1 and my printer has v1.3 although I haven't found any difference between the two, yet. I'll update on that if I find any. Hope this helps.

Edit2: The Y-min pin on the main controller board is empty. The X-min and Z-min are connected to the X-min and Z-min on the additional green board respectively. Also, there is a T0 on the additional board which is connected to A13 of the main controller.

You, obviously, do actually have a Z-probe, but in case another user does not, or you decide not to use yours, I will cover both cases (with and without a Z-probe).

Z-probe not present

If not, then in configuration.h set the FEATURE_Z_PROBE to false, like this:

#define FEATURE_Z_PROBE false

or

#define FEATURE_Z_PROBE 0.

Then you also need to set

#define DISTORTION_CORRECTION 0

as this requires the FEATURE_Z_PROBE if otherwise set to 1 or true. However, thereafter, upon recompilation, I then get a lot of other errors...  but these seem to be more to do with selecting the correct board, #define MOTHERBOARD, in pins.h, than the disabling of the Z-probe. This error:

fastio.h:29: error: 'DIOORIG_FAN2_PIN_WPORT' was not declared in this scope

is due to, from Can't compile firmware:

  You are using ORIG_FAN2_PIN in your configuration but apparently your boards pin definition does not define that pin. In that case check board description and use the digital pin number instead for that function.

Actually that is not entirely true1.

NOTE: It might be easier to just define Z_PROBE_PIN to something other than -1, which is what it is defaulting to, as set in configuration.h:

#define Z_PROBE_PIN -1

Z-probe present

If you do have a Z-probe, then trace the wires to see where they go on the controller board, determine that pin number on the board and then enter that pin number into configuration.h. For example, if it is connected to pin 63, then:

#define Z_PROBE_PIN 63

and leave DISTORTION_CORRECTION untouched.

Where to plug the Z-probe in

If your Z-probe has become unplugged, then you need to choose a pin to connect it to. This is easy... you simply connect it to any free pin. Now, you probably only have three end stops, at the top of the delta frame. These are the MAX end stops. So, you can simply connect the Z-probe to any of the three MIN end stop pins, on the board. Obviously, you will leave the three #defines for the MIN end stop, in Configuration.h, un-configured, and then specify the pin, that you did use, in

#define Z_PROBE_PIN <your pin>

See Is there a complete step by step manual for building Z probe - comment 1950

  Put the zprobe on any free pin you have but do NOT set it in endstops. It is not a endstop it is a zprobe.

  Then set it in zprobe section with pullup enabled so it is drawn to high internally until you connect the pin with gnd. Then G31 should also be consistent. I guess you missed the pullup part making it a random result.

and Is there a complete step by step manual for building Z probe - Comment_1952

  Not sure why this is a problem. You have 6 endstop pins and need 3 for
  endstops + 1 for zprobe = 4 pins. Still 2 endstop pins free.

  When I said not in endstops I meant not in the endstop configuration.
  There you only put switches that work as endstop.

Highlighting the connections

The green PCB, for the fan and Z-probe, does not appear to have any logic on it (I can't see any), so it is just a collection of tracks (i.e. wires). As there are no logic chips on it, you can trace the circuit from the Z-probe to the controller (either visually, or using a multimeter set on continuity check). I assume that the PCB is connected to the controller board somewhere/somehow... Via the 10 wire grey ribbon cable that goes to the second green PCB next to the main board, next to LED3, as shown in the first photo? This ribbon cable transfers signals to/from the Z-probe/fan PCB to the secondary PCB, which appears to be a power related PCB (i.e. heaters). Somehow the secondary, power, PCB then connects to the main controller board.

One of the three unused MINIMUM end stop pins should be used for the Z-probe. This is assuming that:

you only have three physical end stops (at the top of the three axes) and;
they are connected to the MAXIMUM end stop pins.

If you have six end stops, (one at the top and one at the bottom), then that changes things drastically. Assuming that you only have three, then the three unused MINIMUM pins will be used for some other purposes (Z-probe, servo arm, something else?).

You need to confirm that you only have end stops at the top of the printer and not the bottom, i.e. only MAX_ENDSTOP (or X+, Y+ and Z+) pins. If so, then you should have three (sets of) (MIN_ENDSTOP) pins with nothing connected to them (in theory). So, one of those three MIN_ENDSTOP pins will have the Z-probe connected to it. If you are having trouble locating the MIN_ENDSTOP pins, trace where the 3 physical (MAX) end stops are connected to, those will be the MAX_ENDSTOP pins. Then from that, the MIN_ENDSTOP pins should be relatively easy to identify. Hopefully that makes sense.

Looking at the schema then it becomes obvious. You see X+, X-, Y+, Y-, Z+ and Z-. The physical endstops should be connected to the three + connectors. The three - connectors: two of them are hopefully not connected. The one that is should be the Z-probe. Looking at the photo, unfortunately, it seems as if all six (or just five?) are populated.

Personally, to save time, I would get a multimeter, unplug the X, Y, Z +/- connectors (actually only the - connectors) in turn and test each one, to see which is connected to the Z-probe.

To check the correct pin is used, you really only have two (sensible) options: either visually, or; multimeter. Multimeter would be best, and the most certain. However, there are two other options open to you (one risky, and one laborious):

As we have whittled it down to two connectors (X-min and Z-min, there are only two pins (for the Z-probe and servo) to worry about, you only have a 50-50 chance of getting it wrong, so you could guess, code it up and see if it works - if it doesn't, then change the pin defined, and recompile...

IMPORTANT: After a rethink, it is best not to just take the 50-50 chance, as the servo pin is probably configured as an output and the Z-probe pin will be an input. You could end up damaging the control board.
Finally, you could, in theory, test it programmatically, but that would require writing some test code for the controller, which (as we are having enough trouble as it is with the configuration.h file) would be a nightmare, to put it bluntly.

Schema

Photo of control board

It is probably a good idea to read this, lengthly, article: Repetier - Z-probing.

Footnotes

1 I have finally managed to get Repetier.ino to compile. The problem lay with the Configuration.h file that came with the googledrive download, that you provided. Trying to either manually configure Configuration.h, or pre-loading it into Repetier's configuration tool, always resulted in the same compilation error, see DIOORIG_FAN2_PIN_WPORT error. The simplest solution is to create a Configuration.h file from new, using the Configuration tool. When you do that, it will compile ok.

Or, if you really want to do it manually, either:

Set NUM_EXTRUDER to 1 and not 2 as the FAN2 compile error comes from the second extruder's set of #defines, or;
More precisely, if you do have two extruders, then change the line #define EXT1_EXTRUDER_COOLER_PIN ORIG_FAN2_PIN and specify a pin, i.e. 65, en lieu of using ORIG_FAN2_PIN.


How to change the extrusion value (E parameter) in G-code? Before I ask you my question I want to summarize my problem.
I am trying to build my personal 3D Printer and I can send the controller of my Extruder (Motor) only integer values. Slicer (Cura) produces fractions. I try to interprete these values as RPM. That means for example that I can't send 282.040 RPM (as calculated value), but I can send only 282 RPM.
My problem is that I got the E parameter as integer and decimal form like below:
G1 X534.729 Y195.96 E144.96538
G1 X664.869 Y195.95 E161.48942
G1 X666.538 Y196.042 E161.70166

Is there any way to get the E-parameter only in integer form?
Is there any program or is there any opportunity to set the slicer in order to have that goal?

Yes, it is possible to influence values of the E-parameter, even to make them integers.
I see three possibilities:

force firmware to support units smaller than mm - suggested approach
force slicer to produce integer-like values - most of below explanation
change meaning of E - custom approach, including RPM interpretation

Each of above needs post-processing of the G-Code output. There are some tools available, but required logic would need to be added (programmed). Some are simple scripts and this won't be difficult task. The rest of solution is much more difficult.
By the book, the E value is new coordinate on the E (extruder) on axis, in current units. Unfortunately, the only position units reflected in standard G-Code are millimeters (see G21) or inches (see G20). Therefore using integer values would mean very limited resolution, at least 1 mm of filament pushed at a time. Introducing smaller unit into firmware seems to be most reasonable approach.

Tools to post-process G-Code files
The G-Code generated by slicer would contain Ennn values as fractions in millimeters (or millimeters). Generated file may be post processed line by line to alter these values. There are many examples of scripts or tools doing similar job.
One example is simple python script metric-gcode-truncator stripping numbers to 4 decimal places. Simple changes to this scirpt could be sufficient in simplest cases.
I found this script listed between other G-Code Utilities. Also, I found source code of grecode, which seem to be much more comprehensive G-Code transformation tool, but with no similar functionality out of the box.
Next improvement would be to use the script as slicer plugin, to streamline the everyday process. Maybe some existing Cura plugin could be a basis or example.

Support for smaller units in firmware
First task is to select smaller unit (like micrometre, nanometre, or even non-metric abstraction).
Source code of existing firmware must be the supplemented to properly intereprete such values. In Marlin focus should be on parser.h and parser.cpp, following keywords INCH_MODE_SUPPORT, LINEARUNIT_MM and LINEARUNIT_INCH. Respective changes must be also added to configuration files.
Key inspiration in parser seems to be following part:
static inline void set_input_linear_units(const LinearUnit units) {
  switch (units) {
    default:
    case LINEARUNIT_MM:   linear_unit_factor =  1.0f; break;
    case LINEARUNIT_INCH: linear_unit_factor = 25.4f; break;
  }
  volumetric_unit_factor = POW(linear_unit_factor, 3);
}

The main difficuly would be to refine parser and the rest of code to ensure that new units are only used for E movements, not for other axes or G-Code commands related to speed or other settings.
Then, each G-Code file must be post-processed with prepared tool, which will recalculate and alter Ennn values (or others), only for selected G-Code commands (this must relfect). For metric units it could be simple multiplication by 10n (visually it is shifting a decimal point).
Summarizing, possibly the simplest would be to just introduce new unit for all, and re-process G-Code files accodingly changing each value X, Y, Z, E. I cannot advice how such changes would affect F (feedrate), speed and acceleration settings.

Slicer producing integer values of E parameter
Long story short: decrease steps/mm (firmware/printer), decrease filament diameter (slicer), then Ennn values in G-Code will shoot up and could be rounded to integers without drastical loose of quality. Units for extrusion become then fake (scaled).
Software may not be ready to support adequately low values (configuration, rounding) or high values (calculations). So in practice the values configuration could not by as minimal as wished, which would more or less impact the quality. There are is speed setting trouble, beacuse extrusion speed is correlated with movement speed.
Detailed theoretical explanation and example calculations are below.
Steps/mm
However this is still useful, because each printing firmware has configurable steps/mm setting (or some analogous constant value). Steps/mm is basic and known characteristic of extruder, representing number of (micro)steps of extruder's stepper motor to push this 1 millimeter of filament (traverse E axis). If this steps/mm constant will be set to 1, then extruder will make only 1 (micro)step for G1 E1. This change could be done in firmware configuraton, temporarily with G-Code M92 E1, or stored to EEPROM.
Volume
Filament is a long cylinder, and extrusion length is height of short cylinder (segment of whole): $l= \frac {4 V} {\pi d^2} R$, where:

V - volume necessary to pring path, internally calculated by slicer software
d - diameter of filament configured in slicer
R - customized extrusion multiplier setting (R) a.k.a. flow rate. (It was introduced for fine tuning, in runtime or when chaniging filaments, to avoid workarounds like manipulating steps/mm or diameter to untrue values. This parameter is not really important for this discusion, included only for completness.)

Printer configuration
1 mm of filament translates to actual volume of material (mm3). The correct steps/mm is very important, so the rotation of motor (travel along E axis) will really extrude the expected amount. If value of steps/mm configured in printer is reduced, then interpreted G-Code commands will be translated to too short distances (less steps). To ensure the needed volume, either more millimeters would have to be ordered (G1 Ennn) or filament would have to be thicker. Filament is what it is, so only the first choice is possible.
For example, using 1,75 mm filament and having extruder which needs to make 760 steps to push 1 mm (a fact, determined hardware characteristics), then to extrude 1 mm3:

if printer is set for 760 steps/mm (correctly), then G-Code must contain correct E0.415752 mm for adequately long cylinder being pushed throught the nozzle
if printer is "misconfigured" for 1 step/mm, then G-Code must contain edaquately scaled value E315.9713 for the same cyllinder to be pushed (760x bigger number). The value is actually an exact number of (micro)steps. And it is big. Decimal part is negligible. It can be safely rounded to integer.

For practical use, the printer's speed settings and limits would need to be also multiplied for extrusion and retraction. Otherwise extruder moves would be slower by scaling factor, with negative side effects of hot filament behaving on its own.
Right place of scaling
So how to obtain this scaling? Simplest way is to increase flow rate in the printer (e.g. to 760%). This will scale Ennn values form G-Code in runtime. An original G-Code is needed for this, with tiny numbers. So this is not a solution for integers.
Then how to force slicer to produce G-Code with scaled numbers?
Slicer configuration
Slicer calculates volume required to print some fragment and coverts it to millimeters of filament, basing on configured diameter. So this diameter is also very important. Everything must match. If very small diameter is set in slicer, this will drastically increase length of filament pushed.
For example:

For 1.75 mm filament, to extrude 1 mm3 volume, slicer will order to push E0.415752 mm.
After changing configured filament diameter to 0.01 mm, slicer would order to push E12732.4 mm. This is big number. But not even similar to the above needed length E315.9713.

Slicer usually adds speed (feedrate) information to G-Code. So any speed settings and limits for extrusion and retraction would need to be multiplied also in slicer. There are also other settings to modify, like retraction distance.
Matching equation
Change of diameter must reflect the change of steps/mm. The proportion could be derived from cylinder volume formula. Diameter to configure in slicer is $d= D \sqrt { \frac L l}$, where:

D - real diameter of filament
L - standard extrusion distance: height of cylinder having some referenced volume and D diameter, if steps/mm reflect actual hardware
l - scaled extrusion distance: height of cylinder having the same referenced volume, if steps/mm reflect actual printer configuration

Values for calculation need to be determined for some example volume. This was already done. Following previous examples, diameter required in slicer is: $d= 1.75 \sqrt { \frac {0.415752} {315.9713}} = 0.063479$. Then still providing 1.75 mm filament to the same extruder, slicer will produce big values like E315.9713, but printer will perform olny one (micro)step for one milimeter in G-Code.
Remove fractional part
The generated G-Code would still include fractional part in Ennn values. The file should be post processed line by line to remove it. Simple script will do the job. It could be simple metric-gcode-truncator, after changing pattern to ([E][0-9]*)([.][0-9]+) (not tested). An improvement for quality would be to use rouding instead of truncating decimal part.
Cumulative discrepancies
There is serious disadvantage of such simple post-processing approach. The total of extruded material will vary, depending a bit on rounding approach. The fractional part is lost, so there may be impact on accuracy with over- or under-extrusion here or there. Post-processing could instead collect these rounded fractions and try to equally compensate for it in following moves, to minimize the total aberration.
I believe that the same could happen inside printer's firmware program, when it traverse floating-number distances, but this is only an assumption. Wihout fractional part, firmware will no have data to compensate anything.
Even more accurate?
Because firmware can accepts fractions below 1 for steps/mm (Marlin would accept 0.01), then theoretically the scale could be even bigger - and so Ennn values. Slicer must support adequately low diameter. (In extreme cases this could trigger unexpected overflows or errors or be blocked by software.) Printer will then multiply E values by fraction (steps/mm). Extruding resolution is still limited to 1 (miro)step. But if firmware acumulate rounded fractional parts in runtime and compensate, then total amount extruded per layer would be more precise.
Real-live attempt to slice
It was possible to set 0,01 filament diameter in Cura, after tweaking the extruder profile for such very thin filament. Nozzle diameter must be set to real size, becuase it affects many parameters of slicing. The total use of filament in my sample G-Code was >52km. File contains entries like:
G1 X72.976 Y63.428 E2623.66351
G1 X74.498 Y61.523 E2607.85791
G1 F1500 E-608
G0 F1800 X107.344 Y85.452
G1 F1500 E608
G1 F1200 X107.583 Y85.642 E326.54744
G1 X107.988 Y85.938 E536.51282

Estimated print time is >5 days. The F parameter is presumably used also by extruder, then the whole print will still slow down. To make the print really happen, possibly all speed settings in slicer would need to be tweaked (i.e. print speed for walls, top/bottom skin, infill, etc.). Then only hard speed limits in firmware would block rapid movements. Outcome quality will be most likely compromised.

Custom approaches (own G-Code flavor)
Slicer will always calculate length (travel distance), otherwise it would be against the G-Code standard. At least I did not hear of any slicing software, which would output something else then length for extrusion.
In some own custom firmware value of E parameter could be defined in any own way. For example, the E value could be defined exaclty as number of (micro)steps for extruder's stepper motor, angle of rotation refleced as integer, etc. Distance calculated by slicer would need to be re-calculated in G-Code post processing, to match requirements of this firmware.
Own piece software would be then needed to perform re-calculations (simple or not) and overwrite the original E values. The code could be possibly inspired by some of listed above, but the calculation logic need to match specification from firmware. Possibly this could become own plugin to Cura or other slicer.
RPM approach (critique of the idea)
An attempt to interprete E value as RPM (rounds per minute) is of no use, until it is synchronized with real speed of printing head movement, i.e. other motors performing movement along owne vectors to print the effective path. It is probably possible to calculate, but sounds like creating own G-Code flavor, which would ignore many other important parameters.
One of them is F parameter defined in several G-Code commands (including G1). It determines movement speed for traversing the path. It may change from move to move, making use of acceleration settings. What is worse then, it is expected to be remembered between commands and used for consecutive printer moves. Therefore focusing on single line of G-Code won't tell the whole plan of slicer, and the sophisticated plan reflected in G-Code file would be only partially executed.
RPM approach could seem interesting, if it could ensure constant speed of extruder. This would be ideal for the pressure control. But it would also come at cost of printing speed, with no accelleration control.


Tetrahedral honeycomb? I have an idea for a 3D printed project, but I'm a total noob in this area and need someone to reality check it for me.

Basically what I want to do is a tricopter frame made of a tetrahedral honeycomb.

The whole model would be within 30 * 30 * 10 cm, the honeycomb edges would be approximately 1mm thick and about 15mm long and it would be printed out of nylon with SLS.

I have found Shapeways' design guidelines and my idea seems to fit it, but still it feels slightly more extreme use than what they had in mind.

Is this doable? Does anyone else use a similar method? Is there some software that I can use to generate honeycombs like this, or do I have to write it myself?

Edit:

This is how two layers of the honeycomb look like:

In the actual model there would be several layer of this on top of each other and the shape would be kind of carved out of the honeycomb (+ some finishing to avoid spiky surface)

For designing your part, especially considering the repetitive mathematics involved, I would consider to learn to use OpenSCAD. I've learned the program and it fits your modeling requirement quite well. I feel it's easy to learn and is somewhat easier for folks who have a programming background. I don't have one, but it's still a logical progression to learn this program.

Regarding the SLS aspect, that also jumped out at me as a suitable answer. Solid shapes require to have "drain holes" to reduce the amount of powder consumed by the process.

I am assembling a Sintratec SLS printer and your model is the sort of thing I would enjoy to create with the printer. I've not yet listed my Sintratec printer on 3dhubs to solicit business, simply because it's not yet a fully assembled printer!

I did a quick Google search for "openscad tetrahedral honeycomb" and found this link:

http://forum.openscad.org/Beginner-Honeycomb-advice-needed-td4556.html

The result is more a polygonal honeycomb, not a true 3d tetrahedron, but it's a start. The file that created it is fewer than a few dozen lines of code.

The post is old  enough that the internal links no longer work but the OP posted his module code and that does work:

I'm not sure how personal contact works in stackexchange, but I'd be willing to work with you regarding creating your code and if the printer ever gets assembled, printing out your part.

Adding a picture again, to show the latest revision, based on the updated information:


How to set the fully dynamic plotting area? I am trying to combine CNC plotter with image processing. The goal is to detect the object and print on that object. My question is can we set the fully dynamic plotting area.
For example: I want to print something on hand or finger. How do I tell the machine that this is hand and you have to print only on this hand.
I plan to detect hand using camera and set the hand as printing area in CNC firmware and the place gcode image on finger. How to tell the cnc firmware that this is your printing area?
I hope you understand my question.
I am using GRBL firmware with Arduino and use pronterface as software.
Please help and thanks.

If the problem of "dynamic area", or even "how to avoid missing the surface and boundaries" could be translated to "where to start well-defined job" - then it sounds to me like common task, with regards to philosophy of CNC machines. (Ok, until the surface is not moving around.)
Pronterface and GRBL work in Cartesain system. GRBL does not support mesh probing. So you must think about relatively flat, plane surfaces.
In my opinion, you need to fulfill following tasks to achieve the goal:

Define boundaries. Hard and soft boundaries of device are supported by GRBL. You should setup them for overall safety.
Plan the job. Recognize ranges of planned plot or print.
Secure the surface. It must be appropriately stabilized. If you want to draw, the pen mount with spring will equalize variations of the surface (hand, finger, egg). 3D printing is sensitive to roughness and obliquity, we add raft/supports to overcome these - could be of use, until it doesn't mean missing your goal? (Don't print with hot filaments on fingers.)
Establish point of reference. You need to home your plotting or printing head somewhere in space in relation to the driving hardware. This is needed for any further actions. I envsion homing Z to the top of the frame, rather then against the target.
Detect surface. Camera will help with horizontal borders (X,Y). You also need to measure the Z distance. The Z probe could be mechanical (then needs vertical movement) or some distance detector (like VL53L0X ?).
Validate fitting. Ensure that the surface will accommodate ranges of planned job. This is actually the key point in my opinion. You need to know scope at the first place.
Program. I see following options to pick and mix the final solution from them:

G-code is generated prior to the whole procedure. You need to synchronize the starting point between the generated file and the real job range. Homing is done "manually" prior to executing the file. After surface is detected, the real starting point could be calculated and applied.
G-code is generated after surface is detected. Job starts with homing, and first moves go from device's zero (home position) to selected starting point on the surface. All consecutive moves are planned within boundaries over the surface. So there is no risk to work outside the safe range.
G-code is generated with relative positioning (incremental distance mode), having G91 in preamble. Then you just travel to the starting point and then run the commands from file.
G-code is generated with absolute positioning (absolute distance mode). To run the job, you need to change coordinate system using commands like G10, G54-G59.
For printing, if there is a needed to match some flat shape to rought surface, then you may need to dynamically generate some supports/raft below the bottom of the printed part.


How do I calculate the cost of a 3D print once it's done? How do I determine how much an individual print costs?

I'd like an answer including support material, failed prints, and (ideally) wear and tear / printer maintenance costs.

To clarify, I'm not asking how to predict the cost before printing, but rather how to calculate the actual cost after printing. Though predicting the cost beforehand is useful as well.

For FDM printing:

Both Cura and Makerbot Desktop (and perhaps others I'm not as familiar with) will give you a preview of both the length and weight of your print, including supports/rafts. Once the print is done you can weigh it on a kitchen scale.

PLA Filament currently runs about \$23/kg on Amazon, which works out to \$0.023/g. Multiplication can then give you a good estimate of materials costs for a print.

Only experience with your specific printer will give you an idea of how often you're going to hit a failed print, and how often you're going to need to replace parts. For wear and tear you could try using a depreciation model of 2-3 years, but that's only an estimate.


Prusa HE3D Xi3 missing step on x and y axis I am using Prusa HE3D Xi3. While printing after 5 or 6 layers it misses the step on x and y axis.

Can anybody explain what is the reason?

There's a possibility that your power supply lags after a while, the quality of power supplies on cheaper 3D printers are sometimes an issue.

There's also a possible that the stepper motor drivers aren't putting out enough power. This can be adjusted by turning the trimmer on the driver, check the printer documentation for instructions on how to do that.


Ideal print bed: Glass or Aluminium? Glass is always level, easy to clean, easy to work with.

Aluminium allows for the addition of automatic bed leveling with an inductive sensor and distributes heat a little more evenly.

When printing mostly ABS and PLA, which one is better?

I believe printing directly on aluminium is unwise, simply because it will expand when heated, typically giving the bed a concave or convex shape. Glass, on the other hand, does not (at least not significantly).

As pointed out in the comments below, the heat expansion of aluminium could potentially be mitigated by increasing the thickness of the bed, as well as heating it evenly. Also, a common solution is to place a glass plate on top of an aluminium bed, at the cost of a slightly longer heat-up time.

In my experience, printing directly on heated glass can be very practical and give a nice surface finish for some PLA variants and other materials that support it. I don't know if printing directly on aluminium can give similar benefits.


Why Cura flattens first layer of round objects? When i am creating g file with Cura, it always flattens the first layer of round edges touching the plate. Is problem Cura or is there any setting that i can solve this?

Thanks,
Veysel :)

All models must be sliced horizontally into layers in order to be printed, and each layer is flat. That is simply the bottom layer. Since you are printing a cylinder, you could always rotate it by 90 degrees, and stand it on its end (before you slice it, naturally). You should always consider the best orientation for printing any model.

Also, if you print a cylinder on its side, the slicer will need to generate a lot of support structures to support the lower curved surfaces. By printing a cylinder on its end, no support should be required.


MKS board losing power after endstop installation I just bought an MKS gen v1.3, and everything on it works fine except for when I plug in the endstops. My X endstop works perfectly in every endstop outlet, but when I plug in my Z and Y endstops, the entire board loses power. Immediately after I unplug the endstop, the board turns back on. I've had these endstops for a while, so could it just be that the endstops are shot, or could there be something wrong with my board?

I'm using repetier firmware 0.92, as well as the latest release of repetier host software.

Have you tried plugging in the plugging the Z and/or Y end stops into the X position? This could tell you if it's actually the end stops or the board.

EDIT: Also, if the Z and/or Y end stops seem to work just fine in the X position, ensure you have the X position filled and try the other end stops in the Z & Y positions. It may be a case where having multiple positions on the board filled might be causing you an issue. This would point back at the board and not the end stops.


Print quality of Kossel clone for Print in Place models My first printer is Delta style Kossel clone and I have bad luck with Print In Place (PIP) models, especially with hinges. I suspect that my printer just can't achieve low enough tolerances to make the hinges work.

Are there any tricks I can employ to get better prints for PIP models?

Delta printers are considered to be able to be accurate printers cause of the limited weight in the head (using Bowden extruder setup). The positioning can be very accurate (limited weight, limited overshooting) and because of the limited amount of weight, the print speed can be increased.

An interesting paper has been written on a comparative study between a Cartesian and a Delta machine. The paper concludes that the Delta style printer produces "a better surface finish". However, I'm a bit skeptical as the images of the Cartesian printed part they have printed are of far less quality I can produce with 2 of my printers. Fact is that Delta machines have no Z-wobble (also called banding) that is a common problem with Prusa i3 style printers for instance.


Ender 5 Pro bent/curved print on base Ender 5 Pro prints are very uneven on base of the model.
In this example I printed an SD card dummy but it is not even flat.
Having a glass bed it is super strange to see this kind of behaviour.
Here are parameters in Cura.
M92 X80.00 Y80.00 Z800.00 E94.5 ;Setup step mm
M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration
M203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate
M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration
M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk

Thanks in advance, I tried quite a few calibrations but nothing helped so far.

This is a classic example of not enough adhesion. Tune bed temperature (usually hotter), use a brim or add an adhesive layer like glue stick or hair spray or a dedicated print adhesion spray.
The question "Warping of bottom of print" has an accepted answer that explains in detail how and why this occurs.


TAIG CNC - Z axis getting bound First of all I apologize if this stack exchange site isn't the proper spot for CNC questions but I do not see any other ones that are close. If the community feels this is too far off topic then just let me know and I will remove this question.  Even though this is for a CNC machine, the same issue could exist for a 3D printer. I do know this is very specific to the TAIG CNC.

Currently I have the TAIG CNC machine. Recently it has been getting bound when going up in the positive Z direction. It will go down no problem but when going up, at certain points the motor will make a high pitch noise like it normally does when it hits a Z extreme. At these points if I manually try to crank (with the controller off) it is very hard to move up. This indicates that it is a mechanical problem.

I took apart the Z axis and understand that there is a jib inside. I do understand how the jib works, tightening and loosening the top and bottom screws to move the wedge. I have tried with the wedge all the way up (biggest gap) and all the way down, along with in between in small increments. It will go up when the jib is all the way up but if I press down with my hand barely then it gets bound so I am thinking it is something other than the jib? I am not sure which other parts I can adjust or would get stuck. I did follow the directions on youtube of setting the brass insert that is attached to the threaded rod, where I tightened it to the point of where the motor couldn't move and then backed off a little bit. Has anyone had binding troubles like this?

I am a pretty new member on this forum so I apologize if I missed anything but feel free to ask any questions too.

So inside the Z axis is a brass component that is connected to the threaded rod (lead screw). This brass component has 3 screws and depending how tight / loose, determines how much it will bind up. You of course don't want it too loose otherwise the enclosure will "jump" off of the track at times.  In my case, the two screws were too tight. The way I determined how tight to go was taking the entire Z track off of the back, tightening both screws just to the point of binding and then backing off 1/2 turn on both.


How to solve burnt blobs on Prusa MK3S (PETG)? As stated above, I am trying to solve a problem I've had for a long time. Unfortunately, this has recently intensified to the point where it causes layer splitting/detaching from each other. I have tried various ways to fix this and, while decreasing the temperature and extrusion multiplier improved the situation, the problem is still present.

My settings:
Nozzle 235 °C Bed 100 °C
Cooling 25 %
Extrusion multiplier 0.89
Speed 150 mm/s for everything, 50 mm/s for small perimiters
Acceleration 1000 mm/s2, (default)
Layer height 0.15-0.3mm
Line width - 0.6mm for everything, but 0.45 for first layer and 0.42 for top solid infill

Is there a different solution than lowering print speed or buying an E3D silicon sock? I have lost my spare ones and the current one wore down. Obviously, I can simply pause the print when I see plastic bulding up on the nozzle, but I am sure that there is a more efficient solution.

UPDATE: I found that the hotend was very dirty and full of burnt/molten plastic. I am almost sure that the hotend is leaking somewhere between the heat block and the heat break. This didn't happen before I replaced the nozzle. How can I fix this? Do I have to replace the heat break or some other part?

I saw PETG printed at 100 mm/s, but 150! That's a lot.

One solution to avoid blobs may be to limit the maximum speed to a value you can actually achieve with reliable results.

Simple test to find your machine limits (each combination filament brand + nozzle + temperature has a different value): extrude filament in the air at increasing speeds, see how the flow changes, and when you see more than 5% decrease, that's it.

M83
mark the filament as if you were calibrating the E steps
calculate filament speed: speed = volum/s / filament surface * 60 = mm^3/s * 25 (this factor is valid for 1.75 mm filament)
set extrusion speed for 2 mm^3/s: G1 F50
extrude 50 mm: G1 E50
measure actual length extruded
repeat 2.-6. but increase the speed by 2 mm^3/s each time: 2, 4, 6, 8, 10, 12, ...
at a certain speed you will see that the actual filament length starts to decrease. When you see that the underextrusion reaches 5-10% (depending how much underextrusion you accept), write down that volumetric speed (mm^3/s) somewhere, it's your limit for THAT filament + THAT nozzle + THAT temperature
Either a) calculate the max print speed = volumetric speed / layer height / line width or b) set the maximum volumetric flow rate in the slicing software so that the speed will be automatically capped taking into account layer height and line width. Prusaslicer allows to set that in the "Print" or in "Filament" settings, I recommend it for "Filament" settings, since it's a filament-dependent parameter.

Example data from CNC Kitchen:

You can increase the max print speed, at the price of a little loss of quality around edges, if you calibrate the E steps at a speed corresponding to 2-3% underextrusion (alternative: to the speed of outer perimeters).

This way you know that when you print slower than that (uncommon... typically only sharp corners and small perimeters) you'll get up to 2-3% overextrusion, and you extend by 2-3% the maximum print speed, since your max speed is the one where you get 5-10% underextrusion compared to your E steps calibration speed.


What is wrong with this angle? I'm trying to print a model that looks like this:

at a size of approximately 10"x7"x7".  I've tried 3 times now, with various different infill and shell settings, and had it fail all 3 times in the same way at the same point: right at the point where the central column begins to angle back (which is a bit higher than where the two side columns angle back--those angles print just fine) the whole thing ends up detached somehow and I end up with messes like this:

How can I figure out what's going wrong with this print?  I've already wasted a non-trivial amount of time and filament on this, and it's starting to drive me up the wall.  Somehow, I've got the wrong settings to make this geometry print, but I can't seem to find any settings that actually work.

Using the Raise3D N2 Plus dual-extruder printer.

EDIT: WRT questions raised in the comments:

The extruder isn't clogging. It's continuing to print; it's just that at the point where the central column angles back, the whole thing separates and I end up with a distinct layer that prints straight up and down rather than angling inward.

I'm using PLA at 215°C and 3 wall layers.

This problem seems to be specific to this model; I've been able to print other large things before without problems.

Never heard of MeshMixer, but the reviews on the download page make it appear to be a very buggy and wouldn't work at all, at least in the current version, and it requires a registration to download even though it's nominally free, so I think I'll pass on this one.

Hex infill patterns are normally chosen for strength, as the honeycomb resists force in many directions. However, hex infill patterns are slow to print and the older, simpler fill patterns print faster and provide sufficient support for solid architectural models.

Models with shallow roof angles of less than 45 degrees are challenging to print and often result in "air prints" where unsupported filament cascades into a sorry tangle of sadness. Shallow roofs are challenging because each horizontal filament overlaps very little with the preceding adjacent filament. This is where infill proves critical, since the infill supports these filament bridges as they cross each infill line segment.

Slicing software has only recently introduced the hex fill pattern because the code to print a hex infill is VERY complicated. You can see this in the picture as all those fine lines of retracted filament scattered throughout the hex infill. Earlier, simpler fills such as diagonal lines provide simpler longer paths for the slicer to implement. Bridging works best at speed over many supporting points. Excessive retraction causes the extruder to "stutter", and makes bridging difficult.

It may therefore help to choose a simpler fill pattern for printing this model and reserve hex infill for simpler models requiring utmost strength.


Upgrade hot-end to achieve higher temps (e.g. for PETG) I'm struggling to get my printer to the temps required for modified PETG (the filament I have is Fillamentum CPE and recommends 255-275 °C), I currently can only reach 245/250 °C even if my target temperature is above that. The hot-end is fully ceramic wrapped and metal (no PTFE liner to worry about) and the printer is in a DIY heat shielded enclosure (non-heated).

The printer is an old (but gold) Wanhao Duplicator 4 (Rep 1 clone) with a MK8/9 extruder running a custom build of Sailfish. I know there is a firmware cap at 280 °C but that's fine, I don't intend to go above that.

Bar totally swapping out the extruder assembly what can I do to up the hot-end temperature, upgrade the power supply, heater cartridge?

Most PETG reacts vey badly to temperatures above 255. The typical optimal PETG temperature ranges from 225 to 245. Above that it gets sticky...

If PETG is your goal, you might want to find a filament that is more friendly to your printer. They are pretty cheap, and now you have transitioned to an all-metal hot end, you should be good to go!


Solidoodle 4 voltage requirements I have a solidoodle 4 and have blown the power supply . Long and the short of it is I am trying to modify a Xbox 1 power supply to fulfill the need. I am measuring he voltage at the output and its 14.04 volt.

Question is this, is the operational voltage range on a solidoodle able to operate on 14 volt ?

I have not used or seen a solidoodle 4, but as found on the internet, the controller board used in the printer is a version of the Sanguinololu, and the reprap wiki says that

  The board is designed to be flexible in its power source, working with
  a 12V/5V ATX power supply or any 7V-35V power source via the on-board
  voltage regulator.

if you're using a board not older than V0.7 http://reprap.org/wiki/Sanguinololu

However, I have also found images that show the Solidoodle with this board:
http://www.reprap.org/wiki/SAV_MKI
which can be used with 11-15V. This however might be for older versions of the printer.

There are some things to keep in mind: if there is no voltage regulator on the board, make sure that all parts can take the voltage without overheating at some points.


Y-min stay triggered I have a FLSUN i3 220x220x240 with:

an 2004 LCD (RepRap Discount Smart Controller)
an MKS-gen-L-v1.0 printer board running Marlin firmware 2.0.5.x
3D touch sensor,
a filament runout sensor.

Everything works fine but for the mechanical Y-min switch: it stays triggered.

(M119) YMIN worked under Marlin 1.1.2; everything is connected correctly and is physically working.

I don't know what to do... Does maybe someone have an idea of what I can do?

These are my config files:

configuration.h
configuration_adv.h
pins_RAMPS.h

This MKS-GEN-L board is in essence a plain RAMPS board, and as such it uses the same pinout apart from some specific pins. Do note the include of the RAMPS pinout in the MKS-GEN-L at the end of the file.

From your comment you have changed the pins 14 and 15, in doing so, you need to plug the Y-min endstop in the Y-max socket after uploading the modified firmware. With the unmodified firmware (no pin switch), if the Y-endstop works in the Y-max socket, this means that you have a hardware issue. The pin labeled 14 is connected to the Y-max instead of the Y-min. If you did the pinout switch and left the endstop in the Y-min socket, then you can conclude that the 15 pin is not connected to the Y-min socket. Basically you don't have a 15 pin that is exposed. Could be that there is an issue on the board with the traces or the soldering.


What are the dimensions of the FlashForge Creator Pro heating block? I have a FlashForge Creator Pro, couple of years old.  I'm looking to replace one or both of the heating blocks, as they're getting old and pretty gunked up.  Instead of buying two blocks at \$30 each, I thought I could take some aluminum and make two on my CNC mill.  The only thing - are there any manufacturer provided dimensions?  I could probably get by measuring with calipers, but I'd prefer the exact specifications.

The FlashForge Creator Pro uses a MK10 hotend:

The Micro Swiss MK10 All Metal Hotend Kit for instance is reported to be a drop-in replacement for the FlashForge Creator Pro, it uses M7 threads.
The heater block for an MK10 has a threaded hole for the thermistor (M4), but some use a machined hole for PT100/3 mm thermistor cartridges. The block measures around 20 x 20 13 mm. The images below should give you enough information to create your custom blocks. However, there appear to be 3rd supplier after-market blocks available on on-line webshops and market places

The Flashforge original spare part heater blocks show that they are slightly different (the top image shows symmetrical heater blocks while the spare parts are not symmetrical), so above drawings and caliper measurements should give you enough information to reproduce the heater block.

It would be a great addition if you added your own answer once you measured your blocks and created some drawings!


Thermal runaway on extruder hotend I am getting thermal runaway even after PID autotunning many times. I tried 10, 15, 20, 25 and 30 cycles and after reuploading FW onto the printer but I still get the error...

I've built a copy of Prusa's i3 mk2 by following Building the cheapest possible Prusa i3 MK2.

I have tried autotune with the cooling fan off, 50 %, and 100 %, but nothing changes.

The printer is in a closed cabinet room.

I was just watching it printing + temperature graph, and after ~20-30 minutes it starts jumping from 199.3-5 to 200.6-9... And that causes, after a few minutes, thermal runaway. The fan was on for 15 minutes or more.

Any help?

If a temperature of (rounded) 201 °C is triggering TRP, then one of three things is the culprit:

The TRP Hysteresis is awfully trigger happy. See What is Thermal Runaway Protection?
Your Heater cartridge is not properly mounted and has a bad connection to the heater block and upon heating and expecting a much higher temperature but not measuring the associated increase it triggers TRP as it thinks "DANG! My thermosensor or heater cartridge must have fallen out of the heater block!"
Your Thermosensor has occasionally erroneous readings that are interpreted as temperatures way over or under 200 °C and trigger TRP.

To rule out the problems, do the following:

Check the mounting of the thermosensor and heater cartridge. Tighten if needed. The thermosensor should have no cracks (glass) or deformation (metal cylinder)!.
Check resistance and wiring of the heater cartridge (it should have some depending on the type) and thermosensor (If you use a thermocouple sensor, you might need to flip wiring).
Use a terminal with a graphic interface and look at the temperature output line as you heat up and print. If it has spikes or sudden valleys, you get occasionally erroneous readings and should go back to recheck your wiring or replace the thermosensor.
Only after making sure the physical side is ok, look at the TRP code and Thermal Settings in configuration_adv.h. Only alter these if you know what you are doing, as you do so at your own risk - the settings in the distribution are well proven to be safe, while alterations might turn TRP effectively off and turn your machine into a fire hazard. Which factors to increase carefully is detailed in this answer.


Dual extruder with gear shifting I am planning to upgrade my printer with a second extruder. Since my printer is a Tronxy X8 it's frame is not exactly vibration resistant, so I'd like to keep the print head weight down. At the same time I really don't want a Bowden setup.
I came up with the idea of making a dual extruder driven only by a single stepper with a gear shift setup that switches the stepper between the two extruders.
The idea seems simple, but googleing didn't turn up anything else.
Is there anything I am missing that would would make such a setup unfeasible?
Did anyone else build something like that?
A clarification, because it came up in an answer:
What I imagine is this:
One stepper motor is connected to a gear shift system that is either connected to Extruder A or Extruder B, depending on the gear. When shifting it just connects the stepper motor to the other extruder. So it is still similar to a regular direct driven dual extruder system, except that it only uses a single stepper to drive two extruders, each connected to it's own hotend.

You'll need a custom firmware.
Yur custom firmware will have to react to the "Change extruder" command differently than a normal firmware: instead of just swapping to a different extruder, you'll need to perform some operations to alter the gearing (possibly a solenoid?), and possibly include some kind of "break" to make sure that the filament is not slipping back without the extruder attached. However, there already is a setup that pretty much does this: the Prusa MMU2 uses something similar. The MMU does use a Bowden setup, but you could use Bowden and direct drive in combination, especially if both motors run in sync.


Printrbot simple metal not auto leveling I have a printrbot simple metal with the heated bed upgrade. Its been working fine until Cura updated, now, after the x,y, and z axis zeros, the print starts without moving to the other corners and auto leveling the bed. Does the new version of cura require me to turn the function on or should i try to re flash the printers firmware? Thoughts? Thanks.

UPDATE

using an older version of Cura, the printer auto levels and works as expected. Is there any clue why the new update of cura stops this function?

See if you can check what the starting G-Code is. I havn't used Cura but what I think has changed for you is that your new software is homing just using the G28 command and not the G29 command.

I think if you can look into your slicer settings you will find an option to change what the starting gcode is and you will probably want to change it to something like this

G28 X0 Y0
G28 Z0
G29


Advice on power supply wiring for the UK I've been looking at the Ender series and decided to take the plunge. But I'm unsure on electrical matters. The 110 or 220 volt switch, I assume goes to 220 V as I live in the UK but my main question is, from what I've read they come with an EU plug and a uk adapter, is it safer to switch to a 'kettle lead' for it to have it's own fuse and be grounded or is the adapter it comes with fine? (I've never been a fan of adapter and I've read in different places that they're fine or that they are horrible.)

Please help as if I need to buy a cable I'll do it the same time I buy the printer. Thank you all in advance for any help I get, hope to join this community properly as soon as the printers come back in stock anywhere.

The fuse may be academic, because there might be an integrated fuseholder in the PSU itself. That said, adding another fuse in the form of a proper UK plug certainly won't hurt.

I'd certainly do this, too. Fuseless plugs have no place in my home/workplace

For the rest - yes, the 220V position for the switch is good. Grounding, again, certainly can't hurt, but the PSU is probably double-insulated, which doesn't require it.


Height of the prints are always larger This problem is driving me crazy, no, seriously speaking. I bought this printer this week and started to calibrate for accurate dimensions. I printed the one-and-only calibration cube (20x20x20 also a 10x10x10) and well, the dimensions for the X & Y axis are perfect, but the Z-axis is a big problem, almost 1.5 mm bigger than expected.
I tried everything in order to resolve this issue, I checked to see if the steps are correctly calibrated using a ruler and moving my extruder up and down, precise as you expected, no weird sounds coming from the Z-axis and stepper while printing. I calibrated the E-Step, also the bed leveling is done automatically using the BLTouch probe. Also I want to mention that the first layer is perfect (took time to calibrate this too).
I am using Cura for slicing using the default profile for the Ender 3 Pro, Premium PLA, 210 °C for the first layer & 200 °C for the rest, 50 °C bed temperature.
I will leave here some photos, perhaps somebody could give me an idea.
As you can see from the images the Z-axis is scaled-up perfectly. This difference is about 1.5 mm for both cubes (the one with 20 mm & 10 mm).
Has anyone encountered this type of problem before?
EDIT:
I will attach some pictures with the first layer. Right now I observe some wobbling in the Z axis and saw that the printer is not perfect laid on the table, one corner was lifted. So I tried to flatten. Waiting for the test print.

Since nobody had any idea what cause the problem, I investigated for a full week.
The problem is related to Fade Height and .... a warp bed, since I have ABL (Auto Bed Levelling) and Fade Height enable. The compensation was way too big, something like -1.4 or bigger.
So, after I bought a new glass bed and set the fade height to 0 the problem is gone and the prints are looking normal, like -.2 mm or -.3mm in heights.


Clear coating resin 3D prints I'm looking to put a UV-blocking clear coating on some of my resin 3D prints.
I've tried krylon UV-Resistant Clear Coating but it seemed to react with my print making it softer and easy to break. I'm trying to coat a thin Lithophane so I would rather not make it any softer.
Are there any better options for a UV-blocking clear coat for resin 3D prints?
Printer used: AnyCube Photon (dlp)
Resin used for Print: ELEGOO ABS-Like 3D Printer Rapid Resin
Lithophane maker: lithophanemaker

I'd go for the easy option of using a composite setup: Acrylic lacquers themselves are very low reactive and can serve as a foundation before the UV clear coating is applied. The acrylic lacquer itself doesn't change coloration if exposed to sunlight, but the light can still pass and discolor the lithophane.
Your Krylon clearcoat technically is an acrylic paint, but to be used from a rattlecan, other chemicals are added - a whole lot as the MSDS tells us. The list of chemicals besides the paint in that can are Acetone, n-Butyl Acetate, Propane, Butane, Xylene, Ethyl 3-Ethoxypropionate, Cyclohexane, Ethylbenzene,
Bis(pentamethyl-4-piperidyl)sebacate. Three simple chemicals I put in italics - they are very good solvents that easily react with the resin print. Propane and Butane create the pressure in the rattle can, the other four chemicals make up the actual lacquer. I have observed the mix of Acetone, Cyclohexane, and Ethylbentene (with possibly others) softening PLA, so it is totally possible that they react unfavorably with your resin print. As a result, I suggest using a brush or roller to apply acrylic paint from a can (not spraycan!)


Prusa i3 MK3 latest release first layer calibration issues I am trying to get my first layer calibrating done but no matter what I do, I can not get the lines sticking to the bed.

My first question is the distance of the P.I.N.D.A. What I did was what Prusa recommends on this pic:

I am using Prusa Slic3r with PLA and all default values. I am doing the first layer calibration of the setup menu and got the lines which you can remove and the last square which the nozzle is picking up so you don't have it on the print bed. The very first line on the left corner is not really squeezed. I am looking for some greenhorn help here.

Calibrating the first layer height involves two steps:

The first step, as illustrated in that picture, is to adjust the PINDA probe to be roughly the right distance above the nozzle.  The PINDA only has a sensing range of about a millimeter, so if it's too high, it can't detect the printbed; if it's too low, it will interfere with the printed object.

The second step, which you're having trouble with, is to calibrate the exact distance between the PINDA and the nozzle tip.  The printer prints out a test pattern; while it's printing, you turn the the dial on the printer control panel to adjust the "live-Z" value.  Typical values for a properly-assembled printer are between -0.5 and -1.0 (more-negative values are closer to the print bed).  If the live-Z value is outside that range, you need to adjust the position of the PINDA probe.

The official Prusa procedure is good for getting a rough calibration.  If you want more precision, the "Life adjust Z - my way" procedure on the Prusa forums is good.  Basically, you print out a large one-layer square, adjust the live-Z value halfway through, and see which half has a better first layer.  Repeat until satisfied.


No stepper motor movement on Ender 3 Pro I've recently updated my Ender 3 Pro to the latest Marlin 2.0 firmware and when I press autohome or try to move the axis, I hear a very quiet noise from the motors trying to move and then they just don't. I did get an error message about EEPROM when I first booted the printer after flashing but I just pressed reset and the issue hasn't come back even after trying multiple different firmware versions.

This is theoretical assumption, but I suppose that your steps/mm values are now wrong in EEPROM - specifically they are set to 0 (zeroed steps per mm)? Could you please use LCD and navigate to Configuration > Advanced Settings > Steps per mm and check what values are set there? If there are zeros, could you set them to positive values (e.g. =80) and check homing again? Than you may save changes using Configuration > Store Settings.
I just made following test proving that this may be the cause. I set steps per mm for X=0 (executed G-Code: M92 X0 from serial terminal) and tried to move X. The stepper motor was enabled (quiet noise or hiss), but it not moved at all. There was no additional feedback e.g. on LCD. Pretty similar.
If this is not the only broken setting, then option Configuration > Restore Defaults should reset EEPROM to values defined in Marlin's configuration. I needed to perform Configuration > Store Settings to make it persistent. But this will reset many other values, so I would suggest to write down all current values from LCD before doing the reset, for reference in future (in case they were valuable). And still you may not see all settins in LCD, therefore I would use g-code for this operation - see below.
These operations can be also performed from serial terminal using G-Code commands: M503 to verify and copy current configuration, and M502 followed by M500 to perform factory reset.


Tevo Michelangelo nozzle below build plate? I got a Tevo Michelangelo as first 3D printer today and already got a problem with the bed leveling: The extruder nozzle is way below the build plate. (When I auto-home the axes, which I've done several times). I thought to just adjust the plate downwards, but it was incredibly slow, and there was almost no progress.

Here's a picture, sorry for the bad quality:

Should I continue adjusting it downwoards via the screws (It's getting harder), or is there some other way to solve this? Or am I just making a dumb mistake?

Just move the Z-endstop up a little higher, also make sure the bed leveling screws are not completely screwed in.

So:

Move the head of the printer up.
Move up the Z-endstop so that the nozzle is a little higher than the build platform.
Home the printer.
Disable the stepper motors and move the head over the bed to a certain position (e.g. a corner without disturbing the Z axis), once you get to a new position of the bed, raise the bed by unscrewing the screws until a piece of paper shows noticeable drag when pulled between the nozzle and build platform.
Goto 3 until you have done all corners several times, also the center of the bed. It is advised to once in a while re-home the printer, this way accidental Z-axis movement is compensated again.


How to create a support structure in tinkercad? I've created a case for my Raspberry Pi in Tinkercad and would like to 3d print it. However, I don't know how to create supports! I tried looking it up, but I got a model that I don't know how to import, and some best practices for supports. So how should I create them using Tinkercad?

If you're using the term "supports" to mean the extra material that the 3D printer needs to allow material to be deposited in "mid-air," your slicer will have a setting that permits this. Knowing which slicer is going to be used would enable someone to advise you directly of the location of the settings.
If you are going to be using a 3D printing service, you need not address those types of supports. The printing service will have qualified operators who will select the correct settings for your specific model.


Prusa i3 Dual Extruder Setup Issues I have a Folgertech Prusa i3, on a Ramps 1.4 with Marlin and I use Repetier-Host to control it. I am attempting to convert it to a dual extruder Bowden setup, and I can't seem to get the second extruder to work, although the first works just fine.

This is my problem:

I am not getting a reading in Repetier-Host for the thermistor of the second extruder. It is at a constant 100C.
When I turn on the cartridge heater for the second extruder in Repetier-Host, the cartridge heater does not heat up.

This is what I have done:

For the second extruder, I connected the wires from the thermistor to the pins for T2 and the wires for the cartridge heater to D9.
I have not updated anything in the Marlin firmware.
In Repetier-Host, I selected that there are two extruders, and a second extruder is indicated under the 'manual controls' tab.

This is what I have double checked:

I confirmed the second thermistor works because it indicates a proper temperature reading when plugging it in both T0 and T1.
I confirmed the second cartridge heater works because it heats up when connected to D10.

I apologize in advance if this is an amateur question, but I can't seem to find an answer anywhere. If somebody could at least point me in the right direction, or let me know if there is something I did not include in my post, I would really appreciate it, and hopefully it would help somebody else coming across a similar problem.

Thanks

Thanks to the comments, I was able to narrow down the specific issues in the firmware. The firmware version was really out of date, so I recommend finding the latest stable version.

Therefore, I found the latest stable version of Marlin, downloaded it, and created my own edited version. I went line by line in configuration.h and configuration_adv.h, with the old version I had side by side to the newer version, making any and all appropriate changes. Below are the lines I found most important to evaluate when setting up a second extruder.

Make sure the you have the right board selected from boards.h:

#define MOTHERBOARD 34

Make sure the # of extruders is specified:

#define EXTRUDERS 2

Make sure the sensor is active:

#define TEMP_SENSOR_0 6
#define TEMP_SENSOR_1 6
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 6

This should be considered:

#define HEATER_0_MAXTEMP 240
#define HEATER_1_MAXTEMP 240
#define HEATER_2_MAXTEMP 240
#define BED_MAXTEMP 90

Everything under this comment should be looked at:

// Preheat Constants

These would allocate the second extruder for other motors:

#define Z_DUAL_STEPPER_DRIVERS
#define Y_DUAL_STEPPER_DRIVERS
#define DUAL_X_CARRIAGE

I'm sure there are other parameters I may have missed, and these are specific to my Prusa i3, but I hope this helps out anybody else in the future.


Dual extruder clogging problem I have attached a dual extruder (2 in 2 out) to my 3D printer. There is a repeating problem of clogging while printing.

I have fixed Chimera hotend.

A big fan, which covers area more than the double extruder, cools both cold ends. An additional fan directly on the front (as seen in the picture) cold end cools the ribs directly. The back does not have an additional fan.

I tried to print after attaching an extra fan; the first print went well but from there on, the hotend gets clogged every time I print.

The clogging happens in melt zone. I have tried cleaning the hot-end, but to no avail...

My settings are as below:

Print speed = 60mm/sec
Temperature = 210C
Filament material = PLA
Filament diameter = 1.75,
Nozzle Diameter = 0.4
Dual extrusion switch amount = 16.5mm
Retraction speed = 40mm/sec,
Retraction Distance = 4.5mm,
Disabled Wipe and Prime tower and ooze shield

Please advise what to do.

It appears (now confirmed in your question) that you are using a Chimera 2-in-2-out hotend like depicted below:

Chimera hotends generally use all-metal heat breaks (not confirmed yet) which are harder to operate than "normal" PTFE lined hotends. A common problem that happens is that heat creeps up causing problems as a result of too slow printing or too high retraction length settings. Basically your problem is clogging related to all-metal heat break printing. This is recently asked in this question: "Apparently systematic nozzle clogging". Please read the answers to that question as they describe very well what happens and what to do.

Quoting from this article explains that it is a heating/cooling issue:

  Jams and clogs are often from a combination of excessive heat and
  non-optimal material flow.  This effect is worsened by poorly cooled
  all-metal hot ends, high torque extruder gears, small nozzles/layers,
  slow printing speeds, too thin first layer, and excessive retraction.

Please do read this article and the solutions they mention to get yourself acquainted with the problem and its solutions.

In your case this could well be a cooling issue in combination with a too high print temperature and a possibly too high retraction length setting (depends on the length of the Bowden tube). The fan you mounted in the front (onto the cooling ribs, so the rightt fan in your image) is too large for this hotend. You attached the fan to the left top mounting hole so that it exceeds the right and bottom area of your cooling ribs. Furthermore, this larger fan has a larger center (hub) to house the bigger engine so that you end up with a lower cooling flow for at least the right extruder as most of the cooling ribs area is blocked by the fan hub. Please fit a fan that fits this hotend. Printing a fan adaptors may not work as well, these fans have a very low static pressure difference, so a convergent duct may not work as well as you might think. Considering your temperature you are printing PLA; PLA could usually be printed well in the 185 - 195 °C temperature range (depending on the PLA), 210 °C seems a bit on the high side.

Another solution could be replacing the heat breaks for lined heat breaks:

As an aside, to explain a suggestion, in Himanshu's comment to coat your filament with some oils:

  Apply some oil on PLA filament with cotton.

Oil does lower friction in an all-metal hotend, but please beware that this needs to be vegetable oil. The reasoning behind this is that the oil hardens inside the throat to create a smooth coating on the inside, not lube the inside of the throat. This thread has some interesting material on that.

However, general consensus is not to do that:

  Micro-Swiss use slippery platings and such, they don't need it. I've
  also used B3 Picos and E3D v5, v6, Volcano and Chimera and even that
  one garbage QUBD mk7 knockoff. Never needed oil.

or

  Seasoning hotends is a myth that refuses to die. Just don't do it, it
  does more harm than good.


Heater cartridge connector for Original Prusa i3 MK2S I am thinking about rewiring the extruder heater cartridge. What is the connector on the Rambo Mini? I'm thinking about putting a similar connector close to the extruder to make replacement easy. I tried looking through the schematic but could find the part number for the connector (I believe on page 4?).

This is referred to as a Terminal Block Connector.   More specifically this is a 2-position pluggable terminal block connector commonly manufactured by Phoenix Contact and others.

Newark.com Sale Page: Pluggable Terminal Block, 5.08 mm, 2 Positions, 24 AWG, 12 AWG, 2.5 mm², Screw

Larger Picture: 2-Position Terminal Block Connectors


Ender 5 Underextruding Recently I cleaned up the bowden tube and the nozzle, after that I noticed the 3D was underextruding because the walls of the prints were weak and the first layer didnt adhere on the bed.
I watched some youtube tutorials on how to fix this and pulled the bowden tube until the nozzle, cleaned inside the tube and removed clogs.
My temporary fix is setting the flow on Cura to 200%.
I added a extruder visualizer and it seems to be working just fine.
Any ideas why it is underextruding?

I'm using PLA at 200C, bed at 60C

If you pulled the Bowden tube out of the hotend and then got this, you almost surely installed it wrong, leaving a gap between the tube and the nozzle for molten filament to fill and jam in. Remove it again with the hotend hot, and if there's a mess inside, look for guides on cleaning it. Then, to reassemble, loosen the fitting from the heat sink by 3/4 to one full turn, press the tube in as far as it will go, then tighten the fitting down to compress the tube against the nozzle.


Not able to insert hobbed drive and filament in the extruder drive I am building a AlfaMendel 3D printer (edited : The original question named it to be Prusa Mendel I2). I printed the extruder drive using PLA material from the STL available in the package but I'm not able to insert the hobbed drive as well as the filament in it. The dimensions of hobbed drive is correct.

Is the problem related to shrinking of print material while printing the extruder drive or something else.

I have included few pics of the extruder drive and hobbed drive.

This image shows the maximum possible insertion of hobbed drive in the extruder drive.

Your parts are not in the Prusa Mendel i2 as found here or here.

Also note, quote:

  Parts included in Github repository have the wrong dimensions for the
  nut traps! Download the correct version from [Thingiverse Greg's
  Hinged Accesible Extruder]

Are you sure you have the correct parts for the original Prusa Mendel i2? Maybe you have a different version? The original extruder mount uses an M8 hobbed bolt, not an MK8 hobbed extruder gear. The first is 8 mm in diameter, the latter is 9 mm in diameter.

Edit:
After you updated your post to hint to the correct printer, it appears that my answer still holds. You did use the incorrect extruder gear. The 9 mm gear doesn't fit in the extruder part as it requires an 8 mm diameter extruder gear.

It might be difficult to find a 8 mm hobbed gear with a 3 mm shaft diameter, they are usually 5 mm (as in the stepper shaft diameter) or 8 mm (as in the diameter of 8 mm bolts that are frequently used for extruder setups). You could redesign the part (load STL in a 3D CAD program and make the changes). By the way, PLA should not shrink so much. As can be seen in the photo's, it looks like your current printer does not print very accurately, that may also contribute.


Where is a reputable place to download Ultimaker Cura? I noticed that my version of Ultimaker Cura was out of date, so I tried to go to their website and download a new version.  For whatever reason, I could not get the download link to work properly in Firefox with a slew of security extensions.

Where are reputable mirrors for Cura?

Download.Cnet.com and Sourceforge came up as sources, but years ago they both went to the darkside (SourceForge: HowToGeek, thecomputerpeeps).  I don't see anything else that looks even remotely reputable in the search results.

I did some analysis, and it appears that the drop down and form don't work correctly if you select "I don't want to share any personal information", leading me to think this is web page bug.

The answer to your question is: "From the application developer itself!".
Below is the explanation how you can (directly) download Ultimaker Cura from the most reputable source: Ultimaker.com

Regular download
When clicking the link to download of the Cura application download button from the Ultimaker website you are presented with a pop-up GUI that asks you if you want to share where you are using the program for. When you select the required field and press download, the download starts. If this doesn't work, a direct download approach can be used.
Direct download
If the regular download method fails, or you do not get the pop-up GUI, you can use the direct link for Ultimaker Cura from the developer's website:
https://download.ultimaker.com/cura/Ultimaker_Cura-4.1.0-win64.exe
This link can be found at the download directory at the website:
https://download.ultimaker.com/current/
This web directory overview also shows all previous releases and installers for other platforms.
As of version 3.6.0, the download does not appear to be in the list, this link will show an overview: https://ultimaker.com/en/products/ultimaker-cura-software/list
Do note that the latter link will show the pop-up.
As of version 4.1, the web directory overview link will serve a 404.
Github
The Ultimaker Cura Project has a Github, where they offer the current and previous editions under:
https://github.com/Ultimaker/Cura/tags


What is the melting temperature of a 3D printed part? Here is the context
I've got an old car for which I have a small plastic piece who is broken. As it's an old car and a very specific piece, I can't find it anymore. So I was thinking about 3D printing it.

My problem is this piece is on the carburetor, so close to the engine. This means, it can heat a lot, close to 90-100 °C.

My question
Do the pieces created with the common 3D printing techniques melt at 100 °C? If yes, what kind of other 3D printing technique can I use?

Here is the piece I want to recreate (sorry for the bad quality), the scale is in cm.

The number you're looking for is the glass transition temperature (the lowest temperature at which the material can flow or warp), not the melting point.  This depends on what material you're using; approximate temperatures for common printable materials are:

PLA: 60˚C
PETG, high-temperature PLA: 95 ˚C
ABS: 105˚C
Nylon: typically 70˚C or above ("Nylon" is a large family of similar polymers)
Polycarbonate: 145˚C

Any plastic under your hood is probably either nylon (for its durability, impact resistance, and chemical resistance) or ABS (for its strength and heat resistance).  These are both difficult materials to print: ABS emits toxic fumes while printing, and tends to warp if you're not using a heated enclosure, while nylon readily absorbs water from the air, causing the filament to bubble as it's printed.  Further, many printers can't handle the high temperatures needed to work with these materials.

If you're going to print this yourself, I recommend using PETG and inspecting the part after a few days of use to see if it's warping.  PETG is reasonably easy to print and comes close to your target heat resistance.

If you're going to get someone else to print it, I recommend using ABS.  It's probably what the original part was made of, and anyone willing to print ABS for you will have the heated enclosure and ventilation system to deal with printing it.

I'd avoid polycarbonate unless you know the original part was made of it.  Although PC is strong and heat resistant, it's also somewhat brittle and vulnerable to scratching.

High-temperature PLA is also brittle, and requires a heat-treating step that will change the dimensions of the part.  It will likely take several tries to get something that comes out the right size, and even then, you risk having the part break when your car hits a bump.


How do I remove a stuck resin print I have stuck resin print that won't detach from the bed of my Creality LD-002R LCD Printer. I guess I could break the print off piece by piece, but it won't budge with pressure, pulling with all my strength, or even hitting it pretty hard.

There are generally 3 ways, in order of least to most desirable, and at times you need to combine them in an escalation:

Toss the vat. This is the most expensive and generally should only be the last resort, for example, if you damage your film.
Careful Brute Force. This can damage the film, but carefully getting a wedge between the film and the print might be the only option to remove the last bits sticking to the film. If you have to resort to this, take your time.
Using thermal expansion. We all know that materials expand when you heat them. The reverse is also true: materials shrink if you cool them. Different materials shrink differently. So by cooling the vat with as little liquid resin and the print inside can lead to the print 'popping' free, just like in an FDM printer. Note however that this might not work on its own in case you made a suction cup (then you need to resort to brute force or drill a hole into the top), and you should take extreme caution not to contaminate any food with resin, as the stuff is not safe for consumption at all. With the right setup, you might be able to heat the build plate carefully while the print itself is kept cool.


3D printer ends print by sinking in to it and getting stuck I am using cura with M3D entry level printer.

When I print things more than 6-7cm/2.5-3inches, at the end of the print, the hot end sink back into the print then gets stuck as it tries to return to idle position.

Please see the attached photo.  Has anyone had this problem?  Thank you

The last 20 lines of gcode is:

G0 X50.83 Y49.982
G1 F600 X50.541 Y49.975 E4399.62304
G1 X50.268 Y49.985 E4399.62637
G1 X49.999 Y49.999 E4399.63024
G1 X49.73 Y50.012 E4399.6341
G1 X49.457 Y50.023 E4399.63742
G1 X49.168 Y50.016 E4399.63941
G0 F7200 X49.28 Y49.87
;TIME_ELAPSED:6301.614981
G1 F1500 E4393.13941
M107
M104 S0
M140 S0
;Retract the filament
G92 E1
G1 E-1 F300
G28 X0 Y0
M84
M82 ;absolute extrusion mode
M104 S0
;End of Gcode

As can be seen from the G-code file, the head is instructed to travel to x=0, y=0 (G28 X0 Y0 is actually a homing instruction to home the head and label the position with zero X and zero Y). After that it powers off the motors (M84).

From your picture, it looks like the head digs in the print without moving to the home position, so G28 X0 Y0  is not working (although you mention it tries to move while digging in?!?). That is strange as there is no instruction to lower the head. Please alter G28 to G0 so that it reads:

G0 X0 Y0

(or G1 X0 Y0 which does work and will instruct the head to move).

The digging into the print could be explained by the weight of the head/carriage that cannot be held when the steppers are not powered anymore (as instructed by M84). When the nozzle is hot, the nozzle will then dig into your print.

Edit:

Now that I see your comment on another answer, your proprietary software may produce different G-code than Cura does, this could imply that your printer does not use a "standard" G-code interpreter or does not implement all G-codes.


I can't install plugins on OctoPrint? I have installed OctoPi on my Raspberry Pi 3B+, that is connected to an MKS GEN L v1.0 motherboard for my 3D printer  (Ender 3 Pro). When I open my OctoPrint into a browser I can use it, but I wanted to install some plugins. First time I had an error that said my server was offline, after connecting my Raspberry to WiFi and setting up a static ip-address, I've connected my Raspberry to my main board, after that it said the status of OctoPrint was operational, so I expected it will work.

Sadly, it says that my installation doesn't have internet, so I still couldn't install plugins. I see that in the "connectivity check" my host is 8.8.8.8 and my port 53; I've pressed on test and there it said "server is unreachable".

What am I supposed to do?

This is a known issue (WIFI fine, but no internet connection to install plugins) and could well be related to firewall or blocking of certain ports by your Internet Service Provider (ISP).

I quote from the provided link (OctoPrint issue tracker):

  Disabling the connectivity check did fix the repository access. The check was configure to use google (8.8.8.8) on port various ports (22, 53, 5000, etc. Not sure the default). I do not have any firewall set up outgoing, unless it is buried in the Raspberian install that I am not aware of.

  I stumbled across this issue with the same problem, and I fixed the connectivity check by changing the IP to OpenDNS with 1.1.1.1 instead of the Google DNS 8.8.8.8 set by default.

  For me this issue was resolved when I update Date+Time on the raspberry...


Why turning off model cooling for first layer? I had few printing troubles for first layer yesterday (will certainly ask there as soon as I can take photos) but one of the things I've noticed is that the model cooling fan (the fan that is supposed to blow air on the printed model, not the fan that regulates the noozle temperature) is turned off for printing the first layer.

It's a Dagoma DiscoEasy200, printing PLA on a non-heating bed (blue tape).

Wandering down stackexchange, I also read turn off the part fan for the first layer from https://3dprinting.stackexchange.com/a/5494/10836

So my question is:

what's the reason behind turning off the part/model-fan for the first layer?

Filament expands as it gets hot. Cooling the filament will make it shrink, so cooling the filament deposited on the bed can lead to adhesion problems and warping of your products. This is exactly the reason why you use a heated bed (the delta temperature is smaller). So keep the cooling off for the first layers and you'll be fine.

Additionally (having answered the question for not using cooling air for the first layer), I would like to add that sometimes you won't need any cooling at all (for other layers), or very little cooling.

Please do note that some filaments do not like to be cooled down too fast; this may lead to weaker layer bonding or other issues. E.g. POM filament will harden very quickly when cooled causing the nozzle to bump on the quickly hardened filament knocking the product over. Also I found that too much cooling air when using PETG leads to "string-cheese" products caused by insufficient layer bonding. ABS is reported to be even more sensitive for cooling (shrinkage during cooling is higher than of PLA or PETG filaments); a frequent advice is not to use filament cooling when using ABS filament.


Sunhokey Prusa i3 axis x, y, z? My Sunhokey Prusa i3 arrived with a corrupted disc. I'm awaiting a new one and finished the mechanical build via YouTube videos.

I've no clue which motor controls the X, Y, and Z, axes. I"m not even positive which axis is which. YouTube vids don't show the origin of all the wires/cables/cords they connect.

Anyone know of any CLEAR and Normal speed (or slow-able) vid/diagram that shows the electronics wiring in detail?

X-axis is right-to-left (Carriage motor)

Y-axis is front-to-back (Base/Bed motor)

Z-axis is up-and-down (lead screws)

There are several videos on YouTube.
This playlist seems good.


How to theoretically calculate the maximum acceleration? I would like to calculate the maximum safe acceleration for my printer using the following parameters as input:

printhead weight
torque at the desired speed
steps/mm and steps/revolution
microsteps

Elasticity of frame and belts are ignored.

The Excel file to obtain the torque at the desired speed is available here.

The other parameters are known in advance.

The formula I used for the maximum acceleration is the usual $a=F/m$, where $F=torque*radius$:

$acceleration = torque\ *\ (steps/rev\ /\ steps/mm\ *\ microsteps\ /\ pi\ /\ 2) / mass$

Using 450 g, 0.15 N/m (as predicted for my stepper at 200 mm/s with 24 V), 200 steps/rev, 80 steps/mm, 16 microsteps I obtain about 2100 mm/s2 which seems reasonable and pretty close to standard values.

However, from what I understood the Excel file provides the prediction of a full-step torque, but torque is known to decrease significantly with increasing microsteps.

How to introduce the effect of reduced (incremental) torque for microsteps to calculate a safe maximum acceleration value for a printer?

For information: my stepper and my printer were sold back then with about that acceleration value preset and with that torque at nominal speed (half voltage, half speed than I assumed here).

The print quality was fine, which seems counterintuitive considering the much reduced torque expected at 16X microsteps, about 1/10 of the value I used.

I would expect many lost microsteps with the predefined settings. Or maybe it happens: if all the microsteps are lost, the positioning error would be 16 (micro)steps / 80 steps/mm = 0.2 mm.

Important edit!!!

As maybe someone noticed, the formula I used

$F=torque*radius$

is wrong. The correct one is

$F=torque/radius$

Taking this change into account, the final formula is:

$acceleration = torque\ /\ (steps/rev\ /\ steps/mm\ *\ microsteps\ /\ pi\ /\ 2) / mass$

which results, with the given input values, in 52 mm/s2.

This is much less than what is normally set in printers. I doubt that belt stretching and frame flexibility can affect the setting so much, therefore in addition to the microstep aspect, this one should be answered too, since the question is about "theoretically calculate the maximum acceleration".

You do not appear to have a correct understanding of how microstepping affects torque.

What is calculated in the article you refer to is incremental torque. The word "incremental" is very important.

A stepper motor consists of a permanent magnet rotor and an electromagnet stator. The electromagnets generate a magnetic field, to which the stator wants to align itself. Imagine the stepper motor being at rest. As we apply a torque to it, the rotor will start to deflect from its resting state in which it is aligned with the magnetic field. As you apply more torque, the stator will deflect more.

Eventually, if we keep increasing the torque, the motor will no longer be able to hold its position and snap over to the next step. The torque at which this is happens is the holding torque. Essentially, you can think of the holding torque as the torque required to cause a full step deflection of the rotor's position (compared to where it would be aligned with the magnetic field). The deflection in response to a given torque load is called the static load angle.

The article calculates incremental torque for microstepping. The incremental microstepping torque is the torque required to cause a microstep deflection. So, if we are using half stepping, the incremental torque is the torque required to cause a half step deflection. Naturally the torque required to cause a half step deflection is (much) lower than the torque required to cause a full step deflection.

This is actually irrespective of what level of microstepping the motor is configured for. Causing a half step deflection requires the same amount of torque, regardless of whether the motor is using full or half stepping. All lower incremental torque means is that we're specifying the torque for a smaller deflection. It does not mean torque is reduced overall.

  I would expect many lost microsteps with the predefined settings.

You cannot "lose" a microstep. The rotor of a stepper motor has physical increments, and losing a step is when it snaps to the next increment. The only thing you can lose is a full step.

The stator of a stepper motor creates a rotating magnetic field. The rotor tries to follow this magnetic field, but (if under load) always lags behind it a little because the coupling between the two magnets behaves like a spring. In full-step mode, the rotating magnetic field moves in discrete steps. All enabling microstepping does is make the field rotate more "smoothly". However, it doesn't change the magnitude of the field.

If you were to look at the graph of the acceleration of the rotor on a very small time scale, you would get a sawtooth wave. Each time the motor made a full step (i.e., the magnetic field jumps), the acceleration would be high (as the misalignment between the fields would be large) and then gradually drop as the rotor aligned itself again with the magnetic field.

If you would use 16x microstepping, you would again see a sawtooth wave, but with a 16x higher frequency and with a lower peak-to-peak amplitude. However, the average value would be the same as for full step mode. The reduction in peak-to-peak amplitude corresponds to the reduction in incremental torque (and, for smooth acceleration, this reduction is actually good).

The main reason to be interested in incremental torque is to determine the positioning error. If you imagine the printhead being at rest, a single microstep may not cause any motion because the incremental torque is too low to overcome static friction. So, using 16x microstepping will not allow 16x as precise positioning. However, maximum acceleration is not affected.

The second part of your question, where you get the unrealistically low value of 52mm/s2, is based on a simple calculation error. The correct value is 52m/s2 or 52000mm/s2.


Levelling issues with BLTouch sensor; unlevel and weak adhesion I have a Creality CR-10 Max with BLTouch.
After I have manually levelled the bed and set the BLTouch to do an auto level it seems to unlevel the bed and only prints one side of the bed. However, it’s not sticking to the bed properly as it can easily move the first layer by brushing over it with my finger.
I have provided a photo of a test print below:

I have cleaned the bed with an alcohol wipe to ensure no residue from my fingers are on the bed.
I was wondering if any one can help me explain why the levelling is not working well and why the print doesn't adhere well.

I have the same printer, but what are you printing, is it an stl that you created yourself or that came standard with the printer?
In the beginning, I had the same when printing the models that were delivered with the SD card. Can you check your settings as well on Cura, maybe the adhesion type is set to raft then the first layers are like that.
If not then see what nozzle you are using and see what settings you have them on, I noticed also that the initial nozzle that was on my printer was a 0.8 mm and not a 0.4 mm.
Also, did you check your Z-offset settings on the printer, when printing you click on adjust and then normally in the left top you see Z-offset if you go in minus (try with 0.5) every time and see if it sticks better.
Can you try and check this. These things I also had, still figuring out the settings for the CR-10 Max so I'm not an expert, just sharing my things where I also struggled with.


How can I tell if an STL model will need supports? How can I detect if a generated STL model will need to be printed with supports?

Context: I have a pipeline which parametrically generates OpenSCAD models, generates the STL, and sends them to the printer.  I would like to (a) automatically detect the cases where supports are necessary so that I can specify the appropriate flags to the slicer, and (b) attempt to rotate the generated model so that supports won't be necessary.

You could try to:

Slice with slicer (Cura in my case) with support enabled.
Search for text: TYPE:SUPPORT

G0 F1800 X237.873 Y184.24
G0 X233.869 Y183.237
;TYPE:SUPPORT
G1 F1500 E562.81355
G1 F900 X233.579 Y183.939 E562.91577
G1 X233.368 Y184.67 E563.01816
If it exists, then try to call it again:
Use auto-orientation plugin to validate if there is a better (no support) model position.

As an alternative, you could scan the mesh and looks for an angle greater than 45 or 50 degrees.


Does the Elegoo Mars printer support additional file formats? I recently bought an Elegoo Mars 3D printer.  Generally speaking, I'm quite happy with it. But, I don't care for the slicing software, Chitubox.  Does the Elegoo Mars support other 3D file formats?  I have tried *.stl files, but they don't seem to work with the factory firmware.

It also works with the .photon format of the Photon slicer.
It is only marginally better than ChituBox though.


Should I be doing PID auto-tuning with my fan at 100% (Anet A8) I'm using an Anet A8 with Marlin 1.1.6.

I've read countless guides on PID auto-tuning and never saw that the fan needed to be on, but when I look at the Marlin source code's ANet A8 configuration (here: example_configurations\ANet\A8\Configuration.h) it states:

  ...

  // ANET A8 Standard Extruder at 210 Degree Celsius and 100% Fan
  //(measured after M106 S255 with M303 E0 S210 C8)
  #define  DEFAULT_Kp 21.0
  #define  DEFAULT_Ki 1.25
  #define  DEFAULT_Kd 86.0

#endif // PIDTEMP

So, should activate the fan before running the auto-test if I wish to update the PID values in Marlin for my Anet A8?

You should run the fan at what you expect it to be at the majority of the time it is printing.  If you tune at 100% fan and never use a fan then it will be too aggressive, if you tune at 0% fan and use the fan then you will struggle to maintain/reach temperature.


Nozzle heats while autoleveling (or before) When I'm auto-leveling my Anet A8 with Marlin firmware, the nozzle heats to 195°C during the leveling process, which leaves drops of filament. I checked the resulting G-code but makes no sense to me:

M107
M190 S55 ; set bed temperature and wait for it to be reached
M117 Homing Axes
G28                          ; Home axis
M117 Autoleveling
G29
M117 Cleaning Nozzle    ; Indicate nozzle clean in progress on LCD
M109 S200       ; Uncomment to set your own temp run warmer to clean out nozzle
M107                ; Turn layer fan off
G21             ; Set to metric change to G20 if you want Imperial
G90                          ; Force coordinates to be absolute relative to the origin
G0 X10 Y0 Z0.15 F9000         ; Move in 1mm from edge and up z 0.15mm
G92 E0                       ; Set extruder to 0 zero
G1 Y190 E50 F500             ; Extrude 100mm filiment along Y axis 190mm long to prime and clean the nozzle
G92 E0                       ; Reset extruder to 0 zero end of cleaning run
G1 E-3 F500                  ; Retract filiment by 3 mm to reduce string effect
G1 X3 Y190 Z15 F9000        ; Move over and rise to safe Z height
G1 X3 Y0 Z15 F9000      ; Move back to front of bed at safe Z height to shear strings

My printer heats the bed, then homes axes while setting the nozzle temperature to 195°C.

Then autolevels and finally M109 S200 does its job.

How can I prevent the nozzle from heating when there is no G-code for it (except the M109 S200)?

I am using CURA as my slicer, and it sets the bed and nozzle temp before printer start code is executed.
You can easily check that by opening a file in a notepad and see, that there will be a few lines describing the job, nozzle and bed setting temperature and the user code that is inserted in printer properties screen.

To change that behavior - you need to open the file and move the M commands down after leveling is executed.

;FLAVOR:Marlin
;TIME:45
;Filament used: 0.0187665m
;Layer height: 0.2
;Generated with Cura_SteamEngine 3.3.1
M190 S60
M104 S200
M109 S200M82 ;absolute extrusion mode

lines above are added by slicer so temperature is set before instritions from START G-Code section:

G21 ;metric values
G90 ;absolute positioning
M82 ;set extruder to absolute mode
M107 ;start with the fan off
G28;
G92 E0 ;zero the extruded length
G1 F20 E3 ;extrude 3mm of feed stock
G92 E0 ;zero the extruded length again