text:
Sudden deterioration of print quality on Prusa i3MK3S+
I've had my Prusa i3MK3S+ for a couple of months now, and done 100+ prints, and other than a few issues with first layer adhesion (which are pretty much solved now), have been getting consistently good results. That is, until the day before yesterday. My last six or seven prints have either failed altogether (items that I have successfully printed previously have failed, seeming to collapse midway through printing), or completed with such poor quality as to be useless.
I haven't changed any of the slicer settings, and am using the same filament that was working three days ago (and has been stored in a low-humidity environment). Initially, the printer had not been moved, nor had anything changed in its immediate environment (temperature and humidity are the same, as best as I can measure them).

(the above part was printed successfully about a week before, using the same filament and the same slicer settings, however here it printed with gaps between infill and outline, and circles printed as ellipses)

(the calibration cat at https://www.thingiverse.com/thing:1545913 -- I have never printed this before, but it does clearly show the kind of problems I'm having)

I've performed regular maintenance tasks and recalibrated the printer, but this hasn't made a difference. I've reinstalled Prusa Slicer with default settings, which didn't help either. I did think that maybe it was an issue with tension on the y-axis belt, which does look a bit loose, however, according to the printer's diagnostics, the tension in both belts is fine.
Any help/suggestions/ideas would be much appreciated!
EDIT: I decided to ignore the diagnostic report from the printer, and re-tension the Y-axis belt, and that has substantially improved things, although it is far from fixed.

So that's resolved some of the issues. The remaining layer shift appears to be only happening parallel to the Y-axis (i.e. the layers seem to line up perfectly along the X). Have I managed to fix one problem and introduce another??

Figured it out. One of the grub screws that hold the motor shaft onto the belt drive pulley for the Y-axis had come loose, and the other had fallen out altogether. I've tightened the remaining one (and ordered replacements), and my prints are perfect again. Well, as good as I can expect, given that I'm using cheap filament.
Two points that might be useful to bear in mind; firstly, the printer was consistently reporting that the belt tension was fine, but clearly it was not. I'm not sure if this is an issue with these printers in general or mine in particular. Secondly, the printer was able to figure out that the pulley was slipping, but did not do so as part of its standard test/setup wizard. It's under Calibration > Self Test.

Was your printer assembled by you or by the folks in Prague?

@AstPace I have to take complete responsibility for that mistake! :-) It's the first time I've put one together, and it's unlikely this is the last problem I'll find with it. It's worth it though, in my opinion, as I think I've got a better understanding of what's going on with it than if I'd bought it pre-assembled.


text:
Understanding of the auto bed leveling process (BLTouch)
I just installed my BLTouch clone (Marlin 1.8) on my Anycubic i3 Mega Ultrabase and finding confusing information about the Z_PROBE_OFFSET_FROM_EXTRUDER or the M851 command.
I understand M851 command does the same as Z_PROBE_OFFSET_FROM_EXTRUDER in the Configuration.h. (see marlin docs)
So according to Marlin, this value is the distance of the nozzle to the distance of the triggering point of the sensor.
If I manage to measure that accurately, Marlin could probe the bed, knowing distance of probe to nozzle, add a margin for perfect distance (around paper thickness) and my bed would be forever perfectly measured with every autolevelling process and perfect distances could be calculated.
Instead, I find tutorials around the M851 (e.g here telling to manually level the bed, then take the current Z-value of the extruder and put that into the M851 value. In my understanding it makes little sense, as it has no reference to when the sensor triggers, its distance to the bed.
Sure, maybe this way it can get an understanding of slight derivations in the planarity of the bed, but it would not have automatically "levelled" my bed, just compensated for imperfections.
I am confused by the amount of tutorials that suggest so. Whats the case now? Is Marlin not really able to really level to my bed?

What may be confusing is the use of the naming of the mechanism "Auto Bed Levelling", or short ABL, does not make your build plate to level itself with respect to the frame of the printer1). Hence you are instructed to always tram (level is rather misleading as it doesn't involve bubble levelling, instead it is meant to tram the bed with respect to the X- and Y-axis) the build surface as good as you can.
The ABL process could better be described as "Height adjusting to scanned bed geometry" or something like that, as that is exactly what is being done. The G29 command scans the bed surface and (depending on the firmware options) it generates a mesh or a plane through the measured points. When printing, the nozzle will follow the bed height geometry and fades this out over about 10 milliliters (depends on setting). So, if you do not tram the bed correctly, you will end up with a skew bottom of the print as the fade out will cause the printer to print eventually parallel to the X- and Y-axis.
Note that specifying the Z-offset in the firmware is rather useless, you cannot measure this beforehand. It is far better to do this later using M851.
This answer describes in some more detail how the offset is generated and applied to the scanned surface.

1) It is possible to actually level/tram the bed (e.g. in Marlin firmware), but that are different processes. E.g. a tramming assistant is available when using the G35 G-code. And, automatically, (for specific printers) possible on build plates that are moved up/down by several lead screws (look into NUM_Z_STEPPER_DRIVERS in Marlin's Configuration_adv.h file). But still, this maintains a certain level, it does not scan the complete surface, that can be achieved by the ABL process.

Just thought that BLTouch could automatically measure the nozzle height. If it goes down slowly till nozzle touch the bed and then push down a little more then it will see sensor isn't moving anymore then it means nozzle already pushes the bed down. Beds are usually have springs and shouldn't hurt to push it a little (~1mm) by nozzle. Not sure if such function is implemented. Just an idea. This procedure doesn't need to be used every time. Could be an option after changing the nozzle or other adjustments affecting the nozzle height.

A BLTouch sensor has a single trigger point, so what you describe is incorrect and will not work. This does not answer the question. This is more a comment explaining a "could be feature" than an answer.

As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.

"Just thought", "Not sure", "Could be" - it seems like this answer is pure guesswork. Is it based upon any actual experience with a BLTouch?

I know how current BLTouch works. Not much advantages over mechanical sensor with button. BLTouch has integrated MCU and hall sensor which is not a trigger but linear value based on position. So with BLtouch firmware update and special command from printer the concept i've described above is possible. I don't see point to measure bed every time while the main variable is nozzle as it regularly need to be changed.

source: Stack Exchange

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

sort: votes


text:
Ender 3 : problem on Z axis for the first layers ONLY
Got a tricky problem here :
I print plate (76x70x3 mm) however there heights (Z-axis) are not correct every time...

My extruder has been re-calibrated.
My bed has been re-calibrated.
So Firstly I re-calibrate X, Y, and Z-axis with this cube (thingiverse) :

Here is detailed data :

Here is a picture before and after calibration
You can see the cube is perfectly equal
However, my problem persists. Whatever the plate I want to print, the height is always incorrect. And not only with these pieces with all other plates I created.
All other axes than Z are correct.
It's important to note that Cura always sees the correct size :

I really don't understand why only on the plate my height is not correct but for the larger piece, it's correct.
I really want an explanation,
thank's a lot !!

Just to be sure: if the cube and the plate are printed using the same tempterature of bed? If the bed remains of the same temperature during whole print?  (If I see correcly Cura image, the print is not submerged, but please also doublecheck the Z position of last layer in G-Code.)

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


text:
Ender 5 hotend and bed cooling down while auto bed leveling
I have an Ender 5 with an auto bed leveling sensor (TRU-LEV 600).
It is working fine, however, as the sensor probes the bed, the nozzle and the bed cool down and are not staying heated as it is getting the points, even though they were heated up in the first place.
How do I stop the bed and hotend from cooling down while the bed is being probed?
Here is my start G-code:
M75; Start Print Timer and Engage Fil Sensor if USB Printing
G92 E0; Reset Extruder distance to 0
G1 E-2; Retracts filament to prevent blobs during probing
M84 E; Disable E Motor for probe accuracy on direct drive systems
G28; home all axes
G28 Z; home Z to get more accurate Z position
G29; TRULEV mesh generation
G4 S10; wait for heaters to recover
M117 Purge extruder
G92 E0; reset extruder
G1 X0.1 Y20 Z0.3 F5000.0; move to start-line position
G1 Z1.0 F3000; move z up little
G1 X0.1 Y100.0 Z0.3 F750.0 E15; draw 1st line
G1 X0.4 Y100.0 Z0.3 F5000.0; move to side a little
G1 X0.4 Y20 Z0.3 F750.0 E30; draw 2nd line
G92 E0; reset extruder
G1 Z1.0 F3000; move z up little
M117 Printing.....

For Marlin firmware, you should check the setting PROBING_HEATERS_OFF in Configuration.h file:
//#define PROBING_HEATERS_OFF       // Turn heaters off when probing
#if ENABLED(PROBING_HEATERS_OFF)
  //#define WAIT_FOR_BED_HEATER     // Wait for bed to heat back up between probes (to improve accuracy)
#endif
//#define PROBING_FANS_OFF          // Turn fans off when probing
//#define PROBING_STEPPERS_OFF      // Turn steppers off (unless needed to hold position) when probing
//#define DELAY_BEFORE_PROBING 200  // (ms) To prevent vibrations from triggering piezo sensors

It is probably enabled in your case. You may want to switch this off and reinstall firmware to maintain constant heating during probing.
However, you may want to take into account possibility of electrical or magnetic intereferences during probing from heaters and their circuits. Disabling them for a while may eliminate these influences and give more reliable measurements. Unless the bed ot hotend are unable to maintain stable temperature for a while and cool down too much (e.g. bed changing shape). So may want to experiment what works the best in your case, maybe including other settings listed in given section.

Eco mode under settings shuts off the bed after a 30 minutes ish maybe an hour. Either way it is probably the issue

I had this problem after installing BLTouch as well, but didn't want to compile the firmware from source to solve it. I'm using the stock firmware for the Ender 3 with BLTouch from Creality's website.
To get around this problem, I added the M109 S200 instruction to my custom G-code in Cura after the auto-leveling instruction. M109 resets the nozzle temperature and waits for it to heat up.
ETA: obviously the downside to this is that you have to edit the custom G-code every time you want to print at a different temperature.

Your answer adds a heating instruction after the leveling process, this does not answer How do I stop the bed and hotend from cooling down while the bed is being probed?. If you don't want to edit the script for each material, use: M109 S{material_print_temperature_layer_0}


text:
Are there FDM epoxy/resin printers?
After seeing a question about FDM printing of temperature-resistant parts, high-temperature 2-part epoxy came to mind. Are there any (experimental or production) FDM extruders for laying viscous, fast-curing epoxy, mixing it at the last moment before extrusion? Or likewise other cured/resin materials, either 2-part or UV-cured (with whole print volume flooded with UV)?

I vaguely remember that there had been experiments with some kind of air curing resin iirc... like... it would spray down a resin like from an ink cartridge...

It seems possible to print uncured resin with FDM, then cure it later with UV, temperature, or the curing process.  It probably wouldn't use filament and a hotend nozzle.  Two part epoxy would be a challenge.

Yeah, I assumed it wold be unheated and be more like a paste extruder.

Maybe an intense solid state UV laser focused where the extrusion hits the print would work.  Dentists are using resins for fillings with blue light cure rather than UV.  This is also an option.  It's safer and may be easier to implement.

@PerryWebb: I was thinking of extruded material being sufficiently viscous that there's no race to cure it before it flows. I don't doubt the kind of thing you're talking about is possible too, but it's likely a much higher price bracket than what I had in mind and oriented (I think) towards high resolution rather than ability to FDM-print parts without the thermal property limitations.

What mechanism would you use to get the resin through the nozzle if it is thick enough to hold it's shape without curing?

@PerryWebb: Whatever paste extruders do. I'm not actually sure how they work but I assume it's some sort of drum/syringe type of thing.

Were you thinking about a paste extruder addon?

FDM might be the wrong term... Paste or resin jet? Liquid Deposited Manufacturing?

Maybe it's a stretch but I think FDM is a fairly accurate description even when the layers fuse by chemical process rather than thermal changes.

Yes, it has been done for many years - but it's not referred to as FDM when you use deposition of resins. At room temperature it's often called Direct Ink Writing (DIW, example), and if heated it's often called Hot Melt Extrusion (HME, example).
Disclaimer: I work for Hyrel 3D, a 3D printer manufacturer which has been making heads that deposit one- or two-part resins since 2015. See over 300 published papers, many of which cite this exact process.

Apparently now the answer is yes. A company called MASSIVit has a system they call GDP - gel dispensing printing - that's essentially what I asked about, on an extremely large scale. 3D Printing Nerd has a video from their booth at Formnext 2021 in Frankfurt, Germany.

Is this what you're looking for?
(https://the3dprinterbee.com/how-does-a-resin-3d-printer-work-sla-dlp-lcd-explained/)
Material Beam
Material blasting is a unique 3D resin printing technology that can be compared to an office inkjet printer. It is also considered one of the fastest and most accurate 3D printing technologies available for resin printing today.
Material Beam 3D printers are similar to inkjet 3D printers in that they also have a print head from which thousands of tiny resin droplets are applied to the building platform and then cured with UV light. Once a layer has been completed, the building platform automatically lowers to the height of a layer and the process is repeated until the object is completed.
The technology of material blasting enables high dimensional accuracy, but speed is also a convincing point. The process in which the resin droplets are ejected from several print heads, which in turn move back and forth over the building platform, is known as line-by-line cutting. This ensures that multiple parts can be produced without affecting the build speed. As a user, you also have the choice between matte and shiny surfaces on your 3D printed object. However, the individual components for material beam technology are very cost-intensive. Other disadvantages are the waste of material when you choose to print matt surfaces and the low strength of the 3D printed parts.

This is very interesting and I think it qualifies as an answer, but not quite the sort of thing I was wondering about.

There is this enter link description here printer which uses a liquid resin that's cured using UV at the very tip of the nozel, it prints in layers like an FDM printer and is extremely fast but can't do small details.
I've only ever seen it print at a large scale I don't know if there is a prototype for a desktop version.


text:
Fixing temperature Issues on I3 Mega / Where to find spare part
I have an old Anycubic i3 Mega printer which started having issues keeping the hotend-temperature. The peak at the start of the diagram was when I was touching the cable on top of the hotend:

It also sometimes disconnects completely with a MINTEMP-Error
So it is fair to assume it might be an issue with the cable/plug to the hotend.
My problem is that I cannot find that cable anywhere on the Anycubic spare parts site. Is this maybe a "standard" cable that I can get anywhere else?

The end itself looks like it could be a Molex connector. A picture of it unplugged may help identify it.

The plastic looks ok.  If you get the tools and pins to work on the connector, you could replace problem pins.  Many of us build our own cables.  If we verify the connector is Molex, you might need calipers to measure dimensions to get the correct size.  You won't need expensive ones.  I've seen digital calipers from \$10 to \$20.
Have you already verified your sensor and heater aren't an issue?  Maybe you've tried a new hot end, or a new heater block with a new heater and sensor.
You can visually inspect the pins on the connector to see if they have a loose connection.  See the solution at Proper hotend heater for Reprap x400 Pro V3
What is strange from you graph, you seem to be loosing connection to both thermistors.  Do the thermistors to the bed and hot end share one common connection, so that one pin could affect both?
If you haven't already tried it, one quick fix to try is unplugging the cables and plug them in again with the printer off of course.

I am quite sure it is the cable/plug. I only have to bend to cable a little bit to force the temperature-graph to go wild


text:
Creality Ender 6 Heating failed error
I got this message from my Creality Ender 6 printer.
Now every time I want to print, or when it heats up, the printer gives me this message.
Can anyone please help with this?

You need to figure out if the problem is (physically) related to nozzle, the bed, or both, or none. Surroundings / conditions could be of importance. Coud you include information where do you use the printer? Is there relatively warm (like apartment) or rather cold (like basement, or tin garage in winter)? Do you have drafts? etc. Otherwise it could be electronics: do you feel any notions of heating when you touch the bed or (much more carefully!) the nozzle?

This is a Thermal Runaway Eror. We need more information, best a temperature graph.

Sorry, but this question cannot be answered, this question needs more information to be able to be answered. Troubleshooting the cause, you should create some G-code files where you e.g. heat up only the bed M190 or only the hot end M109, or heat up the hot end and turn on the fan M106, etc...

I have the same error with the same ender 6. I noticed that the bead heats up fine, but the nozzle does not heat up at all. The room itself is relatively cool. about 22 degs C with zero draft. The printer has printed in this room before with no issues. This has only started to occur in the last week. It was printing fine, I came to check about a third of the way into the print and had the heating failure. Not sure what do from this point on. any advice would be grateful.

Hi, did you solve your issue? If so, please post the answer as others seem to have the same issue. Otherwise, please provide more details, as @0scar requests, so that an accurate solution can be provided. Thanks.

I've seen a version of this error on my Ender 3 when I heated the hot end without the silicone sock (or any other insulating wrap).
If this occurred after changing a nozzle, replacing a heat break (or entire hot end), installing a new cooling duct, or similar, it's likely you just inadvertently left off the insulation that should surround the heat block, making it take much longer and require much more power to reach working temperature than is normal.
This can also occur if the thermistor or heater cartridge are not correctly seated in the heat block -- the same problems that can result in a thermal runaway halt (assuming your printer has that feature) if it does get to temperature before timing out.

Someone with experience using an Ender may give a more specific answer to you question.  This is a general answer, not for a specific model.
"Soon enough" is saying the printer timed out before reaching temperature.

Do you see the temperature increasing on both the hot end and bed?  If one doesn't, that's where the failure occurs.

Are you setting a temperature higher than you have ever used on this printer?  If so, check to see if you are beyond the printers capability.

The hotend will reach temperature first. Does it reach the target temperature? If so, the issue is probably with your bed heater.  If not, the issue is with your hot end.

If you are pushing the extremes of your heaters, especially the bed heater, and your printer isn't in an enclose, you may need and enclosure to run that temperature.

Once you determine where the issue is at, there are things to can do to determine what is failing.


text:
Ender 3 Marlin - Incorrect temperature
I've updated to Marlin 2.0.7 when I set up a BLTouch (I've edited configuration.h based on my board model; MKS Robin E3) and now it seems the temperature does not match the display.
Before the update, I was printing with PLA filament at 205 °C and bed at 60 °C without issue. After the update, my prints are full of stringing, so  I decided to lower the temperature until 180 °C and now it's fine (everything above 185 °C is stringing). I've tried tuning PID but it wasn't better.
So I assume my printer sees 205 °C but the real nozzle temp is higher.

You might want to get a not for humans infrared thermometer to measure temperatures.  Note: the forehead thermometers have fudge factors to approximate body temperature.

I added an answer for case if this is just incorrect thermistor types set in Marlin. Use this guide if you forgot to reconfigure it following configuration of previous Marlin version.

Interesting case study: Ender 3 displaying wrong temperatures for hotend and bed.

Are you sure the models are sliced identically? Maybe print an older G-code file (adjusted for the BLTouch).

When you have updated to Marlin, you were supposed to configure it carefully. This is maybe laborious and sometimes difficult procedure, but very important. Basic guidelines are described in Configuring Marlin official guide.
I assume that you obviously did it, at least in some part to enable BLTouch.
You should review the Thermal Settings section and update it with valid thermistors types for bed and hotend in Configuration.h:
#define TEMP_SENSOR_0 1
...
#define TEMP_SENSOR_BED 1

The list of available predefined settings (numerical identifiers) is just above these #define macros. The optimistic assumption is that you know that hardware details. Popular value is 1 for EPCOS 100k (older repraps) or NTC 3950 100k, but there are many examples of troubleshooting and advices on Internet. For more exotic temperature sensors you should set value 1000 and specify own details in Configuration_adv.h.
If all these settings are correct, then possibly your thermistor is faulty. There is always a chance of coincidence with some damage unrelated to last upgrades. You can follow these instructions to verify it.

Yes, I've edited configuration.h based on my board model (mks robin E3). I've tried to use 2.0.6 marlin from mks github but I've still the same issue.

Hi, it is great that you don't give up and still look for solution. I am not sure why exactly you do try to downgrade Marlin - is this just a blind attempt, or if you have some extra data or infomation? What about thermistor details? Thermistor is not part of mainboard, but separate piece connected with 2 wires to the board. Do you know what thermistors are installed in your printer? What values are set  for TEMP_SENSOR_0 and TEMP_SENSOR_BED in your Configuration.h?

Hi, it was a blind attempt just to see if I missed some paramaters by editing files by myself!
I have no idea of my thermistors, I've let default config for both :
1 : 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
I still have the creality original board, is there a way I can see what thermistor is set on it firmware?
Thanks for helping :)

No, as far as I knot there is still no possibility to export Marlin configuration (except for EEPROM contents). I tried to google for Ender 3 thermistors and checked few sites: everyone insists that 1 for both is the valid for default Ender 3 configuration. (Btw. I also found an old school G-Code M305, but I'm not sure if experimenting is safe.). I just noticed, that you did not mention anything about wrong bed temp. - is that one ok? Can you swap them for a test? --> see more details here

One thing to check: if you can deploy the original firmware, backup current EEPROM values for future reference, downgrage, but not reset EEPROM until last step. Check the following: (1) look in LCD main menu for "About Printer" (disabled by default) with "Thermistors" submenu; (2) run G-Code commands M503 and M305 without any parameters (may return something in case there were custom thermistors); then reset to factory (firmware) defaults with M502 and check again M503 and M305. (Note: M305 won't work at all if there was no custom thermistor set in config).

I've tried to use ender 3 stock board and Istill have the issue. So MKS board isnt broken.
Bed temperature is fine, but i don't know how to switch with nozzle.

This is great that boards seem equal. (I only suggested to swap plugs of bed and hotend connected for a while - but swapping boards seem to be equally good.) If you couldn't get any useful data from old firmware/eeprom, then I suggest to buy a new thermistor and replace it.

Does nozzle probe temp can be faulty ? Like it see 180°C instead of 205°C, so it overheat nozzle ? I'll order a replacement thermistor anyway

I've mesured both thermistors resistance with a multimeter and both are at 125k for a 20°C room temp so I assume there are good (regarding epcos 100k table). I will try to disassemble hot end to see if something is wrong.

Thermistor observes the heatblock, which is only a medium (often oversized for manufacturer's convenience) to heat a nozzle. Bad installation of thermistor could be a cause (e.g. glue not conducting the heat). But disasselmbling the hotend above the heatblock sounds redundant to me (and unnecessarily risky). Could it be embedment (glueing) fault?


text:
How to switch from PETG to either PLA/ABS mid print?
I have an Ender 3 Pro and I'm about to print a relatively large model on it.
I've been printing in PETG and I'd like to use up the last of the roll during this print.
When the roll runs out however, I don't currently have any PETG lying around but I do have two brand new rolls of PLA and ABS.  I'd love to swap to one of them (lets say ABS) when the PETG is running low, and I'm just wondering if there is anything I should be wary of besides the print temp.
I am aware of general issues with ABS (warping without heated enclosure and stuff) but if I:

Have heated enclosure
Tune temperature to be higher when I swap to ABS
Have "draft shield" printing along with the model

Are there any other considerations that I need to put in the gcode or anything?  How much it pushes the filament or retracts or something?  I'm just using "Generic PETG" settings on Cura.

You should do a complete calibration for ABS (temperature tower, E steps, flowrate %) before starting the print, then when you change filament remember to apply all the parameters I mentioned.
While I'm not in favour of using the flow rate % to correct the E steps calibration, since you are doing it mid print this may be the easiest way, instead of changing E steps AND flow rate %.
As you said, you need to change temperature too, but both PETG and ABS print well at 235 °C so it may not be needed. PLA works too, but PLA bridges at 235 °C are difficult to get properly.
For sure you won't be able to change other parameters, such as fan speed, printing speed and flowrate for bridges, which are all specific to each filament, but hopefully it will work out anyway, since PETG is trickier than ABS or PLA.
Of course you may have issues with adherence: PETG may not bond well to ABS or PLA (in fact, PETG can be used for support for PLA and viceversa because the bonding is not too strong). You may have a weak print with PLA, so go for ABS.
PETG as support for PLA: Can PETG be used as support material for PLA?
Bridge calibration:


text:
Resin LCD prints ending up with random holes in them
The Context:
I'm trying to print this container with a Voronoi pattern on it. The actual object itself was created using a combination of this online tool and Fusion 360. This was then imported into Chitubox (V1.7.0), rotated by 20°, and auto supports were generated (default medium weight, 60 % density). This was sliced and then exported as a .cbddlp file, stuck on a micro SD (not SDHC) card, and printed from there.
The Setup:
I'm using a 'MonoPrice MP Mini SLA' resin printer, along with Elegoo standard blue resin. The print shown in the pictures below was printed in a warm room (probably ~20 °C), the print bed had been cleaned prior to printing with isopropyl alcohol, and the vat/FEP with warm soapy water; both were left to dry fully.

Bottom layer curing time: 120 s
Other layer curing time: 10 s
Bottom Layer count: 20
Transition layer count: 20
Light off delay: 1 s

The vat/FEP film was tightened down nicely, the print bed auto-levels before every print.
The Question:
'Simply', why have I got these random holes appearing? I have never had a single issue with the bottom layers not adhering properly, but now I have these holes that are completely surrounded by perfectly acceptable print. Is it something obviously wrong with the model/supports (too complex/flimsy)? Is it slicer related (just not generating print data for those areas)? Settings related (over/under-exposing)? FEP related (too sticky/not tensioned correctly)?

No random gaps.

Random gaps.

Weight of liquid resin accumulated on plane surfaces or deepenings and/or surface tension sometimes can break away them while part moving up from a resin tank. You could try several things: 1) reduce printing speed, so it can reduce breaking force 2)increase exposure time, so part become harder to break 3) make it a bit more rounded or even sharp vertically to decrease impact area 4)use more rigid material 5) use resin with lesser surface tension. More supports to weak places also could help since it makes them more solid.

@StepanNovikov Adding supports wouldn't help since the gaps seem to 'slice' right through them as well. The surface tension idea sounds promising though. When you say "slow down printing speed", are you referring to the speed at which the Z-axis is moved upwards by?

Adzi B, yes, it's about Z axis speed while part moving up and in my experience with printing of the Eifel tower (https://www.thingiverse.com/thing:22051) failed print more than first platform with SparkMaker without changing geometry with LCD-T resin. They recommend in such cases, LCD-BW, but I didn't have a chance to check it with LCD-BW and I didn't find any specs  surface tension for both of them. However, since we have here much less surface area, probably, in such case, decreasing of lifting speed or even simple adding more supports in right places may help.

@StepanNovikov Could've been luck of the draw but reducing my Z-axis movement speed (from 100mm/min to 65mm/min) did solve the issue (I did also bump up exposure time from 10s - 12s). I shall experiment with future prints, and if this proves a reliable solution, I'll answer this post with your advice as the solution. Many thanks :)


text:
How to interpret various thermal-related filament properties?
When picking filament for specialty, high temperature applications, multiple parameters are provided, but it is not clear to me when which to use.
The most common parameters provided are:

Vicat softening temperature
heat deflection temperature

Assuming I'm designing a part to be used in high temperature environments, when should I use each parameter?
For example, Polymaker has

Material
Vicat soft. temp. (°C)
HDT (1.8 Mpa) (°C)

PolyLite PC
119.5
106.6

PC-ABS
135
106.4

PolyLite ABS
103.9
98.2

PA6-CF
N/A
173

CoPA
180
69

https://eu.polymaker.com/Downloads/TDS/PolyLite_PC_TDS_V5.pdf
https://polymaker.com/Downloads/TDS/Polymaker_PC_ABS_TDS_V5.pdf
https://polymaker.com/Downloads/TDS/PolyMide_PA6_CF_TDS_V5.pdf
https://eu.polymaker.com/Downloads/TDS/PolyLite_ABS_TDS_V5.pdf
https://eu.polymaker.com/Downloads/TDS/PolyMide_CoPA_TDS_V5.pdf

This depends on application.
Definitions:
Vicat softening point. Vicat softening temperature or Vicat hardness is the determination of the softening point for materials that have no definite melting point, such as plastics. It is taken as the temperature at which the specimen is penetrated to a depth of 1 mm by a flat-ended needle with a 1 mm² circular or square cross-section. [However, it seems force on needle should be included.]
The heat deflection temperature (HDT) or heat distortion temperature (HDT, HDTUL, or DTUL) is the temperature at which a polymer or plastic sample deforms under a specified load. This property of a given plastic material is applied in many aspects of product design, engineering and manufacture of products using thermoplastic components. [Again, to be meaningful, the forces need to be specified.]
Basically, Vicat softening temperature involves ability to be cut, while heat deflection temperature involves distortion from an evenly distributed force. Thus, use the parameters based on whether sharp uneven forces or a distributed force is most important to your application. This can also be worded Vicat is for maintaining shape, HDT is for maintaining load bearing properties. In other words, Vicat is for uneven loading on the print, which can change the shape. The most extreme is a sharp load. HDT is for the print to support an evenly distributed load.  Many applications may be in between the two.  What complicates the issue is 3D prints are ususally printed with a fill rather than being printed solid.
Appendix
Standards to determine Vicat softening point include ASTM D 1525 and ISO 306, which are largely equivalent.
The heat distortion temperature is determined by the following test procedure outlined in ASTM D648. The test specimen is loaded in three-point bending in the edgewise direction. The outer fiber stress used for testing is either 0.455 MPa or 1.82 MPa, and the temperature is increased at 2 °C/min until the specimen deflects 0.25 mm. This is similar to the test procedure defined in the ISO 75 standard.
Limitations that are associated with the determination of the HDT is that the sample is not thermally isotropic and, in thick samples in particular, will contain a temperature gradient. The HDT of a particular material can also be very sensitive to stress experienced by the component which is dependent on the component’s dimensions. The selected deflection of 0.25 mm (which is 0.2 % additional strain) is selected arbitrarily and has no particular physical significance.

I found also that Vicat is for maintaning shape, HDT is for maintaining load bearing properties.


text:
Which slicer (Voxelizer or Cura) for Zmorph printer?
Can I use Cura generated G-codes in Zmorph 3D printer?
Zmorph comes with its own slicing software (Voxelizer) but it only takes a 2D drawing as input and layer height is the only parameter that can be changed so that the entire 2D drawing increases in height. I wanted to print objects as shown here:

I tried to create G-code in Cura and later use in Zmorph but the nozzle was going below the print bed when print is given so that I have to abort the print.
Voxelizer code example (starting)
; Generated with Voxelizer 2
;; { "info": [
;;         { "toolhead": "Thick Paste" },
;;         { "workflow": "chocolate\\ceramics" },
;;         { "voxelizer_version": "v2.0.0-macOS-1-g90eaae" },
;;         { "voxel_size": 0.23999999463558197 },
;;         { "printing_time": "6min 30s " },
;;         { "printer": "ZMorph VX" }
;;     ] }
G92 E0.00000
G1 E-2.00000 F3000.000
G1 Z3.160 F3000.000
G1 X99.257 Y97.462 F7200.000
G1 Z1.160 F3000.000
G1 E0.00000 F3000.000
G1 X99.225 Y97.435 E0.00046 F600.000
G1 X99.193 Y97.408 E0.00092 F600.000
G1 X99.162 Y97.381 E0.00138 F600.000
G1 X99.131 Y97.354 E0.00184 F600.000
G1 X99.100 Y97.327 E0.00229 F600.000
G1 X99.069 Y97.299 E0.00275 F600.000
G1 X99.038 Y97.272 E0.00321 F600.000
G1 X99.007 Y97.244 E0.00367 F600.000
G1 X98.976 Y97.216 E0.00413 F600.000
G1 X98.946 Y97.188 E0.00459 F600.000
G1 X98.915 Y97.160 E0.00505 F600.000
G1 X98.885 Y97.132 E0.00551 F600.000
G1 X98.855 Y97.103 E0.00596 F600.000
G1 X98.825 Y97.075 E0.00642 F600.000

Cura generated code for above figure (Starting lines)
G92 E0.00000
G1 E-2.00000 F3000.000
G1 Z3.160 F3000.000
G1 X99.257 Y97.462 F7200.000
G1 Z1.160 F3000.000
G1 E0.00000 F3000.000
G1 X39.300 Y64.450 E4.10919 F1200.000
G1 X39.300 Y35.550 E9.65851
G1 X60.700 Y35.550 E13.76770
G1 X60.700 Y64.450 E19.31703
G0 X60.500 Y64.450 F7200.000
G0 X60.500 Y64.350
G0 X59.610 Y63.360
G1 X40.390 Y63.360 E23.00762 F1200.000
G1 X40.390 Y36.640 E28.13834
G1 X59.610 Y36.640 E31.82893
G1 X59.610 Y63.360 E36.95966
G0 X41.085 Y62.863 F7200.000
G1 X40.884 Y62.663 E37.01410 F1200.000
G0 X40.884 Y61.107 F7200.000
G1 X42.640 Y62.863 E37.49095 F1200.000
G0 X44.196 Y62.863 F7200.000
G1 X40.884 Y59.551 E38.39034 F1200.000
G0 X40.884 Y57.996 F7200.000
G1 X45.751 Y62.863 E39.71200 F1200.000
G0 X47.307 Y62.863 F7200.000
G1 X40.884 Y56.440 E41.45619 F1200.000
G0 X40.884 Y54.884 F7200.000
G1 X48.863 Y62.863 E43.62293 F1200.000
G0 X50.418 Y62.863 F7200.000
G1 X40.884 Y53.329 E46.21193 F1200.000
G0 X40.884 Y51.773 F7200.000
G1 X51.974 Y62.863 E49.22347 F1200.000
G0 X53.530 Y62.863 F7200.000
G1 X40.884 Y50.218 E52.65742 F1200.000
G0 X40.884 Y48.662 F7200.000
G1 X55.085 Y62.863 E56.51377 F1200.000
G0 X56.641 Y62.863 F7200.000
G1 X40.884 Y47.106 E60.79265 F1200.000
G0 X40.884 Y45.551 F7200.000
G1 X58.197 Y62.863 E65.49394 F1200.000
G0 X59.114 Y62.226 F7200.000
G1 X40.884 Y43.995 E70.44452 F1200.000
G0 X40.884 Y42.439 F7200.000
G1 X59.114 Y60.670 E75.39510 F1200.000
G0 X59.114 Y59.114 F7200.000
G1 X40.884 Y40.884 E80.34554 F1200.000
G0 X40.884 Y39.328 F7200.000
G1 X59.114 Y57.559 E85.29612 F1200.000
G0 X59.114 Y56.003 F7200.000
G1 X40.884 Y37.772 E90.24670 F1200.000
G0 X41.802 Y37.135 F7200.000
G1 X59.114 Y54.447 E94.94785 F1200.000
G0 X59.114 Y52.892 F7200.000
G1 X43.357 Y37.135 E99.22674 F1200.000
G0 X44.913 Y37.135 F7200.000
G1 X59.114 Y51.336 E103.08309 F1200.000
G0 X59.114 Y49.781 F7200.000
G1 X46.468 Y37.135 E106.51717 F1200.000
G0 X48.024 Y37.135 F7200.000
G1 X59.114 Y48.225 E109.52871 F1200.000
G0 X59.114 Y46.669 F7200.000
G1 X49.580 Y37.135 E112.11771 F1200.000
G0 X51.135 Y37.135 F7200.000
G1 X59.114 Y45.114 E114.28445 F1200.000
G0 X59.114 Y43.558 F7200.000
G1 X52.691 Y37.135 E116.02864 F1200.000
G0 X54.247 Y37.135 F7200.000
G1 X59.114 Y42.002 E117.35030 F1200.000
G0 X59.114 Y40.447 F7200.000
G1 X55.802 Y37.135 E118.24969 F1200.000
G0 X57.358 Y37.135 F7200.000
G1 X59.114 Y38.891 E118.72654 F1200.000
G0 X59.114 Y37.335 F7200.000
G1 X58.914 Y37.135 E118.78085 F1200.000
G0 X58.914 Y37.135 Z2.320 F600.000
G0 X55.200 Y58.950 F7200.000

Voxelizer is multi-purpose software that uses 5 to 7 different presets for the FAB and VX respectively. It decides upon what is available in options based on settings.
The single and dual extruder setup takes a whole load of data formats, including ones not commonly found in most other slicers:

The paste extruder setup and Laser setup only take .dxf, .svg and bitmap (.jpg, .bmp, .png) files:

The CNC setup features a different set of available extensions - including 2D files:

For a 3D model, use the extruder setups. It does not appear as if the software uses a special G-code format but works with derivates of the Marlin G-code library. To swap between setups, click in the top left corner, as you can see in this test-slice I ran:

Whether its possible to export GCode created in other slicing softwares are run in Zmorph printer ?

@PrithvirajV yes, the resulting G-code I got with similar settings in Voxelizer (for FDM settups, NOT paste) and from Cura is similar.


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

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

There is a difference in units, E value in G-code is length (typically in mm, but can be volumetric also), you are referring to RPM (revolutions per minute). The latter is not a length (or volume), but a speed. You need to explain why the difference is as such. otherwise, no slicer will help you out.

After re-thinking I supplemented the answer with suggested approach: alter the firmware to support smaller units. Post-processing sliced G-Code will still be necessary, and I explained how to do it.  So, this is straightforward answer on how to achieve integer Ennn values for real printing, with or without help of slicer. (Also some extra explanation about RPM.) I hope you will take many useful information from it. Finally, very much will depend on your hardware, firmware and selected approach. (Deleted previous redundant comment.)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Supplemented the answer with clear overview and better suggested approach: alter the firmware to support smaller units.

Thank you for your reply. I really spent the last two days reading the information that you supplied. Theoretically, it should work but really I need to understand what you meant with "Each of the above needs post-processing of the G-Code output"??
Should I write a python script for this job or is there already such a script?
Hint: Iuse the Cura slicer

Yes, I think you should create own logic basing on some existing script. I doubt there is something exactly matching your needs, but maybe close enough. I just found quickly googled ProcessGCode, search there for "Ecoordindates". Personally I did only limited post-processing so far, mostly with existing Cura plugins (injecting extra lines) or manually. Selecting Python could be most future-proof if you think about Cura, because it uses Python engine for plugins.

Otto, I would also like to really thank you for reading my text. I appreciate it a lot, believe me :) As you could see, I started with a backbraking idea of re-scaling E stepper movement, only to propose much simpler change of unit. I suppose the latter is also of your preference. I hope you will get good results with your project.


text:
How to print at low temperatures (filament melting at about 70 °C)?
I'm using Cura to slice prints from a biodegradable polyester called PCL (Polycaprolactone).
I need to print @ ~70 °C but extruder does not run until nozzle reaches 175 °C.
Which setting to change so extruder will turn on when nozzle temperature has reached 70 °C?
Here are my settings for the material:

You do not need to use "starting" and "final" printing temperature, only "Printing Temperature" is needed. Can there be a minimum temperature at play here? E.g. usually there are cold extrusion prevention temperatures at play in he firmware, but that doesn't explain that the hot end heats up to 175 °C. Please add the first 30 or so G-code lines.

Hi oscar, i suspect it is the cold extrusion protection. It is using Marlin. The extruder motor will not turn on until at least 175 °C. How do i disable the cold extrusion setting? Or change the minium temperature from Cura? Or doo i have to install firmware with editted configure? Appreciate it!

So i looked through the g-code and added in M308 and M17 settings, still nothing. I really have no idea why the extruder is not being turned on. Is there a specific g-code to turn it on? In the code, the e axis is on though

Please read the answer below to disable it. Cold extrusion prevention was the first thing that came to mind. I wondered why the temperature reached over 170, but that was done by you apparently .

70 °C is a specialty filament. It is well below the MIN_TEMP defined in any sane firmware. In Marlin, you can't turn on the extruder in any way, while this is online.
You do need to define your firmware to allow such a print - either by dropping the value in the firmware or disabling Mintemp-protection and then flashing that firmware. That is quite invasive.
To temporarily disable the MIN_TEMP, you need to run the G-code M302 P1 or M302 S0 - M302 on its own does nothing. However, some firmware distributions might explicitly prevent these two commands of turning off the check.
In that case, you might use M302 S65 or similar to drop the MIN_TEMP.

Thx, i have added the flags too, still nothing. Any thoughts?

@JorgeMercent that seems like your firmware bans those two because someone wanted to be smart in writing it. A lower min-Temp is the solution then.

If one's firmware has no override, an alternative solution without flashing might be wiring an additional resistor to fake the output of the thermistor and shift it up to a range the firmware allows printing at. Depending on if you're more comfortable with software or electronics this could be either easier or harder.

@R..GitHubSTOPHELPINGICE that's.... tricky and might be dangerous in case you miscalculate: you practically loose temperature control if your resistor is off by half a percent!

In Cura Machine Settings, add M302 S70.
Apparently, M302 P1 and M302 S0 do nothing, you need to define a non-zero minimum, and in my case, 70. Thanks to 0scar and Trish for your help.


text:
CR6-SE fails to heat hotend to set point
TL;DR - Please help me rebuild my CR-6 SE so that I can move on

Here's a link to the latest issue that I had to make proof of in a video: CR6-SE failed
Basically, it's failing to reach/maintain temperature (set point of 240 °C, fails to heat above 230 °C), issues start to happen at temps as low as 210 °C.
Creality support is evasive/dodgy. First, they want to see a video proof for the problem reported, and after a while and emails from me asking, suggested something obvious (set temp to 200 °C).
And without any video, they don't respond. Just like last time when I ran into the defective/burned power switch and failed bed leveling.
If you have some spare time, please quickly check the video and provide some feedback.
I already fixed the burned power switch and auto-leveling (Creality ignored me, so I got the parts from Amazon).
This is the last issue that I need to do a "mercy" fix, so that I can either repurpose it or, just give it away (but I still have to make it working again and safe!).
I already placed an order for an i3 MK3S+, should've bought this in the first place to help me study 3D modeling, not working my degree towards fixing Creality printer failures :)
Thanks in advance.
My troubleshooting steps so far after a screw fell off during print:

Disassembled the hotend: found heater block loose, screws were bent and somewhat stripped
Heater resistor has a bad crimp
Thermistor is reading temp, but I don't know if it's accurate (don't have a multimeter+thermocouple)

Ordered a hotend from AliExpress, hopefully, that's it

Just to doublecheck, as there is no sound in the video. You don't have a nozzle fan turned on during heating? Please check my suggestion about PID tuning.

Yes, I disabled audio in OBS.

I advice to buy digital electronic multimeter, even very basic. Learn how to use it, because mistakes may be dangerous: for electronics or for you (in case of high voltage, etc.). For me it is the very basic tool. And thermocouple ... not needed for standard calibration and troubleshooting, I think it is nice addition which may help from time to time.

Thanks. I have 2 Fluke meters at home. I just don't have one that can do temp.
I'm a retired HW Eng. that's bored at home and jobless and trying to learn the latest 3D modeling & etc.  :)

Perform PID calibration procedure for hotend using G-code 'M303' with nozzle fans turned off completely.
You may use detailed guidelines from AK Eric's blog, RepRap wiki or 3DMaker Engineering.
If this will improve or clearly change the situation, but you still observe some issues during or after tuning, review other posts for troubleshooting. For example: large initial overshoot, no oscillations, struggle to fit into functional range or narrowed down hardware issues of incorrect heating cartridges.
When succeeded, you should repeat the procedure with fans enabled at the regular speed you use during printing.
PID calibration can be performed from Marlin's LCD menu (Configuration > Advanced Settings > Temperature > PID Autotune E1). It will allow to select target temperature, but not number of tuning cycles. It is only accessible when PID_AUTOTUNE_MENU is enabled in firmware settings (Configuration.h):
//#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)

Thank you! This is really helpful.
I will follow the guidelines; I always want to know how to calibrate the PID, especially now that I'm gonna be replacing the hotend assembly. Knowing how this thing works, it's probably not gonna be a swap-and-run operation.
Since my heater block is stripped (the screws are harder than the block), I might just play around with it until the parts arrived.

BTW: Will I need something like this for cal?
https://amz.run/4Geu

No, for PID calibration, you do not need any extra tools. This is just running few G-code commands with serial terminal. Quicker for hotend than for bed (same process, but just takes longer). It will take you about 30 min for first time, including reading, so you will quickly confirm that this was just calibration. I hope to hear from you soon.

I don't think PID calibration would help out in this case. There is a ton of issues with this printer type.

@0scar It doesn't hurt, plus I get to learn something new. Agreed that there's a ton of issues with this printer type. But I also think, the biggest issue is with this company (Creality).

@bigpow True, PID tuning is something that does not hurt, can be a challenge sometimes. I think the offset is too big to be fixed by a different D(ifferentiator). I suspect that there is a problem with the power connector.

I replaced the hotend with parts bought from AliExpress.
My printer is now able to reach/maintain temperature and complete prints successfully (no more heating failure).
BTW:
It's harder to buy replacement parts for CR-6 (as compared to other Creality printers).
There were only 2 type of replacement hotend parts for sale on AliExpress at the time I was shopping:

40 USD for a full assembly (with carriage)
28 USD for a nozzle kit.

There's an Amazon seller and a Canadian 3D printer store that sells individual parts, e.g.: heater block, but the prices are relatively expensive.
I bought a full assembly, but a nozzle kit would have worked as well.
Also, it looks like they're fixing their production process; my new hotend assembly was built better, even with what appear to be the same parts.
Not pretty, but at least it's printing - Hopefully this is it.

Ok, so you have replaced the "thermistor"? And it helped, great. Btw. did you calibrate the PID after modification? ;) I am not kidding, could help to keep temperature in check. There are striiiiiiiings, lower the hotend temp. But cooling seems good looking at the rear pipe.


text:
Issue with Z homing on Ender 3 Pro with Marlin
I've just changed the motherboard on my Ender 3 Pro with a MKS GEN_L v1.0 and flashed the latest Marlin version on it.
I've calibrated my bed manually using the default XY and Z auto home commands on OctoPrint and a piece of paper.
I'm happy with the calibration, however whenever I launch a print the Z axis moves up from the calibrated position by about 4 mm and starts extruding.
I've checked my Z endstop status with M119 and it's triggered at the right calibrated position.
How can I correct this?

Looks like it is accounting for an imaginary glass bed. So it homes next to the build plate, but afterwards moves up to 4 mm? Could be an offset at play. You have the config files, so you need to figure that out, or did you flash a ready made binary file?

4 mm is a typical glass sheet

This is most probably caused by uploading a preconfigured binary firmware, changing the Z offset has been discussed before, e.g. here and here.

I've actually found what the issue was. It turns out that my Z steps were way out of whack (i.e. 4000 steps/mm instead of 400). Apparently, that's the default value in GitHub for version 2.0 of Marlin. Not sure if that's a typo or a valid value, anyhow setting it to 400 fixed it.

Thanks for feedback. I will add this also to my answer (the checklist, let's say).

If you are already sure that homing is performed correctly and in valid position, then there are few reasons why printer may start printing in unexpected position.
Do the following checks to narrow down the actual one:

steps/mm: use M503 (or M92 without parameters) to check if currently configured steps/mm match your hardware setup for each axis

offsets: use M503 (or M206 without parameters) to check that there are no offsets configured

backoff: look in Configuration_adv.h for following line:
//#define HOMING_BACKOFF_POST_MM { 2, 2, 2 }  // (mm) Backoff from endstops after homing

(Having the backoff set is nothing wrong, actually. But be sure to also check final positioning in the generated file.)

slicer's Start G-code: review slicer configuration, if there is nothing suspicious injected to the print file, which could temporarily overrid printer setup - esepecially M428, M206, G92 (set position is normal for E in relative extrusion mode, but suspicious for X,Y,Z)

generated file: review initial part of generated G-Code file, if there are any similar surprises, and if on initial layer section there is expected move to valid Z position before extrusion is made


text:
Order of a HEPA filter and Carbon filter in a filter-stack
I am going to make a filter for the enclosure of a 3D printer and want to remove both VOC's (with activated carbon) and Ultra Fine Particles (with a HEPA filter). But in what order should the filters be?
I am thinking that if I put the HEPA first, one will get carbon dust into the air (and that is probably not harmful), and if I put the carbon filter first the carbon will be clogged up with UFP faster and the HEPA will be clogged up with carbon dust.

The easiest way is to look at a profesional dry filter stack first to learn how a filter stack is usually made. So, let me grab my Dyson vacuum cleaner. On the intake side I get the following stack:

large particle trap
foam filter for medium particles
HEPA filter

Incidentally, that's the same setup as my Shop-Vaccum has (though the foam filter gets replaced by a paper bag)
When I googled other dry filters, I found these filter stacks as common:

large particle wavy paper filter then combined Carbon-HEPA filter (carbon first)
2 x Nylon-Mesh, Carbon, HEPA

The idea is to reduce the particulate grain the deeper you go into the filter. The rough filter is cleanable, the carbon filter traps chemicals and odor that might damage the HEPA filter, the HEPA filter catches any remaining particles.
If you want to know more about various filter types and applications, you might want to read an article on engineering 360.
Safety pointer
Carbon dust is not not harmful - it is both flammable to explosive, as well as resulting in Black Lung (Coalworker's pneumoconiosis) if it is thrown into the air like in a mine.
However, commercially produced carbon filters don't usually release any coal dust: after making the activated coal, the product is shaped (as you can see in this manufacturer video) and sorted into various grains, like in the photo below. These granulate are then put into the carbon filter and trapped in a mesh that is small enough to keep them even after having been broken apart some. Very fine grains like the Bead Barbon are usually used in wet applications.

In a kitchen, you have sticks of 3-4 mm diameter, often trapped in a metal mesh. ABC-Mask filters usually use very porous carbon-grains in the half to millimeter grain size, trapped between paper sheets.

I find it a little hard to belive that the carbon granulate don't contain coal dust as well. Is it not made just like charcoal by heating it with little oxygen? And charcoal certainly have coal dust in it.

@Stormer Activated carbon is made by heat treating coal in a way. it is bound and after production washed and sorted based on grain size. The powder would create black lung but the pellets used in filters are no longer dusty.


text:
What type is that glass?
I own a Magic Build 3D Printer. I found out, that the glass is scratched like in the picture.
So, I'm looking for a replacement glass plane to put in front of the projector. Is this a special glass? What are the properties? Where can I find it?

This is a sheet of glass you'd most likely need to acquire as a replacement part for your printer's manufacturer:

The dimensions of the glass, especially with the rounded corners, are usually very odd and make buying a spare from a glassmaker really expensive.
Some printers like the Elegoo Mars have an LCD mounted as part of this sheet.
Printers also might have this plate coated for different properties, for example, to reduce reflectivity and refraction inside the printer.

In this case, we have a DLP setup that uses a projector. You best inquire at the manufacturer itself using their website, E-Mail or facebook about a few spare pieces - that will get you the same quality as the bed you already had (save for the scratches) and they usually have such items in stock.


text:
Where is filament thickness setting in Cura?
I don't see filament thickness in Cura. How can it work without it?

There are two important settings related to filament thickness in Cura 4.8.
They are in Preferences window (open menu Preferences > Configure Cura):

Printers > Machine Settings > Extruder 1 > Compatibile material diameter - this setting will influence visibility of materials available on the list in next point.
Materials > Information > Diameter - width of filament currently selected in the list.

Important remarks:

After selecting a filament from list you may alter its settings. But it will not become the active filament for printing until you press "Activate" button above the list.
Extruder settings (Nozzle size, Compatibile material diameter) will be always displayed with "." (dot) for decimal point. But if your regional settings (in operation system) use "," (comma) for decimal point, then the only way to enter new settings is use comma, otherwise they won't be saved. From my observations this defect concers only this single window.


text:
Rather than stiffer springs, can I preserve my fine-tuned bed height using Nyloc nuts?
I've read a bunch of articles about getting better springs for my bed levelling screws so that I don't have to adjust it as often because standard springs vibrate loose as it prints.
However, would it be simpler and more effective to just use Nyloc nuts tightened against the adjustment wheels so that the wheels cannot rotate? Or some other form of mechanical prevention of the wheels turning? For example, tie a piece of string between the spokes in opposite wheels, so they cannot rotate much relative to each other.

Or locktite. why not just use locktite?

Stiffer springs should not be considered for novice 3D printer operators, this increases the chance of permanent damage in case of some beginners accidents (this is a general remark, not aimed at the OP printer experience/level).

It's because the bed heats up. Since the bed can heat up to the point that locktite or nylon can soften, using those products to keep the screws from turning will have exactly the opposite effect.

Thanks for responding :) The bed heats to 50'C - i'm not sure that's enough to melt loctite. I guess the main question is: Do we simply want to prevent the adjustment wheels from turning? Or is there more to it than that?

Some people heat their bed to 100C to print ABS, some to 75C etc. The point of the springs is so that if the head crashes into the bed it won't get damaged. however as the bed (which is typically aluminium) expands, the stress could break or alter whatever locking effect you've put there; effectively causing the problem to return in short order. How short, I can't say.

Does your bed already have washers on the screws?  The neopreme (red) washer under the screw head (in picture).  This is the German Reprap X400 design and is worth trying.


text:
How to replace the nozzle in my hotend assembly?
What should I take care of to replace the nozzle of the hotend assembly the right way?
What kind of data, precautions, tools, steps, and verification are important for replacing the nozzle?
The procedure seems straightforward but tutorials differ greatly and seem often incomplete. Online videos are great but long, sometimes misleading, and difficult to compare if they use another printer model.
For example:

This Prusa 3D tutorial starts from heating the nozzle to 280 °C, which is dangerous for some hotend setups. Also, it is created around a direct drive extruder, so it does not advise to what to do with a Bowden tube.
Another Changing Nozzles & Bowden Tubes video seems to be a great tutorial but advises heating only to ~210 °C. So I need to make sure I know my hardware limits first? Should I take something else into account about temperature, or just act by experience, starting from 230 °C?
Is that heating mandatory, or only when there is residue filament inside? If there is something to consider about replacement nozzle before installing it, or cooling down again, like PID calibration?

So I am looking for a general overview: what should I think of to be in control? And maybe a bit of why, but not necessarily how. (As always, each detail may be a separate study, so please don't to fall into troubleshooting, which could be done in separate questions like E3D V6 nozzle seized into heater block).

Trish gives a step-by-step procedure that is easier to follow when changing a nozzle.  You seemed to be asking why, so I've tried to answer why.  Hopefully, you have the procedure specific to you printer model.  That is the safest to actually follow.  Otherwise, you have Trish's steps.

Actually I hope to get (incrementally) a general procedure. I believe there is one linear routine (like order of installing and tightening nozzle with heatbreak) - with remarks here or there to remember of something in respect for specific hardware (type of extruder and hotend rather than specific printer). Generally I am heading to upvote any answers adding some value (like many in yours) - and accept Trish work as the leading answer, and also evolve it furter (hope to have a green light from they).

@octopus8 you are aiming for a knowledgebase question, yes? Sure, let's go ahead!

Tools

spanners / wrenches - to turn both nozzles (common sizes are 6-8 metric wrenches)
spanner / (fitting or adjustable) wrench - to hold a heating block

or small vise  - to hold a heating block (if you are going to unmount the hotend for operation), with non-flammable soft-jaws,

screwdriver(s)/Allan-keys - when you need to remove shroud or plan to umount the hotend
non-flammable tray / plate (e.g. ceramic) - to put removed, potentially hot nozzle aside
adequate personal protective equipment - against getting your fingers burned, etc.

Precautions
Beware of touching heater and thermistor wires with tools during operation. Electronics can be damaged by shorting the heater leads, thermistor leads, either with tools, the nozzle, or even a metal bed. Also, neither 12 V nor 24 V are pleasant to touch.
Using tools with plastic shielding can help to prevent this, but proper care is needed. Improvised rubber or tape wrappings are not advisable.
Step 1: Unload
Before swapping the nozzle, remove the filament. Follow the procedure of your manufacturer, though often this is heating the nozzle, then triggering the Swap-Filament or unload routine.
Many makers suggest a cold-pull. This is heating up to about the print temperature, then going back to off. Letting the filament cool by about 20 °C, they then yank hard at the filament, removing most of the plastic from the nozzle and melt zone. It is not applicable to some nozzles, especially those made from several parts (e.g. Olsson Ruby).
I have found it easier to put in an intermediate step of removing the whole hotend and use clamp it in a small vise to hold it on the heater block. This holds it steady and removes any stress from the heartbreak. However, this is more involved than using a fitting wrench to steady the heater block.
Step 2: Remove the nozzle
Dismount the extruder shroud if it blocks the way to the heater block, or hasn't already been removed to get the hotend dismounted.
If you have a lined hotend, remove the PTFE tube.
If you had oozing, this usually has glued the nozzle and heatbreak to the heater block. Heating the hot end to about the glass transition temperature of the filament will often make it easier (or possible) to remove the nozzle without stress to or damage to parts.
Now use a suitable wrench to remove the nozzle. Make sure to steady the heater block during this step. Otherwise, you might shear off a necked heatbreak, while lined heatbreaks might get deformed.
A Hot removed nozzle needs to be put aside on the safe surface or remain in the block with some windings.
If you work in a vise, you can remove the heatbreak too.
Step 2.5: Cool down
It's best to let the hotend cool down, so you can easier handle the parts. Unless you had to fight with oozing, you can have the nozzle col down still halfway in the block and then do the last windings by hand on a cold nozzle.
Step 3: Install new nozzle
Now, screw in the new nozzle hand tight. There should be at least half a millimeter stick-out between the nozzle flange and the heater block and it needs to butt against the heartbreak. (Nozzle must tighten against the heat break and not stress the heater block). Don't use a wrench yet, just hand tighten the nozzle against the heartbreak.
If you have a lined hotend, re-install the Bowden tube until it butts against the nozzle.
Step 4: Hot tighten
Heat up the hotend to your limit temperature:

Generally: do it at the highest temperature you will run. Otherwise, you will not get a good seal between the nozzle and heat break if you depending on tightening at lower than operating temperature. A bad seal allows the filament to leak out (oozing). Do not exceed the limit for your hardware.
For an all-metal hotend (a heat break without Teflon), this is dependant on your heater cartridge and thermosensor.
For a lined hotend that is 245 °C. Teflon will degrade at 250 °C. This also applies to Bowden tubes that run all the way to your nozzle. Go to the maximum temperature for operating with your machine, then you usually clamp the Bowden tube in place so that it forms a good seal.

Now use the wrench to tighten the heated nozzle carefully. Use a second wrench to steady the heater block, if you don't have the setup in a vise. Don't waste too much time, but don't over-torque!
The exchange is done. If the hotend was unmounted, remove it from the vise, reassemble it fully and install it on the printer again. Make sure that your hotend cooling fan does put the heater block in the airstream.
Step 5: Validation
Run some filament through installed hotend. Observe if there is no ooze outside the nozzle.
Step 6: Finishing
If not already done, mount back the extruder shroud and any parts that had been removed.
Check homing of the Z-axis, as you will need to adjust the Z-height. If you have a sensor on the carriage, you might need to adjust its height to compensate for a slightly altered stickout of the nozzle.

For more information on step 4 see https://3dprinting.stackexchange.com/questions/15541/wrench-drops-temperature-of-heater-block-when-tightening-nozzle

The exact procedure depends on the design of the printer.
After unloading filament, remove and install the nozzle at the highest temperature you will run.  Otherwise, you will not get a good seal between the nozzle and heat break if you depending on tightening at lower than operating temperature.  A bad seal allows the filament to leak out (oozing).    Tighten and untighten the nozzle with wrenches on the heat break and nozzle.  The heat break is easily damaged if tightening too tight into the heat sink, but you need a tight connection between the nozzle and heat break.  This means the nozzle must tighten against the heat break and not tighten against the heater block; thus space between the nozzle flange and heater block when tightened against the heat break.
Note: If you had oozing, it will glue the nozzle and heat break to the heater block.  Heating the hot end will often allow you to remove the nozzle.
Note the electronics of some printer models can be damaged by shorting the nozzles to heater leads, thermistor leads, or even a metal bed.  Check for your model.
Running the hot end at 250 °C or above requires an all metal hot end (a heat break without Teflon) or the Teflon will degrade.  This also applies to Boden tubes that run all the way to your nozzle.  Look for instructions related to your Boden tube.  Go to max. temperature for operating with Boden tube, then you usually clamp the Boden tube in place so that it forms a good seal.


text:
Is there a possibility to add variable extrusion width to models with different wall features? (Simplify3d)
I've got a problem with the new "thin features" -solution in S3D. The model I want to print has some tapered thin walls, but also some thicker parts. I want to use this option for filling the gaps usually occurring when the wall thickness is just slightly greater than a multiple of the extrusion width.
For example:

Extrusion width: 0.48 mm
Wall thickness: 2 mm

Printing my model with this option enabled just doesn't work properly. Now the entire print is massively under extruded, the shells can be peeled like an onion.
I wanted to enable this feature because the thin features must be pretty tough and I don't have a clue why it affects every feature in such an inconvenient way. I've made sure that the Nozzle isn't clogged, the temperatures and other settings are right and there are no other new options enabled.
My setup:

Ender 3 Pro, direct drive
ExWidth auto 0.48
Speed 60 mm/s
External thin feature: single extrusion
Internal thin feature: single extrusion
Material PETG
default extrusion multiplier: 1

Is Simplify3D able to distinguish thin features from thick ones or to not under extrude every feature by enabling single extrusion gap filling?

Slic3r has a setting "Use adaptive slicing."  See if you have a similar setting for S3D.  While this setting varies layer height for the best print, it might affect extrusion width.

Your best option is to use a smaller nozzle for smaller line width.  Small nozzles also need adequate flow rate to prevent clogging.

@PerryWebb do you suggest to disable adaptive slicing, if enabled? (btw. change of nozzle is an option, yes - but not necessarily "the best", as we only assume what is behind the "direct drive" and how thin the walls could be, so smaller nozzle may help but still not resolve...). Jwagn, don't you have problems with retraction when printing very small amounts? - I mean wear of material by extruder gears, causing underextrusion?

Sounds like you can keep adaptive slicing on.


text:
Ender 3 weird drop in bed level
I have an Ender 3 a 3DTouch, with the SKR Mini E3 1.2 board.
From one day to another the probe started producing this pattern, where the right side of my bed (5x5 mesh, tried with 3x3, 7x7, all produce the same pattern) just drops by a significant amount.  The bed is the Creality glass bed. I tried switching it back to the stock Ender 3 plate (non-magnetic), but no physical sign of this drop can be seen by the eye.
Probe testing with M048 usually gave me Range ~0.005, and standard deviation between 0.001-0.0025 both in the problematic part, and any other part on the bed.
What could cause this problem?

Considering this is an Ender, it is probably caused by the rollers on the X axis or the un-driven right Z post. I've seen behavior like this caused by a too constraint PTFE Bowden tube, at the far end the tube pulls on the carriage lifting it slightly upwards, hence a different/larger gap.

unaigning the X-portal can happen

My understanding is the M048 probe test moves the z-position.  Have you tried measuring how flat your bed is by not moving z and using a digital indicator (drop gauge) such as photos in https://3dprinting.stackexchange.com/questions/470/bed-leveling-method/14526#14526 ?

@0scar 's answer was correct, I had to tighten the eccentric nuts on my X axis and the problem is gone! Thank you!

Considering this is an Ender, it is probably caused by the rollers on the X axis or the un-driven right Z post.
I've also seen behavior like this caused by a too constraint PTFE Bowden tube, at the far end the tube pulls on the carriage lifting it slightly upwards, hence a different/larger gap.


text:
How to set the fully dynamic plotting area?
I am trying to combine CNC plotter with image processing. The goal is to detect the object and print on that object. My question is can we set the fully dynamic plotting area.
For example: I want to print something on hand or finger. How do I tell the machine that this is hand and you have to print only on this hand.
I plan to detect the hand using a camera and set the hand as printing area in CNC firmware and the place G-code image on th finger. How to tell the CNC firmware that this is your printing area?
I am using GRBL firmware with Arduino and use Pronterface as software.

Hi Tyson! I have supplemented your queastion with information from comments. Could you review my answer if it is helping you, please? Also, we are not sure about your current G-code skills - and be aware that 3d printers focus on bit different set of commands than CNC machines (arcs, where are you?). Check the answer. Btw. I love your project, please leave a reference to your blog in comment :)

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

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

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

Hey octopus8. thanks for the answer. I was thinking about that what if I place 2 g-code images on pronterface plotting area. the first image is hand which is the boundary and the other image is design to print.link this is image hope you understand

Be aware that G-code is not an image, but a set of instructions for printer. So it is "active" part. I am not sure of your plan, but if Pronterface will send both "star" and "cross" to printer, they will be both printed. For 100% you will not avoid develop new source code to make this project. So I would propose to modify this gray square grid in the background, instead increasing complexity by adding new "active" elements. Look for "def repaint_everything(self)" in "./printrun/gviz.py" - I am pretty sure this is the right place to start.

Hey octopus8. I hope you are fine. I just want to know that can we set the bed size in points. For Example I detect the object and place the object on graph and find all coordinate and set the coordinate as bed. I hope you understand.

I am afraid I am not... What kind of "points" do you mean? Probably not "typography" points? So ...pixels on the screen? - then please read How to convert millimeters to pixel? and Calculating dots per..., because bed size is measured in real units, while pixels are relative to the display resolution and scaling.

points means x and y axis points. for example I detect object and plot the object on graph and get the points. now set my bed as graph points.

@Tyson, do you mean screen pixels? (math. "points" have no size!). And by graph you mean part of screen (grid in Pronterface)? If so, then all is about scaling. You need to be able to re-scale real dimensions (like millimeters) to screen dimensions (pixels). How many pixels is 1 cm in your "graph"? Therefore you have to know real dimensions of the surface subject (bed, finger, etc.) and thing to print. This is why you have to know Z distance, among others: to have data to calculate the real dimensions from a photo, and rescale to screen dimenstions, and then set your "size in points".


text:
Probe instead of nozzle centres on the bed
Problem is that the probe is in the center of bed instead of the nozzle. How fix it on my Tronxy X5SA?
Those are my current settings and the nozzle is shifted from the centre (X: 35 mm, Y: 3 mm):
#define NOZZLE_TO_PROBE_OFFSET { -37, 3, 0 }
#define Z_SAFE_HOMING

(Marlin 2.0 configuration)

Why do you think this is a problem? Are you looking for solution of something, or just explanation (@0scar just provided)? Do you experience any leveling issues because of this? Btw. If the probe is in the center during leveling, or the probe is in the center after homing (for example) and that's why you are concerned?

I've seen the edit, what is there to fix? Are you referring to the difference between 35 en 37 mm?

TL;DR You don't need to fix it, it is by design.

When using a probe, defined the correct probe X (xxx) and Y (yyy) offsets (#define NOZZLE_TO_PROBE_OFFSET { xxx, yyy, 0 }) and having enabled #define Z_SAFE_HOMING will cause the probe to home in the middle. That is how it is supposed to work!
If the nozzle would be in the center, then you wouldn't probe the middle of the bed, but the offset from the nozzle.

Thist is a problem because printer defines that point as center of the bed so printings are not centered, sfifted -37, 3.


text:
Wrench drops temperature of heater block when tightening nozzle
I've noticed when heating up the hotend to maximum operating temperature to tighten the nozzle against the heat break, after putting a wrench on the heater block, the temperature of the heater block drops by as much as 60 °C.  Do you ignore this or have a procedure to correct?

Good Followup Question!

I never tighten when hot and never had a leaking nozzle or heat break issues. Problem solved!

@0scar Torque wrench, hmmm?

How big is your wrench?!

I use a 7" channel locking wrench on the heater block and a M6 driver (screw driver like handle) on the nozzle.  A driver over a wrench tends to limit torque.  However, it feels like I could twist the nozzle in two even with the driver if I tried.

Mitigating "heat loss"
Technically, we don't lose heat, we have a drain of thermal energy out of the parts, but let's stay simple.
To combat the loss into the holding/steadying wrench, I use a vise: it might lessen the heating curve by the added thermal mass if used bare, but by adding two pieces of wood on either side of the heater block, I can insulate the block against the thermal drop from the steadying vise and atop that prevent scratches.
If you use an adjustable wrench for the heater block, one can add wooden "soft jaws" with a little cyanoacrylate glue, otherwise, some painter's tape or Kapton might aid.
It might help that my small wrenches have a super sturdy surface coating making them rather comfortable to use when left out in the cold and prevents rust. This layer also seems to prevent the flow of thermal energy into the wrench. Note that they are not chrome-plated but more like an enamel-look, a glassy powder-coat or actually lacquered.
Conclusion
When I need to mount something installed on the printer, I do the tightening as quickly as possible - the temperature of the measurement point and the temperature of the nozzle getting pressed into the heartbreak do not drop in the same instance, the nozzle will still be at the aimed for temperature when the thermosensor already has dropped.

Besides short durations, I'm going to try wrapping the jaws of channel locking pliers with Kapton tape.  This helps with grabbing the heater block.  However, the nut driver on the nozzle would seem to have the greatest effect on the temperature of the nozzle.

might be my cheap 15€ wrench set... that is coated in some fashion.

The problem with most coatings is they aren't made for high temperatures.  Kapton does block IR.  While it's only rated to sustain 232 °C, it can go up to 704 °C for short durations.  Any coating would probably need the ability to replace and not leave residue on the heater block.

@PerryWebb possibly... The main thing is exposure time. Doing it quick

I do it quick, wait for the heater block to recover the temperature, then check quickly.