text:
How to wire for AC mains voltage relay, when printer board is connected to AC-charging laptop computer?
I know this will be a really obvious question to some people, but I have bricked about 3 boards doing this so I want to be certain before I brick a fourth. I don't have a lot of experience working with AC voltage, especially crimping / hacking it like what's going on here. Trust me it was my last resort to ask this.
Basically, as a chamber heater I'm using some 120V heat lamps (here in the U.S.). The problem seems to be that when I connect my laptop to the board (if the laptop is plugged in, which it has to be for long-term serial control), sometimes I:

Hear an electric shock sound -- the board is fried
Don't hear an electric shock sound -- the board is fried, though

What I interpret from this is that I'm stupidly wiring the 120V heat lamps incorrectly relative to my 3D printer board, such that when I connect it to my charging laptop via USB, the AC voltages are out of phase, causing my board to be fried. Alternatively, it's the 12V/24V power supply that's wired wrong relative to everything else, which also needs to be wired to the same polarity.

I was on the understanding that when crimping a three-wire male electrical cord:

White = Neutral
Black = Hot (or Load)
Green = Ground

... reinforced on the left side of the below image as well:

So, I know that much already. The question is, when I connect this AC outlet to a relay like this, I got NO, COM, NC on one side and IN, DC+, DC- on the other. Which wire goes to COM, and which goes to D-? The board uses COM to denote the voltage that is switched 'on' by the relay, and D- to denote whatever the shared ground is among, the 3D printer, heat lamp, printer board, etc... (For more info, see link to relay)

This 5V relay says it supports AC loads being managed by an arduino / 3D printer, so I was under the impression that I could connect the white wire to its D- pin (which also should receive the "GND" for my 3D printer board) and the black wire to its COM pin. However, what do I do about the green wire? Nothing? Also, was it wrong for me to assume it would support this function when the Arduino is connected to a charging laptop via USB?
Basically, I just need to be sure that my laptop (3-prong), power supply (3-prong), heat lamps (2 or 3 prong) and relay (only 2-prong) all have matching polarities and don't cause an electric shock or fry my board. But I am getting really conflicting results and frying a lot of boards, probably by overthinking this.

Please add a diagram showing how it is all connected up. Also, do the mains outlets which are being used have a ground connection, and are they on the same circuit from the circuit breaker panel?

You mention a 5 V relay but the link shows a 12 V relay - is it just that the link ended up showing the wrong one?

Be aware that those relays may not be labeled correctly, I have a pack of those exact relays from Amazon and the NC and NO are inverted. Use a multimeter to see if COM and NO are connected when nothing is connected.

I linked the 12V relay accidentally - but the 5V relay looks exactly the same visibly

In effect, the ground (from mains) does not need to be connected to the relay, the relay interrupts the "hot" or "neutral" (preferably the "hot", but that is not possible for all plugs, e.g. some European plugs can be inserted 180° turned into the sockets). You connect one of the interrupted wires to the COM, the other interrupted wire (that goes to the lamps) to the NO (or the NC, depending on safety, the logic and/or preference). The ground wire from the mains power socket is not necessary at all (some lamp amratures require this to be connected though). See a schematic below, it uses an Arduino Uno, but you can think of it being the printer board. Note to never connect the ground from mains to the printer board directly!

Image based on source: osoyoo.com
The logic (low voltage side of the relay) needs to be wired as follows:

DC+ is the voltage power supply of the relay module, this is frequently +5 V, but some modules use +3.3 V (sometimes there is a jumper cap to select the voltage)
DC- is the ground from the printer board
IN is the trigger that needs to be connected to the port on the printer board that electronically switches the relay

Nice picture, like it a lot.

That's how you do it electrically.  Mechanical execution of it, however, is serious business, and decides whether the setup is safe or dangerous.

Note that OP uses a 12V module

^ was mistake, meant to link to 5V relay

You need to take a step back and think about what you are doing. From what I read there you are connecting the neutral to the low voltage. You should definitely not mix connections between your high and low voltage side. I think you are lucky to not have broken more things than the logic board.
I quickly drafted this to show the idea.

The relay provides isolation so you do not want any connections crossing over that electrically connects the sides. So you keep the 120V mains stuff on one side and the other side you connect to your logic board and printer supply.
The grounds you can join to a common point or printer frame. I would never join L or N from different cables because at least here in Northern Europe our outlets are not keyed and can be rotated 180-degrees swapping L & N which would create a dead short.

Mains electric specialist here.  When working in mains power, mechanical execution of work is everything.
The first rule is do not casually mess around with mains power -- it will kill you! If you've done a lot of low-voltage tinkering with jury-rigged wires splayed all over the place -- do not do that with mains wiring. Ever.  Break that habit with mains!
The second rule is hard separation.  It is absolutely forbidden, for instance, to have low voltage wires intermingled with mains in a jumble, even inside a metal box.
A "Chinese wall" between mains and low-voltage
By which I don't mean low quality.  Generally all wires associated with mains should be inside a grounded metal enclosure, and all low-voltage wires should be outside that enclosure, or separated by a physical divider.
Here is an ideal setup that will pass muster.

A standard square drawn steel junction box, with knockout holes, \$1
a #10-32 ground screw for that hole on the bump
A cover plate, \$1, made to take ....
... two common receptacles, but get the higher quality screw-and-clamp type - $2.50 each so we can use stranded wire.  I'm assuming you have more than 2 lights.  If not, you can wire this thing so half the sockets are always-on.
a couple feet of #12 stranded THHN wire, each red, black and white  (20 cents/foot)
A relay-transformer that mounts to a knockout hole.

For now just imagine 3 mains wires coming in: black hot, white neutral and green earth. Earth goes to that #10-32 screw hole on the bump, and the metal case grounds everything else.
I pigtail wires on receptacles because it's easier, but it's also clearer for a novice (than using a receptacle as a splice block). On the receptacles, pigtail neutral with white.  Hot gets a red pigtail if switched, and black if always-on.
Fit the relay into a knockout hole, mains wires inward.
Now you have a bunch of black, red, and white wires.  Join them by color! Easy peasy!  This is why I made such a fuss about getting 3 colors of THHN wire.
Button it all up, and the mains work is done.
Getting power into our box
I glossed over bringing mains supply into this box.  Let's review that further.
That junction box is made to mount on a wall.  It's a code violation to use it as a portable box (but lots of people do). However you must use cordage (SJOW, SJOOW etc.) not in-wall wiring (NM, THHN, UF).  I just buy a 14 AWG extension cord and lop the socket off. Visit the electrical supply house (Greybar, not Mouser) and get a strain relief that'll fit that cord and a knockout hole.
If you want to mount it on the wall over another box, they make special 4" square boxes for that. If the existing box is a similar box, they make "extension boxes" with open backs.  They also make ones designed to go over top of a 1-gang box that is metal or plastic.

If you need the existing outlet space on the wall, you can use surface conduit systems like Legrand Wiremold (not to be confused with cable organizers intended for low-voltage cables only). You extend off an existing outlet, leaving that with its original function, then run surface conduit to another box, where you mount these items.
Make the system talk to it
That was a lot of heavy lifting, but the rest is downhill.
On the above relay, you simply attach 2 wires to W and R.  (in fact, common thermostat cable is "W"hite and "R"ed, coincidence: not). If you short those wires to each other, the relay operates and the lights turn on. Use an appropriate relay if needed.  There is low voltage AC on these wires (24VAC between them, 34V peak, isolated from earth and mains) which means you can route these wires without mains-level protection.
They make other relay-transformers, but I really like how this one puts the low-voltage on opposite sides of the knockout from the mains.   They also make cheaper relays that accept 24VDC or even 12VDC, but then you have to supply that.

Note that most 3D printers are connected to Mains wire using C13 connectors into a fused C14 plug, which then connects to the inlet of the Power supply.

I would plug this into a separate mains socket @Trish . If an unswitched socket is needed to plug in the 3-D printer, I would add it (as discussed). It could be done more elegantly with C13/14 connectors, but I am avoiding this to stay within equipment readily available at any hardware store or electrical supply.  Good point that it either needs to be fused or large enough wire to be protected by the distribution panel's circuit breaker.

Let's look at the notes on the relay first, as these tell us what to connect the terminals to.
Powered side

NO/NC - Normally Open/Normally Closed lead. Which you use determines the switching behavior: open line on signal (NC) or closed line on signal (NO). Connect this to the powered component.

For heater components it is best to use NO, as a failure of a signal automatically stops heating, making this a safety means! If any of the supply wires are ripped or pulled from the terminals or the board is fried, the power of the heater doesn't come through.

COM - Common. This is the other lead of the switch part of the component, the line that transports the power to the switch. Connect this to the power supply.

Low Voltage signal side

IN - Input. Here the switch signal goes in

This is a 5 V Signal

DC+/DC- - This is the power supply for the switch and should be the same as the power supply for the Board. Check your Rating!

Red "High" on DC+
Black "Low" on DC-

Note I used European colors to differentiate the 5 V side from the mains-power side better. You have your Neutral in white, Phase in black, Ground in green on your Power Supply picture. This color conversion can be handy.
If the heater lamp has a connection for the ground wire, use it! This should be the same ground wire the power supply is connected to, to ensure safety.


text:
Build plate (PEI on glass) isn't flat after several months of use?
I got a Wanhao Duplicator 6 printer branded as a Monoprice Ultimate about a year an and a half ago, 6 months after I got it I decided I hated the buildplate (I had to use a gluestick on every print to get it to stay down) so I removed the original fake buildtak, and got a piece of borosilicate glass and a sheet of PEI that I attached to it.

After about 8 months I started noticing issues with my bed being weird and never really being level no matter how much time I spent leveling it. (I level my buildplate by printing giant concentric circles, comparing the thickness based on the color in different portions, and turning knobs based on that.)  Today after an hour of trying to level my bed I decided to just print the model I was going to print anyways (a pyramid model) and discovered why it never seemed level.

It seems that different portions of my buildplate are at significantly different heights. Is there something I did wrong to cause this to happen, does it just happen over time, and is there anything I can do to fix it? My current plan is just to buy another sheet of the PEI and stick it directly to the aluminum buildplate installed on the printer. It would result in MUCH better thermal transfer between the heater and the PEI anyways, which is important because the whole point of PEI is that it sticks to PLA extremely well at high temperatures, and not very well at low temps.
If nobody knows what might cause this I'm just going to go ahead and get an new sheet of PEI and omit the glass (it was a bad idea anyways). Thanks for reading.

Get a thicker piece of glass (1/4 inch). Only attached it to the existing bed on one side, and let the other side be free.

Possible duplicate of Will a glass bed warp as it is heated?

I've been successfully printing with the WhamBam system. A magnet is stuck to the AL bed. Then a sheet of PEX material stick on a piece of flex-steel is used as the print surface. The magnet holds it in place. When a print is done, the flex-steel is removed, let it cool 30 seconds or so, give it a little flex and the printed parts pops right off.  Every several prints (10, 12?), give it a wipe with some isopropyl alchohol and you're ready to go again.  We used blue tape for a while, and after fighting pieces off the AL, we went the WhamBam route and couldn't be happier.  https://whambam3d.com/

How thick is your glass?

your build surface looks really scratched up. did you ever clean it? check https://www.youtube.com/watch?v=ShFaJ027pFs and https://www.youtube.com/watch?v=DzaPFlEKP10

Looking at the picture, the first thing that came to mind was, "are you sure it's the bed?".
The height variance looks very regular, and while I'm unfamiliar with this printer's specific mechanics, my thought process trended to the Ender 3 and other v-wheel extruder mounts. If the extruder and gantry carriages are mounted to the gantry spars on V-wheels instead of sleeve bushings or other linear guides, and you've spent a lot of time printing small objects where those wheels are going back and forth over a relatively small travel distance for the entire print, you have been unevenly wearing the wheels so they've become eccentric around their rotational center, and this will cause the extruder to vary its height over the glass in a very regular pattern tied to the circumference of these carriage wheels. This happens especially quickly if you over-tighten the bearings against the gantry spars in an attempt to make the printer more precise.
If the printer uses sleeve bushings, the worn sleeve won't rotate, and any wear on the spar will be very localized to the areas in which you print, but if the printer has spent most of its life printing a grid of small objects (tokens, sets of small figurines), you can still get this regular wear pattern as the printer will spend more time over those areas of the bed.
The fix is to replace the wheels or linear bearings if the printer uses them. If it uses sleeve bushings and the gantry spars themselves are worn in this pattern, you might be able to rotate the spars to put an unworn (or less worn) band of metal on the top of the spar, depending on how the spars are mounted into the endcaps of the frame and y-axis carriages.

You can use a high quality straight edge to determine if it's the bed or if something like described in this answer is likely the cause.

Monoprice ultimaker does use bushings on rod.

From experience, my PEI sheet did not stay flat after multiple use, this may be causing the problems you are facing. It could be the adhesive is failing on different locations.
As you mention, a new sheet of PEI may work for you; indeed the glass will not be necessary then, glueing it directly onto the aluminium bed would be enough provided that the metal bed is straight. Note that glass is straight as a result of the production process to make glass, so this can always be used. To remove the PEI sheet, a sticky glue residue is left behind on the build plate, please read "How to clean up my build plate for a new build surface?" for more information. It is probably easier to remove glue residue from the glass than from the heated bed as that is usually bolted and wired to the printer, but a wet cloth works fine. Personally, I print on glass or directly on the heated bed using an adhesion spray. You do not require the use of a PEI sheet.

Note that printing PETG filament is not recommended without glue stick or any other bonding agent like hairspray. This is not to get it to stick, but to get the print loose from the build plate, PETG fuses to PEI...

I just placed a PEI 1 mm sheet directly on the aluminum build plate with the supplied 3M double sided tape and all is well so far. I paid a lot of attention to detail on preventing, or minimizing bubbles during the process which could impact even heating. I love the surface and ease of removal with the prints. I did not place anything between the aluminum plate and PEI material to minimize great transfer.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
How to wire P.I.N.D.A. v2 to an SKR V1.3 board?
I bought a BigTreeTech SKR v1.3 main board and a P.I.N.D.A v2 for my P3Steel MGN. Does anyone know to wire them together and which part in Marlin 2 do I need to change?

That depends on which voltage you want to run the sensor. You are installing an inductive sensor, you can connect it no differently than a normal endstop using the 5 V from the end stop header, or include a voltage divider or optocoupler to use a higher voltage for the sensor and the low voltage for the logic circuit.

Hi Jack.  Welcome to the 3D printing group on Stack Exchange.  Your question could use some more context so that the question stands alone, without the thoughts you have but aren't recorded.  Filling in the context helps current readers give you a better answer, and, just as importantly, future readers can find your question and learn from the question and the answers.  Some details that would help: links to information about the main board and the sensor, and an overview of what you want the sensor to do for you.

TL;DR
To answer your question how (by assuming you have a 4 pins PINDA v2 sensor) to connect the sensor to your board, you have 2 options:

Do not connect the white wire and treat the sensor as you would use a normal endstop switch (blue is ground, brown is +5 V, black is signal),
Connect the 4 wires (use a splitter cable to split out into a 3 and 1 pin connector, see image below), use the additional pin to read the thermistor value through a free analogue pin, this requires you to do a lot of code changes if you are using a different firmware than the original Prusa firmware.

The PINDA v2 auto bed leveling sensor has an additional wire, usually these bed leveling sensors only have 3 wires (power, ground and signal). The PINDA v2 probe has an additional wire that is connected to a thermistor. This thermistor reading is used by Prusa to compensate the trigger distance with temperature variation.

Wiring the fourth pin would require to reverse engineer the logic behind the temperature compensation if you aren't using the firmware of Prusa (e.g. when you are using Marlin firmware; this is not very simple!). Do note this is something engineered by Prusa printing engineers and implemented in their custom fork of Marlin firmware.
E.g. the compensation is calculated in Marlin_main.cpp by function temp_compensation_pinda_thermistor_offset. This function is called to return the offset based on the read temperature (actual calculation is done in temp_comp_interpolation(temperature_pinda)):

#ifdef PINDA_THERMISTOR
            offset_z = temp_compensation_pinda_thermistor_offset(current_temperature_pinda);
#endif //PINDA_THERMISTOR

It is perfectly fine to not connect the white wire, this is the signal needed to read out the thermistor value used for the temperature compensation. This will disable the compensation feature and will revert the sensor to a normal inductive sensor.

oscar thank you so much for sharing this answer. just bought one of these 4 wire pinda probes, and this is exactly what i was looking for.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Adjust Y axis only for Octoprint Bed Visualizer
I am using the Octoprint Bed Visualizer on my Ender 3/BLTouch setup.  When it moves to the front left corner, the BLTouch sensor nearly misses the bed touching the very edge.  Likewise, it is shifted fairly far forward in the back.
Is it possible to shift the Y axis only for the visualizer?  I see there is an M206 gcode that apparently does this, but putting the code into the Visualizer settings doesn't seem to make a difference.
UPDATE: I checked the firmware settings and they are set as follows, which seem correct,
X_PROBE_OFFSET_FROM_EXTRUDER -41
Y_PROBE_OFFSET_FROM_EXTRUDER -5
X_BED_SIZE 235
Y_BED_SIZE 235

did you define the offset of the Z-probe to the nozzle position in the firmware?

Yes when I updated the firmware I believe I set it correctly but I’ll double check.  Thanks for the reminder

I found a good external link that I'm going to play with for a bit: https://github.com/JimBrown/MarlinTarantula/wiki/How-to-center-your-prints-on-the-bed

Did you set the correct boundaries for the sensor in your firmware? You might want to read: "How to set Z-probe boundary limits in firmware when using automatic bed leveling?".

Ah thanks. It looks like I may be able to make use of MIN_PROBE_EDGE.  I’ll flash some new settings and give it a try.

A minimum probe value added to the boundaries is part of the problem, identifying the correct bed limits for the probe is the first hurdle to take.

I have no MIN_PROBE_VALUE currently added to the boundaries.  Since I'm having issues with the sizing I could either adjust the size of the bed or tweak it through the *_PROBE_BED_POSITION values.

Have you made any progress to answer your own question? Or did the question "How to set Z-probe boundary limits in firmware when using automatic bed leveling?" help you to fix the problem?

Ultimately I simply adjusted the PROBE_OFFSET_FROM_EXTRUDER values to shift the probe touch position in the direction that I wanted.  This effectively moved the entire working area on the bed in the direction I needed.  It's a bit of a hack but it worked for my purposes.

Could you post your last comment as an answer, please..? If you answer in the comments then the Q&A mechanism of the site gets broken, and in addition, it doesn't decrease the length of our unanswered queue, which we need to keep to a minimum in order to graduate out of being a beta site. Many thanks. :-)

authors: Икстрим Пром


text:
Why doesn't PLA stick to heated bed?
I have a basic Creality Ender-3 with a black rough bed cover. I'm printing with PLA.
After assembly, I printed 3 or 4 small toys sliced by Cura with basic settings. All were printed very well!
However, after that, extruded filament would not stick to the bed. I tried the following:

Bed calibration with A4 paper (each corner with a tight nozzle to paper and repeated calibration again)
Once raised up the bed temperature from stock 50 to 60 °C
Washed the bed with a soap and water (and dried)
Sprayed with a hair spray
Changed the filament

Nothing helped so far.
What else can I try?

Not all hairspray brands work! Have you tried glue stick, wood glue, etc.? Have you tried larger first layer height? Slight over-extrusion on first layer, higher first layer temperature, etc.?

I think you may have used the wrong substance to clean your bed. Try using Isopropyl Alcohol (IPA). You may have left some residue behind from the soap, which is now interfering with adhesion. When that is done, ensure you've gone through the steps for bed leveling again. It's amazing how much of a difference proper bed leveling makes in adhesion. If it still doesn't work, post some pictures up of your results, which will help tremendously in getting you a better answer.

As an addition to Pᴀᴜʟsᴛᴇʀ2's answer, I found that when using hairspray, some brands of hair spray add some sort of ingredient that gives it a sort of a glossy finish which makes the print not stick to the bed.
The stuff I use is 3DBilby's 3DLack which can be found here. It costs quite a bit but gives very good results. When cleaning the bed, especially when using ABS, a stronger solvent like Acetone works as well.

Soap and water are absolutely the wrong stuff for cleaning the print bed. It's a base, and bases are slippery. This helps things like dirt slip off when we clean, but will also make it harder for filament to adhere to the bed. Instead, use rubbing alcohol, which is slightly acidic.
Additionally, not all hairsprays are good for this. There is a certain ingredient you need, and some don't have it. Others do have it, but also have other things that interfere. AquaNet is known to be good for this. You can also buy made-for-purpose spray for 3d printing beds.

Set the bed temperature to the glass transition temperature, around 80 °C for PLA:

Filament is slippery and non-adhesive at room temperature

Filament becomes sticky when near its melting temperature

Printed items can pop off of the bed by themselves when cool.  This shows that they become less sticky when cool

I was told about this and have been successfully printing PLA without rafts, brims, skirts, etc.
Try a tiny print such as a small temperature tower to start.
Note:  I've only been using PETG recently and continue using 80 °C; perhaps a bit of 'elephant foot' occurs.  However I'm primarily doing structural prints (tools, cord hangers, etc.) and strength and print reliability (tall prints not coming loose during printing) are my highest priorities.
I appreciate the suggestion of dropping to 75 °C for later layers and will try that.

The glass temperature of PLA is about 60-65 °C, too high is not beneficial for printing. A temperature of 80 °C is more used as a bed temperature for PETG.

@Oscar  How not beneficial for printing?  I have been getting what appear to be excellent results.

A too high bed temperature can cause elephant foot.

I have an Ender 3v2 with a glass bed.  I like to use 80 °C for the first layer, and 75 °C for the other layers.  If I set the bed temperature any lower, I have to add a wide brim to just about anything I print.

Re suggested temperature format edits, please see https://sites.google.com/a/ngs.org/ngs-style-manual/home/T/temperatures

@Technophile I did see the site you suggested. 3DSE has its formats as well. Please see Useful things to check for when cleaning up posts.

@agarza  following its link https://3dprinting.meta.stackexchange.com/questions/297/dont-forget-the-space, I do see that an nbsp is required.

authors: Александр Еремеев


text:
Would PC be considered food-safe in this setup?
I have one 3D printer with Makerbot mk10 extruder and I would like to print my custom cup for tea or coffee from PC.
Other than that, I came across idea that FDM printer will always leave small holes on a surface, so they will be a perfect place for bacteria and make them hard to clean for dishwasher.
As far as I know, we have several techniques of polishing, like acetone vapor bath for ABS, however, I haven’t heard about something like that for PC and not sure if it's food-safe.

I also print coffee mugs.  I have used ABS for a long time, and, given the statements here and elsewhere about bacterial growth sites, have been attaching my life to a thread.  That's fine for me, but I don't make mugs for anyone else.
There are three areas of concern I've found so far:

The plastic may be toxic,
The machine itself, especially the nozzle, my deposit bits of lead (Pb) into the object, and
The small gaps may harbor pathogenic bacteria.

The toxicity of the plastic can be addressed by researching the FDA website.  ABS is generally safe, although additives could be questionable.  Also, for some reason the FDA lists ABS as safe, but not for use with alcohol -- so much for beer steins.  Since the actual MSDS for hobbyist filaments can be hard to get, I'm considering using a less controversial plastic.  PETG isn't good enough -- it softens at the temperature of boiling water (I know, I've tried).  My next attempt at non-ABS will be Poly Carbonate.  I have a spool queued up, but it is as yet untried.
The nozzle can be replaced with a stainless steel nozzle, which does not contain lead.  Perhaps because they aren't heated, no one seems concerned about brass feed gears in the extruder.
The layer gaps might be addressable by acetone smoothing.  I haven't had great results smoothing mugs.  The first problem is that after smoothing a lot of acetone remains in the ABS.  Even after a couple of weeks, when hot water is poured into the mug the acetone in the plastic vaporizes and creates bubbles in the surface, which completely defeats the purpose.  I've also seen more long-term age-related cracking in vapor-treated ABS.  This could also be due to gradually losing acetone and the surface shrinking.  If one were to use acetone smoothing, I would suggest post-conditioning the mug in a heated, partial vacuum chamber to encourage the acetone to escape.
The method I intend to try to seal the inside of the cup is to use a food-grade two-part epoxy.  I haven't done it yet, so I don't know how it will work.

Good point about acetone. And for polycarbonate, it looks like we have only even more toxic solvents, so I think it's not an option as well. However, maybe something simple like sandblasting or something else could work could work apart from epoxy? According to articles I was reading about food-safe resin they're safe only up to 50C or 120F, so it looks like we can't use it for tea or coffee, unless they're cold.

From the FDA information I found, polycarbonate looked good for food safety.

I've been thinking 3d printing will create a market for a new food-safe resin sealer product able to resist higher temps (dishwasher drying cycle) where perhaps one didn't exist or wasn't large enough before. Perhaps something like a clear brush-on enamel. You'd still want ABS and steel nozzle (don't mess around with lead), but it's something to watch for.

As for the brass gears... it's not the gears staying cool that makes them okay. It's the filament. A molten (liquid) filament can, like most liquids, act as solvent; it's more ready to absorb or dissolve other material into itself. Since the filament is still solid while moving through the gears, any transfer is much less likely.

I would like to try such a sealer.  The 2-part epoxy kind is inconvenient to use.  A solvent-based material would be great.  And, thanks for proposing the plastic-as-solvent mechanism for transferring brass contaminates to the plastic.  Has anyone analyzed the E3D nozzles for lead contamination?  Lead is not an essential component of brass.


text:
What is the purpose behind a glass nozzle?
So while doing some research I stumbled upon a wiki page on reprap from a few years back where the user was creating a glass nozzle to replace the brass and PTFE assembly.1
Does anyone know the theory behind this? Glass is a great insulator so I could see how that would be beneficial for the heat break part but I can't see how it is appropriate for the nozzle as this is normally brass which is a good conductor.
Surely the glass takes much more energy to heat up?
On a side note I've seen similar projects using ceramic instead.

Welcome to 3dPrinting.SE! While I don't know for sure, I'd suggest the reason for it is glass has great wear properties. You're right in that it has great insulative properties, which means to me it wouldn't transfer heat into the filament very well ... which is probably why it has never really been used too much (if at all). Just my speculation, though, as I don't know for sure.

First off, this is not a glass nozzle, it is a whole hotend design. A super simplistic one.
Glass is, like ceramics, not a good thermal conductor but has a quite good thermal resistance - it only melts at about 1600 °C, which means you will never have to fight melting or warping of the filament path itself at all - the heater copper wire will melt at about 1084 °C, so way before the glass, and most plastics that are printable start to decompose at less than 400°C.
Construction-wise, this design has some benefits:

Due to the design and material properties, this hotend doesn't need cooling fins and a "coldend" is not needed at all.
The whole hotend being one solid piece makes it pretty much a "plug and play" item and prevents leaks.
Glass is extremely abrasive resistant. This means a glass nozzle could be used for stuff like carbon fiber filament very long.
Glass can be molten, repaired and modified with fairly simple equipment, e.g. a burner and some skill.
Glass could be easily cleaned up to medical and food-grade machine ratings. The simplicity of the hotend assembly could make it autoclavable as a whole piece.

It has some downsides though:

Glass is brittle and does not take lateral forces and sharp impacts kindly. In other words: Handle with extreme care.
Due to the glass being an insulator, the inside of the hotend will have a lower temperature than the outside.

A fairly thin-walled meltzone could mitigate this problem to some degree at the downside of making it even more prone to breaking
The insulating behavior means, that the meltzone has to directly feed into the nozzle with as little unheated area as possible to prevent the molten plastic from solidifying inside the nozzle again.

The skill needed to create a properly sized nozzle from glass is tremendous.

Many glasses have their glass transition between 500 and 800 °C, they get soft far below the melting point (quartz glass being the exception).

@cbeleitessupportsMonica most copper wires also start to destroy themselves well below the melting point. Plus, softening of the glass would be of no issiue: no plastic is shaped at 500 to 800 °C but the highest ones I know are worked at 300-400 °C.

Ceramic I can understand - very strong, great thermal range capability.  Glass not so much - you'd need some seriously careful annealing at least.
 In either case the material is much harder than brass, or even steel, so you could presumably use tougher tools to unclog, etc. as needed.  If you're using materials loaded with wood or metallic particles, the glass/ceramic tip will be less likely to degrade than brass.
BTW, glass being a thermal insulator means it may take longer to heat up, but the energy required is probably less . The specific heat of glass is on the order of .84 J/gm-K . Compare with brass at  0.38 , but keep in mind the rate at which brass will shed heat into the air vs. glass.  In either case the energy is tiny compared with the thermal mass of the hotend assembly.

Is being an insulator possibly beneficial to keeping the molten material at temperature as it exits? I would think metal nozzles are somewhat below the hotend temperature at their tips.

@R.. they are a little, but the thermal flow in the nozzle is much higher. think about it like this: A ceramic plate can be heated on one spot and be brought to glow there, and a couple centimeters over, it is almost room temperature, as the flow through it is bad. If the same plate was metal, it would be much hotter there. I expect that a glass or ceramic nozzle would be quite colder than the heating zone.

@Trish: With enough time and energy, an insulator can be properly heated across its body. But, more importantly (and extending R's point), the higher the heat flux of the material, the less fickle it is in terms of shedding heat to variation in circumstances (e.g. drafts). I'd wager a guess that a more consistent nozzle temperature leads to a more consistent flow out of the nozzle, leading to a better overall printed product.

In contrast to the page linked in the question, I'd probably want to go for quartz glass - that would avoid a whole lot of trouble wrt. tensions due to temperature changes. It also has a much higher glass transition temperature than "normal" glasses. Of course, correspondingly higher temperatures are needed to draw the capillary.

The glass nozzle might be beneficial with abrasive filaments with metal particles that would wear down the brass. As glass can be reasonably easily shaped into a nozzle with standard DIY-tools it might be an interesting project.
A commercial nozzle for filaments with extreme abrasive properties is the Olsson Ruby nozzle. These are designed to hold an actual ruby in it, though ruby is probably not feasible for a DIY-nozzle.

I believe the ruby nozzles were running about $100US. Not something I'd purchase for intermittent use, that's for sure.

I can order an Olsson Ruby for a little shy of 100€ per piece for the base version and about 170€ for the high temp version.

The glass nozzle was an attempt to be able to see the plastic filament melting and to see what is happening during retraction. I also though to use a glass nozzle to heat the plastic to just under melting point then use a LED laser (10 Watts thereabout) to heat just the tip of the plastic through the nozzle to bring it to the final temp where it would melt. Turns out it is unneeded, and lasers waste a lot of energy as heat.

One shortcoming would be that when it comes back to lay down a new line next to an existing line, I would think that it would need to be able to melt the previously printed plastic, especially any bumps and strings.
High thermal conductivity for good heat flow seems important.


text:
Some steppers only rotate one way on RAMPS 1.4
I have a RAMPS 1.4 tester code for Arduino MEGA, only need stepper motors and drivers connected. The code in a working setup moves steppers in both directions but in my setup does something wrong:

Extruder 0 , Axis X/Y only moves in 1 direction all time.
Extruder 1 , Axis Z works fine in both direction

I changed stepper drivers but always Extruder 0, Axis X/Y were moving in same direction all time.Tried 2 differents RAMPS 1.4 shields with same results in tester code, Sprinter or Marlin.
I have the code if someone wants, it works fine in other setups.
What could be the problem?

Hi jimbi3d, welcome to 3DPrinting.SE! Strange to see that some rotate in one direction only. For X/Y/Z steppers this can be related to the endstops, if configured incorrectly, the steppers only move one way, but this cannot be the cause for the extruder stepper. I hope somebody has experienced this also and shares their knowledge.

You could check the voltage on the stepper driver DIR pin when attempting to move in different directions - if they code to drive each stepper is identical, the DIR pin of the MCU might be broken.

Oh, thanks so much , I tested the driver PIN in multimetter and yes that is the problem, I tested 2 connections  Extruder 1 (working) and Extruder 0(not working) ,
Extruder 1 gives 0 and then near 5v ,
but Extruder 0 gives 0v always. So the problem is MCU, arduino right?

Could also be a wiring problem.  I have a Migbot 3D printer, it came with cables that were wired 1-2-3-4 on both ends. Two of stepper motor end needed 1-3-2-4 tho to drive the A & B coils correctly. (the extruder for sure, and I think the X axis (back and forth), or maybe the Z axis (up & down). Or perhaps both, it's been a while since we fixed it, and I recall we had lost one cable and the replacement had the wrong pinout. We found the problem when the printer wouldn't 'home' in the correct spot and was ignoring the limit switch when it got to what turned out to to be the wrong switch.)

@CrossRoads I'm using same stepper motor for Extruder 1 and 0 , just disconnect from power and swap for mettering, so can't be a wiring problem right? Also swapped stepper drivers.

@jimbi3d Yes, that does sound like a problem on the Arduino in this case.
You can consult the pin definition file to find out which pin on the MEGA the "E0 DIR pin" actually is (hint: It's pin 28) and write a simple Arduino sketch to try and turn it on and off - adapting the "blink" sketch should work well. If it still outputs nothing, you'll need a new Arduino MEGA.

@CrossRoads Wiring issues might explain the stepper motor not turning at all, or moving erratically. Since it does turn in one of the directions, the phases are generated in the correct order between the stepper driver and the stepper motor.

The problem was solved, it was the faulty arduino board

As towe said, it could be a dir pin ( can be checked by metering the dir connection), but in my experience this behavior has usually been a limit switch issue (as 0scar pointed out).  Try seeing if you have a limit switch setting somewhere that expects normally closed (assuming no limit switches are connected).
There is also another possibility that has to do with microstepping on some drivers, but i'm guessing you are going for a rudimentary no microstepping test right now (and have configured jumpers appropriately).


text:
Random lines are being printed?
I recently got a Creality Ender-3, and tried printing a few things for some tests. I’ve printed a cube and just printed a cylindrical tube today, and I notice each time, it adds this random line on the left and a sort of outline around the actual print. Neither of these were there in my Cura file, but they’re always printed and I’m not sure why?

There isn't a problem. These are settings in Cura. I'm not sure what the beginning line is (on the left), but I've heard of it. The lines around the object is a Skirt. You can turn it off by going under Build Plate Adhesion in your profile settings and setting it to "None". Since I don't know how to deal with the line, this is left as a comment.

Can you please share the start G-code? The straight priming line is probably inserted in the start G-code.

Related: writing g-code: swiping at start of print

@0scar That line indeed part of the Start-code preset for Ender-3. Knowing my Cura profiles, I clearly see you are using the Ultimaker Cura Ender-3 preset.

Hello @Geovenox, I noticed your question has been up for a while now. Have any of the answers below been able to solve your question? If so, would you mind accepting the appropriate answer. If not, what is missing so that we may help you further? Also, if you have figured it out on your own, you can always answer and accept your own solution. Thank you.

If the printer is printing, it is instructed to do so by the G-code file unless you are printing through an external software program that has extra G-code to print before your print starts. E.g. in OctoPrint print server it is possible to execute G-code before the print starts.
Left line = Priming
The straight line on the left is typically used to prime the printer nozzle to get the filament flow starting, this is typically seen in PrusaSlicer (Prusa's fork of Open Source toolpath generator for 3D printers Slic3r). This straight line is called priming line, purge line or intro line, and is typically (but not necessarily) printed outside or at the edge of the bed area. Furthermore, a prime line print routine will catch errant nozzle ooze, test extrusion (it is the first indication if the nozzle to bed distance is correct; if not you can abort with minimal material loss) and perform a final wipe action to avoid stringing between the prime line and start of the print. Note that this straight prime line is not a standard option in a custom profile of Cura, so this was part of the Ender-3 Preset you imported or possibly you have copied a starting G-code that includes this prime line.
A typical set of G-code lines to create a prime/purge/intro line is found in your start G-code and could look similar to:

G1 Y-3.0 F1000.0 ; go outside print area
G92 E0.0
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line
G92 E0.0

After slicing your object, you will find such lines in the generated G-code file, but they are not displayed in the preview. Further information can be found in Writing G-code : swiping at start of print
Equidistant line = Skirt
The lines at distance from the print object is called the "skirt", the skirt is an option found under the "Build Plate Adhesion" options in your slicer. The function of the skirt is similar as described for the straight prime line, but it has additional effects that can be wanted. It also shows fairly fast if the bed is unleveled as a whole or if the bed is greasy. Please look into: "What are main differences between rafts, skirts and brims?
".
Note that it is usually superfluous to use both the prime/purge/intro line and the skirt, both have a similar function. The benefit of the skirt is that you can configure it within the slicer (e.g. length of the printed skirt, height to use as a shield for draft or ooze and distance to product). The downside is, that a skirt limits the useable build area by the distance and width of the skirt.

The outline around the actual print is called Skirts. and the random line on the left is called intro line it's not necessary you need both Skirt and intro line. The intro line can disable from custom starting gcode settings
A skirt is an outline that surrounds your part but does not touch the part.
The skirt is extruded on the print bed before starting to print your model. Skirts serve a useful purpose because they help prime your extruder and establish a smooth flow of filament.  Observing the skirt also allows you to detect and adjust any leveling or adhesion issues before the actual model begins printing.
You can easily edit/disable(not recommended) those settings in Cura (or in any slicing software)
In you Cura navigate to Build Plate Adhesion settings

Skirt line count: The number of skirt lines printed around the model.
Skirt distance: The distance between the model and the skirt.
Skirt minimum length: The total length of the skirt. This will
override the skirt line count when the minimum length is not reached
yet.

I also have the Ender 3 (pro) and have been getting annoyed by the intro line / priming line on the left of the print area, since I find it difficult to clean off the print bed.  I've now found a way to disable it.  In general I have found that the skirt is enough to prime the extruder, so the intro line doesn't really appear to be necessary (from what I've seen so far).  Although for very small prints the skirt might not be big enough to fully prime the extruder (but this hasn't been the case for anything I've printed so far).
The intro/priming line is part of the "Start G-Code" in the Ender 3 profile in Cura (I'm using version 4.4).  Here's how you can disable it:

From the Settings menu, select "Printer" and then "Manage Printers".
Click the "Machine Settings" button.
Expand the window under "Start G-code".

Find the following 3 lines of G-code:
G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little
G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line

Add a // to the start of each line to comment it out (so the printer will ignore it)

Thank you for the contribution, but in all of my Cura projects it tells me G-Code editing is disabled and there's no way for me to edit the lines.

These are features, not bugs.
The line off to the left is the "priming line"; the printer is extruding a bead of material to ensure that any oozing is cleaned off of the filament tip, and that the filament is properly pressed into the hotend and flowing consistently from the nozzle, before beginning your print. Notice how plastic didn't start extruding on the "backstroke" until the extruder had almost reached the back of the plate? If you didn't have that priming line, that material would have been missing from your print's first layer.
The ring around your print is the "skirt". The skirt also helps to prime the extruder, and allows you a quick look at your first layer printing behavior before the printer begins printing your actual part. Is your build plate level? Is the nozzle clearance correct? Is the filament adhering well to your bed prep? Are your build plate size and offsets set up properly in the slicer (or are you about to try to print off the edge of your plate)? A skirt can help you determine all these things very quickly, like before the printer starts working over the actual print area, giving you a chance to correct them on-the-fly or at least quickly cancel the print, and it uses a minimum of material to do so compared to a more substantial plate adhesion aid like a brim or raft.
You can disable or alter the behavior of both of these in your slicer software; exactly how depends on the slicer software.
In Ultimaker's Cura, which comes fairly highly recommended for use with Creality printers like the Ender 3, the priming line is part of the pre-print configuration script in the printer settings, and you'll need to have a working knowledge of GCode to mess with that. GCode isn't terribly difficult, but it was designed for computers to generate more than for humans to comprehend, and incorrect GCode commands in this section can cause printer firmware errors, failed prints and can even damage your printer.
The skirt settings are part of the slicer settings for your specific print, under the "Platform Adhesion" section. You can typically choose to print a skirt, a brim (similar concept but it extends all the way in to the outline of the part's first layer, and helps hold the part on the plate while it prints), a raft (a more complex adhesion aid where the printer will lay down several layers of material as a foundation for the actual print), or nothing at all. You can also customize the settings of each of these to create a larger or smaller skirt or brim.
Personally, I keep both of these print features enabled for almost all prints on my Ender 3 Pro; the only time I disable the skirt is either when I want a brim (small parts like 3DBenchies print more reliably with a brim) or when the skirt just won't fit on the build plate (which usually means the part has a large enough footprint not to go anywhere during the print), and the only time I mess with the priming line is when I need that area of the build plate for the actual print. These features cost you maybe a penny or two in filament and can save you far more than that in frustration and wasted plastic on failed or imperfect prints.

authors: Олег Анатольевич


text:
Removeable Glass Bed vs. Removeable Springsteel Beds
Removeable beds are starting to get more common in low-price consumer-grade printers. There are pretty much 3 types:

Unheated beds
Heated beds from steel held by magnets or clips
Heated glass beds held by clips

Unheated beds are the lowest class, and not an issue here. What are the pros and cons for a steel/springsteel bed versus a glass bed?

In favor of glass:

Smoother surface gives you a nicer bottom layer (though Kapton-layered steel is no slouch)
More even, regular surface makes bed easier to level
Easy to prep and clean
More scratch-resistant makes getting under a part with a metal scraper a little less harrowing
Corrosion-resistant (glass doesn't rust; silicon dioxide is in fact already about as oxidized as it can possibly be)

In favor of steel:

Flexes for easier release
Safer (steel plates don't shatter, at least not at temperatures you're likely to use them)
Conducts heat better for faster and more even heating
Slightly less expensive on average

Surely slower conductivity means more even heating? That way the heat can dissipate more easily.

"at least not at temperatures you're likely to use them" bwahahahaha


text:
How do I install the USB drivers for Bigtreetech's SKR Mini E3 v1.2?
I want to install the USB drivers for the BIGTREETECH SKR Mini E3 v1.2 from the GitHub page but I don't know how to proceed.
Any help will be greatly appreciated.

Go on youtube in the channel of teaching tech. Make a search about the board Bigtreetech SKR mini E3 v1.2 and I found this link that could help you too https://www.thingiverse.com/groups/ender3/forums/general/topic:40751

authors: محمد علي اليمني


text:
How to switch firmware from 12 V heated bed to 110 V SSR heated bed?
According to the instructions I have read, you use the same output on the printers mainboard to control a 110 V heated bed with a solid state relay, as you do to power the 12/24 V heated bed that comes with the printer.
The relay's datasheet states that its max input current is 25 mA, obviously a 12/24 V heated bed would draw a lot more than that.
How does Marlin know that the heated bed pins are controlling a relay now instead of a bed directly, and therefore should limit their current output?
In other words: I am worried that if I just drop in the relay, it will burn up since the board still thinks it needs to supply high current to the bed.

I would bet the low figure you are seeing is the relay's draw (how much power it takes to energize it) and not the amount of power going through it to power the bed. There's a separate rating for that.

@Paulster2 Ok I hooked it up to a DC power supply and limited it to 25mA, it draws around 17mA at 24V with nothing else hooked up to the circuit.

@Paulster2 http://pickercomponents.com/pdf/Relays/PCS15.pdf It definitely says "max input current", and the word draw is not present unfortunately. Perhaps you can make better sense of this.

How does Marlin know that the heated bed pins are controlling a relay now instead of a bed directly, and therefore should limit their current output?

Marlin does not (need to) know this. Simply put, all Marlin does is switch on/off the voltage at the heated bed output. The amount of current that will flow is a function of the voltage and the device connected. If you connect a heated bed to a 12 V voltage, a high current will flow. If you connect your relay to 12 V, only a small current will flow.

In other words- I am worried that if I just drop in the relay, it will burn up since the board still thinks it needs to supply high current to the bed.

You do not need to worry about this. Your question is essentially equivalent to this: "if I replace my 100W incandescent lightbulb with a 1W LED one, do I need to replace the light switch in the wall?" The switch (i.e., your printer board/Marlin) does not care what load is connected to it, so long as it does not exceed the maximum rated current.

haha indeed. thanks for clarifying. also if lightswitches had microcontrollers and thousands of lines of (optional) code I would probably be equally careful about not hooking them up wrong too.

Doesn't the firmware use PID tuning to control the bed temperature though? Would that not have an effect on the relay if it wasn't set up just right?

@cds333 It does, but that's the case irrespective of how you drive each heated bed. You would definitely wan't to re-PID-tune after the change.

There are two current parameters which you are looking at in your instructions for the solid state relay. The first one (the 25mA) is for the control circuit. This is how much amperage the device itself will draw when in operation. The second is for the load circuit. This is the max amperage which can pass through the device.
Your instruction sheet shows the device having the ability to work at 10A, 15A, 20A, 25A, or 40A. These are different ratings for the same style of device. When you purchase the device, you'd need to specify which amperage rating you'd want your device to be at. They use the same spec sheet for all five flavors, because they are basically the same thing with the one exception, which is the amp rating.

It is the 40A version, but I understand the operation of the load side of the relay. What I need to know is do I have to do anything in Marlin to inform the board that it is controlling a relay instead of the stock DC-powered heated bed?

@cds - Your question doesn't really specify that, but no, you don't need to tell Marlin anything. It is just an internal switch within the code which tells the relay to turn on. It is providing power to the relay, just as though it would provide power to the heating element. It can provide up to enough power to power a DC bed, but the relay will only use what it needs, which is the 25mA, to energize the circuit.


text:
What causes leaking between the heat break and the heat block?
During long prints, my heat block becomes covered in whatever material I am printing. The plastic leaks from the junction between the heat break and the heat block, and runs down towards the nozzle.
I frequently have problems with grinding of filament by the Bowden extruder. However, on the E3D Kraken with a Volcano block, if I use water cooling and a fan positioned just above the heat block, there is no grinding, and everything comes out fine. But the heat block grows a beard of plastic regardless if there is a fan over the heat break or not.
I check my prints once every 2 hours and can wipe the heat block beard, but for overnight prints this isn't possible, so sometimes my prints will have random blobs from when the plastic leaks onto the print.
I have tried multiple nozzles and filaments! I print at only 60 mm/s. Does the volcano block need faster print speeds to prevent this from happening?
I cant really figure out the root of the issue. If the rest of the print comes out fine, then why is there an issue?

Can you show some pictures?

Leakage can be caused by untight connection. How do you tighten the heat break in the heater block? This is best done at high temperature, not room temperature.

What kind of hotend design are we talking about?

@Trish it is just a work in progress as I iron out the kinks.. An E3D kraken, water cooled, with a fan, all Bowden extruders -- only using/testing with one of the four available bowdens on the krakens right now. I'm considering that for a while, rather than doing cold pulls, i'll just use a different kraken slot for each material when i need to change materials

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.


text:
Academic research behind hot end design?
Does anyone know of any academic research behind 3D printer hot end/liquefier design?
All I’ve found is papers on liquefier dynamics where they model polymer flow and go so far as to compare the influence of nozzle geometry variables on the melt behaviour of the material. Also, I have found some papers on FEA of the heat sink.
Other than that, no development or analysis seems to have been conducted on the hot end. Different nozzle materials and geometries? Different heater block geometries? Different heat break design? Different overall design? The effect of an angled hot end on the shear of polymer flow? Effects of melt zone length?
I understand the principles behind the current design, but it surprises me that no further work has been conducted. Everything seems to always point back to the RepRap design which appears to have only been produced through trial and error to reach a “it’s good enough” phase. Now that design seems to be followed as gospel by everyone else.
Apologies if this question is somewhat broad.

I don't think there's much point, since it's easy to calibrate your system.  We're not producing parts for rocket ships or brain surgeons,so extreme precision isn't relevant.

Hotend design is applied science. Academic sciences usually don't concern a lot about applications. For example, there are academic papers about how suitable (or rather unsuitable) ballistic media are for simulating arrow wounds... where the number of arrow related incidents that need this research is almost nonexistent nowadays.

I think there is a lot of potential for this type of research.  For example, while brass hotends are the defacto standard due to superior thermal conductivity, stainless steel has better abrasion resistance, but then suffers from thermal issues.  This could easily be researched.   Also, chemical interactions between the nozzle tip and different plastics can cause a wider bead and affect resolution.  My personal experience is that the shorter the melt zone the better for multiple reasons.

Also, a lot of hot end failures are due to issues with the heatsink and molten plastic backing up into the heatsink and permanently solidifying.  Clever design tweaks coupled with solid academic research in any of these areas could easily give an order of magnitude improvement in 3d printer design.

Hot end design is indeed applied science as @Trish said. Its design has a lot of interest and is intriguing, but there are not much into it in terms of academic research. There is a lot of knowledge in RepRap forums and other places where people actually run a lot of trial and error tests.
What might be of interest is the fluid dynamics on the molten plastic in order to calculate a sound model with higher resolution.
Also, academic research on 3D printing moves to Bio printing for example. The hot-end thing is simple mechanics/thermodynamics. Such research is usually done in the private sector IMHO.


text:
How do I set the flow rate on my Ender 3 Pro and have it stay at that percentage?
I am trying to increase the flow rate on my Ender 3 from 100 to 108 % but every time I start a new print it reverts back to the old 100 % flow rate. I have clicked through the settings and pressed the "store settings" button but it still reverts back at the start of every print. I don't want to do this in my slicer settings as I run 18 Ender 3's so I want to be able to use the same G-code for each.

Changing the flow rate during a print can not be saved. There simply is no way. It is usually meant to be a fix with filament inconsistencies or to look for the right extrusion factor for a new filament batch.
Slicer
The only way to consistently increase the flow rate would be  to alter the flow rate in your slicer to what you have found to work best for each machine, probably using separate profiles. This will up the rate for every subsequently sliced print. Note though that this 108 % increased extrusion is converted extrusion factors that are simply numerical and 1.08 times the normal in the g-code. These numerical values will be taken as 100 % by the printer - and since it requires extra work to slice the gode for different profiles it is not the optimal solution.
As you elaborated though, this is not a doable thing, so let's look further.
Source hunt & Workaround
Since only one printer is showing underextrusion while the others do not, it is time to check the hard- and firmware:

underextrusion can be caused by a defective extruder assembly or a damaged or blocked nozzle.
if a machine has consistent underextrusion, its steps/mm in the firmware might be off. This could be altered and stored in the EEPROM. Since this could be a machine unique setting, here would be your point of attack to increase the extrusion of just one machine while using the identical G-code to all other machines.

Note that the standard firmware of the Ender-3 in 2019 did not contain Thermal Runaway Protection (What is Thermal Runaway Protection?) and should be upgraded because of this anyway. You have to flash a bootloader too, so in the process of doing the upgradeability and safety-upgrade to all the machines, you could store the altered steps/mm to each machine individually so they get consistent output.

You should be able to add a global override to the flow percentage on Marlin firmware printers.
Add this line somewhere in your start code:
M221 S97 ; Flow Percentage hard set.
In Cura, edit the printer's machine settings. The S is the percentage. In my case, 97 % works for PLA+.
Here is a link you might find useful.
Marlin Docs


text:
What hairspray brands are known to contain PVA / PolyVinylpyrrolidone
It's common to use hairspray, especially AquaNet, as a bed adhesive. My understanding is this works because the spray includes a chemical called polyvinylpyrrolidone, or PVA.
What other brands of hairspray are known to contain this chemical in sufficient concentrations to work as an effective adhesive in 3D printing applications?

PVA is in sprays and white glues (school glue and wood glue), polyvinylpyrrolidone is found in some glue sticks. See e.g. this answer.

This is too broad as an unlimited list question.

Just read the ingredients list..?

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.


text:
Thermal runaway on extruder hotend
I am getting thermal runaway even after PID autotunning many times. I tried 10, 15, 20, 25 and 30 cycles and after reuploading FW onto the printer but I still get the error...
I've built a copy of Prusa's i3 mk2 by following Building the cheapest possible Prusa i3 MK2.
I have tried autotune with the cooling fan off, 50 %, and 100 %, but nothing changes.
The printer is in a closed cabinet room.
I was just watching it printing + temperature graph, and after ~20-30 minutes it starts jumping from 199.3-5 to 200.6-9... And that causes, after a few minutes, thermal runaway. The fan was on for 15 minutes or more.
Any help?

Please clarify: is the actual temperature going off the chart, or are you tripping a Runaway warning?   Shifts of a few degrees are normal and shouldn't cause any alarms.

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

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

To rule out the problems, do the following:

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


text:
Can I replace hotend on Lulzbot Mini 2 with upcoming E3D Hermes?
I've seen articles about the Hermes (now rebranded to Hemera) hotend coming soon from E3D, and was wondering if anyone knows if it's possible to replace the stock Aerostruder on Lulzbot Mini 2 with it. The Aero has been giving me some issues and the printer is currently unusable... I've been printing for a few years but am still pretty new to mods so I don't really know what I'm doing there.

we don't know the final mounting dimensions yet and it would help if you'd tell us the mounting of the Lulzbot hotend (best a Photo with a ruler and/or the mounting hole pattern to the carriage).

Please don't put "Solved" in the title of your question. If it is solved, then there must be an answer! So if the answer hasn't been written down, add your own answer and accept that answer after 48 hours or vote and accept an existing answer. Please note that SE sites are not forums of threaded messages but a structured question and answers sites.

Yes, E3D has a guide "LulzBot Taz6 Hemera Upgrade" if you'd like to make your own.
The upgrade requires you to print parts beforehand which are found here; note that:

We recommend printing the Hemera Mount in PETG, and the Fan Duct in ABS/ ASA or another high-temperature material.
Use an infill percentage of 25 % or higher.

The Hemera (the new name for the Hermes) toolheads are also available for purchase, e.g. here.


text:
Delete only invisible parts of faces
I have an STL made out of triangular faces that intersect themselves to create very complicated patterns. It also has a very messy internal structure. I'd like to remove the parts of the faces that are invisible from outside, whilst still maintaining the precise geometry of the model.
Any free software I can use is fine by me.
I tried using the Hollow Tool in Meshmixer, but that just deleted half of everything, for some reason. I also tried doing a Uniform Mesh Resampling in Meshlab, but that just created a wrinkly, disconnected mess. Disabling infill in Cura seems to do nothing.
For reference, the model looks like this.

As long as the STL creates a closed, manifold, watertight body, a good slicer will just slice it. Ultimaker Cura has the option to Union intersecting shells, which lets it take non-manifold parts of a shell and union them to the body in such a way that it creates a closed body. More simplification and fixing the problem in a slicer usually is not needed. If there is still some area where internal geometry is created, it can help to create an overlapping internal structure deliberately, as Easy way to refine a 3D-model for 3D printing by removing internal geometry explains.
Let's look at some example: The STL game export of a pauldron is made from the base body (one shell) and the rivets (which are another shell inside the STL). If Union Intersecting Shells is active, the rivets are sliced and printed as part of the pauldron. If Union Intersecting Shells is not active, the rivets are found to be non-sliceable and ignored.
Infill is meant to support the upper structures in print.
If it is mandatory to join the item into one shell, the STL format isn't the best to go through.
If the pattern is produced by a program, that is able to generate and export STEP files, these could be used by CAD software such as Fusion360 which then would interpret the generated body in such a way that it can be unioned easily, getting rid of internal geometry.
If the program generating the pattern is working with a vertex cloud such as blender, it should be possible to cut the long outer lines into several pieces and placing the vertices on the intersection of lines. These vertices could then be merged and any internal edges (and faces) removed. This can be a tedious process.

I won’t have the chance to test this for a few days. But, I’ll get back when I do, thanks!

Yep, this worked for my purposes. Again, thank you!


text:
Reason behind geometry of heater blocks?
I understand the principle of why a heater block is used. Helping to reduce temperature variation as the filament is extruded using the heat capacity of the block.
But I’m wondering why it takes the form it does? I imagine it is cuboid in shape just for convenience as it’s easy to machine?
From a surface area to volume ratio a cuboid appears to be one of the worst shapes to use.
Note:
I am currently doing a project which requires me to increase the tool clearance of the nozzle of a 3D printer. Hence why I am exploring alternative print head configurations and heater block design trying to minimise the profile of the print head as much as possible.

A heater block's primary function is to transfer heat from the heating element to the parts after the heat break where the filament is melted. Heating elements could be custom-made to incorporate some sort of melting chamber, but it is cheaper to use common off-the-shelf ("COTS") cylindrical heaters and fit them into an adapter. I could be wrong.

I had wrongly assumed the cuboid geometry had originated from the reprap project, interestingly enough they used a cylindrical heater block.

If you could find two heating elements which are thinner, you might be able to place them either side of the nozzle to get a thinner profile.

@AndrewMorton You forget the screws to mount the heater element. There are reasons to mount several heating elements, but that is to achieve faster heating, not a smaller form factor.

A heater block has its shape designed simply by the necessity of the needs and the ease to manufacture them. Functionally, a heater block serves as:

a structural component holding the following components in a well-known position to one another:

heatbreak
nozzle
heater cartridge
thermosensor

a transmission medium of heat energy from the heater cartridge to the thermosensor and filament path.

this dictates the use of high thermal conductive metals

a thermal energy storage to equalize the heating pattern of the heater cartridge.

While this dictates the internal geometry of the block, it does not say anything about the external geometry. This is chosen entirely because of manufacturing, which strongly prefers square items in a vise with stop positions to allow repeatable machining.
While other heater designs are existant, for example wrapping a heater wire around the meltzone, the use of a machined structural element that houses bought components saves a lot of time in assembly Quality Control and subsequent repairs, as each component (heater, thermosensor, block) can be rejected or replaced on its own. This makes the machine all in all more serviceable.

No the heater block does not need to be cuboid.

(from http://hot-end.com/)
This heater block from Maxiwatt is mostly cylindrical. My self and another college use them on our machines and I can say from experience that they heat up faster.
In the early days of 3D printing people were even making their own "heat blocks"

In the video link, the person is describing how to wrap nichrome wire around a brass wood insert to create a heat block.
The reason for it being square: It's easy to hold and thus cheap to make.

Note that these heater blocks use an integrated heater or are the heater and have to be replaced as a whole component.


text:
What are the variables for PID control? How to use M301? How to use this command to switch from PID to bang-bang?
I'd like to have the 12V PID output of an old Printrboard hotend control a relay that attaches to a 120V crockpot for something I'm making. I have everything working fine using a relay, but because the hotend heater is using PID control, the relay clicks about 3 times per second each time it needs to heat up the crockpot.
Not only is this sound annoying, but it will likely reduce the life of the relay significantly. I need the crockpot temperature controlled, so the programmatic thermistor control on an old 3D printer board is a huge help, and probably cheaper than the alternatives. Especially since this board has an SD slot built in and can run any code on power-up. In "bang-bang" control, there would be less clicking as the crockpot heats up, and the relay wouldn't be damaged.
I can't update the firmware on my board to use a different pin because it is a really old Printrbot board. All the required software is almost 5 years old and is really difficult to find. Fortunately the Printrboard does support M301. So, I should be able to use this command to switch from PID control to bang-bang.
In Marlin's documentation, it describes a command called M301, along with a lot of variables for using this command. The problem is, I don't know what any of these variables mean.
M301 [C<value>] [D<value>] [E<index>] [I<value>] [L<value>] [P<value>]

[C<value>]

C term (requires PID_EXTRUSION_SCALING)

[D<value>]

Derivative value

[E<index>]

Extruder index to set. Default 0.

[I<value>]

Integral value

[L<value>]

Extrusion scaling queue length (requires PID_EXTRUSION_SCALING)

[P<value>]

Proportional value

About the only thing I know for sure is that the extruder index is 0.
What command would I enter to make this a bang-bang PID controller, so that I don't damage my relay long-term?

I have a Printrboard. Updating the firmware is in fact quite easy, even nowadays. In the time it takes you to adapt M301 you'll already have a new firmware.

Yea, the Marlin pins.h file for printrboard helped a lot. It was the search engine that was spitting out irrelevant stuff

What command would I enter to make this a bang-bang PID controller

There's no such thing as a "bang-bang PID controller". "bang bang" is mutually exclusive of PID. The M301 command is only good for fine-tuning the parameters of the PID controller, but it won't let you switch to bang bang. Unfortunately, you must update the firmware if you wish to use bang bang.
You could try setting all values to 0, except P, which you set to an as high value as possible. This will cause the output to be fully on when the temperature is lower than the setpoint, and fully off when higher than the setpoint. However, this can still cause rapid clicking of the relay when the temperature is hovering around the setpoint. Bang bang has some hysteresis built-in (i.e., there is a margin around the setpoint in which the relay will never be toggled); there's no way to emulate this with PID.

There must be a way to make it as close to bang bang as possible

@steveantwan No, there isn't. To drink red wine from a white wine glass you have to empty the glass first.

@steveantwan I added something on emulating bang bang with PID.

Thanks. It is possible to emulate hysteresis as well if you are only trying to heat something. For example: M109 S105; M109 S95; M109 S105; M109 S95 ... (repeated) would keep the heat roughly centered around 100 degrees - it would work well with your suggestion for modifying PID. You'd still get some clicking i think for a few seconds each time during the "watch temp" period............ But i decided to just bend over backwards to flash the arcane firmware to enable bang-bang

If you use an SSR, you could just use the PID as-is.
Other than that, the Printrboard is also just an AVR based board and still supported in Marlin 2.0 as PRINTRBOARD or PRINTRBOARD_REVF

RevF uses Teensy2.0 ++ though, and I was having trouble finding the right way to get everything to work. It turns out the Marlin pins.h file for the printrboard has pretty good instructions, along with the reprap wiki for flashing from linux


text:
Driving a Stepper Motor with a Mini-Rambo Controller
I have been working with the MiniRambo Controller to try to drive 3 stepper motors using the AccelStepper library. The stepper motors are NEMA 17s with the following specifications:

I am trying to avoid using Marlin Firmware because I want to first make a 2D printer (i.e. a "drawbot") using my own code before upgrading my build to be a 3D printer. Thus far, I have the following for code, where the pin mappings were taken from the Marline firmware and checked against the schematic on the wiki linked above.
#include "AccelStepper.h"
#include "Wire.h"

#define X_STEP_PIN             37
#define X_DIR_PIN              48
#define X_MIN_PIN              12
#define X_MAX_PIN              -1
#define X_ENABLE_PIN           29
#define X_MS1_PIN              40
#define X_MS2_PIN              41

#define Y_STEP_PIN             36
#define Y_DIR_PIN              49
#define Y_MIN_PIN              11
#define Y_MAX_PIN              -1
#define Y_ENABLE_PIN           28
#define Y_MS1_PIN              69
#define Y_MS2_PIN              39

#define Z_STEP_PIN             35
#define Z_DIR_PIN              47
#define Z_MIN_PIN              10
#define Z_MAX_PIN              23
#define Z_ENABLE_PIN           27
#define Z_MS1_PIN              68
#define Z_MS2_PIN              67

#define E0_STEP_PIN            34
#define E0_DIR_PIN             43
#define E0_ENABLE_PIN          26
#define E0_MS1_PIN             65
#define E0_MS2_PIN             66

#define MOTOR_CURRENT_PWM_XY_PIN 46
#define MOTOR_CURRENT_PWM_Z_PIN  45
#define MOTOR_CURRENT_PWM_E_PIN  44
#define LED_PIN             13

#define ELECTRONICS "RAMBo13a"

AccelStepper stepper(1, Y_STEP_PIN, Y_DIR_PIN); // 1 = Driver

void setup() {

  analogWrite(46,166);

  stepper.setMaxSpeed(200);
  stepper.setSpeed(50);
  stepper.setAcceleration(10);

  stepper.setEnablePin(Y_ENABLE_PIN);
  stepper.setPinsInverted(false, false, true); //invert logic of enable pin
  stepper.enableOutputs();
}

void loop() {
  stepper.runToNewPosition(0);

  stepper.moveTo(500);
  while (stepper.currentPosition() != 300)
    stepper.run();
}

Currently, my motors will move on very rare, seemingly unpredictable occasions. When they do move, they tick once and then stop moving. Since I still see some of this behavior from time-to-time I don't think I have burnt out my drivers - but who knows. The MiniRambo uses four A4982 stepper motor drivers.
I calculated the value to analogWrite to my PWM pin by referencing the Marlin firmware which states the following for the MiniRambo:
#define MOTOR_CURRENT_PWM_XY_PIN 46
#define MOTOR_CURRENT_PWM_Z_PIN  45
#define MOTOR_CURRENT_PWM_E_PIN  44
// Motor current PWM conversion, PWM value = MotorCurrentSetting * 255 / range
#ifndef MOTOR_CURRENT_PWM_RANGE
  #define MOTOR_CURRENT_PWM_RANGE 2000
#endif
#define DEFAULT_PWM_MOTOR_CURRENT  {1300, 1300, 1250}

Another semi-important piece of information is that I am powering the MiniRambo with a 24V/14.6A power supply.
Any help getting my motors to spin would be greatly appreciated! Further, if you know of a way to test my motor driver to see if it burnt out, I would like to hear about it! When explaining, please keep in mind that I am totally new to the space and not very familiar with much of the electronics (more of a software person). Thank you in advance for your help :)

You are asking to write the firmware from scratch, don't you?

Yup, essentially. I want to write the code that coordinates the movement of the 3 stepper motors (x, y, and z axis) to draw a picture.

ohhh, a plotter`firmware? https://www.thingiverse.com/search?sort=relevant&q=plotter&type=things&dwh=745dc91b3633ea0

Right, similar to this link. But I would like to build it myself, hence my question.

I have frequently gotten the stuttering you describe with a bad connection to the board, usually from poor/dislodged crimping on the wires between the motor to the board. Something to check

@KMmmm this was a good thought - I tried attaching the wires/crimps directly to the board rather than going through a plastic connector and the issue persists.

@peachykeen sometimes cables break in the middle. Try with a short cable, which is fresh, as kind of a  "teststand".

There could be a plethora of things you're doing wrong! That's way too much scope for a question like this? Are you sure the driver's aren't shutting down because of over current? Could they be resetting due to brown outs? Are you trying to drive them too fast? Are the motors good? Are the drivers good? Please state/give us answers to how you know everything has been hooked up properly.

@user77232 I will try to answer your questions as best I can.
Too much current? Well I posted my calculation above.
Brown-outs? How would I test for this? My PS is brand new and when measured doesn't spike or drop.
Driving too  fast? I don't think so, I am at the lower end of the speed.
Are the drivers good? Well, I just got the controller, but perhaps I could  have burnt them out. Hence, my question about testing for a burnt out driver.
Hooked up properly? I followed the schematic on the wiki linked above. If you want a screenshot I can provide that too.

Put 12v light bulbs on the output of the drivers to see if they blink when you give step commands.

@user77232 Would I be able to use a multimeter here?

@peachykeen, nope. Gotta use an Oscilloscope or a bulb

I solved my issue. I read one of the diagrams wrong and hooked my wires up incorrectly. :(


text:
Flashing a bootloader on Ender 3 without Arduino
I just order myself an Ender 3 Pro which will come by the end of the week.
Before it arrives I want to be ready to flash a bootloader onto it.
I was wondering what other options there are to flashing except using an Arduino?
I have a bunch of ESP8266/ESP32 and a USB to TTL. Would it be possible to use these somehow instead of an Arduino to flash a bootloader to the Ender 3?
Or should I just go buy an Arduino?

Scenario 1 of https://3dprinting.stackexchange.com/a/6686/8884

What you need to is called a ICSP or ISP: in-circuit serial programmer or in-system programmer, which excludes the USB to TTL device you own.
I've never used an ESP8266 as ICSP but it seems there are some resources out there reporting it is possible.
If you want to go the easiest way probably you want to buy an Arduino and follow the tons of tutorials out there, if you are looking to save some money then you might get around buying an ICSP like the very well known USBASP (just Google for that).

Thank you for the info, it looks interesting. I will look into using the ESP8266 as I love to learn new stuff! Will report back with my results when I've received my printer.

You can do AVR programming using USB-TTL adapters. This relies on bit-banging, i.e. emulating the programming protocol by using the serial control lines as general purpose IO.
But this has a few caveats:

USB-TTL adapters limit the speed of control line changes. So the programming will be very slow, taking several minutes.
You need to have the RTS, DTR and CTS lines available on the USB-TTL adapter. Many of the cheap adapters do not have these signals available on pins, though you could solder to the chip directly.

If those two are in order, go ahead and install avrdude, take one of the serial port bitbang (serbb driver) example files and configure it with information on which serial adapter pins you've connected to the AVR chip. Then give -i 1000 or similar delay value to avrdude to slow it down enough to work over the USB interface.
There is a blog post about doing it with PL2303 based adapter, but the technique should work on other USB-TTL adapters also.

wow this is some really interesting stuff for me! Thank you for the information. I will look in to this.


text:
Ender 3 X-axis values are not correct
So I just got the Ender 3 and have been trying to print out a part. However, I noticed the printer is trying to print the part, which should be centered in the bed, on the left side.
I performed the auto home, leveling procedures, prior to execution, but it still wants to print it on the left side.
I checked the values it thinks it has for X, but they are about 60 mm to high (i.e. from the control/move axis menu, I move it towards the zero position and when it touches the switch, it still thinks its around 65-70 mm in the positive direction).
I have tried the good old power cycle, but each time it seems to get worse printing closer and closer to the edge. I am sure that I must have fudged something up. Anyone know how to fix the mismatched position?
Thanks for any advice!

Welcome to 3DPrinting.SE! I've moved the question from Meta to the main site for you.

Sorry the question is not quite clear to me. With but it time it you mean but in time it? Are you implying that there is layer shifting? I.e. the layer on top of the older layer does fit over it exactly, but prints shifted from the old layer?

Can you show a photo of the problem? If you order the printer to home, it should set the switch position to 0.

So the issues with the digital display values, was caused by the X-axis binding up and not advancing. I had to move the axis via the control panel in the positive direction and noticed once it got about half-way out, it wouldn't advance for like two or more steps.
On the control panel, it said I was 235 mm out from the home position, but in reality I was more around the midway point. When I would move it back to the home position the read-out still displayed that I was offset from the home position in the positive direction.
To fix it I tore it down and reconstructed it (made sure everything was plumb and level), I also flipped the belt in the opposite direction (teeth down, so that the stepper pulley grips the belt teeth).

Your comment flipped the belt implies that you'd actually assembled it wrong. If the belt teeth don't engage with the pulley cog then it's likely to slip which could cause the problem you observed since the motor would turn, but the belt may or may not move!


text:
Ender 3 X-axis belt orientation
What is the correct orientation for the X-axis belt?
I first thought to place the smooth side down to match the tensioner bearing, but then changed it to match the motor pulley.

Sadly, the Ender-3 assembly instructions were not clear on step 7, what the right direction is (teeth on inner side of the loop):

The Belt has teeth that need to engage the teeth of the hobbed gear on the motor, just like in the preassembled Y-axis. The teeth have to go aim to the "inside" of the loop. This way, the belt will not slip on the motor side and the movements will be repeatable.

boy do I feel silly now, the other belt was right there in front of me! Thanks for the confirmation!


text:
What is M73 Q17 S43 G-code command?
I know that M73 P19 means "Set completion progress to 19%", and I suspect that M73 R42 means "Set remaining time to 42 minutes", but what is M73 Q17 S43? I can't find description of such syntax.
The command is seen in .gcode files produced by PrusaSlicer.

The M73 Set/Get build percentage G-code is only defined for a selected few printer firmwares.
As you suspected, next to M73 P19 (tell the firmware at what completage percentage the print is) the M73 R42 tells the firmware the left time to completion.
If you look at the description of the M73 G-code, the following parameters may be used:

P: Percent in normal mode
R: Time remaining in normal mode
Q: Percent in silent mode
S: Time remaining in silent mode

So, running the Q and S parameters, is similar to the P and R parameters with the exception for referring to the printer percentage/time when in stealth (quiet) mode.
These modes, normal and stealth, refer to power modes of Prusa printers:

Normal vs. Stealth mode
  MK3 printers offer two print modes. Normal mode is required for the detection of lost steps (shifted layers), while still being quieter than the silent mode on MK2/S. There is also the Stealth mode, which utilizes Trinamic StealthChop technology, making the printer almost inaudible with the print cooling fan being the noisiest part of the printer. However, Stealth mode does not provide lost step detection.

Stealth mode times can be a bit higher than normal mode estimation times. Estimation is done by the slicer. As Prusa maintains this feature, their times are accurate for their printers, but that does not have to be the case for custom printers.
To get the current progress, the M73 command is called without parameters:

Use "M73" by itself to get a report of the current print progress.

Saw your answer too late :( I have already found this in MK3S firmware source.

@Alex No problem, now it's out there for others to read too! Happy printing! :)

The tooltip for "Supports remaining times" under Printer Settings -> General -> Firmwarein PrusaSlicer quotes:
Emit M73 P[percent printed] R[remaining time in minutes] at 1 minute intervals
into the G-code to let the firmware show accurate remaining time.
As of now only the Prusa i3 MK3 firmware recognizes M73.
Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode.

Therefore:

P = Percentage printed, normal mode
R = Remaining time, normal mode
Q = Percentage printed, silent mode
S = Remaining time, silent mode


text:
Classifying method of control of 3D printers?
Is there a classification of method of control most (FDM) 3D printers fall under?
From a 1986robotics textbookref I was reading they defined three classes of control:
1) Pick and place
2) Point to point
3) Continuous path
However, both point to point and continuous path control are stated as requiring servo motors.
I know that the majority of 3D printers are actuated with stepper motors as opposed to servo. Does the continuous path classification still apply? Or is there another classification?
ref - Todd, D.J.(Ed.):Fundamentals of Robot Technology: An Introduction to Industrial Robots, Teleoperators and Robot Vehicles - Kogan Page 1986

What does the text book call the Uni robot? or a CNC milling machine?

What is the "definition" of continuous path?

I think the big distinction to be aware of is: most FDM's (G-code users) run on relative positioning.  Once they start going, there is no mechanism to catch positional drift.  Compared with code that does a "return to zero" after each move -- the endstop switches used in 3Dprinters are too inaccurate to do this.  And compare with systems that use shaft encoders or other feedback to set every move to an absolute position.

Did you look into the 1986 edition or a later version? There seems to be a 2012 Springer Science & Business Media, edision.

@CarlWitthoft I concur on the drift part of your comment, but stating that endstop switches are inaccurate is not true. They are accurate enough, the problem is that they are used only once, after that, missing steps cause the drift. If you'd use the switches more often, it would not be a problem. E.g. if Prusa trinamic drivers detect missing steps, the carriage is "homed" and layer deposition continues.

@0scar  The typical spring-loaded lever-on-button switches will vary by tens of microns in my experience (in advanced machining labs, not in 3D printers).  That means that doing return-to-zero after every operation is likely to cause more trouble than it might solve (i.e. fixing missed stepper motor moves).  That's all I meant.

The question is if robots classification terminology the textbook sketches applies to 3D printing?
Servos (closed loop) are used in robots to guarantee position (you don't want to accumulate an error after repetitive movement), most 3D printers use open loop steppers that are instructed on a point to point basis through G-code instructions, implying that the use of servos is not a "requirement" for point to point control.
It is a requirement if you want to be absolutely sure that the position is reached. In 3D printing where the loads are generally low, this requirement is frequently dropped. But, there are printers that use servo control.
Note that many CNC machines (operating at much higher loads than a 3D printer) even don't use servo's but (open loop) steppers, these are generally larger and more powerful (more torque).

3D Printers fall under additive manufacturing and then can be classified by the material first. Usually, the material dictates entirely what the design looks like and it would be foolish to not differentiate what you look at by this first. For some materials, there are a couple of subtypes that tell us about which method for fusing the material is used, but usually, there is just one.

light curing resin

projected light
Laser

Paste, gel or air curing resin

direct deposit from syringe

Foil

Laser1

Powder

Laser

Filament (FFF/FDM)

direct deposit

Of all these printers, only the FDM/FFF Group has a large diversity in how they are designed on the outer side, with the main 4 designs (and one example) being

Cantilever (TronXY X1)
Core-XY (Hypercube)
Portal (Prusa)
Delta (Kossel)

Now comes the kicker: Most FDM/FFF Printers do use only stepper motors and use G-Code that is derived from CNC - just like the whole idea of FDM was invented as reverse CNC. Only very few use an encoder at all. Marlin, the main firmware used in 3D printers, executes usually point-to-point instructions (G0 X10 Y10 Z0 E5), but some implementations are able to perform arcs (G2 E7.85 R5 X-5 Y5). Usually, printers run in relative coordinates (to the last position of the nozzle/tool), but for some operations absolute coordinates (mainly start or end codes) are used.
Among the printers that use servos instead of steppers are, to my knowledge, mostly laser-based systems.

Resin may also be directly deposited, with or without photoinitiation. Not to mention clays and biologicals.

@Davo ah, right, forgot paste/gel and air curing resins.

Upon further research these defined classes of control (from a robotics perspective) only apply to servo motors.
At the highest level the methods of control being categorised as:

Servo
Non-Servo

The three categories I listed in my question are all subsets of the Servo category and rely upon feedback from the servo.