To be precise we shall have all physical parameters of extruded material to calculate extrusion parameters.
In that case, my approach will be to use try and check approach, as that will give a systematic problem-solving.

To set the steps/mm, we will focus only on the measured length after extrusion.

let's set the extrusion length to 10 cm, extrude and check the extruded length.
if we measure a different value, then we can use a formula to fix that
newStepsPermm = currentStepsPermm*(requestedExtrusionLength / measuredLength )
That need to be repeated as long as we will get requested length and this is a standard calibration procedure.

The minimal layer thickness will be connected with the way how the pasta behaves (how it is sticky, water amount etc) - so for that there is a need for a patience.
My approach will be to create a sheet where I would store the ingredients ratio and a note about extruded material behavior.

To remove bubbles in the extruded material - the syringe shall be filled with caution and continuously to avoid material stacking as that produces air pockets.

Addon: To calibrate clay you can print a single line using manually prepared gcode. Amount of extruded material could be estimated by weighting conteiner/bottle or extruded material and that will give you an orientation of flow like gramms/mm or mm3/mm.

let's try this:

we have our steps//mm untouched
try to set printing speed for single line, so the clay will looks nice
if we have over/under extrusion - change feedrate by 5% up/down.
when the extrusion looks ok, then note all printed parameters

so if we end-up with printing speed 10mm/s and feedrate 140%, then we know that the steps/mm need to be multiplied by feedrate factor (1.4 in this case).


Update. Jumpers were inserted to 1/16, but stepper chip I have (9488) could not handle that many micro steps. I changed it to 1/8 and now it works good.


How to build a CT scan into a printable 3D model?

Using the terms "convert CT scan to 3D model," I found a number of links of tutorials. One of them is described as free, with registration and appears to be web based. The link, Embodi3D, appears to have a relatively comprehensive set of instructions to accomplish your goal.

Instructables also has a similar tutorial. Should neither of these prove suitable, the search terms above may be of value.

Image below via Instructables:


It sounds like your Z limit switch is stuck.
The firmware will prevent the motor going further down past the limit to prevent damage.   Be careful going up because if the firmware doesn't know where the bottom is, it doesn't know where the top is.

I checked my printer (an i3 clone) and the limit switches are wired as NC (normally closed).  That means that the circuit opens when the switch is activated.  So, if the wire (or switch) is broken, or if it is unplugged, it will behave as if the switch is activated (the behavior you are seeing).

An easy test would be to switch the x-limit and z-limit cables at the controller board.  If the problem moves to the x-axis, you have found your problem.  BE CAREFUL not to run the motor into the end stop and damage something since there is no limit switch to protect it.


Material extruded to prime the nozzle doesn't stick to bed at first

Have you tried using a raft

I had the same issue on my mini delta when I first started printing with it. After checking and double checking the bed level I ended up discovering that using a raft base in Cura solved the issue.

It does use more plastic however I have had absolutely no issues with respect to sticking in the dozen or so prints since then.

Additionally it makes removing the print from the bed really easy as I'm not worried about damaging the print with a scraper.


How to address bed scratching on a Creality Ender 3

Most likely your print surface is uneven. You can try rebuilding your firmware with mesh bed levelling that allows you to manually probe and store n*n grid bed mesh setting the height offsets at each point manually (however, on stock setup you might need to disable certain features for the compiled firmware to fit). Other option would be to use some kind of ABL as mentioned above. You can also try installing Z offset plugin on Cura and raise it up a bit.
The last thing to check would be comparing the test gcode to your slicer generated ones (via any text editor) looking for differences in G0/G1 Z movement in the beginning of the gcode. If there are ant differences, that would give you a hint where to progress further.


Extruder motor not running during print job but working after I preheat the extruder and test it

According to all the information:

No reassignment of the extruder in the Gcode
You can extrude if you push the filament by hand
Extruder motor works when switched to Z driver
Z Motor works

I come to the conclusion that some of your electronics or the motor have fried.

What have fried? I tried to make a step by step check:

Switch drivers between E and Z, but plug the motors as usual:

1) Does the extruder extrude?

Yes: Your driver has fried

No:

2) Were you able to move the Z motor?

No: Motherboard And driver has fried

Yes:

3) Plug in the E motor on the Z driver, can you make the E motor turn?

Yes: Motherboard fried

No: Motor fried

HTH and keep us updated if it worked or not!


What is the power consumption of the heatbed and hotend?

I have a Kill-A-Watt meter so I got a pretty good measurement for you with my Anet A6. Like Petar said each model is different but this should give you a idea. When heating both the nozzle and heat bed the printer consumes 160 W of power, once to temp it backs down to 9 W (it also uses 9 W when just "sitting doing nothing and is on"). When the nozzle and bed get down in temp it hits back up to 160 W. Basically it is never a consistent heating, it is on and off. Like a refrigerator.

When it comes to heating only the nozzle the printer uses 60 W (so 51 W is going to the nozzle for heating).

When it comes to heating only the bed the printer uses 142 W (133 W to the bed).

This is interesting because it would make sense the printer needs more than 160 W when 51 W is going for the nozzle and 142 W going to the bed, that makes 193 W. I make mention of this because that may suggest my power supply is not big enough and the printer could really use around 200 W.

As a little bonus when the printer is moving around (stepper motors are active) I find it using 35-40 W (or 26-31 W) to power the steppers.

So with all the said, is it possible to use a battery? Yes, you could. And to give a example a car battery should have 80 Amp-hours (or something like that, but we will go with it). With that battery you can get 960 Wh (Watt-hours) from the battery before it dies. Going with my printer using 160 W I will get 6 hours of printing time. But keep in mind as the battery is used the voltage will drop, so in the end the printer will be getting something like 10 V which I am sure will affect heating and overall performance.

Last thing I feel that needs to be said. If using a inverter to convert the 12 V battery to 110 V (or whatever voltage you use) a cheap one will not be healthy for the printer. Cheap inverters put out square waves instead of sines waves. Basically it will hurt the printer. You can learn more at this WEBSITE

"Update" on March 4
I read a comment that mentioned running right off the battery without a battery and then I thought of something that I did not think of before. And that would be protecting the battery itself

So I said you can run the printer off the battery. There was one issue that I had not thought of. And that was the voltage drop and the battery discharged. A battery usually does not have voltage-cut off to keep the battery from being overly discharged, and a printer does not have anything to measure voltage (why should it). So a simple hook up of a 3D printer to a battery is prone to drain the battery much lower than 10 V, which will greatly shorten a battery life-span. This can be prevented two ways.

A circuit between battery and 3D printer. There is plenty of circuits that can be bought as long as they cut power to printer at 10 V or something (for lead acid anyway) and can handle the amperage draw.

An inverter can also be used because this voltage cut off is already in them. But remember that square waves are bad for the printer.


M502 will reset all configurable settings to their "factory defaults", which settings are those?

What Marlin does when M502 is called is defined in the configuration_store.cpp file.

It resets:

Max acceleration
Steps per mm
Max feedrate / speed
Min segment time
Acceleration (Normal, Retract, Travel)
Min feedrate
Min travel feedrate
Jerk settings
Junction deviation
Home and SCARA offsets
Hot end offsets
Filament runout sensor distance
Tool change parameters (Swap length, extra prime, prime speed, retract speed, Park
positions, Z raise)
Backlash correction distances and smoothing parameters
Extensible UI
Magnetic parking extruder settings
ABL (fade height, stored points, nozzle offset, servo angles
Delta calibration data (Height, Endstop offset, radius, rod length, segments per
second, calibration radius, trim angle)
Dual / triple endstop adjustments
Preheat parameters
PID parameters
self-defined thermistors
LCD contrast
Power loss recovery
Firmware retraction
Filament diameter (for volumetric extrusion)
Endstops (if disabled)
Stepper drivers
Linear advance parameters
Motor currents (digipot)
CNC coordinate system (if selected)
Skew correction parameters
Advance pause filament change lengths


Is it possible to print a resonator for a musical instrument?

I can't answer this from a technical 3D printing angle.  But, from a musical angle:

Where the body of an instrument has the primary function of enclosing a vibrating air column, the material has often been demonstrated to perhaps make a difference, but only a subtle one.  As an example, a recent range of plastic trombones, although not first-class instruments, have proved extremely playable (and have the great advantage of being virtually indestructable).

I suggest you try this.  Play your instrument, dampening vibration of the cabaça with your hand or with a piece of cloth.  Just damp the shell externally.  Don't obstruct the hole or put anything inside.  Now, fill the cabaça with cotton wool or similar.  If the first makes little difference, you're probably good to go with a plastic cabaça.  Of course, if the second makes little difference either, we might have to suspect that the cabaça is mainly decorative!

You could also experiment with alternative resonators of a similar size and capacity, available 'off the shelf', not worrying too much about a cosmetic match.  They might sound even better!


Effects of static on 3D printers & print quality

Static electricity is detrimental to nearly all electronic devices. A stray zap from touching the frame of your printer could migrate to the controller boards, terminating normal operation. If you wish to protect the printers from static electricity, connect the frame to a confirmed electrical ground. The power supply may be grounded via the electrical cord, but you'd want to ensure that the entire structure shares that ground. Additionally, provide a grounding strap to which an operator would connect prior to using the machine.
Image below courtesy of linked site.

The more unfortunate aspect of your description is the issue of particulates in the air. Moving parts will be subject to excessive wear and your printer has plenty of moving parts. The stepper motors may "ingest" particles and the fans on the power supply will certainly pull in abrasive dust. The rails and bearings are going to be collecting as well.
If you wish to ensure a longer lifespan for the printer, a filtered enclosure with an overpressure environment is going to be needed. This presumes that one desires to provide cooling air to the printer and power supply. The box around the printer would have to be fed by a fan which is protected by a filter capable of preventing the dust you describe from entering.  One could create a box around the printer without fans and another around the power supply with fans and filters.
One could use the reverse concept, that is, build a box from filters and have a fan suck the air into the box, into the fan and back out into the environment. This would provide for a greater surface area of filter material, reducing the frequency of filter changes. In the first example, the box is created from a solid material and the fan forces air for cooling, into the box, as dust-free as the filters will allow. In the reverse method, the box is created from filters and the fan is used to move air from the box to the outside, pulling clean, cool air into the enclosure.
It sounds like a tough place to be a 3D printer.


Prevent stopping and heating in the middle of the print

Your allowable temperature tolerance might be too low.

You have seen what I call emergency-halt the print on getting too far away from the set print-temperature. As described, the allowable tolerance seems to be 1 degree, which means pretty much any variation in the printer head's temperature will trigger the stop before the software even can counteract it.

To counteract this, you might try to increase your allowable range slightly, for example to about 2.5 of more degrees, either way, giving the printer time to compensate without halting the print.

How the tolerance area works

Let's assume the printer has 210 degrees with a stable heat input from the cartridge and monitored by the thermosensor.
conditions are met to start printing.
Filament is pushed into the nozzle, picking up heat energy from the heater block.
The temperature of the heater block drops, as the thermal energy (=heat) input from the cartridge did not yet include the new thermal energy drain in the shape of the filament.
The Thermosensor registers the thermal drop a little bit later and notifies the chip
The chip increases the voltage on the heater cartridge with a little time difference

With a very low tolerance, it is possible to fall below the threshold before the cartridge could heat up to compensate

the cartridge pumps in way more heat than needed, raising the temperature rapidly back into the print-temperature tolerance area...
...and overshoots the aimed for 210 degrees.
The thermosensor only registers the aimed temperature with a short delay
the chip cuts the voltage to the heater cartridge lower
but there is still a lot of extra thermal energy banked in the heater cartridge, heating the block over the aimed 210 degrees

which again can trigger the stop for the temperature rose over the allowable tolerance.


Are you making a simple box? Or does it have some kind of detail or structure? The photo below exemplifies a structure attached to connectors that have been created outside of Fusion, but you can also use it as an idea to create your own!

Link to OPENSCAD LIBRARY

If you are thinking of cutting into parts, you can also create a kind of male / female (puzzle) in the parts that fit. Something like that ...

Here is some interesting information to study How to design Snap-fit Joints for 3D Printing


Jammed extruder. Wanhao duplicator i3 Plus

I follow the techniques spelled out in this video on Tom's 3d:
Basics: Cleaning out a clogged nozzle!

Essentially you:

Heat up the hot end past the point you normally print at.
Manually (gently) push filament out of the hot end.
Turn off heat & continue applying pressure to the filament, until it quits extruding (it has cooled off).
Set the heat on the hot end to normal printing temprature for the filament & immediately start pulling firmly on the filament, but not too hard.
As soon as it melts enough, it will just "slip out" & bring any stuck crud with it.

I went ahead and bought some white nylon filament so I can heat it up hotter (good for cleaning out ABS) and since it's white, I can see the nasty crap it pulls out.


First layer eventually sticks to the hotend and tears

Step Zero: is always to check/adjust the bed level - if the height over the bed varies while putting down the first layer, it's hard to ever get first layer settings that work.

Step One: is to adjust your first layer settings - height, temperature, extrusion width until you find a set that work for your setup (knowing that they may change somewhat when you change filament.) Some folks find more success with thin first layers, others with a thicker first layer to pump more plastic, still others use the same layer height but increase the width to pump more plastic, and others combine these approaches. Increasing the temperature is common, though in my case I found that the "usual" +5°C was not enough for the present setup.

You can change one setting at a time and have an idea of what works better or worse in each case, or you can change lots of settings and hope you get lucky. I prefer the tedious approach, it's less maddening.

Are you using any surface treatment on the bed? A bit of gluestick or hairspray may help you stick.


When should I use a raft, when should I use a brim?

A raft will allow for better adhesion for the whole print as the raft attaches to the printing surface and the print attaches to the raft. Rafts go all the way under the print and consist of multiple layers, whereas a brim is only 1 layer and on the outside of the print. Rafts are normally harder to remove than brims because of the increased contact with the print.

From my own experiences, the brim does not help a lot with layer adhesion as it is only 1 layer. I normally use a raft when I need a nice looking 1st layer that is not on the bed or when there are not enough contact points.


Adding a Bowden extruder to a direct drive setup

I'm an amateur and I used dual extruder printers but never built any.

It's probably a good idea, take care about the purge, retractions distances that may vary. On the filament feed side there shouldn't be interference from the different flexibility. Still it maybe good to place one reel on one side and the other on the opposite.

Now the most complex thing is to make both nozzle not interfere. A technique is to rotate by few (like 5°) the dual setup to give few millimeter more to one of the two nozzles. If both heads are at the same height, you'll need to keep them hot, and avoid the passive one to leak. It would be good also (but not mandatory) to have a purge routine.


What are some good FOSS or free tools for editing STL files for 3D Printing?

You can use OpenSCAD. It's a script based powerful CAD open source software under GPL.
On Thingiverse, a lot of things are made with this CAD software (the Customizer flagged ones) and you can just download their source code (.scad) and directly edit them !

You can also import existing STL and edit them like they were a primitive shape like a cube. You can then interact with them by doing binary operations, adding parts, etc.

It is hard to start with if you have never coded, but that's worth it :

  OpenSCAD is a software for creating solid 3D CAD models. It is free software and available for Linux/UNIX, Windows and Mac OS X. Unlike most free software for creating 3D models (such as Blender) it does not focus on the artistic aspects of 3D modelling but instead on the CAD aspects. Thus it might be the application you are looking for when you are planning to create 3D models of machine parts but pretty sure is not what you are looking for when you are more interested in creating computer-animated movies.


Anet A6 stock power wires.. the live, the zero and the ground. Which is which

This picture shows the correct wiring for a British 13A mains plug:

The green/yellow wire must always be connected to the earth terminal (at the top of the plug). This is most important, and will prevent electrocution if something goes wrong.

The brown (live) wire should be connected to the fuse, and the blue wire to the remaining terminal. It is true that, since alternating current is being used, the device will likely work if the blue and brown wires are swapped, but it is better to stick with standard practices to avoid confusion.

I would not use a "test" screwdriver to determine which terminal is "live" in this instance, simply because it is unnecessary. The live terminal is always the one that the fuse is connected to. This is done for safety reasons since the device is automatically disconnected from the live side of the circuit if the fuse blows.

How to wire mains plugs is really beyond the scope of this stack. Watch appropriate YouTube videos if you want to make a competent job of it. The only advice that I will give is to always use a proper fuse of the correct rating for the device. Never use something like a paper-clip. Also, don't use the 13 Amp fuse that comes with the plug. The fuse is there to protect the cable, rather than the device. Most printers will draw less than 5 Amps, and will be supplied with a 5 Amp cable, so use a 5 Amp fuse.

Also, never work on a plug while it is connected to the power socket. This is most foolhardy, even if the socket appears to be switched off.


Attaching the resistor for the J-Head Extruder with Type 44 Non-Contaminating Heat Sink Compound?

Nope, not adequate. When heating at maximum power, you should expect the resistor to be 50-100C hotter than the hot block. (It must be hotter than the block in order to transfer heat to the block.) GC 10-8118 is only rated for 200C, but the service conditions at the power resistor may run up to 300-400C depending on power output and desired hot end temp.

For that matter, you may want to question whether the power resistor itself is rated for the >300C temps it will see in normal service. It's probably not. Most modern hot end designs use steel-jacketed heater cartridges instead of power resistors because they can handle higher temps and are, you know, actually designed to be used as heaters. The power resistors used in older hot end designs are generally being operated way past their design ratings. It's kind of amazing they work at all.


You mention your dimensions in cm. Any chance that the STL export is also in cm where Meshmixer might expect mm?

Assuming your Sketchup template was set to cm:
To validate this guess you could measure/eyeball a known dimension and if that comes out to be 10 times too small you could scale your model by 10 times.
Alternatively you could adjust the template in Sketchup.

Additional information on STL files:
By it's very nature, the STL file format is just a bunch of unitless numbers in a well defined structure. This structure represents a set of points (vertices), lines (edges) and and triangular surfaces (facet). A few simple rules apply to exactly how all this should be defined. (See here)

But the key thing here is that an STL file is not aware of units, the program used to generate the STL file (e.g. CAD software) needs to be told what units to use, and accordingly the reading program (e.g. slicer) needs to use the same settings. Generally in mechanics applications we default to mm, at least in metric land. All this is explained a bit more verbose here.


You can clearly print but there are also some problems it seems.

To see if you're about okay when it comes to leveling, I recommend to activate the 'skirt' in your slicer soft. Slic3r has it and I think most others too, it just makes the printer do a big one-layer all-around 'perimeter' around what is going to be printed before starting. You'll see quickly if there is not enough or too much space between the bed and the nozzle. You might catch other problems too (I love it because when the hotend drips a bit when leveling it get's smeared out far away from where the print is going to happen).

Your print looks like it is not optimal (overextrusion? no print-cooling? ...) so start with slowing down, first layer 20-25mm/s (Look at it when it's printed, it's very telling!). Then for the following ones, don't go over 40-50mm/s for starters.

Last but not least, you are printing ABS (but you said you had the problem with PLA too, hence my post), I have never printed ABS but for what I have read, you'll need a heatbed and a heated chamber(enclosed printer) to not have this kind of problems.

But for PLA especially; If you have a heat bed, don't put on too much heat when printing, I went from 60°C to 50°C, first layer, 30° then, and my prints now stick like they are melded onto my plate instead of skidding around.


Great prints then suddenly terrible quality

After watching it countless times, I found out that it was the magnetic mat on the bed that has worn out. It no longer adheres to the bed completely flat and some of the texture was worn down more than in other areas. It wasn't visually detectable - I found it by checking the nozzle height with various feeler gauges in multiple random locations.


Prusa ships (or has shipped) with two types of PEI build plates.  The original (and what I was shipped in February 2019) is a PEI sheet held in place with an adhesive.  The marks I've gotten seem to be places where the adhesive has been displaced slightly from long term pressure by the object being printed.

In your case, it actually looks like scratches in the PEI.  If, after cleaning with water, then 95% Isopropyl alcohol, and finally acetone the scratches still appear, I'd check if they are a problem.  Do they transfer onto objects printed on the plate?

If you decide you have a problem, I would use a mild kitchen scrubby sponge to "sand" out the scratches.  I have two types in my kitchen.  The yellow ones are too abrasive.  The blue ones are better.  Gently use one to make the surface uniform.

If you have an adhesive based plate, Prusa sells replacement PEI sheets, with adhesive.  The process of changing them seems onerous.  Although I bought two spare sheets when I got the printer, I have never been tempted to use one.  When my build plate becomes unusable, I will buy another one.

Prusa3D also offers a textured build plate, which is more expensive and in short supply.  These are a powder-coating process and from pictures and their blog, I infer they are particles of PEI which are melted onto the steel surface.  I have no experience with these.

I don't know if they are making the current smooth plates with a powder coating process, or if they are still using the adhesive.

The adhesive is the weak link in the heated bed.  It is only rated for 110 degrees C, which is the temperature limit of the bed.  I find that when I print with a hot bed (such as for PETG), the visible ripples in the surface are worse than when printing PLA on a cooler bed.


This blog post shows 3 main solutions:

Flipping the motor cables (As suggested in the other answer)
Switching the x and y-axis:
This may switch the direction of your y-axis depending on the way your printer is setup)
Change the direction of the axis in firmware which you can see below how to do:

  "When the solution opens up, you will see many different files open. You need to navigate to the Configuration.h file. Within this file scroll down to the following lines of code:"

// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
define INVERT_X_DIR true

define INVERT_Y_DIR true

define INVERT_Z_DIR true

  "This is where you need to switch the values around. If they are currently true, change them to false and if they are false, change them to true. Due to the fact I was having issues with my x-Axis, I have changed the above to the following:"

// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.

define INVERT_X_DIR false

define INVERT_Y_DIR true

define INVERT_Z_DIR true


How to make a printer bed vibrate using g-code (heated chemical stirrer)?

Basically you need to write a G-code file yourself. This is a plain text file with a .g extension.

You need to home the printer with G28, then move the Y axis all the way forward (for a Prusa style printer) with G1 F1500 Y{ymax} (where {ymax} is the length of the bed). Now raise the head with a similar command G1 F500 Z{zmax} (where {zmax} is the height of the printer volume).

Heating the bed is done with M190 S60 (set and wait to reach 60 °C).

You can now rock the Y axis by moving it fast, e.g. with G1 F5000 Y{ymax-5}, G1 Y{ymax-1}, Y{ymax-5}, Y{ymax-1}, etc.


Flat heated bed replacement for uneven bed

Several things to consider:

Nothing is perfectly flat.  It is flat within a tolerance.  The bed you have now is flat to within a tolerance.  If you want a flatter bed, you are going to have to specify how flat.
As @mac mentioned, aluminum is bendable; so, what once was flat can be made un-flat and the other way around.  Note: Your problem may not be your bed, it may be that the bed mounting frame has introduced stress that is bending the bed.
Because the heating element is applied to one side of the bed, the differential heating (between the top and the bottom) can cause the bed to bend at temperature; so, flatness could vary with temperature.

What to purchase:

The Anet A8 has a 220x220 bed.  A very popular size.  You can get replacements heated beds for as little as $20 from a lot of sources.
Because of the considerations above, rather than replacing the bed, you may want to consider attaching a 220mm x 220mm Borosilicate Glass Plate to the top of the bed.  These are also readily available (even from Amazon) for less than $20.  That is what I did.  The glass makes for a very flat surface and a great printing surface.  I attach mine with small binder clips.  That makes it easy to remove to take the print off or to clean when needed.


Can a single line of Gcode have variable extrusion rate?

My understanding is that the printer firmware will define the maximum acceleration and speeds for each axis (X, Y, Z, and E). When executing a line of g-code that involves more than one axis, the acceleration for each will be limited such that they all begin and end, including acceleration together.

During the start and end of a line, when the print nozzle is moving more slowly, the extruder will also move slowly. In the middle of the line, the extruder will move faster. The amount of material extruded per distance will be constant over the length of the line.

Another way to look at it - suppose you could accelerate quickly on X with a high top speed, but slowly on Y. A move only in the X direction could happen quickly. A move only in the Y direction would be slower. If you want to move at a 45-degree angle,  you will need to slow down X so that it doesn't get ahead of Y.

If you did want to intentionally vary the amount of extrusion per distance during a line, you would need to break it into multiple segments with individual lines of g-code.


If you go through the Repetier-Firmware configuration tool for version 1.0.2 you can select the E1 stepper for the E0 extruder (or whatever stepper you want to use for it) in the tools tab sheet. I'm not familiar with Repetier, but if that does not work you would have to switch pin numbers.

If you already have a Configuration.h, you can use that one (by loading it into the configuration tool) and alter the E1 afterwards so that you do not have to enter all the other options by yourself.

Edit: After some investigation, you can find your configuration file here as described here, so the only thing you would have to do is to load the file in the online tool and adjust the E1 stepper for E0 extruder.


What does a stand alone "T" index value do?

T stands for "Tool" and has its origin in the origins of .gcode being for other automated machine controls. Depending on the machine, everything could be a tool for .gcode, like an actuator or pump or a spindle motor or a drill.

In 3D printers, the T-controlled tool is usually the extruder motor. Convention has it that the indexing always starts at 0, so T0 and T1 are your first and second Extruder respectively. It is the way to choose which tool is used.

As a side note: E is not originally intended for extruders but for the feed rate of lathes.


What is the MKS Base AUX header connector type?

You need a 2.54 mm pitch (similar pitch to Dupont) female IDC (insulation displacement connectors on a ribbon cable) connector of 2x5P (pins) for the header connectors that have a notch. (for comparison, note that e.g. RAMPS 1.4 has 2x5p dupont headers on the shield for the AUX headers, not the notch type headers)

These connectors are usually crimped onto flat ribbon cables and used to connect the display to the board. These connectors have a rectangular notch to fit the gap in the housing to correctly position the cable (which the 2x5P Dupont don't have).

For reference/difference, an image of the Dupont 2x4P and 2x5P is shown below, highlighting both sides ("up" on the left, "down" on the right):


How can I get PLA or PETG to stick to a glass bed permanently without adhesives?

There are seven factors that I can think of, that contribute to the adhesion of the first layer onto bare glass:

glass cleanliness: dish soap and hot water, dried by patting down with quality kitchen paper is what seems to work best for me.  Beware of fingerprints.
glass roughness: a common way to increase adhesion to glass is to rough-up its surface by scratching with some fine sandpaper.  This works best if you take care of sanding in multiple directions (so that you have grooves crossing each other).  I suppose an experiment you could try is printing on frosted glass (the side that has been sandblasted or etched of course).
tuning of the bed: your bed should be super-flat and perfectly leveled.  Use an indicator gauge if you can.
filament chemistry: that is not only to say that certain plastics, like PLA, stick better than others, but also to say that certain brands work better than others (as the additives each manufacturer adds to the plastic influence how the strength of the interface with glass).
printer settings: typically a slow speed, no active cooling and a bit of overextrusion work best.
area of the interface: the larger the area of the interface, the better.  But also: for large uninterrupted interfaces, problems with curling begin to appear.
temperature: each filament has it's own sweet spot, but typically some heat make prints stick better.  However this is true until the print is in progress, once the print is done and the printing bed cools, prints tend to separate by themselves, so in your case you may want to print with a cold bed (which is totally feasible with PLA).

All that said, this would not be a complete answer without a strong warning: any functional part which integrity depends on this kind of adhesion is bound to catastrophically fail very quickly, if working at all.

For one this "assembly" would be extremely susceptible to change in temperature.  While I read too of broken glass due to too good bonding, I only recall this having happened to people using some sort of substance on the glass.  Usually the differential in shrinkage is exactly what makes the print come off the glass (a common tip for stuck prints is to put them in a freezer).

Secondly, as soon as some air (or other fluid) will begin seeping between glass and plastic, it will take very little for it to separate the two completely.  It's a bit like using a crowbar: as soon as there is a crack you can stick the tip in and use for leverage, it is very easy to pry things open.

Finally, be aware that managing to print watertight shapes with FDM printers is relatively difficult.  You can help your luck by extruding at slightly higher temperature than required.

It's difficult to advise on alternatives solutions without knowing what you are trying to achieve, but I would be very surprised if there was not a better alternative. :)

EDIT: the "nozzle too close to the bed" is the wrong way to achieve what you factually achieve with setting the flow rate so as to overextrude during the first layer: you want to increase the pressure of the molten plastic beyond what you normally would do so as to really "squish" it on the glass.


Please suggest parameters for 0.5 mm diameter nozzle

These parameters are not fixed. FDM printers are designed to work over a range speeds, feed rates, layer heights, extrusion temperatures, etc, depending on the type of print job and the filament type used. If you design a printer to work with fixed parameters, you are unlikely to get good results.


Do I need to recalibrate z-probe offset every time I switch to a different layer height?

All modern slicers adjust the nozzle position for the first layer in accordance with your chosen layer height. You can see this in your gcode if you slice files with different layer heights. Before you add special slicer settings and offsets, if you print 0.1mm layers, the nozzle will start at Z=0.1mm, and if you print 0.3mm layers, the nozzle will start at Z=0.3mm.

There are two reasons this is more complex and less reliable than it seems:

Different slicers assume different initial tramming gaps. And your actual tramming gap may not match that assumption. If the slicer thinks your nozzle is leveled at Z=0 with a real physical gap of 0.1mm to start with, that means gcode Z=0.1mm is actually a 0.2mm gap that must be filled with plastic. So the slicer must compensate by starting lower than the nominal layer height.

So what works perfectly for one slicer won't necessarily work correctly for another slicer. And if you tram with a thinner object than the slicer expects (say a post-it note instead of business card) then your first layer will be off.  This is why I personally prefer physical build plate leveling mid-print using screws while watching the strands go down. It bypasses all the assumptions about tramming gaps and just gives you the correct result. (Or you can do the same thing with babystepping in firmware that supports that.)

The other issue is that people use lots of weird, ad hoc slicer tricks to get their first layer to stick. Things like printing the first layer much hotter, or at half speed, or squashed way down and over-extruded, or at 60% layer height, or at 200% extrusion width, will all affect the extrusion volume calibration and the space-filling behavior of the molten plastic flowing onto the bed. The slicer doesn't really have the ability to understand "your" first-layer adhesion recipe.

The combination of incorrect/unknown tramming gap and person-specific first-layer settings is why the slicer can't always get the first layer height and extrusion volume correct across all layer heights. Within some fairly reasonable assumptions, the slicer is smart enough to always correctly relate extruder flow and nozzle position so it fills the space between the nozzle and whatever surface you're printing onto. But if you break those assumptions, it may perform differently for different settings.


If the brim is firmly connected to the part and sufficiently large, you could "duck tape" the brim to the bed after a few hours; by then you should have enough space/clearance to work with.

But maybe the best advice is to invest in a heated bed platform, or use the heated bed if you only did not enable it. Heating the filament to the point close to the glass transition temperature ensures that the printed filament stays ductile. Once filament cools down, it shrinks and cannot grip on the to build plate indefinitely.

My Ultimaker 3 uses a heated build platform that can virtually make every filament stick to it as long as you prepare the bed correctly. On glass I prefer to use a specifically designed printing spray called 3DLAC; that, and a little heat (depending on the filament you print; i.e. the glass transition temperature) make that I never have had any problems with getting filament to stick to the build plate. I'm even able to get the slippery filament POM to stick to the heated bed.


How to implement wall thickness Analysis for my .net project

If your talking about a hollow object, such as a cube with a hollow center. The wall thickness is determined by the model.

If your talking about a solid object, the wall thickness is determined by your nozzle diameter multiplied by your # of walls. This is all adjusted by your splicing software. If you have a nozzle of 0.5mm and you print at 3 perimeters, your wall should be 1.5mm. If you want the wall to be 2mm, then you will adjust your perimeters to 4. Everything within those walls will be whatever you choose for infill.

I work with ASP.NET, Windows Forms, and Console Apps myself. I'm sure you can find libraries capable of taking 3D models but I don't think it would matter because the printed thickness is determined by your splicing settings.

Also for cost of printing, I recommend just using Cura which you just have to plug in some cost information about the filament and it will tell you estimated cost, mm of filament usage, and time.


According to MatterHackers, Simplify3D, and 3D Insider an enclosure is not necessary but highly recommended as ASA, like ABS, is susceptible to drafts and can warp. A heated bed is necessary (somewhere between 90-110 °C), and little-to-no cooling fan used. The enclosure helps ensure adhesion and a consistent temperature. ASA also has fumes and an enclosure can help contain unwanted smells.

MattHackers has a video (Step 4 in the link) on making an enclosure with some kind of plastic sheeting or trash bag (I didn't watch it). There are videos on YouTube on using cheap Ikea side tables and acrylic sheets to make an enclosure if you want a more permanent solution.


The main problem with your setup is the nozzle width.  It is simply too big to accurately print a structure that tiny.  An integral part of the filament deposition is the "smearing" of the molted plastic, that clearly can't happen if the structure is about the same size of the nozzle bore.  Also the printed structure is too flimsy to resist the "suction" of such a big nozzle moving away.

I would suggest to use a smaller nozzle and/or increase the size of your pillars.  A good combo would be 0.2mm nozzle with 0.6mm or 0.8mm pillars.  For these small details, it would be best to have a pillar size that is a perfect multiple of your nozzle diameter.

Other settings that will help you:

reduce the print dramatically (try 20 or 30 mm/s)
use retraction (or increase its amount/speed)
make sure your cooling fan is 100%
use a sensible "minimum layer time" (try 10 seconds for a start)

The first two settings should reduce the force/impulse applied by the nozzle on the pillar.

The latter two should make sure your pillar is "solid" when extruding a new layer on top of it.


Which filament to use for an application involving water circulation?

I saw a lot of selling PETG water cooling pipes.
So PETG will be the best choice considering all factors.

In addition:
You could use any plastic with the oil instead of water for cooling medium.
Also automotive anti-freeze (G11, G12, G13 ...) designed to be non corrosive and much better than water in terms of cooling.


Is it possible to 3D print sharp objects with high details? And how?

Best option for something like this would be to use an SLA printer. They can do sharper image detail compared to FDM style printers.

That being said, printing something like this poses its own set of challenges. In order to print a part, some surface needs to be in contact with the built platform, and depending on which surface chosen, you will end up with having some amount of overhang, or undercut. Not an issue in and of itself as these can be supported with support structures. For the size that you're looking at printing though, removal of the support material will be a bigger challenge.

As for costing of this, that's not something that this forum is used for, but these structures don't look absurdly difficult to print. If you were to contact a local print shop, or check on Google for an online print house, they will be able to give you costing on printing these.


XYZprinting is a company known for vendor lock-in (even filament), so it's not surprising that their software's Linux support is bad, but apparently it is possible to ditch their XYZware and get it to print gcode from whatever slicer you like. Check out the miniMover repository:

  This is a project that lets you send GCode to an XYZ da Vinci prniter. It will also convert from a .3w file to .gcode and back, and can monitor and setup the printer as well. This works with newer printers that implement the version 3 serial protocol. These include the Nano, Mini W, miniMaker and Jr. line of printers among others.

You'll also need to setup a profile for your printer in a slicer (I'd recommend Ultimaker Cura), but it looks like the thread linked from the README has information on settings needed.


It refers to a specific branch of the current project, named RCBugFix. It's basically the most up-to-date, bleeding edge version of Marlin that contains all of the most recent fixes (it is more up-to-date than RC). However, as it's so up-to-date, it's also not thoroughly tested and possibly quite unstable.

  The latest Release Candidate lives in the "RC" branch. Bugs that we find in the current Release Candidate are patched in the "RCBugFix" branch, so during beta testing this is where you can always find the latest code on its way towards release.

Use with caution.


Its mainly due to the regulation loop of the PID Regulator implemented in the Firmware of the Da vinci jr. The P-Factor is a little bit too high. This is the reason why the temperature "overshoots". Because the Printerhead and Nozzle has some volume which is heated up. It takes time to cool down after it has detected an overshoot.

here you can find additional informations about it: https://innovativecontrols.com/blog/basics-tuning-pid-loops


What causes gaps in small region fills and how to prevent them?

I had a similar issue as described in this question. Curiously, yours is almost opposite as my raised lettering was OK, but the surrounding areas were poorly filled.

I came to the conclusion that Slic3r was simply not able to properly handle the geometry in my part. I tried with Cura and had great results!


Will RAMPS able to control 4 stepper motors

There is no problem with using 4 motors instead of 5. The 5th slot is provided to enable use of a second extruders, but many people only have a single extruder printer and leave the 5th slot unused.

how will Marlin figure out which slot the extruder is connected

Which stepper motor is in which slot is something you can configure in the firmware. There is no way for the firmware to "figure it out" without help.
It is quite involved to change it in the firmware, so it is best to follow the default placement. You can easily find wiring diagrams for RAMPS (showing the default assignment of motors to slots) on various resources such as the RepRap wiki.


Setting the startpoint of the EZABL 3x3 mesh

The "EZ" company (TH3D) is trying to make flashing firmware easy by making choices in the configuration for people to set based on printer type. While this makes the flashing more accessible to more people, it does not help people to understand what actually happens in the firmware or what is meant by certain settings. See it as an automated process to add automatic bed levelling to a number of printer models.

To change the bed probing area, you need to modify some specific lines that specify the probe area. How you should change this is explained in this answer on question "How to set Z-probe boundary limits in firmware when using automatic bed leveling?". It would be best to set or increase the constant MIN_PROBE_EDGE. This effectively makes the probe area smaller so you will not hit the bed clips.


The commands in your documentation only work with the Raspi camera.  If that's the camera you're using, you can use the tools mentioned from terminal on your Raspberry Pi, or over SSH.

If you don't have SSH setup and are using your Raspberry Pi with a keyboard and mouse, you can access the command line by pressing ctrl+alt+f1  remembering that ctrl+alt+f7 brings back your GUI.

Setting exposure for Raspi camera

First navigate to the folder you installed mjpg-streamer.  If you installed it in your home folder:

cd ~/mjpg-streamer/mjpg-streamer-experimental

Then use the input_raspicam.so utility to set the exposure using whatever preset you'd like.

./input_raspicam.so -ex night

If you don't have a Raspi camera

I'm currently using a Logitech HD Webcam C310 with OctoPrint.  I'm pretty sure setting the exposure for that is a pretty standard operation and you shouldn't need to install anything.  v4l2 (video 4 linux 2) comes installed with Raspian.

To set the exposure for a Logitech camera (possibly others too) first enable manual exposure mode (1 for manual, 0 for auto)

v4l2-ctl -c exposure_auto=1

Then set the exposure value with

v4l2-ctl -c exposure_absolute=100

replacing 100 with whatever value you'd like.  The values start at 1 and have a maximum value of 10,000.

These commands can of course be run over SSH.

You can also run

v4l2-ctl --list-ctrls-menus

to see all the options for your camera.

Here's a screenshot of my ssh session and my OctoPrint interface for context:


Although the core of Slic3r is written in C++ a lot of other components such as infill generation are written in Perl. Since Slic3r is open source there is nothing stopping you from writing your own infill module in Perl and recompiling your own version of Slic3r.

If your considering doing this you can find the existing infill code in the Github repository at

https://github.com/alexrj/Slic3r/tree/master/lib/Slic3r/Fill

Instructions on how to run from source can be found at

http://slic3r.org/download

Here is a commit where a new infill pattern is added. This should show you all the parts of the codebase that must be modified to add a new infill model (some trivial C++ modifications appear to be necessary in addition to the Perl code)

https://github.com/alexrj/Slic3r/commit/2811af349ae17230a525ddcf819b1ddffaa250c9


Any defacto standards for controlling new tooling options on generic 3D printers (firmware control and signaling)?

Generally: nozzles are not changed, the whole tool head is
While "tool change" is easy to implement in a G-code and could be easily adapted in the firmware, there are several practical issues to hot-swapping nozzles without swapping the whole hotend assembly:

The hotend is a fluid-dynamic system that needs to be sealed to operate under pressure and temperature.
The seal of the nozzle-heatbreak system is in most systems a metal-on-metal pressure seal
Rubber seals are not an option in a system that runs over 180°C
Moving metal seals are very hard to make and run smoothly.

Your idea: especially No
There is literally no way to design a turning Y-switch that fits the following bills:

sealed
filament path ~2 mm
screw-in diameter for heatbreak and nozzles M6
creates enough free space between the lower outlets to mount 2 M6 nozzles with enough space to hold a wrench (=15mm diameter of centers)
fit into the form factor of a conventional heater block

Your idea would need to be considerably larger, need a stronger heater element and creates an impossibly to clean area around the turning junction peg. Atop that, you would trade 1 area of possible leak (between heatbreak and nozzle) for 3 areas of possible leaks (nozzle-block and heatbreak block) and one area of guaranteed leak (the turning peg).
How is it done then?!
Currently, there are the following ways to swap between different of nozzles mid-print that have been proven to work somewhat reliably:

fixed independent print heads with independent carriages.
fixed independent nozzles and heaters on one carriage.
swapping print heads on one carriage.

The first design is used for example in the Leapfrog Bolt, combined heads are for example the e3D Chimera, Cyclops and Kraken. e3D also designed on a reliable printhead - or rather tool  - swapping system starting about 2018 and did release it to the public in late 2019.
Type 1 needs you to level the printheads well and to the same height in the easy case, but with the right setup of firmware, a Z-offset of the two tools can be included and compensated for - possibly even automatically. Type 3 does usually demands you to include very accurate offsets of the used tools or includes a way to measure the offset during operation, though I lack insight into how e3D solves it. Both setups can mitigate oozing of the unused nozzles out of the printing volume.
Type 2 not only demands hyper exact leveling, but it also is very prone to create some sort of oozing of the unused nozzle.


It's a generally accepted fact that FDM/FFF printers will have deviations when it comes to holes and perimeters. Typically, holes print smaller than designed and external surfaces end up larger than designed.

In your case, it seems to be the opposite: the hole is too big. It could be that you're just printing too big overall. You might want to make sure that your printer is printing the 10mm X/Y dimension in you example correctly. If it's too big, part of it may be just the typical oversized perimeter, but some of it might be due to incorrect firmware X/Y 'steps/mm' or extrusion like you mentioned.

See also: "Are you printing undersized holes?"


Prusa MK3S weird 'Blobs' on PLA print surface

After hours of trying to fix the problem by trial and error I found that getting the nozzle slightly higher by approximately 0.1 mm was the solution. I cleaned the rods from dust, tightened most of the screws again and calibrated the printer.

I don't encounter this problem anymore even while printing at 150 mm/s speeds.


OctoPi (Octoprint) time lapse quality issues

That bitrate is pretty low, which might explain the blockiness (is that a word?).

From YouTube's upload guidelines, you are encoding at the minimum recommended bitrate for standard 720P video. Maybe you should boost to 7500K (7.5 Mbps) and see if that helps.

Also, it appears that Octopi is merely calling ffmpeg locally and returning the video. The encoding that is being used might be resulting in blockiness. If you have access to the raw photos, you could just dump them into a directory on another machine and generate a video using a less-lossy video codec. Of course, this would only work if the photos you are taking are high quality. Assuming that they are, here is a nice resource for producing videos from image sequences in ffmpeg.

Good luck!

P.S. Alternatively, if you prefer a lightweight video tool with a GUI, you could use ImageJ.


What causes leaking between the heat break and the heat block?

A video I recently viewed (YouTube link) regarding installing a hot end assembly references the proper sequence of parts placement. Starting with the nozzle, thread it into the heater block until it is proud of the surface by a half of a millimeter, perhaps slightly more. The heat break is then threaded into the heater block until it contacts the nozzle. If not already in place, attach the heat sink.

The next step is to bring the assembly up to maximum temperature and re-tighten the nozzle assembly, obviously using great care due to the high temp.

The video specified that performing this sequence incorrectly would result in leakage from the assembly, which describes your troubles.


Anet A6's filament not feeding through the nozzle

Many printers have a problem with inserting filament into the extruder. Cutting it at an angle is a huge help. It is also very possible that you have a cog or a bad extruder nozzle.

This link could be of some help: Extruder is not feeding.


For your troubleshooting process, I would suggest to use a simple model, perhaps a small cylinder of 20-25 mm diameter, 5-6 mm height.

You've not indicated what material you are using, nor the extruder/nozzle temperatures, but the print appears to be suffering from low temperature problems. You would also include the slicer software name although I don't believe this matters.

The initial layer will print reasonably well, if your slicer performs a reduced speed layer one. The slower filament movement through the nozzle allows it time to heat up for an acceptable layer, while the faster later layers will prevent enough heat to be imparted to the filament.

Increase your temperature at least 10°C for the initial test, as your part is quite a bit below temperature, in my opinion. If the first test is not acceptable, increase by 5°C for each succeeding test.

Keep in mind that individual brands will have different optimum temperatures and within a specific brand, different colors will require temperature adjustment.

The "initially working fine" reference does not include information regarding filament change, color change or other useful information such as print speed, layer thickness, etc., but I'm aiming for a temperature adjustment as the most likely answer.


The engineering approach is that if 30mm/s is working best on your equipment (at least on that day), you should use it; at least until it doesn't work so well for you. You might also try more different speeds (closer to 30 than to 10 or the assumed 60) in case one works even better than 30mm/s - though you might also want to question the assumed 60 (or test a set 60) since assumptions can bite you.

There's not going to be a fixed speed that's always best independent of the printer - everything is dependent on the printer, and its environment - if the temperature of the room varies a lot, it could change the "best setting" on days of different room temperatures. Perhaps the "10mm/s" that you saw working well was using a more effective cooling fan while bridging, or had other differences from your particular unit - or had different settings (other than speed - nozzle temperature, for instance) which impacted the result.

(note that I have limited tolerance for videos, and have not actually looked at yours, so if you're going to come back with "but I don't have a cooling fan", please post a picture of the printer or results that does not involve needing to sit through a video. And perhaps add a cooling fan...)

As for "understanding how to best tune your slicer settings" - far more testing, and keep track of the results. So, do tests (without altering other parameters) at 20, 25, 35, 40, 45, 50, 55 mm/s.

Depending on the results of those tests, say you find the best results at 35-40mm/s, perhaps you try 47 and compare that. Perhaps there's no real difference between the 3, so it's in that range, but not picky.

Then alter one other thing (nozzle temperature comes to mind first, but perhaps it's "fan speed for bridging" or some other, single, item) and do more testing - likely the best speed will change, so you'll need to re-run a range of speeds at the new setting. And keep track of which results (test prints) go with which settings, so you can go back to the ones that work best. Then alter that parameter more, or alter another parameter.

For the most part, there comes a point where it's good enough, or at least where you're sick of testing for a while and results are good enough until you want to test / tune some more.

If you change many things at once, it's hard to isolate cause and effect. If you test many settings but lose track of which settings were used for what result, it can be hard to progess towards better results consistently. When you find a range that seems to make no difference (and it's as good as it gets), be happy that the parameter is not too sensitive, and tend towards the middle of it.


Don't try to bake cookies inside a plastic mold; the plastic will smoke even if not melt. If you need to bake cookies use a cookie cutter made of plastic (your own design or copy) obviously printed on your new printer then bake normally. here is a link from thingeverse to get a cookie cutter .stl file

:) enjoy cutting cookies these holidays

Here is another link from hacks from one person is making the same to show his idea.


Analytic equations to make algorithm of 3D printer

As shown, the mechanics are under-constrained. You can't solve for theta because you have three degrees of freedom (X, Y, theta) and only two constraints (L1, L2). Gravity will tend to bias theta in a particular orientation, but the geometrical stiffness of this arrangement will be so low that it will not be possible to do 3D printing.

To calculate the free-hanging orientation of theta, you will need to know the center of gravity of the end-effector, and solve a system of equations to find the angles and tensions for each cable that produce force vectors which sum to equilibrium with the gravity force vector through the COG. Unfortunately, the tensions will be a function of the angles, so it's not trivial to solve. As a hint, the virtual intersection of the two cables will be coincident with or directly above the COG in all equilibrium positions, and the horizontal components of the tensions in the two cables will be equal.


Printer thermistors read completely wrong after changing firmware

Okay, to anyone who is looking at this post, I am an idiot. I have spent the last 4 or more hours sifting through youtube videos and forum posts to figure out this problem. I have reinstalled firmware modifications dozens of times. All of this, to just now discover that I never had the bed or hotend cables connected. That's right, I never even considered the fact that I had yet to plug in those cables after transporting my printer to a new location.
Don't be like me. Check the simplest solutions first.


Getting worse quality prints on 0.05 mm than on 0.10 mm layer height on Prusa i3 MK3

When printing at small layer heights (high resolution), you probably need to do some test prints first to see if your normal settings work for the lower layer height. You are most probably experiencing an increased pressure build-up in the nozzle due to the nozzle being closer to the bed. A test that might be useful for you is spacing several objects at different distances to see if the retraction, which you already suspect, may be not working optimally or that the nozzle leaks/oozes an excess amount of filament due to pressure build-up. This shows an example of such a test where the nozzle shows oozing.

Tuning the extruder to alleviate the pressure could be:

an increased retraction length, and/or
retraction speed, or
looking into the option called coasting where you stop extruding before the printer reaches the end of the deposition path while it still prints material caused by the pressure build-up.

When printing at 0.05 mm on my home-build CoreXY I experience much smoother prints opposed to printing in higher layer heights (less resolution), but I also get some very fine stringing, noticeable when printing multiple objects or objects with voids.


Which is the best 3D printer to print bodies scanned?

I do not think there exists a printer that meets your requirements. "Cheap"/hobbyist printers roughly fall into two categories:

FDM: does not meet your requirement for sufficient detail and smooth surfaces in the face (and can not print in color).
SLA: meets your requirement for detail in the face but can not print in color. If you are willing to drop the color requirement, this would be a good choice.

There are some hobbyist projects to do full color printing, but they are in a rather early stage. One option is colorpod that can be used to convert an FDM printer (such as the Ultimaker, but the principle works with any printer) however it is in a rather early stage of development and not very reliable yet. Another option is Plan B but that is a DIY project and not available for purchase (and is not very mature either).

That leaves you with the commercial color options. You've already ruled out the 3D systems/projet machines. Another (slightly cheaper) commercial option is MCOR IRIS but it also runs in the tens of thousands. While researching this question I stumbled upon 3D Pandoras but it seems a relatively new company so it may turn out to be a literal Pandora's box (they mention "most affordable filaments" as one of the advantages of their printer even though it doesn't use filament at all) - and prices are not listed on their website.


Z axis OK during calibration, but WAY off on prints

This was a comment from the OP, which effectively answers their own question:

After:

Installing new Marlin 1.1.3;
Changing the Maximum Acceleration on Z down to 20, and;
Changing Acceleration and Retract Acceleration down to 1000.

I have now a printout that measures 24.65 mm (0.65 mm higher than it should) and good enough for me to say, this is OK.


What you're seeing does not look like stringing, which I would characterize as material that exited the nozzle after extrusion was supposed to have stopped, usually due to missing or insufficient retraction, but like the extrusions along the concave contours failed to bond to the previous layer and got drawn across to a point on the other side of the contour where some degree of adhesion resumed. This happens when the lateral acceleration force of going around the curve overcomes the bonding of the new material to the existing material it's being laid down against, and in my experience it's always the result of moisture-contaminated filament. This matches your description of the problem has something that "suddenly" started happening.
To fix it, dry your filament. If your bed is big enough, the easiest way to do this is to lay the whole spool on the heated bed covered by a cardboard filament box with one side cut out to make a heat chamber, and running the bed heater at around 60-70°C (for PLA) for several hours, flipping the spool a few times during it. You can also use an oven but I would not trust the temperature control not to shoot up high enough to ruin the filament. If you want a less hackish solution, all sorts of specialized filament drying systems are available but I don't have experience with any to recommend. I just use my bed for PLA and oven for materials that can withstand higher temperatures.


Upgrade firmware without Slic3r and USB connection?

No, you cannot update the firmware from an SD card.

Yes you can update from a Raspberry Pi (RPi). A RPi runs a Linux distribution, when you install the correct tools you should be able to update through USB using the RPi.

For simplicity and time it would be an idea to lend a laptop for a few minutes.


Options for getting a really flat build surface

It all depends on what you mean by "flat".

Is the problem that the build plate isn't flat (perfectly planar), or is the problem that the distance to the build plate varies based on X and Y coordinates?  They are very different problems.

"Bed Leveling" is the process of allowing the firmware to know the Z position of the build plate for every (X,Y) location.  Some printers support measuring a mesh of points and interpolating the mesh.  This compensates quite well both for warped build plate, and for bad positioning mechanisms which add some position dependent Z-axis offset.

If you really need a flat, planar, build surface, perhaps because you are printing mirrors or precision parts, glass should work well.  It is still, and will not brook any inelastic bending.  It will shatter before it takes on a curve.  If possible, you could consider a Pyrex® bed, since it has a lower coefficient of thermal expansion and won't warp as much with a temperature gradient through the glass.

I tried to find a spec on how flat your glass might be.  I'm assuming it is "float glass", which is made by floating molten glass on a pool of molten tin.  I didn't find a spec, but I found this answer to a similar question:

  I doubt you will find such a spec- float glass isn't manufactured for
  that purpose and it isn't really in the manufacturer's interests to
  maintain such a spec. that said, the stuff is surprisingly flat, just
  as a side effect of how it's made. you don't say what your needs are
  other than near optical tolerances . might just be good enough for
  you. consider though that granite surface plates of certified flatness
  can be had fairly inexpensively these days.

So, it is clearly flat.  I can't tell you how flat.  And the flatness depends on not applying stress to the glass that causes it to bed.  Thicker is stiffer (probably at the third power of the thickness ratio).


Not inherently.
There are two things at work that might cause one color to test weaker than others even as its properties otherwise are functionally identical:

A bad print among good ones.
A bad roll among good ones.

Let's take a look at both, then do a little excursus into plastics and color.
A bad print
There are probably thousands of reasons a print might fail, but bad layer bonding and squish-ability under torsion strongly hint to under extrusion. Now, under extrusion itself can be caused by a plethora of reasons: a clogged nozzle is equally as possible as too thinner diameter as is just a bad temperature. The last one is, in my opinion, the most likely culprit: filaments may look the same and feel the same and bond the same, but in different colors, they sometimes demand different print settings.
As an example, I print most of my Kaisertech PLAs at 200°C, as that offers a quite good result for all of them. Yet when I started I had a white China PLA and a crystal clear PLA from the same manufacturer, both came from the same warehouse in the same shipment. The clear one is quite more brittle on the roll, but their starting-to-print temperature differs by 5°C - the white started to extrude at 180°C decently and printed ok at 195°C-200°C, while the clear needed only 175°C to start to be extrudeable and was really printable at 190°C. Yet recently I tried the same roll again to achieve fully clear prints, and with 210°C and lots of overextrusion, I managed to go almost solid-clear. Because of such experience, I suggest tweaking the settings.
A Bad Filament
There are several reasons why one roll might resulting in bad prints, but the most prominent are that the roll has gone bad over bad storage. It might be stored too hot or too humid, making it brittle or bubble in the hotend. Aging under UV plays a role (it degrades PLA). And dimensional accuracy plays a role because it affects the whole roll of filament. This is why tests should always be performed with equally treated and measured samples to achieve comparability.
Excursus: Plastics and color
What gives a plastic its color? Pigments added to it. Now, pigments can be of varied kinds. Usually, they are embedded in the plastic (=not bonded to the carrier plastic), and the plastic polymer is often either inherently transparent(ish) or white. Let's take some examples to look at...

Yellow. Yellow can be made from a lot of stuff but many yellow pigments react to UV light by decay more than other colors, leading to yellow to fade quickly in comparison to other colors. It has varied chemical compositions, often they can become quite complex.
Black. Black pigment is typically the most simplistic coloration to achieve: pure powdered carbon is one of our most potent black pigments, and also one of the cheapest, making black plastic one of the most common plastics. In contrast to other colors, carbon can't fade. But the plastic around it decomposes and turns white, fading the color this way.

Now, most colorings are - in physical terms - sizeable. Some few to a couple dozen atoms, making them range in the Angström (~Atom diameter) to few nanometer area overall. However, even something as complex as $C_{22}H_{20}O_{13}$ (Carmine) is relatively small compared to the $(C_3H_4O_2)_n$ of PolyLacticAcid, aka PLA. Poly tells us that n is at least 100, because shorter chains are oligomers, not polymers. In comparison, our red carmine pigment is more dense, much more compact in fact. As a result, a 100-chain of PLA is not just in the Angstöm area but in the dozen nanometer to micrometer range - a magnitude of at least 2 larger. Unless we have a huge excess of pigment or a pigment that reacts with the plastic under heat, then the impact of it on the strength should be neglectible to the other fillers often used.


Handling retraction when using a mixing extruder (2 in 1 out)

I found this post on the S3D Forums that seem to have some interesting information on custom scripting within Simplify3D. While this doesn't seem to SPECIFICALLY address the question you've got, it looks like there's a "Retraction Scripts" tab that you could probably leverage your T2 tool inside of, using "OLDTOOL" instead of "NEWTOOL".

For additional information on what variables are available, I found a different forum post here that seems to have some documentation on Simplify3D's built-in script variables. Additionally, from the GCode in the first link's example scripts, it appears that you should be able to actually address M-commands to individual extruders (such as T2 in your case) simply by adding "T(x)" as a parameter to the individual command. I just ran a quick test on my own Marlin-based printer with a 2in-1out hotend, and I was not able to get it to address G1 commands to specific E motors without switching tools.

All in all I think you should be able to use the custom scripts available in S3D to accomplish what you want by switching tools in the layer change script, but aside from that, I don't know what options you have available with that specific software chain.


What hairspray brands are known to contain PVA / PolyVinylpyrrolidone

From an MSDS for AquaNet hairspray:

  Water (Aqua), Dimethyl Ether, SD Alcohol 40-B (Alcohol Denat.),
  VA/Crotonates/Vinyl Neodecanoate Copolymer, Acrylates Copolymer,
  Aminomethyl Propanol, Sodium Benzoate, Cyclohexylamine, Triethyl
  Citrate, Cyclopentasiloxane, Sodium PCA, Masking Fragrance (Parfum)

The MSDS doesn't mention polyvinylpyrrolidone.

I suspect that the "PVA" here is the VA/Crotonates/Vinyl Neodecanoate Copolymer.  A little googling indicates that this is a common ingredient of hair sprays, and works by forming a thin coating over hair to prevent it from adsorbing moisture.

I stumbled upon three types of Loreal(R) hairspray that have these ingredients.  It seems likely that there are more.

Disclosure:  I use AquaNet on an aluminum bed as a PLA bonding agent, and on my Prusa PEI covered bed as a PET-G release agent.


I have a problem most likely very similar to some reported by other users: extruder stepper is visually skipping a step from time to time. It rapidly rotates in the direction opposite to the one it is supposed to rotate.

These two sentences are saying something totally different, and the latter is not what a skipped step looks like. It sounds like retraction, which is totally normal.


This should be possible in GRBL 1.1, see examples below.
Disclaimer: I have never used neither GRBL nor arcs (G2, G3) in practice.
Support for arcs in G-code
In general, in IJK variant where the arc is described by three points (starting, end, center) anything seems possible, including the rainbow-like moves. I imagine (I,J,K) coordinates as imaginary arrow's nock for bent bow. By moving it around, you will "reshape" the bow as needed. I actually found similar CNC Arc Programming Exercise, including:
G01 X40 Z-25
G03 X70 Z-75 I-3.335 K-29.25

and very interesting Quick G-Code Arc Tutorial on CNC Cookbook. It presents R variant example of helical moves (tread milling) with Z decreasing in steps (relative positioning):
G03 X0.0939 Y0.0939 Z0.0179 R0.0939
G03 X-0.1179 Y0.1179 Z0.0179 R0.1179
G03 X-0.1185 Y-0.1185 Z0.0179 R0.1185

Support for acrs in GRBL
I found similar question in Duet3d forum: Caution! - STL Resolution. There is a sentence:

On GRBL you get some planar support (pick any two axes, eg XZ, but not three). (...) Some controllers even implement a helix mode.. but no standards exist.

So the support in GRBL may be limited. However this comment seems to be in condtradiction to the official GRBL README.md, saying:

List of Supported G-Codes in Grbl v1.1:
(...)

Arc IJK Distance Modes: G91.1

I leave a practical proof to you now.


For a larger build volume, what lengths of 2020 aluminium do I need?

Long story short: ratios can be ignored. You only need to let your firmware know actual size, if it needs so. However, using golden ratio seems quite reasonable.

When talking about rigidity, keeping it will become a real issue at some point and may not be always effectively resolved by merely changing 2020 to 3030. Using 4020 or double 2020 could be better solution to compensate the most common forces during printing.


Just for the fun of it and perhaps to contribute to this question, I opened my recent task in Simplify3d slicing software. Setting the perimeter walls and top/bottom surfaces to zero did not generate an error as I expected.

The print preview, essentially a g-code viewer, presented the model as only the honeycomb infill for which it was configured. Having zero layer thickness for the top/bottom also prevented features from printing that were composed of only walls without infill. Small details that otherwise print well were lost completely.

I can see that properly designed models printed with certain infill patterns and percentages would be quite artistic.

With respect to the first question, one could create a program to accomplish the desired result if one were an experienced programmer. It would be a matter of converting a specific set of vectors into g-code for the printer. I'm familiar enough with g-code to know that a well defined curve is easy enough to create in g-code but only if the mechanicals support arcs. If not, it's not so easy. The conversion from a vector format file to g-code would require a talented programmer indeed.

I suspect there are talented programmers "out there," but one must be suitably skilled and equally suitably motivated, yes?


Where to get smartphone shapes from, to create a case all by myself?

I'm not aware of a source for STL files or engineering diagrams, but you can do the measurements yourself fairly easily. I did this to make credit-card-slot cases for my Moto G4 and the fit turned out very good.

Start with a digital caliper and measure the maximum length, width, and depth of the phone, ignoring rounded corners. Next, trace the phone on a piece of paper and use a straightedge to extend the flat parts of the sides to a bounding rectangle, and measure how far from the corner the curved part extends in each direction before meeting the flat part. Finally, if the sides of the phone are rounded too, estimate how thick the phone would be if you extended the curved edge to a full semicircle.

At this point, you can approximate the shape of the phone as the convex hull of 4 spheres scaled appropriately in the x, y, and z directions, if the sides are curved, or the convex hull of 4 cylinders scaled in just the x and y directions, if the sides are flat. In the former (spheres) case, the approximation will be thicker than the phone, and you have to slice off the top and bottom to match the arc segment that's actually present on the sides of the phone. There are ways to do this exactly but I found it doesn't need to be precise and you can just eyeball it.

In order to make a usable case, you'll also need to measure the distances of camera lens, buttons you want to expose, etc. from reference points. This is straightforward with a caliper.

Here's my result, following this procedure:


Hex grids are used for different reasons than triangular grids (such as you often see on bridges and roof systems). Triangles are especially good at being rigid, while hex grids are very material-efficient for a given strength. The second reason ($) is typically more important for 3D printing.

Triangles do have fewer vertices than squares, but it's not always true that "fewer vertices" means stronger. Vertices are one kind of weak point. But in a triangle, vertex "angle-holding" failures simply don't matter. You can fasten 3 bars together with hinges or other joints that have little resistance to changing angle, and the triangle is still rigid.

In contrast, rectangular grids can (and do -- https://www.youtube.com/watch?v=5t9MpNTSbYg) completely collapse if their vertices aren't rigid enough. That combines badly with the fact that vertices concentrate forces, so have to be much stronger than sides in comparable settings.

A triangle cannot change without changing multiple things -- at least 2 angles and a side, or all three sides. Intuitively, the sides and vertices of a triangle work together for strength. This advantage of triangles doesn't transfer to hexagons, but hexagons have two other advantages: First, if you want to fill a space with a repeating shape, hexagons use less material than other shapes. And second, hexagons keep all the individual "walls" shorter compared to others shapes, which makes them less prone to bend.

The material efficiency was proven by Thomas Hales in 1998, according to http://www.slate.com/articles/health_and_science/science/2015/07/hexagons_are_the_most_scientifically_efficient_packing_shape_as_bee_honeycomb.html. His paper "The Honeycomb Structure" is available at https://www.communitycommons.org/wp-content/uploads/bp-attachments/14268/honey.pdf


Based on the image and your report that the problem consistently appears at the same part of the print, this is clearly an (either absolute or net) underextrusion problem, but (mostly) localized to particular layers. I say absolute or net because it might be extruding too little total material, or extruding the right amount of material but losing some of it to unwanted extrusion (oozing/stringing) in the wrong places. Either of these could be related to geometry of the layers involved.

One factor here is probably coasting, which you mentioned in a comment you have enabled. The small amount of coasting probably means it's not a big factor, but coasting always underextrudes. That's fundamentally how it works. You should not need coasting unless you've disabled retraction for some reason; it's a hack that's a poor substitute for part of what linear advance does on printers that support it.

You also mentioned a 60 mm/s print speed setting. At 0.2 mm layer height and 0.4 mm nozzle diameter, that's 4.8 mm³/s volumetric extrusion rate, which is roughly the limit of what you can expect to achieve with your printer's hotend. If you try to print faster than the hotend can keep up with, the material won't melt sufficiently fast to pass through the nozzle orifice. This will naturally slow it down allowing further melting to take place, but in the mean time the extruder gear will either grind into the filament or (much less likely, I think) the motor will skip steps.

Note that print speed settings control maximum speed, which is why you won't necessarily hit problems from having them too high right away, but only at particular layers. In prints with small details, especially with sharp corners, the majority of the printer's time is spent accelerating and decelerating between speeds far lower than the nominal/max print speed, and if you only reach an excessive max speed momentarily now and then, it might not continue for long enough for the material to cool down, in which case everything just works out.

Part of why I mention this is that, if you're trying to keep print time under control, setting a higher max speed might not even help you. Usually acceleration/jerk is the limiting factor to how fast you can print. Max print speed should be set according to the extrusion rate the hotend/extruder can keep up with, and print acceleration/jerk should be set according to the dynamical properties of the printer's axes. If you increase them too much you might get rough surfaces, ringing, or even skipped steps/layer shifts, but you can go pretty high. 3000 mm²/s is probably the absolute max I'd try on an Ender 3. I did this and had some success, but some failures; I don't recall what jerk was and it might have been a factor too. The Y axis in particular can't handle acceleration as well as the X axis can, due to having to move the whole bed, not just the hotend assembly. Somewhere between 500 and 2000 is probably reasonable, but I'd experiment a good deal before trying it on a long-running print.

One additional method to increase speed might be reducing line widths to less than the nozzle width. This proportionally decreases the volumetric extrusion rate the hotend has to keep up with. But I'm not sure how well line widths less than nozzle width work for outer walls. This may adversely affect part strength too, which might not be a problem for your particular usage case.


Second layer: gaps, poor adhesion - why?

I wouldn't describe that as an "OK" first layer. The nozzle is either too far from the bed, or you're underextruding. Underextrusion also looks like the cause of your second layer problems.


Z axis: Stepper motor and lead screw torque calculation

This is a work in progress - I'm still plugging in the numbers

A couple of issues:

You appear to be mixing Force (effort) and Inertia and comparing them directly - this mistake seems to have come from the first link;
You used 8 mm diameter, instead of 4 mm radius, to calculate the torque
You haven't calculated the holding force, which would provide the holding torque required, which can be easily compared against the specification of the stepper motor;
I can't see where you obtained the value for axial force of 10 N, from the datasheet of the stepper motor.

Regardless of these issues, tackling each question separately:

Selection stepper motor to lift given weight?

First equation
Your first equation, for effort, is
$$F_{effort} = S_f+\frac{Load}{2*\pi*\left(\frac{R}{P}\right)*S_e}$$
where,

Starting Force, from linked article, worst case scenario, $S_f = 20$ N
Radius $R=4$ mm$=0.004$ m
Pitch $P=1.25$ mm$=0.0125$ m, and
Screw Efficiency, from linked article, worst case scenario 20 %, $S_e=20=0.2$

So filling in the numbers, for 25 N:
$$effort = 20+\frac{25}{2*\pi*\left(\frac{0.004}{0.00125}\right)*0.2}$$
$$effort = 26.22$$
It is worth noting that this running torque only comes to 6.22 N, much smaller than the worse case value of the starting force, of 20 N:
$$\frac{25}{2*\pi*\left(\frac{0.004}{0.00125}\right)*0.2}$$
$$ = 6.22$$
and plugging in the numbers, for 50 N:
$$effort = 20+\frac{50}{2*\pi*\left(\frac{0.004}{0.00125}\right)*0.2}$$
$$effort = 32.44$$
Again, it is worth noting that this running torque only comes to 12.44 N, much smaller than the worse case value of the starting force, of 20 N:
$$\frac{50}{2*\pi*\left(\frac{0.004}{0.00125}\right)*0.2}$$
$$ = 12.44$$
It should be noted that these values are for a force, in N, not torque, in N•m, and I can't see on the datasheet were you obtained an Axial force of 10 N. To convert these to a torque, you must multiply by the radius of the M8 x 1.25 spindle - M8 is 8 mm, therefore the radius is 4 mm, which is 0.004 m:
$$T_{raise} = F_{effort} \times 0.004$$
Thus reducing the values for the Torque (derived from the effort) even further, by a couple of orders of magnitude, to 0.104 and 0.12976 N•m, for loads of 25 N and 50 N respectively.
So, the estimated value of worst case starting force would appear to be the dominant factor in selecting the stepper motor.
Regardless of all this, if, as you say, that the holding torque, $T_H$, is higher than the running torque, $T_{raise}$, then the holding torque would be the deciding factor in selecting a stepper and the running torque can be discounted.
It is unclear whether the equation that you found is the appropriate equation for calculating the holding torque. This equation appears to be for moving the load, whereas you need it for merely holding the load. For completeness both the holding and lowering torque values should be calculated.
Second equation
Your second equation apparently from Wikipedia - Force, via Lead Screw Torque and Force Calculator,
$$Torque_{raise} = F*D_m/2*\frac{L+\mu*\pi*D_m}{\pi*D_m-\mu*L}$$
where,

Force, $F$
Diameter, $D_m$
Pitch distance of square thread, $L=\frac{1}{D_{Thread}}$, where $D_{Thread}$ is the thread density given in the table.
Coefficient of friction, $\mu$

Whilst I can not see that equation on Wikipedia's Force page, I did manage to find the equation for raising, and the equation for lowering, on the Wikipedia page for Leadscrews - Mechanics1:
$$T_R = \frac{Fd_m}{2}\left(\frac{l+\pi\mu{d_m}}{\pi{d_m}-\mu{l}}\right)$$
and
$$T_L = \frac{Fd_m}{2}\left(\frac{\pi\mu{d_m}-l}{\pi{d_m}+\mu{l}}\right)$$
Plugging in the numbers for 50 N of load:
$$T_R = \frac{50\times0.007375}{2}\left(\frac{0.00125+\pi\times 0.25\times0.007375}{\pi\times0.007375-0.25\times0.00125}\right)$$
$$T_R = 0.1848 \times 0.308$$
$$T_R = 0.0568$$
Plugging in the numbers for 50 N of load:
$$T_L = \frac{50\times0.007375}{2}\left(\frac{\pi\times 0.25\times0.007375- 0.00125}{\pi\times0.007375+0.25\times0.00125}\right)$$
$$T_L = 0.1848 \times 0.193$$
$$T_L = 0.0357$$
NOTE: As the link to the calculator states, there are two different torques - one to raise, $T_R$, and one to lower, $T_L$. As the lowering torque, $T_L$, is less than the raising torque, $T_R$, then it isn't really necessary to calculate it, or consider it when selecting the stepper, as the raising torque is the dominant factor.
Again, if, as you say, that the holding torque, $T_H$, is higher than the running torque i.e. $T_R$, then the holding torque would be the deciding factor in selecting a stepper and the running toque can be discounted.

Amount of load threaded rod can handle?

This would appear to be much simpler to answer, as a value is given in the specifications for the rod, depending upon what you actually mean. It could be:

The weight that the rod can support before slipping, or;
The weight that the rod can support before slipping before mechanical failure,

I would imagine that, the specification given is the weight supported before the threads give way and break.

Footnotes
1 These equations only account for the friction of the thread and the term for the collar appears to have been omitted.
From Torque Required to Raise Load (TR) Calculation, the full equation, for both thread and collar, is given by:
$$T_R = \frac{Fd_m}{2}\left(\frac{l+\pi\mu{d_m}}{\pi{d_m}-\mu{l}}\right)+\left(\frac{F\mu_cd_c}{2}\right)$$
where,

Torque required to raise load, $T_R$
Load, $F=50$ N
Mean diameter of square thread, $d_m = X?$ m
Mean diameter of collar, $d_c = X?$ m
Pitch distance of square thread, $l = 0.00125$ m
Coefficient of friction for thread, taken from the Solved Example, $\mu = 0.25$
Coefficient of friction of collar, taken from the Solved Example, $\mu_c = 0.25$

As the mean diameter, $d_m$ is not provided, it can be determined from the pitch, $l$, and nominal diameter, $d_n = 8$ mm, by
$$d_m = d_n-\frac{l}{2}$$
$$d_m = 0.008 -\frac{0.00125}{2}$$
$$d_m = 0.007375$$
The mean diameter of collar, $d_c$ is not given...
Plugging in the numbers for 50 N of load:
$$T_R = \frac{50\times0.007375}{2}\left(\frac{0.00125+\pi\times 0.25\times0.007375}{\pi\times0.007375-0.25\times0.00125}\right)+\left(\frac{50\times0.25\times{d_c}}{2}\right)$$
$$T_R = 0.1848 \times 0.308+\left(6.25\times{d_c}\right)$$
$$T_R = 0.0568+\left(6.25\times{d_c}\right)$$


Firmware Choice: Marlin vs Repetier vs Other

Given that this printer will have the Pi3 to control "higher functions", is it worth considering a compact firmware like Teacup?

A few days ago I came across klipper.

It seems to do exactly that functionality split you mention


Taking a new hotend into operation (cleaning, forming, etc)

I haven't done anything special to set up mine. But it's probably worth doing a general cleaning. I'd swab it off with alcohol, including running a q-tip or similar inside the fiber feed path. Then blow out the nozzle with compressed air to make sure it's clear.

You could measure the nozzle diameter by fitting fine drill bits in to see which is the largest one the passes through freely. Be sure to measure how much fiber your extruder really takes in when you ask it to extrude a certain length -- but that's about the extruder, not the hotend per se.

Finally, I'd check the insulation, if any. I got a couple hot ends that had big gaps in/around the insulation. I've found that "high-temperature gasket maker" is great for improving insulation (depends, of course, on the shape and design of the specific hot end.


Did you check if your bed is parallel to the gantry?

It can happen that after leveling one side and moving  to the other the adjustment there puts the first side out of alignment - I level my bed by doing some couple turns


I had problems with jamming PETG due to retraction.  My model had many retraction moves, such that the amount of filament used during a printing move was less than the retraction distance.  I found that several trips through the feed gear flattened the filament, which caused two problems.

The flattened (or ovaled) filament had trouble fitting through the round holes and tubes, and
Since it was thinner, the filament was not gripped as tightly so there was less force pushing it.

I reduced my feed gear pressure and the problem stopped.

PETG is not as stiff as PLA.  The multiple trips through mangle flattened it.


Handing OpenSCAD module parameters derived from other variables

This seems to be a limitation of the language. One workaround that's only moderately ugly is, in the body of the module:

mouth = is_undef(mouth) ? pin_radius * 0.9 : mouth;

etc. If you'll only be using the file via a use directive in other files, another approach is file-scope variables. These can be overridden when the module is called, just like module parameters, and they do not provide or take values for/from the calling file's file-scope variable namespace.


do you set the {speed_print} value correct? Otherwise the command G1 Z15.0 F {speed_print} is not executable imho...


I'm almost back in business.

I reinstalled the bootloader.
I switched from Arduino IDE to Visual Studio Code to compile using Crosslink's Anet A8 (Plus) Marlin 2.0 Installation Upgrade YouTube tutorial.

1. Bootloader

I'm using a Chinese USBasp and there are some confusing tutorials on the web which require upgrading the USBasp firmware using another USBasp or Arduino. I avoided this as follows:

I used the Arduino IDE to open the Example | Blink.ino.
Tools | Board: "Anet V1.0 (Optiboot)". (Opti in optiboot means "optimised" so the bootloader will take up less space allowing you to use more options in your Marlin configuration.h.)
Tools | Programmer: "USBasp".
Tools | Burn Booloader. (This will generate the hex file to be transferred to the Anet board. Save it somewhere you will find it.)

Download and install AVRDUDESS if you haven't got it. I used Ver. 2.11. Connect the USBasp to the Anet board and your computer.

Start AVRDUDESS.
Port: usb.
Baud rate: 250000.
Hit the Detect button and it should identify your Anet board.
Hit the Flash [...] button and select the Blink.ino.with_bootloader.sanguino.hex file.
Hit the Program button. It should all work.

You now have an Anet board with the OptiBootLoader installed.

Now follow Crosslink's video tutorial above using the normal USB connection.


I posted this to an Autodesk forum, and a fellow named "MagWeb" proposed the following solution.  I have not tried it yet.

  A possible workflow depends much on the overall shape of the voronoi
  object:
  If it's convex  all over (like an egg) or convex and planar (like a
  cylinder) e.g:

  SelectAll (Ctrl+A or Cmd+A on MAC)
  Run Edit/FitPrimitive and set its PrimitiveType to ConvexHull (CreateNewObjects checked)
  Run MakeSolid on this hull object and set its SolidType to Accurate. Accurate enables the OffsetDistance slider. Pull it down a bit and hit
  update. You want to get a result intersecting but showing the voronoi
  object. If needed adjust the offset. Finally accept.
  Now activate both the voronoi and the MakeSolid result and run BooleanUnion
  Show the FitPrimitive object again (MakeSolid did hide it before) and run MakeSolid again in Accurate mode. Now set a slightly bigger
  offset as you did before. The difference will determine the "lining's"
  thickness. Accept
  Activate the BoolleanUnion result first and the last MakeSolid result and run BooleanDifference to get a hollow object. You might use
  another intersecting object to bool-off an opening the bottom.

  Harder but doable with a different workflow on an voronoi object
  owning concave regions...

edit

Having run some trials, I can confirm this works for simple convex objects. If there are concavities, most likely the source shape needs to be chopped into sections each of which can be treated as convex.
 I played around with Meshmixer's "apply pattern" functions with limited success.  I could get a form-fitting pattern shape but with a rather uneven surface. Some fine-tuning of the pattern parameters may help. Note that the new shape tends to be as thick as the original voronoi object, so it may well be better to do something like the following:
1) create a duplicate of the original
2) shrink the duplicate by a few percent
3) align the two objects to a common origin and take the boolean difference to create a thin-wall version of the original.
4) Build the pattern object based on that thinwall object.

edit number 2

I succeeded!  For those who care, I took an open Voronoi glasses case and put a skin inside to protect your glasses.  See this Thingiverse item


After market bed heater for Intamsys Funmat HT 3D Printer

If you're a brave individual you might try insulating the bottom of your heated bed. You're going to want to get fiberglass or something that can actually withstand the temperatures you're trying to reach; anything past about 230 °C and you'll get organic things like cork and cotton starting to smoke. 200 °C is pretty absurd for a print bed temperature unless you're printing some pretty exotic materials.

Aside from insulating the bottom of the bed to aid in heat retention, you might also try getting an external FET chip for your heated bed, like is recommended for the RAMPS1.4 boards since their connectors don't handle high amperage loads well. External FET plus a 24 V PSU might give you the kind of temperature range you're apparently aiming for. Best of luck with that, and try not to set your entire setup on fire, 200 °C really is kind of absurd for an entire print plate.

TL;DR:

Insulate
External FET chip
24V PSU