text:
Does one has to take into consideration the nozzle diameter while designing something that will be 3D printed?
I am really new to 3D printing. I started with downloaded stuff about 2 months ago and now I am starting to do my own "easy" things.
While looking at tutorials I heard one of them talking about doing a chaffer of a specific size/height because he had a 0.40 mm Nozzle (the same as the one I have with an Anycubic Vyper). This got me thinking about if I should also take into consideration my Nozzle size for when I try to design something.
For example, should I think about multiples of 0.40 mm when deciding overall lengths or heights?
If I need to create space between 2 pieces, or joint pieces, should I always have to leave a multiple of 0.40 mm space between those pieces?
I have tried to find out info about this but I just found info about the importance of the Nozzle size at the time of print, but not at design time.
I am using Fusion 360 if that info is needed.

Nozzle size isn't what matters most time - Line width is
On many printers, it is actually common to print with a line width larger than the nozzle size. This is typical for many i3 style machines, such as Prusa I3 or Ender3. For a 0.4 mm nozzle on those two, the standard line width in Prusaslicer is set to 0.45 mm.
On Ultimaker Machines, the default in several slicers on the other hand is nozzle size to slightly lower (0.4 or 0.38 mm).
In any way, the factor you should remember here is the line width set in your slicer, which is dependent on the nozzle diameter. However, that is not the nozzle diameter itself.
When to use line width in designing
It is generally not advisable to design parts that are less than one wall thick. The slicer will usually drop those sections or, if not outright ignoring those sections, will result in considerable print artifacts. So, as a rule of thumb, the line width is the minimum thickness you should design for.
If you try to create sturdy walls, such as for containers, using an exact multiple of that line width is very common, which in turn creates very fast layers: two perimeters of 0.45 mm come out as a 0.9 mm wall, three to 1.35 mm, and so on. But that all depends on your line width.
When to ignore line width
If your item isn't structural in any way, forget anything about line width. Just design your aesthetic parts, and only in the end make sure that thin sections are at least one line width thick - by tossing your item into the slicer, check which sections are ignored, then thickening just those areas till you are happy with the approximation of the slicer.

You can go further than 110 %, see this answer and the discussion underneath.

@0scar indeed, but it's the bottom line^^

Not exactly, that is still with 0.45 mm lines. A 0.4 mm nozzle can do 0.8 mm lines easily. https://youtu.be/tJHnx89Fmi0?feature=shared Furthermore, Ultimaker has adopted a theory where the standard linewidth is smaller than the nozzle diameter. E.g. when using a 0.4 mm core the linewidth is set to 0.38 mm (this is standard set for you when you have an Ultimaker), so the nozzle diameter is not the minimum at which you can print.

It is not "common" to print with more than 110-115% of nozzle diameter. It is done, but for most users, which don't tweak anything, it's not common. Cura defaults to 100%, for example... (at least on UM2)

@FarO clarified - you should design for your machine's line width, not some arbitrary number in any way.

It would depend on what you are printing and the tolerances that you require.
For example, if you are producing engineering parts, and are a skilled designer, then you should take the nozzle size and layer height into consideration. Though the order of wall printing will probably be of more interest to you (If you print the inner walls first then the outer walls might bulge outwards slightly, and vice versa).
If you ware making garage kit style sculptures and busts, then you don't really need to think about the nozzle at all. Your slicing software will automatically adjust the print to fit what is possible and the slight differences won't make much of a difference.
If you're trying to print warhammer size figures, then yes you do need to take the nozzle width into consideration as it will effect the small details that you print. Which is why people mostly choose resin printers for this scale.
If you're only an average skill designer making items that don't require extremely delicate details or high tolerances for practical parts, then don't really need to even think about your nozzle.
I have an Ender 5 that's still using the 0.4 mm nozzle that it shipped with quite happily.
TLDR: If you're new to 3D printing and aren't trying to print Warhammer figures or engineering parts, you can largely forget about your nozzle. You won't notice the difference until you're much more skilled at modelling and are looking to do resin quality tollerances.

Thanks for your answer! I think I like the pain because my first ever "from zero to 3D print" thing was a 40mmx20mm case for an LD2410B sensor that fail on the joint because it merged :/


text:
Filament settings determination
I am currently working on a project that uses multiple 3D models which is to be printed, with a variety of 3D printers.
May I know how should I measure the Filament density of a particular filament. Currently, I am attempting to use the Mass/Volume formula, and am simply measuring the mass by weighing the filament. However, how do I measure the volume?
My second query is related to the 'cost' section in PrusaSlicer. I was told to input a specific value, nonetheless, I do not comprehend what to input.
Finally, for the printing, what should be an appropriate Idle Temperature; Nozzle temperature for 1st and other layers, as well as the bed temperatures with the same parameters(1st layer and other layers).
Your expertise and explanation would greatly benefit me!

Density
Filament has a thickness and length. with those, you can treat it as a long cylinder. The volume of a cylinder is $$V=l\times \pi \left( \frac d 2 \right)^2$$
Measure a length of the filament, measure the thickness, weigh it, and plug in the values.
$$\rho=\frac m V$$
The density of filaments can also be grabbed from the MSDS (Material Safty Data Sheet). A list of common densities:

Filament
Density

PLA
$1.24 - 1.25 \frac {\pu g} {\pu{cm^3}}$

ABS
$1.04 \frac {\pu g} {\pu{cm^3}}$

PETG
$1.27 \frac {\pu g} {\pu{cm^3}}$

TPU
$1.21 \frac {\pu g} {\pu{cm^3}}$

Cost
The cost entry depends on the unit: It can be cost per kilogram $C_\pu{kg}$ or cost per meter $C_\pu{m}$. In both cases, the density and filament diameter can be used to turn one into the other: $$C_\pu{m}=C_\pu{kg}\times \frac {\pi \left( \frac d 2 \right)^2}{\rho}$$
Idle Temperature
This is a filament dependent temperature, and also called Standby temperature. It should be lower than the printing temperature by quite a bit to prevent oozing, and shouldn't be used too much in the first place, as it is a powerhungry operation. It can be used for paus operations in which you insert things into the print, to speed up resuming print, but otherwise... there's little use for it on a single extruder machine unless you swap build plates. On a multi-extruder machine, Idle-temp can speed up printing a lot.
Typically, the idle temperature in a multi-extruder machine is $\pu{20 - 50 °C}$ lower than the print temperature, depending on preferences and material, and set to such a point that the nozzle does not ooze.
1st Layer temperature
Generally, the 1st layer is printed at exactly the same print temperature as the rest. However, printing at an elevated temperatures can help solving a couple adhesion problems.
Print and bed temperature
This is material dependent. Look up your filament manufacturer's recommendations for both print and bed temperature and run a couple tests. There are common ranges

Filament
Nozzle
Bed

PLA
$\pu{180-220 °C}$
$\pu{20-60 °C}$

ABS
$\pu{210-260 °C}$
$\pu{90-110 °C}$

PETG
$\pu{220-250 °C}$
$\pu{50-80 °C}$

TPU
$\pu{210-230 °C}$
$\pu{30-60 °C}$

source: Stack Exchange

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

sort: votes


text:
How should I restore an old build plate?
I have an Elegoo Saturn with a factory original built plate.
The plate was improperly cleaned and then left out. Causing a thin but uneven layer of cured resin to form on one corner. This effectively makes it impossible to level as one corner will always be a fraction of a MM out.
What is the best way to clean the resin off wile maintaining the surface?

Removal of cured resin only works in mechanical ways, as the chemicals that can remove it are very aggressive and will eat at the base plate. Using a scraper or very sharp chisel to very carefully chip off the resin without scratching the surface is the standard solution.
If you damage the build plate, it can be re-ground, if you have food intact reference surfaces using a surface grinder.

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


text:
Does Marlin already have a way to define auto Z-offset strain gauge?
My Ender 3 v3 SE printer is still really new so I understand the info is limited. I'm trying to build a version of the latest Marlin FW that will work I've already redefined the pins that are different however PA4 CLK and PC6 SDO are undefined currently which is for the strain gauge or whatever they're using is a 4-wire sensor. I would imagine this could work as a second Z probe Z1_PROBE then take the difference between the Z probes.
My questions:

How do I define the sensor pin?
Is it baked in already to calculate the Z-offset between two probes?


text:
Ender 3 s1 Pro, Cura, and Bondtech CHT 0.4 mm nozzle
So I swapped the standard Ender 3 S1 Pro 0.4 mm nozzle to a Bondtech CHT 0.4 mm nozzle to increase my flow rate, but I am a newb and not really sure what to do to start dialing this in.
I have not been able to get any adherence to my bed since making the nozzle change. I have not as of yet changed my Cura / Sonic Pad settings from the standard 0.4 mm nozzle, but before moving to the CHT I was printing PLA fine, so I am confident it's dialing in my settings for this nozzle.
Any links or info would be a great help so I can figure out where to start. Even better if anyone has made this change a profile would be killer! I'm just starting to research this and teach myself, but would really appreciate any and all assistance. Not including my settings, as I do not think my wrong stuff will help, but I can upload them in the morning if people feel it is helpful.

Did you check the distance between the nozzle and the heated bed after the change? You need to re-check the Z-offset when you change the nozzle.

Multiple times, re-leveled it manually and the auto level. Didn't help which is why I was thinking it was related to the flow rate. Oddly enough my test line down the side of the bed goes on fine as does some of the first layer, then other portions just do not.

Can you add a photograph ad the failed adhering print?

Just coming back to this. I can not, I have since switched it back from the bondtech nozzole to a standard one and sold the printer. Thanks for trying to assist me and sorry I have overlooked replying more quickly.

The nozzle is 0.5 mm shorter, so you need to adjust accordingly.


text:
Connecting 12 V Laser Module to 24 V Control Board
I have a 3D printer (Artillery Genius Pro) with a 24 V motherboard. I want to connect this motherboard a 12 V laser engraver module. If my motherboard was 12 V (with 12 V, GND, and PWM pins), I believe I could do it. In that case, I would connect 12 V, GND, and PWM of the laser module to 12 V, GND and Blower Fan (as PWM) of the motherboard. But my 3D printer has a 24 V board. How can I connect my 12 V laser module to my 24 V motherboard?
Your guidance in this direction will be highly appreciated.

You'll need a 12V step-down regulator to convert your 24V to 12V, or a seperate power supply for the laser module (make sure to connect each PSUs ground terminals).
Then it depends on what sort of PWM your module expects. The fan control on 3D printer boards is done by turning on and off the ground connection to the fan, while the positive supply (12/24V) is on constantly. This may not be what your module requires. Maybe it's fine with a 5V PWM signal, in which case you could use any available digital pin (e.g. from the endstop connectors) and set your firmware up to use that pin.

@towe That sounds like an answer!

Get a proper module
The most straightforward solution would be to get a 24 V rated laser module. However, that boat already departed (unless you can send it back and get a proper one in return).
The fan could be a 5 V signal, a 12 V, or a 24 V one, so make sure your laser module uses that as a trigger.
Often, laser modules line their output directly to their power supply and have no extra switch wires - using the main heater cartridge connectors as the power supply and switch will certainly work on its own, once you get the proper voltage set.
Buck Converter
To get from 24 V to 12 V, you can use a Buck converter, in this application also known as a Step-Down-Converter. This will turn the 24 V output of the mainboard's heater wires into useable 12 V power. Often, these items have quick-connect plugs, possibly allowing you to quickly swap the laser module in, provided you have everything else set up similarly.
Please keep in mind that these modules, depending on setup, can shed quite some heat, and might require a suitable cooling setup. Heating can also indicate bad manufacture.
Voltage divider
If you can be really sure that you get 24 V Output max, you could use a beefy 1:1 voltage divider by using two same-sized resistors and taking the supply voltage between the two before going back to the ground. To alleviate heating problems (you'll shed loads of heat) you should use resistors that have cooling planned in.
Optocoupler
If you want to run the laser from an external 12V, you could run that though an appropriate optocoupler and use any output from the printer as your "signal" to allow power to flow.

Fans (PWM, e.g. the one used for part cooling) on controller boards are typically not 5 V (few exceptions, e.g. Ultimaker uses 5 V fans), but usually the power supply voltage (like the heater element and the bed) is the voltage of the fan, so either 12 V or 24 V.

The part cooling fan on the ender3 & ender3v2 is a 5V fan, but good caveat

+1 Also good to know that those boards use 5 V! All controller boards I bought do not use 5 V but the voltage of the PSU.

My part cooling fan is 24 V. This is why I need to step it down. I can power up the laser module from outer 12 V power supply, but I want to trigger it over the part cooling fan.

that would use an optocoupler

I have converted a 3D printer to a laser printer using the fan port. Although it is possible, I would not suggest to use the fan port for this.
First, make sure what your laser module uses as input. E.g. my laser module could be run from a 12 V power connection, so I did not power it from the printer controller board. Second, make sure the TTL (the PWM signal for scheduling the laser intensity) is able to handle the voltage you send to it. If you use a 24 V controller board, it could be that the fan (as well as the heater cartridge and the bed) run at 24 V. If so, you need to step down the voltage so that the laser module can use this.
Note that when using the fan port as the PWM signal for the laser, you introduce a lag. The controller board chip sends out a signal to the MOSFET to schedule the fan as this is drawing more amperes than could have been supplied over the controller chip. This creates a lag in between the actual controller board pin and the fan signal causing the actual laser engraving to be less accurate (started too late, stopped too late). It was that much that I had to create an application in Python that read created G-code and introduced very small pauses to give the laser time to start and have it stop on time because of the delay. This has led me to directly use the PWM signal (that drives the MOSFET) instead of the fan PWM signal for controlling the laser.

You'll need a 12 V step-down regulator to convert your 24 V to 12V, or a separate power supply for the laser module (make sure to connect each PSU's ground terminals).
It also depends on what sort of PWM your module expects.
The fan control on 3D printer boards is done by turning on and off the ground connection to the fan, while the positive supply (12/24 V) is on constantly. This may not be what your module requires.
Maybe it's fine with a 5 V PWM signal (usually called "TTL signal"), in which case you could use any available digital pin (e.g. from the endstop connectors) and set your firmware up to use that pin as the "fan". Depending on the firmware, there may be delays between the change in "fan speed" / laser power being scheduled and it actually being applied. If it needs 12 V PWM, I like using L298N-based "motor drivers" to drive loads like this. Hook up the inputs to the motor driver to the output of the step-down regulator and connect the corresponding input to one of your motherboard's PWM pins.


text:
Anet A8 Auto Bed Levelling - Auto home not centring with new Marlin 1.1.9 config
Recently added a probe to my Anet A8 for auto bed levelling, calculations have been added based on position of probe to hotend as required. I'm using Marlin 1.1.9.
When I go into 'Prepare' in the printer settings to select auto home, it doesn't centre on the bed, seems to go to the back right. I presume this should be to the centre of the bed? I can't find where to change this in the config. Note the LCD screen shows X:153, Y:114. Config below.
//============================== Endstop Settings ===========================

// @section homing

// Specify here all the endstop connectors that are connected to any endstop or probe.
// Almost all printers will be using one per axis. Probes will use one or more of the
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG

// Enable pullup for all endstops to prevent a floating state
#define ENDSTOPPULLUPS
#if DISABLED(ENDSTOPPULLUPS)
  // Disable ENDSTOPPULLUPS to set pullups individually
  //#define ENDSTOPPULLUP_XMAX
  //#define ENDSTOPPULLUP_YMAX
  //#define ENDSTOPPULLUP_ZMAX
  //#define ENDSTOPPULLUP_XMIN
  //#define ENDSTOPPULLUP_YMIN
  //#define ENDSTOPPULLUP_ZMIN
  //#define ENDSTOPPULLUP_ZMIN_PROBE
#endif

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING true  // set to true to invert the logic of the probe.

// Enable this feature if all enabled endstop pins are interrupt-capable.
// This will remove the need to poll the interrupt pins, saving many CPU cycles.
//#define ENDSTOP_INTERRUPTS_FEATURE

/**
 * Endstop Noise Filter
 *
 * Enable this option if endstops falsely trigger due to noise.
 * NOTE: Enabling this feature means adds an error of +/-0.2mm, so homing
 * will end up at a slightly different position on each G28. This will also
 * reduce accuracy of some bed probes.
 * For mechanical switches, the better approach to reduce noise is to install
 * a 100 nanofarads ceramic capacitor in parallel with the switch, making it
 * essentially noise-proof without sacrificing accuracy.
 * This option also increases MCU load when endstops or the probe are enabled.
 * So this is not recommended. USE AT YOUR OWN RISK.
 * (This feature is not required for common micro-switches mounted on PCBs
 * based on the Makerbot design, since they already include the 100nF capacitor.)
 */
//#define ENDSTOP_NOISE_FILTER

//=============================================================================
//============================== Movement Settings ============================
//=============================================================================
// @section motion

/**
 * Default Settings
 *
 * These settings can be reset by M502
 *
 * Note that if EEPROM is enabled, saved values will override these.
 */

/**
 * With this option each E stepper can have its own factors for the
 * following movement settings. If fewer factors are given than the
 * total number of extruders, the last value applies to the rest.
 */
//#define DISTINCT_E_FACTORS

/**
 * Default Axis Steps Per Unit (steps/mm)
 * Override with M92
 *                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
 */
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 100, 100, 400, 100 }

/**
 * Default Max Feed Rate (mm/s)
 * Override with M203
 *                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
 */
#define DEFAULT_MAX_FEEDRATE          { 400, 400, 8, 50 }

/**
 * Default Max Acceleration (change/s) change = mm/s
 * (Maximum start speed for accelerated moves)
 * Override with M201
 *                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
 */
#define DEFAULT_MAX_ACCELERATION      { 2000, 2000, 100, 10000 }

/**
 * Default Acceleration (change/s) change = mm/s
 * Override with M204
 *
 *   M204 P    Acceleration
 *   M204 R    Retract Acceleration
 *   M204 T    Travel Acceleration
 */
#define DEFAULT_ACCELERATION          400     // X, Y, Z and E acceleration for printing moves
#define DEFAULT_RETRACT_ACCELERATION  1000    // E acceleration for retracts
#define DEFAULT_TRAVEL_ACCELERATION   1000    // X, Y, Z acceleration for travel (non printing) moves

/**
 * Default Jerk (mm/s)
 * Override with M205 X Y Z E
 *
 * "Jerk" specifies the minimum speed change that requires acceleration.
 * When changing speed and direction, if the difference is less than the
 * value set here, it may happen instantaneously.
 */
#define DEFAULT_XJERK                 10.0
#define DEFAULT_YJERK                 10.0
#define DEFAULT_ZJERK                  0.3
#define DEFAULT_EJERK                  5.0

/**
 * S-Curve Acceleration
 *
 * This option eliminates vibration during printing by fitting a BÃ©zier
 * curve to move acceleration, producing much smoother direction changes.
 *
 * See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
 */
//#define S_CURVE_ACCELERATION

//===========================================================================
//============================= Z Probe Options =============================
//===========================================================================
// @section probes

//
// See http://marlinfw.org/docs/configuration/probes.html
//

/**
 * Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
 *
 * Enable this option for a probe connected to the Z Min endstop pin.
 */
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

/**
 * Z_MIN_PROBE_ENDSTOP
 *
 * Enable this option for a probe connected to any pin except Z-Min.
 * (By default Marlin assumes the Z-Max endstop pin.)
 * To use a custom Z Probe pin, set Z_MIN_PROBE_PIN below.
 *
 *  - The simplest option is to use a free endstop connector.
 *  - Use 5V for powered (usually inductive) sensors.
 *
 *  - RAMPS 1.3/1.4 boards may use the 5V, GND, and Aux4->D32 pin:
 *    - For simple switches connect...
 *      - normally-closed switches to GND and D32.
 *      - normally-open switches to 5V and D32.
 *
 * WARNING: Setting the wrong pin may have unexpected and potentially
 * disastrous consequences. Use with caution and do your homework.
 *
 */
//#define Z_MIN_PROBE_ENDSTOP

/**
 * Probe Type
 *
 * Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
 * Activate one of these to use Auto Bed Leveling below.
 */

/**
 * The "Manual Probe" provides a means to do "Auto" Bed Leveling without a probe.
 * Use G29 repeatedly, adjusting the Z height at each point with movement commands
 * or (with LCD_BED_LEVELING) the LCD controller.
 */
//#define PROBE_MANUALLY
//#define MANUAL_PROBE_START_Z 0.2

/**
 * A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
 *   (e.g., an inductive probe or a nozzle-based probe-switch.)
 */
#define FIX_MOUNTED_PROBE

/**
 * Z Servo Probe, such as an endstop switch on a rotating arm.
 */
//#define Z_PROBE_SERVO_NR 0   // Defaults to SERVO 0 connector.
//#define Z_SERVO_ANGLES {70,0}  // Z Servo Deploy and Stow angles

/**
 * The BLTouch probe uses a Hall effect sensor and emulates a servo.
 */
//#define BLTOUCH
#if ENABLED(BLTOUCH)
  //#define BLTOUCH_DELAY 375   // (ms) Enable and increase if needed
#endif

/**
 * Enable one or more of the following if probing seems unreliable.
 * Heaters and/or fans can be disabled during probing to minimize electrical
 * noise. A delay can also be added to allow noise and vibration to settle.
 * These options are most useful for the BLTouch probe, but may also improve
 * readings with inductive probes and piezo sensors.
 */
//#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 DELAY_BEFORE_PROBING 200  // (ms) To prevent vibrations from triggering piezo sensors

// A probe that is deployed and stowed with a solenoid pin (SOL1_PIN)
//#define SOLENOID_PROBE

// A sled-mounted probe like those designed by Charles Bell.
//#define Z_PROBE_SLED
//#define SLED_DOCKING_OFFSET 5  // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.

//
// For Z_PROBE_ALLEN_KEY see the Delta example configurations.
//

/**
 *   Z Probe to nozzle (X,Y) offset, relative to (0, 0).
 *   X and Y offsets must be integers.
 *
 *   In the following example the X and Y offsets are both positive:
 *   #define X_PROBE_OFFSET_FROM_EXTRUDER 10
 *   #define Y_PROBE_OFFSET_FROM_EXTRUDER 10
 *
 *      +-- BACK ---+
 *      |           |
 *    L |    (+) P  | R <-- probe (20,20)
 *    E |           | I
 *    F | (-) N (+) | G <-- nozzle (10,10)
 *    T |           | H
 *      |    (-)    | T
 *      |           |
 *      O-- FRONT --+
 *    (0,0)
 */
#define X_PROBE_OFFSET_FROM_EXTRUDER -43
#define Y_PROBE_OFFSET_FROM_EXTRUDER -4
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0
// X offset: -left  +right  [of the nozzle]
// Y offset: -front +behind [the nozzle]
// Z offset: -below +above  [the nozzle]

// Certain types of probes need to stay away from edges
#define MIN_PROBE_EDGE 10

// X and Y axis travel speed (mm/m) between probes
#define XY_PROBE_SPEED 6000

// Feedrate (mm/m) for the first approach when double-probing (MULTIPLE_PROBING == 2)
#define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z

// Feedrate (mm/m) for the "accurate" probe of each point
#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2)

// The number of probes to perform at each point.
//   Set to 2 for a fast/slow probe, using the second probe result.
//   Set to 3 or more for slow probes, averaging the results.
#define MULTIPLE_PROBING 3

/**
 * Z probes require clearance when deploying, stowing, and moving between
 * probe points to avoid hitting the bed and other hardware.
 * Servo-mounted probes require extra space for the arm to rotate.
 * Inductive probes need space to keep from triggering early.
 *
 * Use these settings to specify the distance (mm) to raise the probe (or
 * lower the bed). The values set here apply over and above any (negative)
 * probe Z Offset set with Z_PROBE_OFFSET_FROM_EXTRUDER, M851, or the LCD.
 * Only integer values >= 1 are valid here.
 *
 * Example: `M851 Z-5` with a CLEARANCE of 4  =>  9mm from bed to nozzle.
 *     But: `M851 Z+1` with a CLEARANCE of 2  =>  2mm from bed to nozzle.
 */
#define Z_CLEARANCE_DEPLOY_PROBE   10 // Z Clearance for Deploy/Stow
#define Z_CLEARANCE_BETWEEN_PROBES  5 // Z Clearance between probe points
#define Z_CLEARANCE_MULTI_PROBE     5 // Z Clearance between multiple probes
//#define Z_AFTER_PROBING           5 // Z position after probing is done

#define Z_PROBE_LOW_POINT          -2 // Farthest distance below the trigger-point to go before stopping

// For M851 give a range for adjusting the Z probe offset
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20

// Enable the M48 repeatability test to test probe accuracy
//#define Z_MIN_PROBE_REPEATABILITY_TEST

// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
// :{ 0:'Low', 1:'High' }
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0 // For all extruders

// Disables axis stepper immediately when it's not being used.
// WARNING: When motors turn off there is a chance of losing position accuracy!
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false
// Warn on display about possibly reduced accuracy
//#define DISABLE_REDUCED_ACCURACY_WARNING

// @section extruder

#define DISABLE_E false // For all extruders
#define DISABLE_INACTIVE_EXTRUDER true // Keep only the active extruder enabled.

// @section machine

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

// @section extruder

// For direct drive extruder v9 set to true, for geared extruder set to false.
#define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false
#define INVERT_E4_DIR false

// @section homing

//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed

//#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off.

//#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
                             // Be sure you have this distance over your Z_MAX_POS in case.

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

// @section machine

// The size of the print bed
#define X_BED_SIZE 220
#define Y_BED_SIZE 220

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -33
#define Y_MIN_POS -10
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 240

/**
 * Software Endstops
 *
 * - Prevent moves outside the set machine bounds.
 * - Individual axes can be disabled, if desired.
 * - X and Y only apply to Cartesian robots.
 * - Use 'M211' to set software endstops on/off or report current state
 */

// Min software endstops constrain movement within minimum coordinate bounds
#define MIN_SOFTWARE_ENDSTOPS
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
  #define MIN_SOFTWARE_ENDSTOP_X
  #define MIN_SOFTWARE_ENDSTOP_Y
  #define MIN_SOFTWARE_ENDSTOP_Z
#endif

// Max software endstops constrain movement within maximum coordinate bounds
#define MAX_SOFTWARE_ENDSTOPS
#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
  #define MAX_SOFTWARE_ENDSTOP_X
  #define MAX_SOFTWARE_ENDSTOP_Y
  #define MAX_SOFTWARE_ENDSTOP_Z
#endif

#if ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS)
  //#define SOFT_ENDSTOPS_MENU_ITEM  // Enable/Disable software endstops from the LCD
#endif

/**
 * Filament Runout Sensors
 * Mechanical or opto endstops are used to check for the presence of filament.
 *
 * RAMPS-based boards use SERVO3_PIN for the first runout sensor.
 * For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc.
 * By default the firmware assumes HIGH=FILAMENT PRESENT.
 */
//#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
  #define NUM_RUNOUT_SENSORS   1     // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
  #define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor.
  #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
  #define FILAMENT_RUNOUT_SCRIPT "M600"
#endif

//===========================================================================
//=============================== Bed Leveling ==============================
//===========================================================================
// @section calibrate

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

/**
 * Normally G28 leaves leveling disabled on completion. Enable
 * this option to have G28 restore the prior leveling state.
 */
//#define RESTORE_LEVELING_AFTER_G28

/**
 * Enable detailed logging of G28, G29, M48, etc.
 * Turn on with the command 'M111 S32'.
 * NOTE: Requires a lot of PROGMEM!
 */
//#define DEBUG_LEVELING_FEATURE

#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
  // Gradually reduce leveling correction until a set height is reached,
  // at which point movement will be level to the machine's XY plane.
  // The height can be set with M420 Z<height>
  #define ENABLE_LEVELING_FADE_HEIGHT

  // For Cartesian machines, instead of dividing moves on mesh boundaries,
  // split up moves into short segments like a Delta. This follows the
  // contours of the bed more closely than edge-to-edge straight moves.
  #define SEGMENT_LEVELED_MOVES
  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)

  /**
   * Enable the G26 Mesh Validation Pattern tool.
   */
  //#define G26_MESH_VALIDATION
  #if ENABLED(G26_MESH_VALIDATION)
    #define MESH_TEST_NOZZLE_SIZE    0.4  // (mm) Diameter of primary nozzle.
    #define MESH_TEST_LAYER_HEIGHT   0.2  // (mm) Default layer height for the G26 Mesh Validation Tool.
    #define MESH_TEST_HOTEND_TEMP  205.0  // (Â°C) Default nozzle temperature for the G26 Mesh Validation Tool.
    #define MESH_TEST_BED_TEMP      60.0  // (Â°C) Default bed temperature for the G26 Mesh Validation Tool.
  #endif

#endif

#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)

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

  // Set the boundaries for probing (where the probe can reach).
  //#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE 10
  //#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - MIN_PROBE_EDGE) 167
  //#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE 10
  //#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - MIN_PROBE_EDGE) 202
  #define LEFT_PROBE_BED_POSITION 10
  #define RIGHT_PROBE_BED_POSITION 167
  #define FRONT_PROBE_BED_POSITION 10
  #define BACK_PROBE_BED_POSITION 206

  // Probe along the Y axis, advancing X after each column
  //#define PROBE_Y_FIRST

  #if ENABLED(AUTO_BED_LEVELING_BILINEAR)

    // Beyond the probed grid, continue the implied tilt?
    // Default is to maintain the height of the nearest edge.
    //#define EXTRAPOLATE_BEYOND_GRID

    //
    // Experimental Subdivision of the grid by Catmull-Rom method.
    // Synthesizes intermediate points to produce a more detailed mesh.
    //
    //#define ABL_BILINEAR_SUBDIVISION
    #if ENABLED(ABL_BILINEAR_SUBDIVISION)
      // Number of subdivisions between probe points
      #define BILINEAR_SUBDIVISIONS 3
    #endif

  #endif

#elif ENABLED(AUTO_BED_LEVELING_UBL)

  //===========================================================================
  //========================= Unified Bed Leveling ============================
  //===========================================================================

  //#define MESH_EDIT_GFX_OVERLAY   // Display a graphics overlay while editing the mesh

  #define MESH_INSET 1              // Set Mesh bounds as an inset region of the bed
  #define GRID_MAX_POINTS_X 10      // Don't use more than 15 points per axis, implementation limited.
  #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

  #define UBL_MESH_EDIT_MOVES_Z     // Sophisticated users prefer no movement of nozzle
  #define UBL_SAVE_ACTIVE_ON_M500   // Save the currently active mesh in the current slot on M500

  //#define UBL_Z_RAISE_WHEN_OFF_MESH 2.5 // When the nozzle is off the mesh, this value is used
                                          // as the Z-Height correction value.

#elif ENABLED(MESH_BED_LEVELING)

  //===========================================================================
  //=================================== Mesh ==================================
  //===========================================================================

  #define MESH_INSET 10          // Set Mesh bounds as an inset region of the bed
  #define GRID_MAX_POINTS_X 3    // Don't use more than 7 points per axis, implementation limited.
  #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS

#endif // BED_LEVELING

/**
 * Points to probe for all 3-point Leveling procedures.
 * Override if the automatically selected points are inadequate.
 */
#if ENABLED(AUTO_BED_LEVELING_3POINT) || ENABLED(AUTO_BED_LEVELING_UBL)
  #define PROBE_PT_1_X 20
  #define PROBE_PT_1_Y 160
  #define PROBE_PT_2_X 20
  #define PROBE_PT_2_Y 10
  #define PROBE_PT_3_X 180
  #define PROBE_PT_3_Y 10
#endif

/**
 * Add a bed leveling sub-menu for ABL or MBL.
 * Include a guided procedure if manual probing is enabled.
 */
//#define LCD_BED_LEVELING

#if ENABLED(LCD_BED_LEVELING)
  #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
  #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
#endif

// Add a menu item to move between bed corners for manual bed adjustment
//#define LEVEL_BED_CORNERS

#if ENABLED(LEVEL_BED_CORNERS)
  #define LEVEL_CORNERS_INSET 30    // (mm) An inset for corner leveling
  //#define LEVEL_CENTER_TOO        // Move to the center after the last corner
#endif

/**
 * Commands to execute at the end of G29 probing.
 * Useful to retract or move the Z probe out of the way.
 */
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"

// @section homing

// The center of the bed is at (X=0, Y=0)
//#define BED_CENTER_AT_0_0

// Manually set the home position. Leave these undefined for automatic settings.
// For DELTA this is the top-center of the Cartesian print volume.
//#define MANUAL_X_HOME_POS 0
//#define MANUAL_Y_HOME_POS 0
//#define MANUAL_Z_HOME_POS 0

// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area.
//
// With this feature enabled:
//
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
// - Prevent Z homing when the Z probe is outside bed area.
//
#define Z_SAFE_HOMING

#if ENABLED(Z_SAFE_HOMING)
  #define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2)     // X point for Z homing when homing all axes (G28).
  #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2)     // Y point for Z homing when homing all axes (G28).
#endif

// Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (100*60)
#define HOMING_FEEDRATE_Z  (4*60)

// @section calibrate

/**
 * Bed Skew Compensation
 *
 * This feature corrects for misalignment in the XYZ axes.
 *
 * Take the following steps to get the bed skew in the XY plane:
 *  1. Print a test square (e.g., https://www.thingiverse.com/thing:2563185)
 *  2. For XY_DIAG_AC measure the diagonal A to C
 *  3. For XY_DIAG_BD measure the diagonal B to D
 *  4. For XY_SIDE_AD measure the edge A to D
 *
 * Marlin automatically computes skew factors from these measurements.
 * Skew factors may also be computed and set manually:
 *
 *  - Compute AB     : SQRT(2*AC*AC+2*BD*BD-4*AD*AD)/2
 *  - XY_SKEW_FACTOR : TAN(PI/2-ACOS((AC*AC-AB*AB-AD*AD)/(2*AB*AD)))
 *
 * If desired, follow the same procedure for XZ and YZ.
 * Use these diagrams for reference:
 *
 *    Y                     Z                     Z
 *    ^     B-------C       ^     B-------C       ^     B-------C
 *    |    /       /        |    /       /        |    /       /
 *    |   /       /         |   /       /         |   /       /
 *    |  A-------D          |  A-------D          |  A-------D
 *    +-------------->X     +-------------->X     +-------------->Y
 *     XY_SKEW_FACTOR        XZ_SKEW_FACTOR        YZ_SKEW_FACTOR
 */
//#define SKEW_CORRECTION

#if ENABLED(SKEW_CORRECTION)
  // Input all length measurements here:
  #define XY_DIAG_AC 282.8427124746
  #define XY_DIAG_BD 282.8427124746
  #define XY_SIDE_AD 200

  // Or, set the default skew factors directly here
  // to override the above measurements:
  #define XY_SKEW_FACTOR 0.0

  //#define SKEW_CORRECTION_FOR_Z
  #if ENABLED(SKEW_CORRECTION_FOR_Z)
    #define XZ_DIAG_AC 282.8427124746
    #define XZ_DIAG_BD 282.8427124746
    #define YZ_DIAG_AC 282.8427124746
    #define YZ_DIAG_BD 282.8427124746
    #define YZ_SIDE_AD 200
    #define XZ_SKEW_FACTOR 0.0
    #define YZ_SKEW_FACTOR 0.0
  #endif

  // Enable this option for M852 to set skew at runtime
  //#define SKEW_CORRECTION_GCODE
#endif

Since this is Marlin 1.1.9, please find some additional background information at How to set Z-probe boundary limits in firmware when using automatic bed leveling? on how the limits (used to) work in Marlin

Your config looks fine for the most of the definitions that have been compared to the known settings when using a probe.
You should be aware that with #define Z_SAFE_HOMING you define that the sensor is in the middle of the bed, however, the nozzle is then offset from the middle of the bed per the #define X_PROBE_OFFSET_FROM_EXTRUDER -43 and #define Y_PROBE_OFFSET_FROM_EXTRUDER -4 defined offsets.
So, when G28 is commanded, the carriage will move to (110, 110) for the probe  which is displayed as (110 - -43, 110 - -4) = (153, 114) for the nozzle.
So there is nothing wrong with the configuration, it works as it should.

Thanks for that. I had the printer in storage for a few years and basically lost track of everything I'd learned previously. Good to know the config is correct. So basically the sensor is not expected to be dead sensor now, the starter Gcode will run it's setup and all is good?

@Raynbow You're welcome, but thanking is done through accepting and upvoting (requires at least a 15 rep. though) answers. Please take the [tour] and read our [help] to find all about where Stack Exchange 3DPrinting is all about. We're all happy to help out! I once started with the Anet A8.


text:
Are there specific advantages in using ball bearings on the extruder drive bearings
I'm probably going to answer my own question because I ordered a set of ball bearings to repair the extruder and then walked passed my lathe and realised all I had to do was turn some brass bushes the same 10 mm OD and 6 mm ID to replace the ball bearings. Thirty minutes later the printer was back online.
Now thinking about it, I wonder why ball bearings are used. There is no critical clearance between the filament and the drive cog as the filament is spring-loaded against the drive. Thus as the bearing wears a little over time it's only a matter of increasing the tension. There would be no sudden collapse in the middle of a print job. Of course, there might be good reason to once every 100 operational hours to re-grease the bearings. There would be plenty of warning of impending drive failure and plenty of time to figure in a new bearing. I expect however the brass bush to last the lifetime of the printer.
Has anyone been down this path with any sort of success?

Standard parts.
The idler wheels of an extruder are all standard parts. While a bushing is a suitable replacement for a ball bearing in the specific application, the bearing has some benefits over it:

Mass availability. Buying them in bulk is cheap for the manufacturer.
Harder to seize up the mechanism. A ball bearing that is slightly out of spec (e.g. too tall central boss) will not block up the mechanism for the inside and outside of the bearing are decoupled.
More compatible with screws. Unless the bearing is seized up, the screw that goes through the part does not need to be smooth but can be threaded everywhere - so the bolt is a cheaper standard part than one with a straight shaft for a bushing.


text:
I own a Aquila box 3D printer and I'm trying to remove the tube, but the bolt is stuck
I finally decided to go to the Internet with this question, recently I used a very bad filament and it broke inside of my Bowden tube. I'm trying to replace the tube in order to get the filament out but the bolt keeping it down just won't seem to unscrew. I really really need help

please show a photo of the stuck bolt. The printer is rare enough that we can't estimate difficulty or order of operation and we have no idea which bolt you speak of.

Please add additional information on where it exactly is located and provide images or photos to further build this question. Otherwise we have to close this question. Please take the [tour] and read the [help] to understand what this site is all about.

It looks like Aquila X3 uses the same standard pneumatic fittings as most printers for its bowden tubes. In that case you don't need to unscrew anything. You push the plastic collar on the fitting into the metal part of the fitting, and while holding it pushed in you pull the bowden tube out. There are small teeth in there that will disengage allowing the tube to be pulled out. There are small teeth inside the fitting that grip the tube, and retract when pushed by the collar.
If you repeat this a couple times, trim a couple mm off the end of the tube as the damage from the teeth will accumulate. Also, these fittings and their teeth mechanism are rather flimsy so they break easily. In this case you'll need a more destructive approach (likely cut the bowden then use force to unscrew the fitting, praying not to break the extruder, then replace it with a new one, they cost pennies.)


text:
How to fixcrack from a print pause?
I was printing a leather mold on my Anycubic Photon Mono 4k. I needed to pause the print to refill resin vat, and at the height of the pause I got a crack. Resin is washed, but not yet cured. So how do I go from here? I don't want to have to reprint it.
I was thinking about using a baby powder + resin to fill the cracks before curing, and sanding it after. But maybe there's a better way? Especially for the hollow part, as it will rest directly on the leather and any blemishes will be transferred to the finished product.


text:
How to physically wire a (ADXL345) accelerometer for Input Shaping (Resonance Compensation) support on for a Ender 3 V2 printer?
I'm looking into Input Shaping (Resonance Compensation) to compensate for vibration on an Ender 3 V2. I found the "Official Creality G-Sensor ADXL345 Vibration Compensation Sensor for Sonic Pad 3D Printed Smart Pad" which I guess, unlike the name suggests, can work on more than just the Sonic Pad.

I have a fairly stock Creality Ender 3 V2 printer running the Marlin based mriscoc firmware. Marlin Firmware supports Input Shaping (M593) and so does the mriscoc firmware.
The Marlin documentation states:

It’s not always easy to attach an accelerometer to most printer boards, so Marlin doesn’t provide accelerator-based tuning. If you have that information you can use it.

The mriscoc firmware documentation, which is specifically for Ender 3 V2 and Marlin based, states:

The IS parameters are the resonance frequencies of your printer’s X and Y axes, which can be measured using an accelerometer or a test print

I'm thinking to buy the bare ADXL345 accelerometer. Is it possible to wire this up, and if so, how do I wire this accelerometer to my 4.2.2 board? I guess I can than continue by simply flashing the IS enabled firmware of mriscoc to get it supported in the firmware.

Currently Marlin does not provide a way to get the resonance frequencies by using an accelerometer and possibly never will because of the lack of resources in current printer boards. You can get those values by other medium and save them as Marlin IS parameters. It is possible to estimate the resonance frequencies by test prints.

Thank you. I use OctoPrint on a Raspberry Pi (OctoPi), do you know if there is a way to hook up the accelerometer to the Pi instead and 'calibrate' and send the values to the printer from OctoPi?

Basically what they also discuss here: https://community.octoprint.org/t/accelerometer-resonance-testing/51470

Ideally using KUSBA v2 via USB to Raspberry Pi (OctoPi). https://github.com/xbst/KUSBA


text:
Does an accelerometer in a Marlin-based Input Shaping setup compensate in real-time (during print) for vibration?
In addition to my question How to physically wire a (ADXL345) accelerometer for Input Shaping (Resonance Compensation) support on for a Ender 3 V2 printer?.
Does an accelerometer in a Marlin-based Input Shaping setup compensate in real-time (during print) for vibration? Or is it a one time (for example before print) measurement to determine a level of vibration and use that as the compensation scheme during a print, as in "not adapting to unexpected vibration"? Similar to how bed leveling is used.
If it does not do real-time compensation, what is the benefit of having an accelerometer compared to doing Input Shaping test prints instead?

Input shaping in 3D printers is typically implemented prior to the actual printing operation, not in real-time. It's based on the known characteristics of the printer rather than dynamic adjustments made during printing. This requires to be set-up and determined before printing. The printer's firmware is where you can define input-shaping.
3D printer firmware based input shaping
The resonant frequencies of the printer are determined through test prints and input into the firmware. The firmware then automatically applies the necessary adjustments to the motion commands during the printing process (it reads the G-code and applies the algorithms on motion changes). This is still not real-time adjustment; it's a predefined modification based on the printer's known characteristics.
Real-time or not?
Input shaping is not a real-time control system that dynamically adjusts to changing conditions during a print. Instead, it's a method of optimizing the printer's motion commands based on its known mechanical properties and behavior (hardware determined). Why not real-time? Real-time control for input shaping in 3D printing would be complex and would require additional sensors and processing capabilities (controller board). The printer would need to continuously monitor its own vibrations and adjust its movements on the fly, which is not typically feasible with current consumer level 3D printing technology.

So, just for my understanding. Even printers that do have an accelerometer for the purpose of input shaping, use it only in a one-time or pre-pint measurement and not real-time? Similar to auto bed leveling action or homing actions? Similarly and in that case, when an accelerometer is available, is it common to include in the top of the gcode an 'input shaping test'?

The tests are used to feed the settings to the firmware. Once in the firmware the algorithms work for every print.


text:
Does Marlin input shaping compensate vibration on all X, Y and Z axes?
The Marlin Firmware supports Input Shaping (M593) as described in the Marlin documentation writing:

Set the Input Shaping damping factor and/or frequency (in Hertz) for axes that support it.

But the parameters shown under the Usage section suggest only axis X and Y are supported? It is possible to use input shaping (in Marlin) to compensate vibration on all X, Y and Z axes?

Unless you're doing non-planar printing, Z axis input shaping shouldn't affect print at all. The distances and accelerations in Z are so low in comparison to X,Y travel they just don't need it.

No, as of December 2023, Z-axis Input Shaping is not possible in Marlin firmware. Marlin only supports Input Shaping on the X and Y axes.
There is a feature request on GitHub to implement Z-axis Input Shaping on Marlin.


text:
Creality Halot One Z axis inaccuracy
I'm having issues with the accuracy of the Z-axis of my Creality Halot One. X and Y seem pretty close (as you'd expect for resin).
Firstly, it seems to not move and/or overprint the first 0.6 mm or so of the model, which as well as being inaccurate, also creates little flares. This error was tested and confirmed by creating a measuring stick and printing.  I could theoretically get around this by raising the part on supports, but as I am doing a flat surface, I can't afford to have the "pimples" generated by the support on this surface (and neither can I rotate for the same reasons - other flat surfaces).
Secondly, it appears that the Z-axis is under-height by about 10 %. What should be circular features appear as ovals, and my best measuring shows the Z-axis comes out about 10 % short of the design.
I have re-levelled, and all that basic stuff.
I have checked that it has the latest firmware.
I have tried different slicers, and they all have the same issue, so I'm pretty sure it's not a slicing issue.
Similarly, I have tried different line heights. (0.05 mm, 0.025 mm, etc.), they still come short, and still lose the first 0.6 mm.
There seems very little of any practical nature that can be done to fix this.
Has anyone experienced similar, on this or other resin printers, and has anyone discovered a fix? Or have any worthwhile suggestions?


text:
Issues with slicer creating gaps with surfaces that are not in the model
I have an odd issue with Creality Slicer 4.8 (Cura slicer?)
It wants to cut up my model and add surfaces that do not exist in the model.
These screenshots are without infill or support:

Wire mesh view from behind and to the left (Blender)

I assume that since this model is a base 3D model from a game with the body, clothes, hairstyle, etc put on top, that I have overlooked something which is being interpreted as a surface break. I had a similar problem with the dress and boots, which I solved by tediously removing the inner details.
I have removed the back part of the "skull" and the top of the neck, trying to closed any gaps.

STL
How do I fix this issue?
I am printing on a Creality Ender 2.

This is most likely a problem with the model, not the slicer. If from Blender, the chance that there are normals incorrect or hidden surfaces present are high. You should fix the model first. Please use the search function, there are multiple questions related to such issues. Usually it is recommended to use Netfabb to fix it, this may help your search for a solution.

Why are you still using Cura 4.8 and not yet Cura 5.5? It has some major improvements. Perhaps using that instead can already fix your issue.

@BobOrtiz  I just downloaded the latest version I could from creality

Try https://ultimaker.com/software/ultimaker-cura/#downloads.

Some Surfaces are likely inverted - which needs to be made visible.
To see that in blender, you need to turn on "surface normals". The blue spikes should go out of the surfaces, showing the item is properly aligned.

To flip those surfaces and make all show into the same direction, follow for example this answer Slicer is adding additional floor bed - the relevant part for it here:

Enter Edit mode
A to select everything
ALT + N to recalculate normals

Another way to get the normals displayed is:

N then under Mesh Display > Normals hook Faces


text:
How can I match the properties of a specific resin, outside of the manufacturer's specification?
One may wish to identify resin with identical, or close to physical properties that could be used as a substitute for any specific type of resin, without the need to change other attributes. To use purely as an example, Elegoo Standard Gray Resin.
There exist multiple printers in multiple locations, from different manufacturers, which have each been calibrated to print with Elegoo standard  gray resin.
Printers are often calibrated based on the properties of a specific resin, but also based on the individual characteristics of the printer and the environmental factors of the area in which they are located. For example, slower lift times for those located in an area that has to be kept cooler, and faster for areas that are kept warmer.
The goal is to identify a resin that can be seamlessly exchanged once existing stock of the manufacturer specified resin are depleted, without the need to adjust or recalibrate anything, and without a loss of quality.
A good answer will be based on personal experience and specific use case, and will provide examples of fundamental similarities between products.
A bad answer will be a copy and paste of a data sheet in which a manufacturer states that that a product has similar properties, or anything that states "just google it".

I’m voting to close this question because it is incredibly close to a recommendation question. You could rewrite it to ask about a specific color, which would identify a color similar to RAL or other standard color number, which would be allowable and not recommendation.

I'm asking you to remove the vote to close on the grounds that this is an objective question about the properties of a resin. Not a subjective question about "Does it print good".

@Trish, Is asking for a resin that matches the Gray of Elegoo standard Gray not functionally equivalent of what you just said?

No. One is "give me a brand" which is banned. One is "what are the specs", which is allowed

IMHO, This seems like a shopping question, unfortunately: To identify resin that could be used as a substitute for Elegoo standard Gray

@Greenonline, soerry, but you have misunderstood. I'm trying to match the mechanical properties, not get a brand recommendation. Please withdraw your vote to close

@Trish, isn't that exactly what I've just asked.

@Trish, now that I've clarified that this is not a "recommend me" question, please withdraw your down vote.

I think the question is fully salvageable if it's rewritten as "Please teach me the procedure of determining parameters of a resin and searching, or creating/modifying another resin to get the same parameters" and the entire "Elegoo Grey" stuff to be scrapped entirely, or (IMO preferably) moved into a separate "Question background"/"Rationale" section, explaining why you need this knowledge, without being an actual part of the question.
Instead of a specific "what to buy" make it clear "how to obtain", asking to be taught the general procedure instead of getting a specific product.

@SF. - Seems like a good idea.

I haven't voted either way (yet). Hopefully I won't need to :-) The ideas of SF. seem useful. Unfortunately, IMHO, this bit: A good answer will be based on personal experience and specific use case might seem to turn it from a shopping-question into an opinion-based question (but I don't know really). Hopefully, you can get the wording just right and a good answer.

@Greenonline, I'm asking for an answer backed up by experience. If I was looking for manufacturers specifications I could Google them. If someone chooses to give an opinion that's not what I'm asking for, so it would be best to take it up with them individually.


text:
What can cause my Creality K1 Camera not to be shown in Creality Cloud?
I bought a Creality K1 3D printer and used it without any problems, with great results, so I decided to buy a camera, specific to the model, which is capable of showing in real time how the print is going and generating timelapses. When it arrived, I installed it and opened the Creality cloud website, where I can see my printer information online, and the camera was detected but kept loading infinitely.
I tried to contact support but the information they gave me was like: restart the machine, disconnect and connect the camera, reinstall the firmware, change the WiFi. I tried all of this and nothing worked, I decided to download the "standard" slicing app for this printer, the Creality slicer, I configured the printer and was able to connect it via IP and see the information, to my surprise the camera works in the slicer app, but not on the website, so the camera is working correctly, and the problem could be a connection problem between my printer and Creality Cloud, I would like to know if there could be some type of port or IP permission, or firewall that is preventing the printer from sending the camera image to the website.

Do you have administrative access to the router and what router brand and model do you have?


text:
How does pressure advance predict pressure without having actual pressure data?
I'm exploring the concept of Pressure Advance and its ability to predict and adjust pressure changes in the extruder. The image below shows the effects of Pressure Advance:

Source: Teaching Tech via YouTube
Since there are no pressure measurements performed, how does Pressure Advance algorithmically anticipate these pressure variations without real-time pressure data? Which underlying principles are used to estimate the pressure in advance?

Short answer: by calibration.
Expanding on this short answer: pressure advance (or also called "linear advance") can be used to compensate for the elasticity of the filament and the extruder system. There are at least three sources of elasticity, the filament in a Bowden tube, the compression of the filament itself and the conversion of stepper rotation into torque itself lagging behind.
To counter affect an unwanted effect, you need a measure to change the unwanted effect so that after tuning the unwanted effect is gone.
The build-up of pressure in the nozzle (as a result of the springiness of the complete extrusion system causes the end of a line to over-extrude when movement slows or stops. Consequently, a lack of pressure at the beginning (first need to compress the filament) will result in a lack of filament at the nozzle.
In order to compensate, we use test prints, not sensors, in which the printer owner/tuner selects the best extruded line based on various settings of the pressure advance ratio. This works well, the extrusion system doesn't generally change over time unless you change the extruder, Bowden tube lengths, etcetera. There is no need for a sensor if you can determine how to counter the effect


text:
How do I 3D print an object inside another object?
I have a tooth and a nerve inside it as two different objects.
The first picture is a molar tooth and the second image is a nerve inside the molar tooth.
My question is; how to generate supports so that the nerve inside the molar tooth will be printed out? (3D printing object inside another object)
The purpose of the aim is to use the printed object as patient education material. (Not for sale)

How would the patient see the nerve if it is inside the tooth?

@Oscar, molar tooth as transparent pla and nerve as Red pla

Transparent is usually not so transparant as you wish considering using FDM as you used tag PrusaSlicer. Furthermore, do you a have printer that can print multiple colors? Please update your question by [edit] to include the printer make and model.

With great difficulty
Problems
From your tags, it looks like you want to use FDM process. Unless you have mastered How To Print Glass technique, you can forget about the inside model being visible in the outside one. Even if you did, I have never seen anyone manage to make it work with multicolor / multimaterial printers. That is, if you even have one, most of the people do not.
The best translucency I was able to get using FDM is this:

Printing two models separately and making them fit perfectly is another can of worms. Printers have limited accuracy. Materials have shrinkage that is different in different colors, if ever so slightly.
My solution
Print one transparent part, with a hole in the shape of the inside part. Then, fill it with UV resin or paint. If possible, use transparent resin instead of FDM - you will get good enough transparency without a need to tune your printer and polish surfaces.
That's not something I have tried, but indeed something I planned*.

* printing TransparentTestPart_0.12mm_PETG_MK3S_50m.gcode now, as I write this answer.

Best I've ever seen is posted here: https://learn.colorfabb.com/lets-make-something-clear/ Note that my own experience produced exactly the same translucent (not transparent) parts you also produced! :-)

Similar to the answer above, but with a bit of a twist, it may be simpler to print both parts out as molds, and then to cast the parts that you want in two-part casting resin.
There are various tutorials on the internet that go into detail on how to do this.
For example: 3D Printed Molds Tutorial: How to DIY Your Own
Cura slicer even has a function for this. Mold mode though I've never used it.
Use a Boolean function to create a cavity inside the tooth using the nerve as a cutter, and then export it. Then use Cura's mold function to create a mold of the tooth with the cavity inside it.
Create a resin tooth using clear resin, and then once that is set mix up some red resin and pour it into the cavity.
It's still using 3D printing, just not as you originally thought. IT may be easiest to do the tooth mold in two parts and then join them together.

Transparency is interesting, but maybe one of the following options, for the purpose of inspiration, is more achievable:
An anatomical model
A model consisting of different parts that can be taken apart for demonstration. Printed or painted in multiple colors. Such as:

Source: Mentone Educational
A cross-sectional model
A model that is cut in half, showing the insides. If printed in the right orientation, multi-color prints can, to some extent, be achieved by changing the colors at a certain layer, or by painting. Such as:

Source: Free3D

+1 Although not really an answer to the question (considering the comments), the answer does provide an alternative solution. I think I would prefer such a print if I'm at the dentsit as this is more close to the real molar. With about 4 colors and some STL editing skills you'd be able to reproduce the molar from the first photo!

You can accomplish this with a multiple extruder 3D printer.
You'll have one extruder print in transparent and another in red. However, you'll also need a third extruder to print "soluble" supports.
When you print with soluble supports, there are extra columns used to secure partly "floating" objects like the red nerve during the 3D printing process. After the print is done, you drop the 3D print in water. The soluble supports dissolve away, leaving just the nerve and the tooth.
Soluble supports and multi-extrusion printing are how you would print something like this. I'm not sure if you'll go through the effort to do it, but it can be done.
I have no experience with transparent filament though, it looks like by the other answers it's not very good.

The red nerve is printed inside the molar cavity, so how would you get water in the cavity to dissolve the support? Furthermore, soluble support sounds amazing, but having used it for a while, my personal opinion is to avoid it.

Ahh i wasnt aware that it was totally enclosed. And yes, now that you mention it, my few tries with citric acid soluble support never dissolved 100%, it more just made it easier to remove the supports. I never tried the water soluble one tho - went back to just single extruder printing after that


text:
Under extrusion? Only after a pause at layer height!
The issue appears on my Creality Ender 3 Pro only after the pause, but it seems to correct itself after a while. From what I know, it seems most likely under extrusion. I've tried purges, still same issue. I only need this feature to drop nuts in a print. The part separates at exactly where I paused. It also looks exactly the same each time on the inside, with there being gaps between the layers (looks like under extrusion essentially).
So far I have managed to try:

writing a custom purge line (like the one at the beginning of all prints) - the purge line looks beautiful on the bed but then on the print it still under extrudes.
Pushing 50 mm of filament after a reheat, but before it restarts. - It still under extrudes
Slowing the print to as low as 50 % speed when restarting

Bonus points I tried these things too when I thought it could be bad adhesion on restart:

Turn the part cooling fans off for 1 layer before and 2 layers after
Increase temperature of hotend by up to 15 °C (in increments of 5)
Restarted the print immediately

The part separates here each time.

But the print seems mostly fine before the pause.

Then after its just not looking to great for a while.


text:
What material is Prusa mk3s+ hotend heaterblock made of?
My heaterblock is in a poor state after the heater malfunction. Before I'll buy a spare, I want to ask what material is the original block made of? I don't see it on the product page.
Available spares and replacements are made of aluminum, brass, and copper, the latter two in plated and not plated versions. Original is, obviously, aluminum or plated something. Aluminum 3rd party replacements are 10 times cheaper than brass or copper ones. So, before I'll buy expensive one, I want to know if I really have to.
If original is aluminum, the supplemental question would be why to buy plated copper despite the price difference.

Aluminum
At 9.20 grams (around 0.32 ounces) including screws and some soot I wasn't able to clean out, it can't be anything but aluminum.


text:
Why is MPC better than PID for 3D printers, and (why) is it more useful for 'high-power heaters'?
The YouTube video 'PID vs MPC' from Mark Misin Engineering Ltd perfectly demonstrates that Model Predictive Temperature Control (MPC) is more powerful than Proportional-Integral-Derivative (PID). Marlin implemented MPC as described in Marlin's MPC documentation. The Marlin-based firmware version I use also describes MPC in the mriscoc MPC documentation and as follows:

In the latest releases, MPC is being incorporated in all versions. MPC has proven to be a better algorithm for keeping the nozzle temperature stable, and it is also very useful for high-power heaters.Source: GitHub mriscoc repository for Ender 3 V2/S1

Since 3D printers, especially the heated parts (bed and nozzle), are relatively simple, with only simple control and sensor readings, why exactly is MPC a better choice than PID? And why is it more useful for 'high-power heaters'?

Short answer
PID reacts only after the temperature changes are registered by the sensor. MPC instead calculates the expected heat loss before the temperature actually changes and then applies heat to prevent those changes.
Here's a graph comparing PID and MPC, created by Reddit user yelleck:

Slightly derogatory answer
PID and its modifications1 is the duct-tape solution to the hotend temperature regulation problem2, and MPC is the engineering-PhD solution.
Slightly longer answer
MPC is a predictive model that compensates before the temperature actually changes. It calculates a physical heat model (effectively a Thermal Resistance Circuit). Using this, it figures out how much heat energy (in Joules) will leave the hotend in a given time—through radiation, convection, and extruded molten plastic—and thus it knows exactly how much heat energy (again in Joules, or "Watts times Seconds") it has to put in to keep the temperature the same or move to a new temperature. The properties of this physical model (heat capacity, emissivity, etc.) can be obtained automatically with fairly good accuracy or looked up in a table (filament heat capacity per mm).
PID on the other hand is a reactive model that can only work after the temperature has already changed. It is more like a vigilant operator who stares only at the measured difference between the actual and desired temperature. If this temperature difference changes by just a tiny bit, or by a large step, it will immediately try to counteract that error by applying its three rules: P, I, and D.
The three PID coefficients can also be auto-tuned, but the results are... well, let's say there is a reason that there are dozens if not hundreds of PID tuning guides and forum questions out there. The coefficients are not linked to any distinct physical property of your hotend: The geometry, fan, heater power, silicone sock, and filament are all mushed together into three abstract numbers. So far I have tried a handful of times to get a deep, intuitive understanding of PID behavior and tuning, but have failed each time, and honestly, I don't consider it worth my time anymore. MPC just makes so much more sense.
The PID controller does not know or care why the temperature difference changed. It could be due to faster extrusion speed, switching on the fan, or a changed temperature setpoint (M104), for example. A PID controller has to react to any changes using the same rigid 3-rules-system1, although the three situations will in practice require different reactions. The MPC model, on the other hand, can figure out precisely how much each of those changes would influence the temperature and how it must react to prevent that.
So in a PID-based system, the temperature will always fluctuate a little by design. It needs those temperature changes in order to know how to react (unless you assume a completely static situation), because it is the only measurement it has. Consequently, a noisy temperature measurement, which looks like a lot of tiny, very fast changes, will force the PID controller to react to them, which leads to even more noticeable fluctuations because the system reacts to a change that isn't really there, since it's just noise. Alternatively, you could make it react slower to ignore these fast noise fluctuations, but that will make it... well... slower.

And why is it more useful for 'high-power heaters'?

As explained above, the PID controller must react to noise. With a high-power heater, even a tiny adjustment in the PWM can lead to a large increase in temperature. So the controller must react more slowly and carefully so as not to overshoot or oscillate. But by going more slowly, you are throwing away the main benefit of your high-power heater, namely: faster heating. Since MPC largely ignores noise, it won't oscillate. And since it knows your heater power in Watts and the exact amount of energy needed in Joules, it can just go "full throttle" when a higher temperature is needed3, stopping just in time to avoid overshooting. With a lower-powered heater, this problem is not so apparent, because it can only go slowly anyways.

1 Yes, Marlin has PID_FUNCTIONAL_RANGE, PID_EXTRUSION_SCALING, and PID_FAN_SCALING to work around these issues. Those are hacky, ad-hoc solutions that try to do the same thing as MPC, but without a correct and complete physical model underneath. It's rather like adding more duct tape to the problem instead of stepping back, understanding the situation, and engineering a proper solution. Also, each of these functions has its own configuration parameters, which require separate tuning, while the auto-tuning in MPC can take care of all of them together (except filament heat capacity, which you can look up or calculate using physics instead). So if you consider using those additional PID features, you are essentially using MPC, but without a solid theoretical foundation, so you could as well go all the way and just use MPC instead.
2 Don't get me wrong: PID control is a flexible and well-established tool that is for many, many different tasks everywhere. Just like duct tape. But it is not the best tool for every job. A well-tuned PID can control the hotend temperature within a few degrees with little overshoot. It just wasn't specifically designed for this case, and thus it is outperformed by tools that were.
3 Marlin PID tries to do the same thing with PID_FUNCTIONAL_RANGE: it goes full power when the temperature difference is greater than this configured value. But with a high-power heater, this is an additional value that you have to tune. And after the PID kicks in, it needs some time to "wind up", which is another time during which the heater is not using its full potential. Also, the PID coefficients have to be tuned for different, partially conflicting goals: heating up quickly, avoiding overshoots, and avoiding oscillations. Again, all are lumped together into three abstract numbers with no physical meaning.

Welcome @Fritz and a very good and comprehensive answer. Thank you!


text:
Is there a way to send a thumbnail to the printer LCD screen when printing over USB from OctoPrint?
I'm using Cura Thumbnails using a plugin in Cura 5.5. Also, I use the Marlin-based mriscoc firmware on a Creality Ender 3 V2 with OctoPrint using OctoPi on a Raspberry Pi 4.
The firmware supposedly supports Thumbnail's preview when printed from an SD card, although I never tried. I can also view the Thumbnail in the OctoPrint UI. I print only using USB, controlled by OctoPrint on my Raspberry Pi.
Is it possible to send the Thumbnail to the printer LCD when a print is started from OctoPrint? In a similar way to how I have to add 'Show Progress on printer LCD' using a Cura plugin to follow the progress on the printer LCD when OctoPrint controls it.

No, it is currently not possible to see the thumbnail in the printer screen if the G-code is being printed from a host like Octoprint. It is technically possible if the same G-code exists on the SD card or if the user can wait about 5 to 10 minutes for the binary jpeg image to be transferred to the SD card using the serial protocol. But I don't think it's worth the effort.

What if we develop a OctoPrint plugin that after a file upload to the Pi, checks the file for thumbnails, adds the thumbnail to the SD card and the firmware picks it up? Or will the 'upload to sd' be equally slow as what you have mentioned?

It is technically possible; You can try it using Marlin BFT, but the time consumed by image transfer could worsen the user experience.


text:
What conditions need to be met precisely to achieve PLA biodegradation?
In addition to the question: Can I really throw failed PLA prints on compost? and anything else I've read about PLA biodegradability, what exact conditions are needed to achieve this?
I mean, oxygen can be bought, and exposure to high temperatures for a specific time or light conditions can be arranged in a DIY matter. So, what conditions need to be met precisely to achieve PLA biodegradation? So far, I've never seen anyone provide a comprehensive list of required conditions or a DIY method.

https://en.wikipedia.org/wiki/Polylactic_acid#End_of_life cites https://www.sciencedirect.com/science/article/abs/pii/S014139100700300X?via%3Dihub


text:
What are the best light positions and directions to highlight the print and reduce shadow and light reflection on my OctoPi cameras?
I'm setting up multiple cameras; I have two running: one camera moving with the bed (static distance to the print) and one camera on the frame (stationary to the printer). I will add a third camera later, an endoscope nozzle camera.
However, I have several issues with this, mainly lighting, such as too much reflection on the bed and too much shadows. What is the best position and direction to add (diffused) light to my Creality Ender 3 V2 to highlight the print as much as possible without too much shadow and light reflection?
Two examples
Too much shadow, from a Logitech C920 camera mounted to the frame of an Creality Ender 3 V2:

Too much light reflection (on the print in this case) and shadow, from a Raspberry Pi v1.3 camera mounted to the bed of another Creality Ender 3 V2:

Can you show us your setup and what shadows and reflections you consider too much?

@Mołot Thanks for the suggestion. I did.

Have you considered a ring light mounted to the hotend?


text:
How can I split at line at an already existing point?
I've got a line with a point constrained to it.  I would like to split my line at the point.  The "Split Edge" tool will allow me to split the line anywhere but at that point.  How can I split at line at an existing point?

This doesn't seem to be related to 3D printing, I'm afraid, so it will be closed. Maybe try on SE.Engineering? If you can [edit] and change your question to being 3D printing related, then the question can be re-opened. Thanks. However, have a +1 anyway (that way it won't get deleted) :-)

Actually, seeing as you've answered the question yourself, could you accept the answer in 48 hours time? I'll re-open the question so that you can mark the answer as accepted (you won't be able to if it is closed).

I just want to give you a big giant thank you for suggesting an alternative stack exchange site.  You're the first mod I've ever seen do that!  Thank you.  I really hope you stick around :D

You are welcome. Thanks for marking your answer as accepted - now that the question has an accepted answer it can not be auto-deleted (even after closing). I will close the question again now, thanks again.

I figured it out.  Splitting at that specific point makes no sense because the split wouldn't be constrained to it at all.  It would just be confusing.
The way to do this is to split somewhere else on the line, then constrain the split point to the existing point.


text:
Why is 'planar-2.5D-slicing' most commonly used instead of 'non-planar-3D-slicing'?
Why do most slicers slice, and printers print in 2.5D, a planar method, rather than an actual 3D non-planar method? Doesn't this mainly come down to slicer software limitations rather than hardware limitations?
The results, in many cases, seem so much better. As shown below:

Degrees of freedom
2D has 3 degrees of freedom: X, Y, and a single rotation. As a result, you can describe any object in 2D by defining its center position and the rotation its surface start point is at and then referencing its shape.
3D has 6 degrees of freedom: X, Y, and Z position, and the rotation around each of the axes. Describing a 3D object is much more complicated.
Printers usually work with fully constrained rotations after the slicing. Traditional machining has limited Z accessibility without a 4th axis or using a 5-axis arm, and is limited in depth by the length of tooling.
Slicing is a number of mathematical 2D processes
When slicing, the slicer creates slices of a layer thickness. These then are interpreted by projecting to the center the smallest outline that would fit everywhere in the body and raising that outline to the center of the slice.
The stack of outlines is pretty much the outer surface reduced to a number of 2D objects. As placing the object already fixed its rotation, this leaves each outline to be solved for 2 variables for the toolpath: X and Y.
Just stacking all these results in a 3D object in the end.
2.5D is a machining term
Traditional machining creates 3D objects. However, machining with a 2.5D setup does not create undercuts, as it only uses cylindrical tooling in most cases. This machining works by projecting the top item onto a plane and having at most one Z coordinate. That means one can easily create a "height map" of the item's surface.
The surfaces in nonplanar mapping are similar: the top examples have a lot of traditional 2D solved printing and a single top layer that follows a 2.5D machine path - which is, remind you, a simplified 3D coordinate system.
By only solving the last layer for X, Y, and Z path coordinates and banning undercuts, the solving time can be massively reduced, leading to faster slicing and allowing more time spent on refining the print paths. 2.5 D path solution algorithms also are much better explored from traditional machining, while true 3D machining requires the machining tool to move with all degrees of freedom.
Layered 2.5 D
Example (a) below breaks from traditional 2.5 D but can be reduced back to 2.5 D. Cutting the item in non-planar layers that follow the bottom geometry, that geometry can be solved as a 2.5 D machine path, and then the next layer is solved with an offset above that. However, cutting an item non-planarly can become very complicated, especially with more complex geometry than a simple arch.


text:
Is the term 'biodegradable' in the context of PLA misleading or misunderstood when industrial conditions are required to achieve it?
According to the Oxford Dictionary (Google), the definition of biodegradability is as follows:

(of a substance or object) capable of being decomposed by bacteria or other living organisms and thereby avoiding pollution.

The definition for the term composting is:

make (vegetable matter) into compost.

The definition for the term compost is:

decayed organic material used as a fertilizer for growing plants.

The defintion for the term decomposing is:

(of organic matter) in the process of decaying.

The general assumption is that "PLA can decompose in nature". However, it's no secret that PLA is only degradable under particular industry conditions, presumable using bacteria or other living organisms. Otherwise, it wouldn't even meet the definition biodegradable. The terms composting, compost, and decomposing do not apply to PLA, despite many speaking and writing about it.
At the very least, either the general understanding of the term "biodegradable" is wrong, or the term biodegradable is misleading, perhaps even greenwashing.
Related: TEDx: Will PHA Replace All Plastic? Nouf Alhazmi

I'm genuinely interested in the question: 'Is the term 'biodegradable' misleading or misunderstood in the context of PLA when industrial conditions are required to achieve it?'. So, it's a matter of terminology. I'm using recycled PLA only but am considering switching entirely to PHA. Also see my other related question: https://3dprinting.stackexchange.com/q/21684/36802

Interesting Ted talk, makes you think of the term "biodegradeble". I knew it was hard to degrade PLA, not to this extent, nice question! But I think you already know the answer ;-)

Seems similar or related to Can I really throw failed PLA prints on compost?, which already has some answers. It seems as if answers to this question would equally apply to that question as well, so maybe a duplicate? The answer seems to be that no one really knows because PLA hasn't been around long enough to have decomposed yet, or in other words, we need to wait at least another 80 years or so, to be sure.

@Greenonline, that's seems to be an answer too, and I cannot imagine that no-one knows. CNC Kitchen did some tests. I saw other experiments on YouTube to speed up degradation with prolonged exposure of temperature and humidity for extended times without success. I don't think it's impossible, and I would like to find out how it is, which I asked in another question.

In addition I find very little info, tests and experiments about PHA filament properties. I just bought my first two spools of 100% PHA from colorfabb. I never printed anything else than recycled PLA. I will try to experiment, test, compare with PLA and post the results.


text:
What are the differences between aluminum and copper heater block and why would I use one vs another?
Just as the title says - I'm in the need of a new heater block, and need to decide which one to buy. Plated copper is 10 times more expensive now, at least where I live (70 PLN which is about 16 Euro or 18 USD vs 7 PLN for aluminum), but in the scale of the cost of a printer, difference is negligible.
Copper has better thermal transfer, but it also has a greater thermal mass, so it heats up and cools down slower, but should be able to melt plastic faster. Or so it seems. I don't know how these theoretical properties translate into practical pros and cons for 3D printing.
I'm not looking for "buy this" answer. I'm looking for comparison that will let me, and future readers, make informed decision.

The choice depends on the application you have in mind, but basically you can look at the properties of copper and aluminium to find out what may be better for your application.

Dynamics

Copper is about 3 times heavier, this potentially increases the weigth of the hot end and as such increases the change to have more issues with e.g. ringing for a similar sized heater blocks

Thermodynamics

Maximum temperature can be higher for copper, the melting temperature is almost twice the value for aluminium (in printing in excess of 320 °C you want to use a copper heater block)1)
Heat conductivity for copper is almost twice the value of that of aluminium, it conducts heat much better, so the block is more evenly heated.
Heat capacity of copper is almsot half of that of aluminium, so it requires more energy to heat up the same amount of mass. Specific heat or heat capacity of aluminum is  0.90 J/(g °C); for copper it is 0.385 J/(g °C). To heat up the  same amount of mass you'll need a little over twice the amount of energy, or with a given influx it will take more time. As we can assume the volume of the heatblocks is the same, the mass of the copper block will be higher and therefore will take even more time to heat up.

Copper can be nickel coated/plated, this creates a surface that is less prone for filament to get stuck on and is more easy to cleam with isopropanol alcohol.
A copper heater block may help keep temperatures more stable, but this is already done by the printer controller board (PID tuning). Generally, it will not help with a higher flow rate, since plastic thermal conductivity is the limiting factor here, not the heater block. For increased flow application you should go to a (Super)Volcano heater block; for a smaller volumetric flow increase one could use e.g. CHT style nozzles (effectively increased the filament contact area with the nozzle/heater block.
Basically, using a copper heater block is advised when printing at high temperatures (> 320 °) for prolonged times.

1) Aluminum heater blocks begin to degrade above 350 °C, while a copper alloy doesn't even begin to soften until way beyond 500 °C

Good answer. My printer is a slow one, so mechanical issue is not an issue - for me. Good to know none the less. I don't think I observe any issues that would require me to upgrade to copper. I have a small amounts of PC and ASA I need to print for projects, but for the most part I'll stay with PLA and PETG. Aluminum in silocone socket should be more than sufficient.

PS could copper block offset worse thermal transfer of a steel or titanium nozzle?

@Mołot The thermal conductivity of pure titanium is 17 W/(mK), about a quart of iron and about 1/23 of copper. Titanium is easy to warm and easy to cool. It's strange that it is easy to warm though the heat conduction is bad. The heat capacity is about the same for Ti and steel. A nice video I just found on using more copper in the hotend: https://www.youtube.com/watch?v=IjUXhg7Waqo

Just to put last dot - I swapped for the plated copper and high-flow CHT style nozzle and my ASA prints are finally succeeding. Nozzle itself wasn't quite enough, my print crumbled after about 10 layers as if some filament was extruded too cold.

I would compare copper to aluminium as 4/9th, not 5/10th, but close enough. ;)

I’ll add from my experience: for printing with composite materials, when using a tungsten carbide nozzle, if screwed into an aluminum hotblock (even when screwed hot), the nozzle quickly unwinds and then plastic leaks. In the case of a copper hotblock, a similar effect is not observed (apparently, this is explained by different thermal expansion of the materials).

Thermal expansion coefficient in [m/m∙K]: Copper 17∙10E-6. Aluminium 23∙10E-6, Tungsten Carbide: 5.5∙10E-6 - the copper block does not "swell" as much as the aluminium one, the tungsten carbide is only 1/3rd and 1/5th of the expansion comparatively - it should get squeezed in by both during a heat cycle... copper has much lower friction though.


text:
Processes & Materials for Part
I have a large part, a chute that measures 638.54 × 152 × 369.05 mm, with a 2 or 3 mm wall thickness.  This part was originally was ABS that was injection molded.  Smoothness is required on the inside of the chute and rigidity is important as it could be removed several times per week.  I can have it printed in Nylon PA12 with either MJF or SLS or in ABS with the FDM process with 100 % infill.
I had one printed in Somos Evolve material and it was much too weak and could break easily.
What is the best recommendation for material/process that could replace this ABS injection molded part?

Welcome. Maybe the title should be 'What is the best process and material to replace an ABS injection molded part?' Could you share an image of the part to get an better idea of it?

Are you willing to redesign?  If your part is designed for process X, for the same reaults you need to use the same process — or redesign for process Y. I can expand it to a full answer.

This shape wasn't designed for 3D printing
Some of your requirements are contradictory in 3D printing context.

Smoothness inside indicates that you need SLA or DLP process.
2mm walls will be too brittle using SLA/DLP.
Being able to be removed and reinstalled couple of times per week pretty much requires FDM with great layer adhesion.
Sharp 90° angles we see on the picture exclude FDM print if you want it to be sturdy.

If you want to print it, you need to redesign it in a way that will remove issues above - make walls thicker, chamfer or round all the 90° angles, and forgo the smoothness requirement on the inside, or figure a way to line it with something like automotive filling primer.
ABS Injection is the only way to replicate it exactly and keep its functional parameters.
Alternatively, print a mold, and remake the item using carbon or glass fiber pre-pregs. It will be light (carbon variant), extraordinarily sturdy and stiff, and you can use gelcoat or polishing to get it smoother than prints will ever be. You will still need to decide where shape of the internal surface is important, and where the outside takes precedence, and I still strongly recommend to round out all 90° angles, but rounding radius can be smaller, as long as you are comfortable with forcing pre-preg to follow it. It'll just make your life easier to have them larger.
There is a lot of tutorials on the Internet on how to do it, but I believe specific issue with this method belong to a follow-up question, not here.

Yep, designing a shape that is functionally the same but looks much different and works with FDM should be possible. Fillets, structural ramps, extra material, possibly elongating the tubular parts to make room to fit supporting structures, lining inserts to provide smoothness etc.