BLTouch calibrated, nozzle still dives into the bed

This answer is intended to be a generic answer for Z-offset determination. The question is not clear on how the Z-offset has been determined. It appears as if this distance is measured, while in reality this cannot be measured.

A touch (or a inductive or capacitive) probe uses a trigger point to determine the distance of the probe trigger point to the bed print surface. Correct installation is trivial, as is the determination of the nozzle to trigger point definition. For a touch sensor, the probing element is either stowed, fully deployed, or pushed in during leveling up to the point that the trigger point is reached and the probe stowes the rest of the pin, see figure:

The M851 Zxx.xx offset is determined by lowering the nozzle beyond the  trigger point until the nozzle hits a paper sheet. If the stowed position to nozzle distance is used, the distance is too large and the nozzle will dive into the bed on printing.


Why does the print speed change at specific height? (Using Ultimaker Cura slicer)

Not being able to see the rest of the model (from the first image), if looks as if the light green sliced area displaying a lower speed for the top of the cylinder, is the only part that need to be printed to that height (now confirmed in the second image). This speed reduction is done by the slicer and is not specifically caused by Ultimaker Cura (other slicers do result in similar behavior). Note this is a good thing! Lets explain.

Filament needs an amount of time to cool before the next layer is deposited onto the previous layer. When the layers get small (surface area) and there are no other layers the print head shifts to, the print process is slowed down to allow the filament to cool down; hence you see a decrease in print speed.  If you deposit too fast, the last part of your print will become too hot and will deform.

A print parameter that influences the behavior is the Minimal Layer Time parameter in Ultimaker Cura, please read the hint information of this parameter:


If you'd like to print on RepRap like FDM printers, you cannot print from metal, but you can use some filament that tries to look like metal. I have good experience with Bronzefill, but there are plenty of others, just Google for metal filament 3d printing. Note that sometimes the parts need to be post-processed with a rock tumbler. There are several open source DIY tumblers you can build and use.

If you actually want to print from metal, you would need SLS (Selective laser sintering) printer, which is much more expensive.


Wear Gloves.
Returning is impossible
Resin does not just harden, it polymerizes into shape from monomers in a chemical reaction. That means to break it down, you need to destroy the whole chemistry. There is no solvent that can simply reverse it.
Wiping is easy
As long as the rein is still liquid, you can wipe it off. Then clean the parts with Isopropylic alcohol.
Manual work
Destroying Resin-Polymers is incredibly hard for most solvents. The most simple solution is usually oddly enough to use physical force. Resins are super brittle and chip off, but might damage the paint coat in the worst case.
Thermal shock
If you can, you might put your printer in a cold environment and see the resin gaining cracks, as it shrinks slower and less than the metal. Then, putting it back into the heat adds more.


Help preventing warping while 3d printing with polypropylene

You should enable the "brim" functionality of your slicer. This adds additional perimeters to the first layer, expanding the base of the model. The larger surface area gives more adhesion.


Will 3D printing work upside down or in zero gravity?

Yes!
3D Printing upside would only potentially have an issue with the first layer if you're using an extremely large gap on the first layer, however in normal circumstances there's enough pressure that the filament is squished into the bed, if you've got one yourself you can put it on it's side, the question when it comes to 3D Printing isn't upside down, but not the correct way, as it's presuming that gravity pushing down is the important thing, while in every other orientation it also works.
In theory SLA printing would work just fine, as long as you're able to seal the build plate and vat together so no resin leaks out.


What should the underside of a bridge look like?

The idea of the part fan is to cool the plastic as quickly as possible once it is extruded in order to keep it in the correct spot. The slower that the plastic solidifies, the more the plastic will sag when printing overhangs/bridges. The stock part cooling fan/duct on your printer, Monoprice Maker Select Plus, is  not all that great and would probably benefit from an upgrade.

As far as the Cura settings you posted, you should turn off most all of those experimental bridge settings. Your printer will still be able to print bridges without the 'Enable Bridge Settings' checked. The only one that would be useful is the the 'Bridge Skin Speed' since reducing the print speed effectively increases the air flow on the extruded plastic. More over you are turning off the fan for the 2nd and 3rd bridge skin layers which will cause them to sag even further.


Well the CBAM stuff is SUPER new, requires a lot more work done by hand (currently), and is going to be WAY expensive compared to widely used FDM machines.

Seems to me like a carbon fiber mixed filament is a cheaper way to go, with a possible annealing process to get the tensile strength up post-print.

Try locating a CBAM printer for $200! Maybe if the process becomes quicker, and the machines/materials cheaper to purchase, we could be using this method more in the future. I feel that we will likely advance the materials we have with FDM much faster than this other process would catch on and become affordable.


What causes this characteristic pattern and what is it called?

These "stretch marks" are typically the result of a nozzle that is a little too close to the build surface. Next time levelling be sure to use a thicker piece of paper or allow for less drag when moving the the paper between nozzle and bed.


I am sure someone much smarter will be able to point you towards datasheets and maths equations that will tell you exactly what you could/can't do, however, I would say it depends on a few things:

Material - some materials have more give/flexibility, others have less. Depending how hot you expect the caps/surrounding components to get may also influence choices.
Wall thickness - Are you just after a 'thin walled' print, or something more solid. Thinner walls tend to be more flexible.
Reusability - are you going to snap the cap in once or twice, or thousands of times?

I would hazard a guess that about 210-220 degrees of "surrounding" would be enough.

Can you try it and see? Or do you only have one shot?


Which printer for a beginner depends far more on the beginner in question than the various printers available.

If you are comfortable assembling parts and figuring things out a number of options exist.
If you need a fully-built object, a number of options exist.
If you require lots of dedicated support, via phone or email, there
are options.
If you can ask questions in a forum and get the answers you need (or
figure things out when you don't and post your answers for others to
find) there are options.

If you have special/esoteric printing needs, that puts constraints on - if you kinda vaguely want a 3-D plastic printer, but don't really know what you want to use it for the field is wide open.


Let's look at the problem mathematically:

The bed has a 0 that puts the surface some distance $d_0$ above the surface of the resin, the wiper does put the first layer on that height.
after curing, the printer moves down distance $d_d$ to coat the top surface.
afterwards, the bed lowers back up to $d_0+d_l$ - a thickness of 1 layer lower, or in other terms, it moves $-(d_d-d_l)$

Now, how is it implemented in your G-code? check that!


(Cura setting) How can I fix this? No top layer

I'm pretty sure the yellow lines are showing the full path of the extruder head, including where it's retracted.  Somewhere in Cura's maze of menus, there's an option to turn on/off various displays related to the slicing.

As to why the top layer isn't there -- most likely it's too thin in your source  model.  You might try enabling "Print thin walls" options in the Preferences advanced list.  BTW, if you post the original STL or CAD file, we might be able to provide more accurate diagnosis.


Resources for making 3d scans of electrically conductive materials?

I have heard of similar scanning not using the electrical connecting but using the capacitance of the metal object to detect it. Capacitive Scanning works by detecting a metal object near the prob so the prob doesn't have to touch the object being scanned


I haven't used every flavor of gcode or firmware, but I've never seen the parameter order be important, provided that:

The G or M code was the initial entry; and

Each parameter was clearly listed with one or more spaces between parameters; and

No spaces were in between the parameter letter and the value.

We use a custom version of Repetier firmware to run 3D printers and Fadal CNC machines, and in every use  G1 F1200 X188 Y92 E0.01 would be evaluated and executed completely identically to G1 X188 Y92 F1200 E0.01
Nearly all gocde variable values are persistent, so if Z remains unchanged because it is only specified once per layer, or if Z remains unchanged because it is explicitly specified (with the same value) on every line, there should be no difference in the behavior of the printer.


Passing from nozzle diameter 0.4 mm to 0.2 mm causing filament jamming in heater

0.2 mm and 0.4 mm are half the diameter, but the maximum flow is not just half: Flow scales with the area. The 0.4 mm nozzle has an area 4 times as the 0.2 mm one:
$\frac{A_1} {A_2}=\frac {0.2^2}{0.1^2}=4$
You need to reduce print speed or the volumetric flow by this factor or make sure your printer can handle the increased flow by reducing the viscosity of the melt - for example by increasing the print temperature.
Also note, that a 0.2 mm nozzle can't be operated with layer heights above 0.15 mm.


Why is BLTouch Still Probing Off the Bed Even When `NOZZLE_TO_PROBE_OFFSET` is Set?

Did you load the values from firmware after the re-flash? Use M502 to load the values you changed, otherwise it will keep using those from memory. Also set #define Z_SAFE_HOMING, then it will home in the middle of the bed.
Also, with a new carriage for the Hemera, your nozzle is not/might not be in exactly the same position as before as I learned from other adopters, you then should also need to redefine the offsets, see How to center my prints on the build platform? (Re-calibrate homing offset).


I've had good luck with just leaving a hex-shaped hole in the print, and press-fitting in the nut afterwards. You'll want the axis of the bolt to be along the z-axis, and to use a fair amount of infill and shells. I usually use PLA, so YMMV slightly.

You may also want to consider your strain gauge setup carefully. If you're doing something like making a hook out of the ABS and the plate is acting as a lever arm, you need to make sure the lever arm length is the same every time, or your calibration will be wrong.


Well that is unique. I would say if you only see this after the printer has been running a while then your electronics are likely overheating. Put a fan on it and report back.

Otherwise and also I would reflash the electronics..


Using an Anet A6 3D printer in the UK... (mains voltage issue!)

The UK uses 230 V mains voltage. The 220 V designation is from the past, Europe is now using 230 V. You do not have to worry about the frequency.

You should place the switch to 220 V and plug the cord into the socket. The printer should start immediately booting (cycling) the printer firmware, the LCD should light up and the cold end cooling fan will spin (annoyingly).

If nothing happens, you need to check the Power Supply Unit (PSU) and all cables for proper connection (does the fan of the PSU spin if it has one, you should at least see a led light up). A multimeter is not expensive and generally very valuable to test if it outputs 12 V. That way you know the PSU is working or not, if it works the problem is at the main printer board.

As these PSU's are pretty cheap and faulty, you could well have received a broken one.

How to measure the voltage?

If you look at the connection terminals you will find labels above them. Measuring position 6 and 8 might be the incorrect ones, this depends on your PSU. If you have exactly the same PSU as from the linked video, measuring between 6 and 8 would be correct:

From the image above the connections from left to right (for other PSU units, the order may be different, I have units where the connection to the mains is on the right):

L, N and ground are used for connection to the mains,
COM (stands for common or 0 V) or sometimes denoted as -V is the output ground (negative, connection for the black wires) and
+V is positive, connection for the red wires.

You need to measure the voltage difference over COM and +V, this should be the voltage of the power supply. Ideally you measure the voltage when the power supply is delivering a load (e.g. directly connected to a strip of LEDs or directly connected to the heated bed; some faulty PSU crash in under load, this can be seen by a lower voltage than the rated voltage).

If the PSU is correctly wired, your fuse is not broken, does not have a LED lighted and the voltage is zero the unit is defective.


Can I really throw failed PLA prints on compost?

This question has been asked on just about every forum out there.  Here's one example from filabot.com .

  The reality however, is that this process will take several hundred
  years in a typical landfill. To biodegrade, PLA requires a laundry
  list of conditions to effectively break down. Specifically - oxygen, a
  temperature of 140+ degrees *[Fahrenheit -- ed note] *, and a 2/3 cocktail of organic substrate.
  Collectively, these are absent in any scenario outside of industrial
  composting facilities.

I found similar comments -- tho' with perhaps slightly lower temperatures elsewhere.


My FLSUN Kossel 3D Delta printer ($224) has a bowden extruder. It works really well too.

The main advantage of having one is that it reduces the mass of the hot end. That means less inertia, and it's easier on the driver motors as well. All this leads to (hopefully) greater and more precise control at the extruder tip, and, best of all, faster printing.


there is a project called precious plastic and there is a plastic shredder, but it is a rather expensive solution.

As I am waiting for parts for my Lyman extruder, my plan is to hammer the parts and then process in old kitchen robot with steel working area, an example here

The paper shredder will be ok as long as you can feed it with plastic.


Will this MOSFET allow the heat bed to run at a different voltage than the control board

Short answer YES. You can run it from a different power supply at a higher voltage. Also it has a PC817 Optical isolator (for some reason) therefore the second power supply and your main board should not be electrically connected at all.


Z-axis of Anet A8 always moves additional 5 mm upwards when moving X and Y-axis in Ultimaker Cura

Answer taken from OP's question

(24.01.2019) UPDATE: I updated Marlin to 1.1.9 and used the configuration from repository. Since I also printed a new print head (for Bowden extruder) I had to rework all offsets. Same time I switched to Simplify3D (cause I need better control for support blocks). Since then the problem disappeared (not surprised). I could not figure out what setting caused my problem. Thank you!


Beginner FreeCAD question on axes when sketching

This answer assumes you're working in the Part Design workbench.
So you want to adjust the starting height of a pad or pocket. There are two ways I can think of to do this easily.

Adjust the Z attachment value of the sketch to lower the sketch below the surface.
Use the "two dimensions" option in the pad/pocket operation and set the second value negative.

By the way, it is highly suggested not to attach a sketch to a surface. The current development version (0.19) and previous versions have an issue ("topographical naming") where editing a previous feature can change the internal name of a face causing the attachment to break. There is a solution under development but it doesn't loom like it will get in earlier than 0.20. You should instead simply adjust the Z attachment value to match the face you want.
Also, there is a very active (and very helpful) forum here. I'd suggest asking further FreeCAD questions there.


Skipping Y-steps, only when using Ultimaker Cura

You answered your own question in a comment.

  Yes, of course, increasing the maximum supplied current to the motor gets rid of the issue. Still, I'd rather go with lower current to limit heating up the motors. I was just wondering if there is something in the two slicing engines that makes cura provoke much harsher movements that cause the printer to lose steps... – kamuro May 21 '17 at 21:22

Motors are tough

Motors are meant to be warm, some are made to be hot.  Not all motors have the same specs, but I pulled one on Amazon (link) which shows a rated temperature rise of 60°C above a rated ambient temperature of 50°C.  If these specifications stack, and they should because the insulation of the motor is rated to 130°C, you can boil water on the stepper motors.

But ... other factors

But, what are the real limits, and how much current should you run through the motors?

First, many 3D printers have plastic mounts for the stepper motors.  You don't want that plastic to soften.  It can if the motors get too hot.  I've seen it in a commercial 2D printer, and gnashing of teeth across the Pacific ensued.  Even for PLA, that temperature is uncomfortable to human flesh.  I soften PLA at 75°C when fitting tight parts, but PETG and ABS are good for higher temperatures.

Low current hurts accuracy

Motors are remarkably linear converters of current to torque, but they still have non-linearities at the limits.  This matters most when micro-stepping, which (AFAIK) all 3D printers use for higher resolution.

Two factors hurt accuracy at lower currents when micro-stepping.

Non-linearities in the drivers result in magnetic fields that do not linearly align with the commanded drive strength.  The torque is not exactly what is needed to position the motor between the poles at the correct angle.

Static friction, sometimes called stiction, requires additional torque to overcome.  In a slow micro-stepping move, this will result in the motion hanging back, then jumping ahead.  Motion can be ragged rather than smooth.  Extrusion can be pulsating rather than smooth.

Both are improved by applying enough current to the motor to generate enough torque.  More current gives more heat, but also better behavior and performance.

Power up the motors!

They can take it.  Check their mounts to be sure the mounts aren't underdesigned.

Why Cura and not Slic3r?

A deeply detailed review of the g-code would be needed.  It could be as simple as the direction of infill, or the preferred direction of your model compared with the direction chosen by the two slicers.

It could be some limits coded into the "custom g-code" portion of the two slicers.  I am not familiar with Cura, but Slic3r allows you to insert additional g-code under many situations.  Something brought in with a printer profile may be limiting acceleration of jerk.

Could be differences in fan setting, or almost anything.

When you are dealing with a marginal situation, and it sounds like this is right on the edge, very small differences can cause dramatic changes in how the whole system responds.  3D printers are complex systems, with resonances, many vibration modes, non-linear friction.  Knowing for sure may be beyond the scope of your and our engineering tools.

Don't operate on the Margins

Set the motors to the proper current levels.  Set the bed to the proper height.  Set the hot end to the right temperature.  Try to always stay in the sweet spot.  Your prints will reward you.


I am using a stereo 3D pen. What surface should I use?

You could use a piece of glass, that's what most people using 3D printers have as a build surface.  An easy source of glass for pen use would be a picture frame but the edges are likely sharp so be careful.  Acrylic would also work and is easily obtained in small pieces from places like Lowes/Home Depot, I used Acrylic for some time on my Kossel.  The plastic can stick to Acrylic very well but I had no issues using it with my printer, just test it out and see what process works if you go that route.


Is there a slicer that can set the print speed for each layer as a function of the layer area?

Most slicers have a feature in their cooling settings to "slow down if layer print time is below xxx".
Setting this to a higher value should ensure that small / short layers aren't printed too fast, so that cooling is still reliable.
Shorter layers are slowed down linearly to reach the specified minimum time - unless a "minimum print speed" is also set.


Upgrading to silicone heat bed, will it burn my house down?

The heated bed port on your board has a 11A fuse. It will not work for a heated bed requiring 16A of current, no matter how good the MOSFETs might be. Note that the terminal block might also not be rated for that much current. You'd have to check, because often it is not the MOSFET itself that catches fire but the wiring or terminal blocks.

Also, keep in mind RAMPS only drives the gate with 5V. The value specified in the datasheet (for 10V) plus 20% is probably a bit optimistic. The datasheet doesn't specify the resistance at 5V, so you're guessing at what the resistance might be. Since you're already running the part quite close to its limits, and considering ambient temperature might rise above 25C, I'd be cautious. The designers of that board only intended it for use at 11A, probably with good reason...


Change Slic3r settings for left handed coordinate system

The direction of the end stop is set in the firmware of the printer. Even with different setup end stops, you should be able to get a correct coordinate system without mirroring axes in slicers. This would be the preferred method to fix your problem!

E.g. my Ultimaker 3 Extended homes the Z on Z max having the platform at the bottom of the machine, a calibrated offset determines the actual Z=0.

Not knowing which firmware you are using, in e.g. Marlin Firmware this is set by code lines in the file Configuration.h:

// Direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1]
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

Your end stop triggers at the maximum of the Y axis, so you need to configure it as a MAX end stop, i.e. use the Y_MAX pins by defining (search for the Endstop Settings section, note to also disable the YMIN endstop):

//#define USE_YMIN_PLUG // This disables the YMIN endstop
#define USE_YMAX_PLUG   // This enables the YMAX endstop

and change the homing direction (Y_HOME_DIR) to 1:

#define Y_HOME_DIR 1 // This tells the printer where the endstop is located: positive for YMAX direction

Otherwise when used at Y_MIN endstop and the homing direction set to -1, the axis is reversed as you experienced.


Labists ET4 printer nozzle hits bed after automatic levelling

Dirt. It was dirt. Most likely.

Apparently the machine establishes bed level with a sensor, and I might be wrong, but I think the ET4 monitors capacitance as a means to notice how far the nozzle is from the bed.
After all else failed I looked at the nozzle closely and noticed that the whole thing looked fuzzy. Looks like soot (from where though!?) had settled on the machine's sensitive components and de facto blind-folded its sensor.
A wipe and a levelling later, all was back to normal. Yay!


Summarizing for correct understanding: you measured 100 mm without the hotend heated and attached and about 50mm attached and at temperature but not hearing any clicks using a pretty long Bowden tube?

Bowden setups require a little more torque to push the filament all the way to the hotend. I've experienced this with my own 2.85 mm setup when I converted a 1.75 mm BullDog extruder to accept 2.85 mm filament. Your problem is most probably caused by filament not being gripped by the extruder gear and causing slipping on the filament (this does not necessarily mean that you hear clicking!). The Titan is a geared extruder so you should get more torque than a direct setup; this is exactly why you don't hear clicking, the gear turns but does not move the filament. Please inspect your filament after the extruder by removing the Bowden tube; ideally this should show you a regular pattern of the extruder gear.

What you can do to prevent this is to put more pressure on the filament by adjusting the pressure of the spring. In my setup I use some screws to get the spring out of the equation and clamp it directly only tightening the screws by hand (when switching filament I need to unscrew these).

You should also PID tune your hotend to be sure that the heater is optimally tuned to keep the hotend at a certain temperature level.


I would expect the root cause to simply be the power supply itself.

5 Ω is a reasonable resistance for a 12 V / 30 W heater. It seems strange that you are not seeing continuity in the heated bed as this should also have a low resistance (since it's a heater as well). This might be worth investigating further, but I think it's more likely the power supply itself is the cause (and you simply made a measurement error).


PETG grinding with direct drive extruder

This does sound a lot like you are experiencing the effects of heat creep (How is heat creep characterized?). You should lower the temperature of the hotend and increase the printing speed and retraction speed and possibly lower the retraction length.

If this is heat creep, a new extruder will not help you until you solve the heat creep first. A new hotend that can be cooled better might be a better solution.


Replacing jerk with ridiculously high acceleration?

In order to evaluate whether this is possible, it's necessary to realize that following a curved path with zero jerk (in the classic jerk sense) requires stopping and restarting at each junction point in the piecewise-linear approximation of the curve that occurs in the gcode. This is because there's no way to accelerate/decelerate the individual axes continuously through a non-smooth corner. So paradoxically, as the number of segments approximating a curve goes to infinity, speed goes to zero. If the length of any one segment is bounded below by a constant, then acceleration can be chosen high enough to ensure that arbitrarily close to 100% of the segment is at full nominal speed. For example, for a minimum length of 0.1 mm, speed of 60 mm/s, reaching speed in 10% of the nominal segment time (1.6 ms) would take an acceleration of 360000 mm/s². So, not happening.

On the other hand, with very low but nonzero (classic) jerk, just to handle the matter of smooth curves approximated by small segments, this might be practical. Just looking at 90 degree cornering between segments long enough to run at nominal speed, to match the time spent cornering with 60 mm/s speed, 20 mm/s jerk, and 3000 mm/s² acceleration, it should only take 4500 mm/s² acceleration (original, scaled by 60/(60-20) to account for having to decelerate/accelerate to/from 0 instead of 20). This is completely reasonable.

How small can jerk be without breaking motion for approximations of smooth curves? As the number of segments approaches infinity, the lower bound should go to zero. For a circle approximated with 15° steps, one component of the change in velocity looks like it can be around 25%, so "25% of nominal speed" seems to be what you get. Oops. For 60 mm/s, that's 15 mm/s. Not very low at all. I may have gotten this math wrong; I'll review it later. But it doesn't look good for declaring this practical.


Your print isn't cooling fast enough. With small, thin prints like this, PLA needs a fair bit of airflow to solidify before the next layer goes down. Your printer doesn't appear to have a proper print-cooling fan, so I have two suggestions:

Print two or even three of the part at the same time, spaced a fair distance apart on the build plate. This will give each of them time to cool.
Point a box fan into the front of the printer to get good airflow over the print.


Isopropyl-Alcohol - Propan-2-ol - and Ethyl alcohol - Ethan-1-ol - are different chemically. As a secondary alcohol, Propan-2-ol has quite different solubility of different materials than ethyl-alcohol.
Now, let's look at home made alcoholic destillate. That stuff is, if done in one refraction and without tossing the first low temperature part, some percentages Metanol, Ethyl alcohol and maybe some water. That has not the same solvent properties as Propan-2-ol.
While it might work, nobody will sign a guarantee that it doesn't negatively impact your print.


It's an l (ell) not a 1 (one). v4l2-ctl.


Which connectors should I use to connect my Power Supply Unit to the Ramps?

You're quite right :)

L (AC): Brown colour. Single Phase line or Three Phase Line (L1)
N (AC): Blue colour. Neutral
GND: Green and yellow colours. Protective earth or ground (PE)
COM: DC Negative (-) - Also referred to as "Common"
V+: DC Positive (+)
V(ADJ). This is for a potentiometer, in order to modify the output voltage. You won't need this unless your power supply is far off.

The way to go about these things is to connect the AC side and to connect a multimeter to the output terminals (V+ and COM, there are two of them in case you need to wire up more than one connection). I like to lightly tighten down the probes under the terminals, that way you don't have to mess with the connections with the mains terminals exposed.

Now you can plug in the power supply (PSU) and make sure it doesn't start smoking or sparking.

Verify that the PSU is outputting DC 12V (that seems to be the voltage required by your Ramps board according to the picture). After that, you can connect it to the Ramps board (remember to disconnect the PSU before rewiring). If the voltage is anything but around 12 V (+/- 0.5VDC should be safe), you need to verify that the PSU is the correct type for your application.


Is there a method or S/W available to stitch together a DLP projector's output into a "moving picture" to SLA print in a larger area than its output?

Cool Idea.

I know using a projector sounds like solution; but, I in practice, think it is going to be difficult.

My concern with trying to use a projector would be two-fold.

It would have to project on a large flat surface.  Since basic optics wants to focus on a sphere, when projecting on a flat surface you have to adjust for a focus distance that varies with angle and also deal with keysoning. I know this is a common problem fro projectors; but, there is no perfect solution so either.    The focus issue may be solvable with custom optics; but, that is not something that is easy to DIY.  The keystoning could be corrected for with optics and/or in software; but even then you are going to have inconsistent resolution.  Not only that; but, the problem gets worse the wider and closer you are, which is EXACLY what you want to do.
I would be concerned that the frequency range that the SLA resin cures at will be outside the normal range of projector so you would require A LOT more power/time to get it to cure.

On the other hand, lasers light projectors are a well established technology.  They moved into the entertainment space quite a few years ago; so, I suspect you could get one that covers the space you are interested in for a reasonable price.

Since laser beams are very narrow, focus should not be an issue.  Keysoning can be easily accounted for in the sweep algorithm.
You could choose the frequency of the laser to that it in the most efficient curing frequency for the resin you want to use.


Are stepper flex couplings important? How important?

Yes and No
Let's start with the obvious: Flex couplings or rigid couplings are a deliberate choice in designing the printer. Each has its benefits and drawbacks. So let's look into the 4 types of drive-train setups that I know to be possible:

Spiral couplings make it possible to operate the machine with a slightly misaligned motor to the shaft (<1°) but can add a measurable slop, which can be seen as a systemic error.
Rigid couplings have minimal slop but need to be much better aligned by the user in setup.
No coupling at all - direct drive to the shaft - has no slop at all, but is both more expensive and needs the most diligent work on setup.
Geared. You could couple the motor with the Z-Axis via gears, allowing to trade speed for detail and vice versa. It also can allow mounting the motor 90° to the printer, but it also adds some backlash and slop. Because good gears are expensive, this is really rare.

Using spiral couplers right
A spiral coupler can actually be used in two ways:
Keeping the leadscrew tensioned into a position.
This butts both parts together, it reduces the slop induced by the coupler to the minimum, but you need to forcefully make sure that the parts push together. You lose some of the misalignment-correction.
Decouple vibrations from one shaft to another.
This keeps a little gap between the two. The slop can be larger, but you get the benefit of the shafts on both sides not transmitting all the vibrations 1:1 to the other shaft and you get more self-realignment if the motor and shaft are not perfectly coaxial.
What is better?
Well, it depends. If you want the perfect drive, you'd go direct drive. If you want the finest motor control (by virtue of getting the steps to a much smaller rotation), you might use gears. But the spring-coupler allows you to do the setup easier for a consumer that might not be the most reliable in setting it up himself. Making the spring-coupler butted can increase repeatability and reduce slop to almost the same as a stiff coupler but not lose the ability to have a slightly crooked setup that still works.


I suspect that your method to create the hole for the pins may not be consistent with the modeling practice that FreeCad and other programs of this nature require.

Consider the following:

Import your base shape.
Create a second shape that matches the hole you wish to create. It must be a solid object, not a plane or other single surface item.

Consult one of the many FreeCad tutorials that present the method to use next, that is to place the shape to be subtracted in the desired location, then perform a Boolean operation involving both objects. In the linked tutorial, it's referred to as a cut, which is an accurate description.

Performing this action will create a surface where the two objects intersect, removing the smaller one, leaving a solid, rather than a zero thickness surface.

You would then create and place the cylinders in a manner consistent with the original model.


Delta printer printing incorrect dimensions in X and Y directions. Z dimensions are correct

As detailed at minow.blogspot.com (which I found very helpful for the most part - it was the first link in the answer to my related question) you need to check/adjust the zero in front of each tower, check the zero in the center, tweak the radius, and repeat (checking the zeros at the edge of the bed in front of each tower again) until it's correct.

After that you adjust the rod length to correct XY size (and recheck all 4 zeros, thus the radius - it makes for a less than exciting day, but is worth it in the long run.)

You either need to turn off EEPROM until you have the right settings, or save the setting to EEPROM each time - depends how worried you are about using up EEPROM write cycles, I guess.

You should also turn off auto-bed-levelling while getting the basic calibration correct, per the same blog instructions.

My fun with figuring out what my EEPROM was doing behind my back is here:
Delta printer not responding to changes in DELTA_RADIUS


24 V heated bed from -12 V and +12 V ATX power supply?

No, this is not possible with most ATX power supplies. While in principle you can get a 24V supply by combining the +12V and -12V supplies, the rails are not symmetric, and the negative 12V supply is usually designed for a much lower load than the positive supply. In the example in the following picture, there are two positive 12V rails, capable of sourcing respectively 12A and 15A each, but the -12V rail is only good for sinking 0.5A. If you tried doing what you're proposing, using this supply, you'd be limited to only 0.5A from your "24V" supply.

It is very unlikely that you'll find an ATX power supply with a negative 12V rail capable of sinking significant current since computers don't need such large amounts of current from their negative supplies.

There are also issues with using a MOSFET as you describe. I assume that by MOSFET you are referring to a complete board with various support components, and not just a bare MOSFET by itself. Usually these boards have optocouplers and thus they will probably work correctly, but using just a MOSFET by itself this would not work, as the gate needs to be driven below GND (namely: to below -12V plus the gate threshold) to turn the MOSFET off.


New PETG spool from eSUN is making popping sound while extruding

The extruder can't hold much water and transport it to the melt zone.  Filament can.  The printer behaves like the filament is wet, so try drying it.

Try putting the filament in your electric oven at the lowest temperature (often 170 °F to 180 °F) for an hour and see if the behavior improves.

Keep the filament at a distance from (or shield it from) the heating elements.


Object's height not a multiple of layer height

Slicers will round off to the next nearest layer, so 20.2 mm in your case. However, you can get to 20.1 mm if you use a 0.3 mm first layer.


What do I need to know to successfully use Taulman/Dow EVOLV3D™ USM Universal Support Material?

Advice From Taulman

On emailing Taulman asking for advice (after getting some initial failed prints), they responded with the following:

  [...W]e use the following settings. Support:

  Flow 115 %
  Infill = 8-10 %
  2 full surfaces at 100 %
  Support speed 50 % of print speed.

What I've learned trying to apply that advice:

Turning the flow percentage up as advised is a good idea.
17 mm/s is definitely much too fast for this material -- at that speed it's more likely to stick to the nozzle than to the base layer -- but at 8.5 mm/s it prints well.
The advice to keep the infill percentage low is solid if you want to be able to mechanically remove any readily accessible sections. I've tried a print with 30 % infill after trying to diagnose a failure (more on that below), and while the print came out well, the support infill couldn't be mechanically removed, and was also very slow to dissolve (see below).

On Support Removal

At Taulman's recommended 10 %-or-below infill percentage, any accessible parts can be mechanically removed. At 30 %, that's not really possible anymore -- though 5-10 minutes in boiling water might get the edges loosened up enough to let the bulk of the material be scooped away.

If you're just going to let it sit in tap water that isn't being circulated, expect that to take a long time, and to have several cycles of scraping out material that's turned to a gel to allow more to be exposed.

Using boiling water speeds the process substantially. If you're using USM with a nylon (or other material that's safe to bring to 100 °C), do that.

How's Its Adherence To Nylon?

Not as strong as its adherence to itself. If you print a ceiling of USM on top of support infill of nylon, it's possible for that ceiling to come away with the print head; thus, it reduces risk of failed prints to use USM for the infill as well.

Thus, the "2 full surfaces at 100 %" advice given by Taulman above isn't (as I interpret it) just about ensuring that there's a successfully-printed support floor or ceiling; it's also about ensuring that there's enough surface area between the support floor and the nylon of the main print for them to adhere.


Proof that Slicing Plane/STL intersection will only produce Closed-Loop Polygons?

You can't prove that because it isn't true. An STL file is just a collection of triangles. There is no guarantee that an intersection with the slicing plane will consist of closed-loop polygons. To be suitable for 3D printing an STL file should represent one or more closed, disjoint polyhedra (which would yield closed-loop polygons) but this is not always the case. Many slicers have heuristics to try and "fix" bad STL files on a best-effort basis. Especially considering the possibility of rounding errors, it is important to at least detect polygons that are almost (but not quite) closed and connect their endpoints together.


What is the reinforcement for 3D printing concrete cement?

There is no reinforcement. You can use this ‘printing’ solution for walls but by default not for floors. There are experiments that use the solution to span a gap but they use relatively thick plates.

For example, see this paper, Design of a 3D printed concrete bridge by testing.


Loss of extrusion in Stratasys FDM liquefier

This isn't a "turn this knob and all will be well" answer, because your machine setup sounds pretty unique to what most people will have experience with. Not being familiar with the older Stratasys printheads, but based on my overall experience with 3D printers, there are three things that could be an issue:

The nozzles are obstructed. The way you talk about clearing the jams of pushing a tool up through the nozzle end would not effectively clear a jam, it would only push the debris back into the print head, just waiting to be pushed by the plastic back into the nozzle. It could even be a piece of aluminum foil from the rebuild process. The typical way jams like this are cleared is to do a "cold pull" where you heat up the hot end just enough to be able to pull the plastic out, before it has really had a chance to liquify, hopefully trapping the debris in the plastic, then cut the end of the plastic off and reload. The 90 degree bend in their design may make this very hard if not impossible to do.
Heat creep. The tubes are a slightly smaller diameter, and if heat is creeping up the print head and letting the filament expand in these tubes, it may be expanding enough that it will no longer move through the print head. Diagnose this by letting the printer jam, then cool off for a few hours. If you can print again for a short time period before it jams again, this may be your issue, where as an obstructed nozzle would not allow any more filament out. Either turn down your temps, or increase your cooling on the print head to address (or get the original size tubes if possible).
Print head temperatures too low for the print speed. The Stratasys Fortus 250mc I use runs ABS at about 300 degrees. Many of the reprap printers run even higher than this for ABS. The other thing to remember when ever you see people mention what temperatures they use, is that this is relative, and only a guide, as what the temperature reads at the thermocouple or thermistor is usually slightly off from the temperature that is melting the plastic based on heater location in relation to the plastic and thermistor. This can be diagnosed by printing until it jams, pause the print for something like 30 seconds to let the hot end melt more plastic, and then resume printing. If resumes proper printing this may be your issue (and it will jam again shortly if you do not adjust temps).


Yes, G-code is read line by line. G-code is a numerical control programming language. It basically instructs the machine sequentially line by line to do a specific task. The printer than executes the lines one by one until it reaches the end.

If you instruct the printer to wait (G4 dwell), it will do the wait/dwell first and than will execute the next command to retract the filament. As such, your examples will not work if you want to retract the filament during the pause, you reversed the process if you want to achieve that.

To add a pause (simple) for e.g. filament changing, you should instruct the head to go to a certain position, extract the filament, and now insert the pause/dwell command. Give yourself enough time to insert and prime the nozzle and go back to the last location to continue printing.

You could insert something like (e.g. in between layer change, before G1 Zx.xx):

...
G1 X0 Y0 F2000 ; Relocate the print head
G1 F4000 E-50 ; Retract filament
G4 P40000 ; Wait for 40 seconds
G92 E50 ; The new filament should continue at this value
...
G1 Zx.xx

Depending on what happens after G1 Zx.xx, you may need to set the head back to the location prior to where it was before G1 X0 Y0 F2000.

Do note that there are pausing scripts/plugins available for e.g. Ultimaker Cura, and there is also a filament changing command M600 that can be enabled for certain firmware (if this is your ultimate goal).

Using a post processing plugin of Ultimaker Cura, a pausing script looks like:

...
G0 X137.692 Y105
;TIME_ELAPSED:707.873599
;TYPE:CUSTOM;added code by post processing
;script: PauseAtHeight.py
;current z: 5
;current height: 5.0
M83
G1 F300 Z6
G1 F9000 X190 Y190
G1 F300 Z15
M104 S0; standby temperature
M0;Do the actual pause
M109 S200; resume temperature
G1 F300 Z6
G1 F9000 X133.423 Y105
G1 F9000
M82
G92 E911.50045
;LAYER:24
G0 X137.692 Y105 Z5
...

Note that G0 and G1 are "move to" location instructions (albeit through a different way, fast move and linear move respectively). If you look closely, you see that after the pause, the printer returns to the X-Y position where it left prior to the pause (X137.692 Y105).

Side note:
Some firmware flavors allow buffering, but each statement is executed sequentially.


Elephant's foot can be caused by different causes.

Incorrect leveling or incorrect nozzle to bed distanceThis answer describes that it can be caused by a too low nozzle to bed distance.
Bed temperatureA too high bed temperature and weight of the print can cause bulging out of the bottom layers. This also frequently occurs as the result of an uncooled/too less cooled first layer.

Improved cooling, lowering bed temperature or adjusting nozzle to bed distance and proper leveling are the most obvious solutions to fight this problem. Other solution can be found in using chamfers on the bottom of the print (requires modifying the model) or printing on a raft, this latter solution does lead to losing the nice bottom layer finish.


Finding the right material to print RC CAR cover

I have 3D printed models which were then sanded using progressively finer grades of sandpaper, terminating with wet sanding using micromesh to 12000 grit. The result was smooth and shining without any coating applied.

If your original results were not acceptable, the process may have been flawed and should be re-considered for technique.

For your purposes, as a body for a radio controlled vehicle, you'll want to consider something that can manage an impact reasonably well. ABS is going to be less expensive and provide some energy absorption but will have layer lines that require sanding and finishing. Layer thickness plays a substantial part in providing for good results and a smooth finish. I used 0.100 mm layers to get optimum smoothness.

You could request your model to be created in nylon using the SLS method, but the surface will be granular and would also require sanding to accomplish a smooth finish.

SLA or MSLA resin printed models will provide a very smooth surface, but the material is brittle and may crack during "on-road" use. You may find a printing service which offers to create using a more flexible resin, but you'd have to request that or confirm the selection when placing the order.


How can I make bed leveling improvements in the middle of my Ender 3 V2 bed?

The gaps are, because the nozzle is to far from the bed at this point. It may sound like a big deal, but actually this is not leveling alone, but it looks like the bed is not a perfect plane/perfectly flat. This is normal, my ikea mirror and my stock bed show the same thing. Now here's one solution:
Print calibration stickers, like you already did on various places around the bed to get a feel, where it is too low. Let it cool and put painters tape (the very very thin tape, that should not burn) on areas, where the bed is too low. Print more calibration rectangles and check if you have enough. Repeat until you cannot see a difference.
It took me about 2h to level everything absolutely perfectly. This was 2 years ago and I didn't have to touch the tape below my bed ever since. It just works.
Alternative solutions involve mesh bed leveling and buying a new bed surface or even the surface below the bed. However, I found that to neither of them work reliably, whereas the simple tuning does what it's supposed to.


Why all the excitement about linear rails?

The following is a compilation of the input from a number of sources.

Linear rails in general are mechanical components that - when designing equipment - offer great flexibility.

The profile of the rail can be designed in nearly infinite ways. This in turn allows for:

Different levels of stiffness in different directions (for example you may have stresses only on a given plane, or you may actually want the rail to slightly flex in one plane but not in another one).
Placing the surfaces for the rollers strategically, for example in a location that is unlikely to get contaminated, or where the maximum force will be applied.
Curved paths, so that the carriage can move along a line that is not straight.

Because the contact surface between the rollers and the bearings is flat, cylinders can be used instead of spheres.  This in turns diminishes the mechanical stresses, and the amount of play, increases longevity and allows for more bearing capacity, among others.

Linear rails can be anchored along their full length, rather that at their extremes, thus increasing the accuracy of their positioning, their stiffness and their bearing capacity.

Linear rails can be machined while pre-loaded, thus achieving maximum accuracy when in use, rather than when coming out of the factory.

The bearings on a linear rail only allow for one degree of movement.  There need to be two rods with linear bearings/bushes to achieve the same result.

All that said, when it comes to the specific application of consumer-grade FDM 3D printers, it seems that none of the above is very relevant, nor confers any real advantage to the printer in terms of quality of the final print:

the mechanical stresses involved in 3D printing are very small,
the movements all happen along straight lines,
most of the axis cannot be anchored to a large, rigid body,
...

On the other hand, the design with rods + linear bearings is cheap, effective, simpler and lightweight, all characteristics that are highly desirable in a 3D printer.

All in all, it seems that there is no good reason to prefer linear rails over rods in general.

Still, there may be specific designs that may benefit from their adoption. I postulate that the Cetus printer linked in the question may be such a design: the cantilever arrangement of its axis - for example - is well served by the fact that a single rail locks movement in all but one direction, and the orientation of the X rail offers maximum rigidity against the action of gravity.


Printing files over USB drive (Ender 3 Pro)

Unfortunately, no.
There are two types of USB devices: host, such as a PC, and device, such as a thumb drive. (Actually, there is a third type, on-the-go, which can act as either.)
The Ender 3 mainboard is a USB device which means that it can only connect to a USB host. You cannot directly connect two USB devices, such as the Ender 3 and a thumb drive) and have them work.
One option would be to set up OctoPrint software on a Raspberry PI single-board computer and connect that by USB to the printer.


From Thingiverse you can find a BLTouch mount for the MP10 (and MP10 mini):

Note that in order to use the BLTouch sensor you need a different controller board that supports connecting a BLTouch sensor as the MonoPrice controller board doesn't support connecting a BLTouch sensor.
From ref.:

A BLTouch adapter for the Monoprice MP10 & MP10 Mini. NOTE: you will need an open source control board to get this to work as the stock firmware on the MP10 line of products does not allow for a BLTouch.


Installing multiple versions of ChiTu side by side

Running multiple versions of the same software did not sit well with the software person in me, so I dug a little deeper.
ChiTu has a "settings" button to the right side, and under that section it is possible to configure different, separate printer profiles. That may take care of the differences if properly configured, unfortunately only some printer profiles are pre-loaded. ChiTu 1.6.4 includes the Creality LD-002R profile, while the very recent Kumitsu KL9 is not predefined (yet), but the manual comes with a screenshot of the parameters just as they need to be entered.


Anet A8 stock replacement fuse between motherboard and PSU

Couple things to note.
First one is that as @Paulster2 mentioned, the fuse itself should have its rating printed on it.

Second one is that if your fuse blew, there's a reason for that, and you really should try to figure out what that reason is before you start putting fuses back in. The Anet A8 isn't exactly what I'd call a high-quality kit, so there's a chance you've got a blown FET or something somewhere that has shorted closed and is just drawing power nonstop. You should start by getting a multimeter and checking the continuity of the power traces for your hotend and bed, without power in the system. You can do some basic safety checks that way.

Once you've gotten that done, if you're referring to a 12 V feed line, that should be somewhere in the ballpark of 20 A fuse. If it's a fuse on the mains power, it'll be like 1 A or 2 A depending on whether you're on 240 V or 120 V mains (respectively).


I don't know a way to do that with Cura without breaking it up into multiple parts with different settings for each, but what about just enabling supports? You'd only get a very small amount of support material and it would act similarly to a brim to keep the small part from detaching.


First of all, I'm not talking on a first-hand experience: I don't own a RAMPS based printer.
If I were you and wish to be 100 % sure the setup you are describing doesn't blow up in my face I would use a spare pin on the Mega to drive the relay which, in turn, drive the 24 V source line. In terms of delay I would use a couple of seconds after power on: enough time to have the bootscreen completes and all the pins being set as per firmware configuration.


This is under extrusion, not delamination. Delamination is the result of the under extrusion.
It typically happens when the wrong filament diameter has been set in the slicer (a larger diameter than used, e.g 2.85 mm instead of 1.75 mm). Another option is that you accidentally put the printer in volumetric printing mode which is accessible through the display of the printer:
Control -> Filament -> E in mm³ -> Disable
Other solutions may be found in the extrusion process, e.g. the extruder may be skipping.


Why does the Ultimaker 3D Printer has a Heater + Heater transfer plate (aluminium) + Glass?

According to this page, heat transfers more evenly across an aluminum build plate than with just glass. But as Kevin pointed PLA adheres better to glass because it doesn't flex as much as aluminum under heat.

The link above shows that aluminum has a much higher thermal conductivity at 205 (W/(mK)) vs glass at 105 (W/(mK)) at 25 °C (77 °F).

Because of this conductivity difference, you may find that it takes longer to heat the glass plate, but it should heat more evenly.


There are multiple issues that cause this result.

First, your nozzle is to far from the bed. This can be seen by the curly deposited filament on the build plate (I guess that is the brim or the skirt). Please properly level the bed and position the nozzle at a distance of a plain A4 paper as best as possible (should be doable as you have a glass sheet that are usually very flat as a result of the production process to make glass).

The second problem you face is layer shift. You see that the squares are printed further and further to the left, the print head does not return to original position. Layer shift is usually caused by improper belt tension or a loose grub screw of the belt pulley. This answer describes layer shifting in more detail. This question may be helpful too, the answer contains some references to layer shifting.


There are a number of options you could try. If heating up the hotend does not work, you'll have to disassemble it. Remove the nozzle and the heatbreak (the threaded part). To disassemble the nozzle, you will need to heat it up and use pliers or wrenches to unscrew the parts.

You can use a blowtorch to melt and burn out the plastic that is stuck. Make sure to do this outside.
You can use solvents to dissolve the plastic. This works especially well with ABS, which can be dissolved in acetone. You can also try dissolving different plastics with acetone, but for example PLA does not really dissolve in acetone (it does become somewhat soft, so this can still be helpful towards getting it out). You could also try using other solvents if acetone does not work for your particular plastic, but consider these tend to be quite toxic compared to acetone so be careful. Note that in any case, the plastic will need to soak in the solvent for at least a few hours or overnight.

Do not try to disassemble it while cold, the expansion and contraction of metal with heat makes this impossible. When reassembling, be sure to heat up the nozzle before giving it a final tightening (again, this is to make sure that when the nozzle expands as it is heated, it makes a tight seal).


What am I doing wrong with my M3D Micro?

It's not you - it's the printer!
The M3D Micro is not a very sturdy setup. The X-axis is a single pair of thin rods, hung up on a pair of similarly thin rods in Y and mounted on 3 very thin pillars in Z. While the idea is good, the execution is not particularly well: The rods are too thin and the design is virtually unchanged since 2015 and thus this review from 2016 still applies. As does this from 2018:

The extruder having problems to extrude reliable and steadily was not fixed since at least 2015.
The mounting of the motion system is not very sturdy and the system itself is under-designed. This means it is particularly vulnerable to oscillation - which your print shows.

The extruder is mounted flexibly on the motion system, which amplifies all those errors. But that is designed for bed leveling - so there is little you can do to gett the needed stiffness

The motors are underpowered. This leads especially to trouble with movement accuracy unless you print super slow. And that print you showed shows that you print with more normal print settings for a 2021 machine. This also shows in your print.
If a professional in 2018 can spend 2 days calibrating and get no results with the owner's proprietary slicer, then that slicer is not worth the disk space it uses. If you need to hack Cura to get the proprietary g-code derivate and you need to do that to get even decent prints, it's a bad design.

All in all, you might squeak out better prints with a lot of calibration work, but the printer suffers so heavy from the design flaws that it would be a labor of love.


Can the resin from Resin based 3D printers be used to make printed circuit boards?

Brushed aluminum is a common bed surface for resin based printers. The aspect of the aluminum that is important to the print is the adhesion, hence the roughness of brushed aluminum. It has to be sufficient to hold the print in place, but not so extreme as to cause destruction on removal.

In the case of copper as a print surface, one would certainly want some mechanical adhesion in the form of surface roughness. You've not specified the forces that would be applied to the copper once cured. If you do not plan to manipulate the copper surface in an excessive manner, it's likely that it would adhere. It's also just as likely to pop free if the plate or surface is flexed. I've seen no reference online to copper coated print beds. This would lead me to believe that it was tested and rejected as suitable for 3D printing, but not necessarily unsuitable for your purposes.

This is one of those situations where testing is warranted and not particularly difficult to accomplish. You can purchase UV curing resin, build a tin to hold the copper surface and pour the expected layer thickness. Leave it in the sun and let nature's UV do the curing.

Consider if you have not yet done so to research safety practice for handling this substance. Wear gloves and eye protection, cover any exposed skin surfaces and have good ventilation.


Slicers don't talk to the printer. Slicers analyze an STL file and generate a GCODE file, based on your parameters. A print manager sends the commands from the GCODE file to the printer board, which executes them sequentially.

They are not. Commands are sent to the printer from a print manager of some sort. This varies among printers; some printers can be managed by more than one manager, and some managers can handle many models of printer. Some printer-manager pairs are proprietary and exclusive.

You do not. See above.

Note, some programs do have an integrated slicer and print manager. - Thanks, Trish


How can I run two instances (or equivalent) of Slic3r on OS X?

You could duplicate the application by clicking on the application and pressing Command (⌘) + D, and then run both - although I'm not sure if that would mess with the preferences. I haven't fully tested it, but both instances opened up and worked, seemingly ok.

You could even rename them to something other than "Slic3r" and "Slic3r copy" to remind you which application is slicing which model, for example:

"TestCube" and "Benchy", or;
"Slic3r-TestCube" and "Slic3r-Benchy", or whatever.

However, Mark's answer seems much more elegant.


Upgrade hot-end to achieve higher temps (e.g. for PETG)

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!


It's important to understand what specifically is being compared. CLIP is much faster than bottom-up technologies that require a peel step between every layer. For example, the Form1 galvo SLA printer tilts the resin vat to separate the transparent bottom from the print. That is, by far, the slowest part of SLA/DLP printing with most modern light sources. Where the speed comes in is that without a peel, a continuous "movie" can be used to cure the resin rather than a series of alternating images and peels.

Top-down printers can print dramatically faster than bottom-up-and-peel printers. CLIP is not necessarily faster than top-down. For example, the Gizmo 3D line of top-down printers are very similar in print speed to CLIP. (http://www.gizmo3dprinters.com.au/)

Most "consumer" SLA printers these days use bottom-up-and-peel techniques, because this has some practical advantages over top-down printers:

Way less resin is required to fill the printer when the part is pulled out as it builds rather than being lowered into the tank (along with the Z stage) as it builds. Resin is expensive. This also means bottom up printers can be smaller and have fewer mechanical parts such as leveling devices submerged in resin.
Standard resins contain an inhibitor chemical that prevents polymerization in the presence of oxygen, which causes the surface layer exposed to air (and low-level stray light) to not cure. So top-down printers must shoot light through a non-curing layer before reaching curable resin. This makes the tuning more sensitive and can somewhat reduce detail compared to a bottom-up printer curing right on the window.
Replacement vats or windows for bottom-up printers may be seen by manufacturers as a profit-generating consumable, since they have to be replaced somewhat frequently.
Top-down printers have to worry somewhat more about resin flow rates as the part is lowered. Air bubbles may be pulled into the resin or the fresh resin layer above the part may vary significantly in thickness if the part is submerged too fast for the resin viscosity. (Admittedly, bottom-up printers will experience excessive suction forces and potentially break off bits of the print at high peel speeds.)

CLIP is a bottom-up technique that doesn't require a peel step, because the vat creates an oxygen layer over the window that keeps the resin from curing directly on the surface and sticking. In that way, it arguably performs more like a top-down printer than a bottom-up printer.

Top-down printers that are designed to overcome the above issues and use high-intensity light sources can achieve exceptionally high print speeds. This includes similar "continuous" build techniques used as in CLIP.


Where to define grid for bilinear levelling in Marlin

If you have managed to setup 3-point levelling, you should be able to enable bi-linear levelling in the firmware.

From the configuration.h file for Marlin firmware you can find the following options:

/**
 * Choose one of the options below to enable G29 Bed Leveling. The parameters
 * and behavior of G29 will change depending on your selection.
 *
 *  If using a Probe for Z Homing, enable Z_SAFE_HOMING also!
 *
 * - AUTO_BED_LEVELING_3POINT
 *   Probe 3 arbitrary points on the bed (that aren't collinear)
 *   You specify the XY coordinates of all 3 points.
 *   The result is a single tilted plane. Best for a flat bed.
 *
 * - AUTO_BED_LEVELING_LINEAR
 *   Probe several points in a grid.
 *   You specify the rectangle and the density of sample points.
 *   The result is a single tilted plane. Best for a flat bed.
 *
 * - AUTO_BED_LEVELING_BILINEAR
 *   Probe several points in a grid.
 *   You specify the rectangle and the density of sample points.
 *   The result is a mesh, best for large or uneven beds.
 *
 * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling)
 *   A comprehensive bed leveling system combining the features and benefits
 *   of other systems. UBL also includes integrated Mesh Generation, Mesh
 *   Validation and Mesh Editing systems.
 *
 * - MESH_BED_LEVELING
 *   Probe a grid manually
 *   The result is a mesh, suitable for large or uneven beds. (See BILINEAR.)
 *   For machines without a probe, Mesh Bed Leveling provides a method to perform
 *   leveling in steps so you can manually adjust the Z height at each grid-point.
 *   With an LCD controller the process is guided step-by-step.
 */
//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
//#define AUTO_BED_LEVELING_BILINEAR
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING

If you are using 3-point levelling you enabled constant AUTO_BED_LEVELING_3POINT by removing the comment characters (//):

#define AUTO_BED_LEVELING_3POINT

to enable bi-linear levelling, you should remove the comment characters before constant #define AUTO_BED_LEVELING_BILINEAR:

#define AUTO_BED_LEVELING_BILINEAR

Definition of the grid is done by specifying how many point you want to have using constants GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y:

#if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR)

  // Set the number of grid points per dimension.
  #define GRID_MAX_POINTS_X 3
  #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

The code above shows the default definition of a 9 point (3 x 3) grid.

Note that this will only work well if the area for the sensor to reach safely is correctly defined. If the sensor is missing the build plate, you have not correctly defined the limits for the sensor. Question "How to set Z-probe boundary limits in firmware when using automatic bed leveling?" has an accepted answer that describes how to define an area on the plate that the sensor may reach (the answer on this question also discusses Marlin 2.x).

In the specific case of the OP (after posting the config files)

From the posted configuration files your probe position can be obtained:

#define NOZZLE_TO_PROBE_OFFSET { 25, 55, 0 }

So your probe is at the right-back when facing the printer. Also your bed area attempt (commented) and the current active bed area can be obtained:

#if PROBE_SELECTED && !IS_KINEMATIC
  //#define MIN_PROBE_EDGE_LEFT 5
  //#define MIN_PROBE_EDGE_RIGHT 200
  //#define MIN_PROBE_EDGE_FRONT 55
  //#define MIN_PROBE_EDGE_BACK 200
  #define MIN_PROBE_EDGE_LEFT MIN_PROBE_EDGE
  #define MIN_PROBE_EDGE_RIGHT MIN_PROBE_EDGE
  #define MIN_PROBE_EDGE_FRONT MIN_PROBE_EDGE
  #define MIN_PROBE_EDGE_BACK MIN_PROBE_EDGE
#endif

From these excerpts it is clear that the bed limits are incorrectly defined.

Following the theory from this answer the probe is only allowed to visit the following (dark red) area:

This area is defined as:

  #define MIN_PROBE_EDGE_LEFT (PROBE_OFFSET_X_FROM_EXTRUDER + MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_RIGHT (MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_FRONT (PROBE_OFFSET_Y_FROM_EXTRUDER + MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_BACK (MIN_PROBE_EDGE)

which translates to:

  #define MIN_PROBE_EDGE_LEFT (25 + MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_RIGHT (MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_FRONT (55 + MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_BACK (MIN_PROBE_EDGE)

As seen in the commented //#define MIN_PROBE_EDGE_LEFT 5 and uncommented #define MIN_PROBE_EDGE_LEFT MIN_PROBE_EDGE (equals 10) left probe limits, you are at least respectively 20  or 15 mm short, hence the sensor is not on the plate on the left.


Controlling a 3D printer with another Arduino device over serial

This isn't really a 3D-printing issue as much as it is about Arduino, USB, and how serial connections over USB differ from a generic UART serial connection.

For a UART-based serial connection, there are only two devices, and both devices are peers - either can send data to the other with no real restrictions as long as the speeds are set correctly.

USB allows multiple devices to be connected, and is much more complicated. One device must be a "host", which manages everything. The other devices can be much simpler as they don't need to be a host. Typically, your PC is the host, and your keyboard, mouse, memory stick, Arduino, printer, etc. are all just attached devices.

If you've managed to connect your Arduino's USB port to your printer's USB port, the problem is most likely that neither device has hardware or software to be a host, so the USB connection won't work.

There was a "USB Host Shield" for Arduino, but is is no longer in production. Perhaps you can still find one somewhere, or somebody else makes an equivalent.

There is also an Arduino "USBHost" library, which is compatible with the Arduino Due only.


Extruder Clicking without Extrusion Problems

Even though you may have acceptable extrusion, any clicking from that area of your printer is likely to be a missed step on the extruder motor. This may be insignificant with respect to print quality, but as you suggest, it is an irritation.

If you are confident that your nozzle is clean of debris (which is likely), you could consider to raise the nozzle temperature a few degrees. If the nozzle is not applying enough heat to the filament, it may resist being forced through and a click representing a delay, allows that much more heat to be applied.

You should not have to increase by much, certainly no more than five degrees.  It's also possible that you can slow the feed rate a bit to accomplish a similar result.


Extrusion test cube resulted in one wall being thicker

Why not that test print?

You don't want a print constraining your walls to 0.8 mm, since you don't want to print with 1 nozzle diameter for better print quality. Atop that, slicing can induce errors that increase the thickness of walls without us noticing it in the slicer view. Two sources of error (once for each wall)
means an additional 10% error, which would bring the wall as you got perfectly into the expected area: $0.8\text{ mm}\times 1,1\times 1,1=0.968\text{ mm}$

Let's Troubleshoot!

You might not have calibrated the extrusion multiplier correctly, or the steps/mm might be off, or other print settings shoot us way off. Let's make sure to find the source.

Filament extrusion multiplier

use a solid cube as a base, for example, https://www.thingiverse.com/thing:38108
set line width to 0.45 mm to counteract errors from die swell and get a better print result in general1

$d_\text{line width}=0.45\text{ mm}$

set the number of walls/perimeters to 1

$p=1$

set infill to 0%
set top layers to 0
set the extrusion multiplier to 100 %
print the cube (or half of it, Z-height does not matter too much) with no top and infill and 1 perimeter
re-measure the walls

Done that? Math time to calculate the correct multiplier for the filament! The average wall is easy:$$d_\text {average}={\frac{\sum_{i=1}^4 d_i}{4}}$$ $$\frac{d_\text{line width}\times p}{d_\text {average}}=\text{Extrusion multiplier}$$
Remember, that the result is not in % but a float point number! 1 is 100%. So you fill in that value times 100 into the extrusion multiplier.

After this, repeat the whole process with 2 perimeters.

1 - further reading: Why is it conventional to set line width > nozzle diameter? & Slicer line width vs. extrusion multiplier for layer adhesion?

Steps/mm

Make sure to test the extruder against the heated extruder, then repeat the calibration as your tutorial explained.

For some tests, let's fudge to some degree: Trying a filament dependant value of steps per millimeter can help to try to find other sources of errors easier - it makes them at times more pronounced. So we just multiply our steps/mm with the extrusion multiplier that we calculate the way outlined below. For 428 steps/mm and the numbers from Update 3, this gives about 306 steps/mm. This is not a proper calibration, but a means for troubleshooting. After fudging with the parameters reset the extrusion multiplier to 100%, we just want to check what influences our thickness.

Other print settings

215 °C is way hot. Even if it can increase print strength in solid prints, it is usually better to print at 200 °C and less.
Reduce retraction, possibly to 4 mm or maybe even 3 mm.

Lower temperature and less retraction should get prints more consistent, as pressure changes in the nozzle are more consistent. Remember, we are playing with the settings here.

And now Properly

Back to Calibration!

After all the fudging and probably making everything worse, we got to make sure to properly calibrate, those settings will be WAY OFF, in fact, we might go back to the original steps/mm or higher:

Note the current steps/mm as $s$.
Mark the 150mm from the extruder intake. remember if you marked on the close or far side... or simply cut the filament as exact as you can.
Heat the hotend
send a G1 E100 F100
Measure the distance to the extruder intake afterwards as $d$ to get the actual extruded filament $e$. Make sure to measure the same side of the marking!
$(150-d)=e$
$\frac{s\times 100}{e}=s^*$ as the corrected steps/mm
send M92 E###.## with ###.## taking the $s^*$
send M500 to store the value to the EEPROM

Extrusion/Flow Calibration

Now, go back to print a single filament extrusion multiplier calibration, as above. It should be somewhat close(er) to 100% now.

Slicer Fault?

Note that not all Slicers are equal: some slicers are better and more consistent in the results than others with the stock settings, and even with the same settings results may varry. For example the line width for the same settings with Simplify3D and Cura or Slic3r Prusa Edition can differ. The reasons for this are hard to find exactly, but they are most likely rooted in the different slicing processes and optimisation. Sometimes it is some setting that might be overlooked that results in line width variations.

The Slicer world changed a lot betwene 2015 and 2019, and even if you got fed up with one slicer years ago, now it might be worth a shot to test it again. See if you might get better results with other slicers, as for whatever reason, your slicer might cause the issiues, whih allows you to hunt down setting dependant items.


What is the best way to build a closed loop continuous rotation servo for 3D printer?

You can use a magnetic position encoder.
AS5048B High Resolution Position Sensor
14-bit rotary position sensor with digital angle (interface) and PWM output
14 bit means 16k steps/rotation. With a stepper which does 200 steps/rotation and 16x microstepping, you will need only 11 bit, so you have plenty of extra accuracy you can use to filter noise.
You may use AS5600 Positioning Sensor instead, which is 12 bits, since you don't need to track each microsteps in a closed loop, 4x is enough.
AS5600 in PWM mode does up to 920 Hz, AS5048 1 kHz. I'm not sure in I2C mode but surely more. Of course you have to take into account delay between measuring the position and transmission of the position.


Prusa MK3S 0.8 mm nozzle layers separating

After printing ~30 calibration test cubes I finally figured out the perfect settings.

Apparently, the extrusion width in my slicer was set to a certain number, instead of
percentage. I was printing at 0.45 mm extrusion width, which was ~105 % of the 0.4 mm nozzle diameter, but less than 50 % of the 0.8 mm one. Changing the value to 130-140 %
solved the majority of my printing problems.

As I predicted, the 230-280 ℃ nozzle temp. was ridiculously high, even with the
0.8 mm nozzle.  I gradually lowered it to 210 ℃ (ironically, the value I chose at the very beginning).
 There was some warping, so I cleaned the heatbed from the glue, put the glue again and decreased bed temp. to 50 ℃
 Finally, I decreased the flow from 1.3 to 1.05 and everything seems perfect now.


Tuning line width and flow compensation in Cura

That is very bizarre.  Since GCODE describe each movement of the printing head (so, the printer does not get to decide anything in terms of printing strategy, it just executes), I can only see three possibilities that would explain what's going on.

The print is being scaled up at printer level.  This could for example be due to your firmware having your steppers improperly calibrated and moving them too much for a given unit of measure (say you say 1mm, they move 1.5mm instead).  This is easy to check: if this is the case, your cube will be scaled up (so - using the example above - if your cube is 10x10x10 it will come out 15x15x15).

You are printing with a raft.  Then there is no problem with your set-up, the first layer(s) of a raft are not solid, but intentionally "grated".  Check your settings to verify.

Cura is producing the "wrong" gcode.  This could be really wrong (as in "you found a bug", in which case you should report it on their github), or just look wrong (as in "you found a weird combination of setting producing that gcode", in which case you should reset the settings to their default and see the problem disappear).  Either way, if the gcode is "wrong", you should notice the gaps in the gcode preview mode in Cura.


The size of the nozzle usually isn't the main factor for how close you can put nozzles together.  To keep the filament drive gear system from being the limiting factor, you would need Bowden extruders. "Then, the heat sinks and fans would be your limiting factor.  Have you considered a single nozzle with three extruders?  Otherwise, you need custom angled heat sinks similar to the three heat sinks on a single nozzle, and still a way to orient the nozzles at the same Z-height.  That would be difficult if all the nozzles are on the same heater block.  It still seems that nozzle size is the least of the issues of putting nozzles close together.
If you search for smaller nozzle sizes, you will get nozzles with smaller openings, not smaller overall size.  The threads on the nozzles are a standard size.  Thus, the smaller opening size can't be put closer together than the larger opening size.  Otherwise, you have only small variations between different types of nozzles and need room to screw them in to the heater block if you put all of them into one block.  You can get a nozzle using a 6 mm hex wrench that is smaller than one using a 7 mm hex (E3D).


Filament that will not stick to wood glue?

You are looking for a filament that does not bond to wood glue, or as weak as possible. You misunderstand how wood glue "bonds" to plastics:
Wood glue is typically PVA. It bonds to wood and paper by seeping into them before curing and hardening. The mesh of the glue entangles fibers of the wood/paper and itself, bonding with not only the exposed surface but also with material up to the depth it penetrates.
When such a glue is applied to a typical print surface, it seeps into the cracks and through print imperfections but does not penetrate the print to the same degree as it does in the open wood fiber setup. It clings to the surface and only bonds - if it does - only to the surface layers. The same effect happens when you cast resin into for example a silicone mold: there is much less chemical bonding, at best at the interface, and quite some interlock.
To prevent such, two things should be made: first, you need to smooth the mold as much as possible and have all the angles right.  It might be easier and faster to coat the hard molds in a smooth lacquer, which not only removes the creep areas but also acts as an interlayer, making release easier.
Then, you should use a mold release agent. Mold release agents come in many shapes: I have seen Talcum Powder being used effectively for both metal as well as cold casts, if the shape of the mold was well made (no undercuts, no unpowdered areas). Easier to apply are usually mold release sprays for many applications - careful, some are PVA based and would be the same as the glue you want to cast. For a concrete casting, I had used plant fat as a decent mold release agent.
What might be an alternative to wood glue depends on what you want to do with the finished product.
As far as materials that actively don't bond go, you could look into POM (Which is a pain to print and expensive - it's a bearing material) or nylon (also a pain to print).


If you wannwa go fully parametric, use OpenSCAD. Or you can use Autodesk Fusion 360 (which is free for non-commercial use)


Printer changing temperature after selecting file

The demo files are gcode files generated for use with the sample PLA that comes with the printer. If you want to print it with ABS select the file and set the temperature manually afterwards.


How can I add an offset to the first layer to increase clearance?

Placeholders
I don't know if you are familiar with the concept of placeholders? PrusSlicer is a derivative of Slic3r which uses this concept to insert placeholders (sort of constants, with the possibility to do arithmetic) into your G-code (e.g. start or end codes) which are evaluated just before the slicer generates the final G-code upon slicing.
Unfortunately, although there is a constant for the filament type (filament_type), you cannot use a conditional expression as this does not work on string comparison (which should work with regular expressions...), but with some imagination you can fabricate a way to get past this problem.
E.g.
{if printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/};Printer is Prusa{endif}
M117 [filament_type]

evaluates fine, but
{if filament_type=~/.*PLA.*/};Filament type is PLA{endif}
does not evaluate fine...

Solving this using placeholders, the printing temperatures for PLA and PETG are different, so in a conditional statement of the first_layer_temperature you could add an additional offset to the code at the end of the start G-code.
Start G-code
A place to do this is the filament dependent start G-code section:

You can always edit this start G-code to include a manually set offset by moving the printer to a certainly height:
G1 Z0.15
and then redefining the zero level
G92 Z0
Printer Z-offset
Note that a z_offset constant exists, so it is configurable in the graphical interface, if so, than I assume this fixes your problem instantly as the offset is directly applied in the final G-code. The z-offset option is part of the "printer settings" interface. This extra offset is added to the initial layer height movement.


How to make it so that multiple motors respond to

One way to have two E-steppers to do the same work should be to enable MIXING_EXTRUDER in Configuration.h. I have no experience in this myself, but it is a good starting point.
A second way is to actually connect the two identical steppers in parallel. That trick is sometimes used for Z-steppers. I don't expect the current consumption to be an issue. This will require soldering, unless your mainboard has two Z-stepper outputs and you only use one of them. Then move connectors and reconfigure pins.h (or similar file) to use the correct steppers for Z and E.
A third way is possible if your mainboard has removable stepper driver modules. Remove the E1 stepper driver from the socket and cut off the EN, DIR and STEP pins. Solder thin but insulated wires between the solder-pads on this one to the E0 stepper. These are all inputs, so now the second stepper will follow the first perfectly. Soldering shall be done while the stepper driver modules are removed, otherwise the heat might ruin the sockets. (There are more precautions)


I have seen this after I reassemble the extruder heat block and then leave it too loose during the print.

Is your extruder above the nozzle coated in a brown or black film?

What happens is the liquid plastic oozes through the loose connection, travels around the outside of the block, where it is heated longer and hotter than normal turning it black/brown. Then it drips, or flakes, into the print where it is spread around giving it a diffused look that you see.

The fix is to tighten the heating block. Do this while it is at operating temperature (be careful!) because it fits differently when cold.

Another cause: I made a tiny sharpie mark on my filament.  I did not realize how concentrated it would come out in the print.  Perhaps you have ink or adhesive or something on your filament that you can't see that turns brown when heated.


This is easily explained - it's the stepper motors getting powered up. Stepper motors even if not moving are constantly powered up and actively hold the position they are in exactly at the stepping point where they are.

If you power down the machine or if the board disables the stepper drivers to save energy or because the power is offline then the stepper motors can get in between steps. When powering on then the movement is  quite noticeable on some cheaper motors where the inrushing current can kick the motor over multiple steps before it locks down into position.

You can test this, try to move one of the axis manually by hand (not too fast to not damage the board by providing it too much current) if the printer is powered of it does move pretty easily. Then power the printer on, it should still move pretty easily by hand. Now execute one move command on the axis via the printer board. Afterwards you should not be able to move the axis by hand anymore (or at least not without unnecessarily excessive force).


Converting a mesh to constructive solid geometry

The calculations for your objective could be considered simple geometry, although the results in terms of formulae are a bit more complex than simple, but not by much.

According to Quora, the foundation for this goal is that the cube's eight vertices will be coincidental to the sphere's surface. If one desires to print a 3D object with this form, such an object may fail the requirement of being manifold, but may not, depending on the floating point operations of the software being used.

I found a simplistic formula which provides the radius of the sphere given the length of the side of the cube.

$fn = 90;
edge = 10;
cube([edge, edge, edge], center = true);
sphere_radius = sqrt((3 * pow((edge/2), 2)));
sphere(sphere_radius);

The above code is done in OpenSCAD, resulting in this image with the sphere made transparent for clarity:

Translated into general english, it appears that one can take the edge length, divided by 2, then take the square of that result and triple it. Take the square root of that value and it becomes the radius of the sphere.

The above answer is courtesy of Math Forum and is represented verbatim as such:

        ____________________________
  D = \| (L/2)^2 + (L/2)^2 + (L/2)^2

The letter D in this case appears to be slightly misrepresented as diameter when it should be referred to as radius.

As part of this fun exercise, I also subtracted the cube from the sphere, slicing it in half for visibility, resulting in this image:


What is the benefit of using an ARM based electronics?

3D printer controllers have to do a lot of stuff very, very fast. Performing kinematics and dynamics calculations while sending many thousands of precisely-synchronized step pulses per second is really, really hard. The 8bit AVR line of microcontrollers used in older 3D printer controllers is basically a late-1990s era Mr Coffee processor. They are completely, utterly maxed out on processor time just executing basic printing functions in simple (eg Cartesian) printers, and adding additional calculation load will bog them down and cause slowdowns, stuttering, pausing, and so on.

"But my 8bit printer works fine," you say. No, it doesn't. Your print performance is limited by it, whether you realize it or not. Slicers now automatically hide a lot of the firmware's performance shortcomings from you. For example, the standard practice of greatly slowing down print speeds on perimeters is largely a result of 8bit processors having inadequate resources for two things:

Performing centripetal acceleration calculations for curves
across multiple gcode segments
Keeping up with gcode transmission/processing and motion planning for gcode with lots of very small segments, such as in organic models or smooth arcs

When presented with a series of very small segments in a smooth arc or complex curve, the 8bit firmware will likely choke on the required command processing rate and introduce stuttering to the print. These incredibly brief pauses allow residual pressure in the extruder to push out some extra plastic, making a little zit on the print. So most slicers automatically decimate curves and output gcode with reduced resolution to lighten the load on the firmware. Problem solved, right?

But there's another issue -- the GRBL motion control algorithms underlying all the major open source 3D printer controllers were designed with lots of shortcuts and hacks to allow 8bit processors to execute fast enough. For example, the basic algorithm only looks at the speed or velocity change at the corner between two segments, and uses that to decide when to decelerate/accelerate along the direction of motion. It does not calculate or consider centripetal/radial acceleration whatsoever. This is a really effective hack when printing boxy, low-res models, but it fails miserably on smooth curves with lots of little segments. The firmware does not detect any appreciable velocity change at the corner of any two nearly-linear segments within the faceted curve, and thus does not slow down for the curve. So complex geometry is effectively printed at constant velocity, with no acceleration.

Printing complex perimeters unaccelerated means the commanded feedrate must be very low to get good quality. Most printers are limited to about 40mm/s or less on complex perimeters, despite being able to run perhaps 80-120mm/s on low-complexity infill before hitting other speed limits.

Between the command processing rate limits and motion planner shortcomings required by low power processors, print speeds must be much lower in practice than is strictly required by the physics and printer hardware. This all comes from 8bit processors. The workarounds and best practices to deal with this problem are so deeply baked into the toolchains and ecosystem that very few people realize there is even a problem. But it's a real limit that can be overcome: a high-speed processor running a more rigorous motion planner could generate higher average print speeds with better print quality.

That said, the ARM-based firmwares are only slowly moving towards more advanced motion planners. This is a big development area right now that is actually driving an upcoming shift away from low-end ARMs like the Cortex M3 towards even faster processors. It's actually not all that hard to max out an 84 MHz Arduino Due by piling on a bunch of firmware features.

The use of 8bit processors also makes printers LOUDER. The biggest consumer of processor time in a typical 8bit printer is the stepper interrupt that fires the step pulses to make the motors move. It is quite typical for >60% of all clock cycles on an Atmega AVR to go to firing step pulses. Because this occurs as an interrupt, other processing tasks that the printer must perform -- like acceleration calculations and heater control -- get squeezed into the brief spaces between stepper interrupt events.

Without careful firmware design, the step pulses will completely "crowd out" other functionality like LCD display updates and acceleration calculations. In order to allow higher motion rates without using all the processor resources, 8bit firmwares have a mode called "step doubling" that fires two (or four, or eight) step pulses per stepper interrupt so that half (or a quarter, or an eighth) as many stepper interrupts can be used to produce the same motion speed. This practice de-bottlenecks the processor, but it causes rougher and louder motor motion because the step pulses are fired in bursts rather than a constant frequency. In effect, the microstepping level of the motor is functionally dropped to a coarser mode when the stepper interrupt fires double or quad steps. So the motors get louder, less precise, and in extreme cases may have problems with resonance.

An interesting side effect is that if you switch a Marlin-based printer from 1/16 microstepping to 1/32 microstepping, and keep the same print speeds, the firmware will simply start step-doubling, dropping your effective microstepping level right back down to 1/16.

ARM-based firmwares also use step doubling, but the allowable step rates are typically ~8 times higher before double/quad stepping is used. That can mean higher speeds and/or smoother motion.

Another issue with 8bit AVRs is the lack of hardware floating point and need to spend many clock cycles on high-precision calculations or handling very large numbers. Delta kinematics, auto-leveling functions, calculating moves with extremely high step counts for large printers, and other advanced functionality all take a lot of clock cycles on an 8bit processor. Poor firmware design or carelessly adding a feature that requires a few extra square roots and trig functions can completely bog down the processor. This kind of feature creep and code bloat has seriously impacted Marlin's performance over time as people ask more and more of the old AVR.

In comparison, a 32bit processor doesn't just have a faster clock and more clock cycles, it is also able to do much more complex math in fewer clock cycles, because it has dedicated hardware functionality that takes care of many of the steps an 8bit processor must do in software.

Do 8bit processors work? Sure, they work surprisingly well for what they are and what we ask of them. But they unquestionably limit the performance and features of modern 3D printers. Even today's current generation of 32bit processors is already being maxed out by high speed printers and math-heavy features. The 8bit processor is already two generations behind what would qualify as a "modern" 3D printer controller.


Printing with colorfabb XT fails after several successful layers

This looks a lot like under extrusion caused by heat creep.

Heat creep is when the nozzle temperature 'creeps' up through the filament and makes it melt (a bit) and form a blob (or just widen enough to get stuck) a centimeter or two before the nozzle.

The characteristic is usually that everything works perfectly well for some quite fix amount of time, then there is severe under extrusion.

Solutions:

Lower the temperature (yes, as then the heat won't creep as much!)
Add a fan cooling down the cooling part of the print head

I have the same print head as you it seems (E3D 1.75 all metal) and I had heat creep when I changed the fan to a less noisy one (but also less effective).