text:
Creality Sprite Pro Immediately starts heating hotend on startup
My Setup

Ender 3 Pro
Creality Board v4.2.7
Klipper Firmware (worked great with the stock Creality Bowden hotend and Creality Direct Drive Extruder)
Brand new Creality Sprite Pro hotend.

Wiring

I have verified that the hotend heater cartridge is wired properly. In fact, if I reverse the polarity of the hotend heater, the LCD blinks on and off as if the board is continuously rebooting.

Problem
The hotend immediately starts heating at 100% (24 V DC) on startup without any command to do so.
What I've tried

I've unplugged the hot end heater (on the Sprite Pro head) and I see 24 V DC at the board nozzle output.
If I unplug the ribbon cable on the sprite end, I see ~ 300 mV at the nozzle output.

Question
How do I stop the hot end from heating up on startup?
Klipper printer.cfg:
[include moonraker_obico_macros.cfg]
# This file contains pin mappings for the Creality "v4.2.7" board. To
# use this config, during "make menuconfig" select the STM32F103 with
# a "28KiB bootloader" and serial (on USART1 PA10/PA9) communication.

# If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select
# serial (on USART3 PB11/PB10), which is broken out on the 10 pin IDC
# cable used for the LCD module as follows:
# 3: Tx, 4: Rx, 9: GND, 10: VCC

# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must end in ".bin" and must not match the last filename
# that was flashed.

# See docs/Config_Reference.md for a description of parameters.

[skew_correction]

# [filament_switch_sensor runout_sensor]
# pause_on_runout: True
# switch_pin: PA4

[stepper_x]
step_pin: PB9
dir_pin: PC2
enable_pin: !PC3
microsteps: 16
rotation_distance: 39.83
endstop_pin: ^PA5
position_endstop: 0
position_max: 235
homing_speed: 50

[stepper_y]
step_pin: PB7
dir_pin: PB8
enable_pin: !PC3
microsteps: 16
rotation_distance: 39.78
endstop_pin: ^PA6
position_endstop: 0
position_max: 235
homing_speed: 50

[stepper_z]
step_pin: PB5
dir_pin: !PB6
enable_pin: !PC3
microsteps: 16
rotation_distance: 8
# position_endstop: 0.0                     # disable to use BLTouch
# endstop_pin: ^PA7                         # disable to use BLTouch
endstop_pin: probe:z_virtual_endstop    # enable to use BLTouch
position_min: -5                        # enable to use BLTouch
position_max: 250

[safe_z_home]                         # enable for BLTouch
home_xy_position: 157.5,120.5
speed: 100
z_hop: 10
z_hop_speed: 5

[bltouch]                             # enable for BLTouch - fast-mode
sensor_pin: PA7
control_pin: PB0
pin_up_touch_mode_reports_triggered: True
probe_with_touch_mode: True
# x_offset: -44                         # modify as needed for bltouch location
# y_offset: -6                          # modify as needed for bltouch location
x_offset: -28                           # For the sprite
y_offset: -40                           # For the sprite
#z_offset: 0.0                         # modify as needed for bltouch or run PROBE_CALIBRATE
speed: 10
sample_retract_dist: 5.0              # Can be set lower, example 2.5 depending on height of bltouch from bed
lift_speed: 40
samples_tolerance_retries: 3
speed: 10
samples: 1

[bed_mesh]
speed: 80
horizontal_move_z: 5
mesh_min: 18,18
mesh_max: 175,202
probe_count: 5,5
algorithm: bicubic

# manual Bed adjustment via BED_SCREWS_ADJUST
[bed_screws]
screw1: 72.5, 41.5
screw1_name: front left screw
screw2: 198.5,35.5
screw2_name: front right screw
screw3: 198.5,205.5
screw3_name: rear right screw
screw4: 28.5,205.5
screw4_name: rear left screw
horizontal_move_z: 10
speed: 50

[screws_tilt_adjust]
screw1: 72.5, 41.5
screw1_name: front left screw
screw2: 220,41.5
screw2_name: front right screw
screw3: 220,212.5
screw3_name: rear right screw
screw4: 72.5,212.5
screw4_name: rear left screw
horizontal_move_z: 10
speed: 50
screw_thread: CW-M4

[input_shaper]
shaper_freq_x: 100
shaper_freq_y: 100
shaper_type: mzv

[gcode_macro G29]
gcode:
    G28
    BED_MESH_CALIBRATE
    G0 X0 Y0 Z10 F6000
    BED_MESH_PROFILE save=default
    SAVE_CONFIG

[extruder]
max_extrude_only_distance: 100.0
step_pin: PB3
dir_pin: PB4
enable_pin: !PC3
microsteps: 16
rotation_distance: 33.500
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250

[heater_bed]
heater_pin: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130

#[fan]
#pin: PA0

[fan]
pin: PA0

[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command

[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_accel_to_decel: 3000
max_z_velocity: 5
max_z_accel: 100

[display]
lcd_type: st7920
cs_pin: PB12
sclk_pin: PB13
sid_pin: PB15
encoder_pins: ^PB14, ^PB10
click_pin: ^!PB2

[gcode_macro G29]
gcode:
    G28
    G1 Z10 F600
    BED_MESH_CLEAR
    BED_MESH_CALIBRATE
    BED_MESH_PROFILE SAVE=default
    SAVE_CONFIG

[temperature_sensor raspberry_pi]
sensor_type: temperature_host
min_temp: 10
max_temp: 100

[temperature_sensor mcu_temp]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100

[board_pins]
aliases:
  EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
  EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
  PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6

[exclude_object]

[include mainsail.cfg]
[include timelapse.cfg]

[gcode_macro do_the_mesh]
gcode:
  BED_MESH_PROFILE LOAD="default"
  SKEW_PROFILE LOAD=my_skew_profile

description: Either load the default mesh or perform a mesh load operation.

#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [bltouch]
#*# z_offset = 1.420
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*#       0.005000, -0.022500, -0.015000, -0.015000, -0.017500
#*#       0.032500, -0.022500, -0.015000, -0.042500, -0.047500
#*#       0.105000, 0.022500, 0.020000, -0.045000, -0.077500
#*#       0.140000, 0.080000, 0.055000, 0.015000, 0.022500
#*#       0.225000, 0.182500, 0.147500, 0.077500, 0.067500
#*# x_count = 5
#*# y_count = 5
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = bicubic
#*# tension = 0.2
#*# min_x = 18.0
#*# max_x = 175.0
#*# min_y = 18.0
#*# max_y = 202.0
#*#
#*# [skew_correction my_skew_profile]
#*# xy_skew = -0.0008053242270892168
#*# xz_skew = 0.0
#*# yz_skew = 0.0
```

After much gnashing of teeth, I determined that the problem revolved around the Z-stop wire from the 40 conductor cable being connected.
The Sprite Pro is equipped with a 5-pin BL Touch connector. For whatever reason, having the 2-pin connector plugged into the Z-stop port causes the nozzle heater output to peg at 24 V DC.
Updated printer.cfg
[include moonraker_obico_macros.cfg]
# This file contains pin mappings for the Creality "v4.2.7" board. To
# use this config, during "make menuconfig" select the STM32F103 with
# a "28KiB bootloader" and serial (on USART1 PA10/PA9) communication.

# If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select
# serial (on USART3 PB11/PB10), which is broken out on the 10 pin IDC
# cable used for the LCD module as follows:
# 3: Tx, 4: Rx, 9: GND, 10: VCC

# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must end in ".bin" and must not match the last filename
# that was flashed.

# See docs/Config_Reference.md for a description of parameters.

[skew_correction]

# [filament_switch_sensor runout_sensor]
# pause_on_runout: True
# switch_pin: PA4

[stepper_x]
step_pin: PB9
dir_pin: PC2
enable_pin: !PC3
microsteps: 16
rotation_distance: 39.83
endstop_pin: ^PA5
position_endstop: 0
position_max: 235
homing_speed: 50

[stepper_y]
step_pin: PB7
dir_pin: PB8
enable_pin: !PC3
microsteps: 16
rotation_distance: 39.78
endstop_pin: ^PA6
position_endstop: 0
position_max: 235
homing_speed: 50

[stepper_z]
step_pin: PB5
dir_pin: !PB6
enable_pin: !PC3
microsteps: 16
rotation_distance: 8
# position_endstop: 0.0                     # disable to use BLTouch
# endstop_pin: ^PA7                         # disable to use BLTouch
endstop_pin: probe:z_virtual_endstop    # enable to use BLTouch
position_min: -5                        # enable to use BLTouch
position_max: 250

[safe_z_home]                         # enable for BLTouch
# home_xy_position: 157.5,120.5
home_xy_position: 139.5,169
speed: 100
z_hop: 10
z_hop_speed: 5

[bltouch]                             # enable for BLTouch - fast-mode
# sensor_pin: PA7                     # 3 pin connector plus separate z endstop
sensor_pin: ^PB1                      # 5 pin connector: https://www.reddit.com/r/ender3v2/comments/pw1eyq/printercfg_with_bltouch_for_klipper/
control_pin: PB0
pin_up_touch_mode_reports_triggered: True
probe_with_touch_mode: True
# x_offset: -44                         # modify as needed for bltouch location
# y_offset: -6                          # modify as needed for bltouch location
x_offset: -30                           # For the sprite
y_offset: -41.5                         # For the sprite
#z_offset: 0.0                         # modify as needed for bltouch or run PROBE_CALIBRATE
speed: 10
sample_retract_dist: 5.0              # Can be set lower, example 2.5 depending on height of bltouch from bed
lift_speed: 40
samples_tolerance_retries: 3
speed: 10
samples: 1

[bed_mesh]
speed: 80
horizontal_move_z: 5
mesh_min: 18,18
mesh_max: 175,202
probe_count: 5,5
algorithm: bicubic

# manual Bed adjustment via BED_SCREWS_ADJUST
[bed_screws]
screw1: 72.5, 41.5
screw1_name: front left screw
screw2: 198.5,35.5
screw2_name: front right screw
screw3: 198.5,205.5
screw3_name: rear right screw
screw4: 28.5,205.5
screw4_name: rear left screw
horizontal_move_z: 10
speed: 50

[screws_tilt_adjust]
screw1: 72.5, 41.5
screw1_name: front left screw
screw2: 220,41.5
screw2_name: front right screw
screw3: 220,212.5
screw3_name: rear right screw
screw4: 72.5,212.5
screw4_name: rear left screw
horizontal_move_z: 10
speed: 50
screw_thread: CW-M4

[input_shaper]
shaper_freq_x: 100
shaper_freq_y: 100
shaper_type: mzv

[gcode_macro G29]
gcode:
    G28
    BED_MESH_CALIBRATE
    G0 X0 Y0 Z10 F6000
    BED_MESH_PROFILE save=default
    SAVE_CONFIG

[extruder]
max_extrude_only_distance: 100.0
step_pin: PB3
dir_pin: PB4
enable_pin: !PC3
microsteps: 16
# rotation_distance: 33.500  # for stock extruder
rotation_distance: 7.53      # for sprite pro
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
#control: pid
#pid_Kp: 21.527
#pid_Ki: 1.063
#pid_Kd: 108.982
min_temp: 0
max_temp: 250

[heater_bed]
heater_pin: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130

#[fan]
#pin: PA0

[fan]
pin: PA0

[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command

[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_accel_to_decel: 3000
max_z_velocity: 5
max_z_accel: 100

[display]
lcd_type: st7920
cs_pin: PB12
sclk_pin: PB13
sid_pin: PB15
encoder_pins: ^PB14, ^PB10
click_pin: ^!PB2

[gcode_macro G29]
gcode:
    G28
    G1 Z10 F600
    BED_MESH_CLEAR
    BED_MESH_CALIBRATE
    BED_MESH_PROFILE SAVE=default
    SAVE_CONFIG

[temperature_sensor raspberry_pi]
sensor_type: temperature_host
min_temp: 10
max_temp: 100

[temperature_sensor mcu_temp]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100

[board_pins]
aliases:
  EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
  EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
  PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6

[exclude_object]

[include mainsail.cfg]
[include timelapse.cfg]

[gcode_macro do_the_mesh]
gcode:
  BED_MESH_PROFILE LOAD="default"
  SKEW_PROFILE LOAD=my_skew_profile

description: Either load the default mesh or perform a mesh load operation.

#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [bltouch]
#*# z_offset = 4.350
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*#     0.005000, -0.022500, -0.015000, -0.015000, -0.017500
#*#     0.032500, -0.022500, -0.015000, -0.042500, -0.047500
#*#     0.105000, 0.022500, 0.020000, -0.045000, -0.077500
#*#     0.140000, 0.080000, 0.055000, 0.015000, 0.022500
#*#     0.225000, 0.182500, 0.147500, 0.077500, 0.067500
#*# x_count = 5
#*# y_count = 5
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = bicubic
#*# tension = 0.2
#*# min_x = 18.0
#*# max_x = 175.0
#*# min_y = 18.0
#*# max_y = 202.0
#*#
#*# [skew_correction my_skew_profile]
#*# xy_skew = -0.0008053242270892168
#*# xz_skew = 0.0
#*# yz_skew = 0.0
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 19.488
#*# pid_ki = 1.101
#*# pid_kd = 86.236
```

Glad you found the problem and posted an answer, many thanks!


text:
Can I use Web Serial API to send G-code to my Ender 5 Pro?
I recently started experimenting with sending G-code to my printer via USB cable. I downloaded Printrun and it works great! However, I want to be able to do this from my web browser because the app im developing is web based.
I found this Chrome app called chrome-gcode-sender that does this but it unfortunately no longer works because Google sadly ended support for all Chrome apps in June 2022.
The maker of this app suggested on GitHub that the same thing should be achievable using Web Serial API. I have been trying to get this to work for almost two days now but with little success. I found several tutorials online about how to use Web Serial API but nothing for this specific use case. Here is a sample of the code I have developed so far, just a simple HTML document with some vanilla JavaScript:
<html>
  <head>
    <title>Web Serial API Demo</title>
  </head>
  <body>
    <button id="connect">Connect</button>
    <script>

        var device
        let button = document.getElementById("connect")

        document.addEventListener("DOMContentLoaded", event => {
            button.addEventListener("click", async() => {
                try {

                    device = await navigator.serial.requestPort()

                    await device.open({baudRate: 9600})

                    console.log("Opened: ", device)
                    console.log("Info: ", device.getInfo())

                    const encoder = new TextEncoder()
                    const writer = device.writable.getWriter()

                    await writer.write(encoder.encode("G28"))

                    writer.releaseLock()

                    await device.close()

                } catch (error) {

                    console.log(error)

                }
            })
        })

    </script>
  </body>
</html>

When I click the 'Connect' button and select the device I want it appears to connect fine. However, when I try to send a simple G-code like G28 (autohome) the printer does nothing. If anyone has an idea how I could get this working please let me know! Im also 100 % open to an alternative approach! The main idea is just to be able to send G-code from a browser to a printer.
Notes:

I've also tried experimenting with Web USB API but no luck here as well.

Finally, got it! I was very close, but two changes needed to be made to the above code for the example to work.

The baudRate needed to be changed to 115200. This value can vary from printer to printer but 115200 is fairly common, and thus a good default. If you find it's not working for you try looking up the recommended baudRate for your printer/firmware version.

I needed to add \n to the end of my G-code string. In this example there was only one command, G28\n but if you want multiple commands in a single string you will need to add \n after each one.

Awesome!!! It is possible to send G-code to a printer from a web browser with just a few lines of JavaScript!
Update: If anyone is interested I built this simple terminal-style app. It should work with any compatible browser and is also usable offline if you clone the repo and open the sender.html file in your browser.

source: Stack Exchange

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

sort: votes


text:
Add 5th stepper driver to the SKR mini E3 v3 to use it for a second extruder motor
I am trying to add a second extruder motor to my Ender 3 V2 so I can use both independently.
My Ender 3 V2 has an SKR Mini E3 v3 build in.
I have seen the post SKR Mini E3 v3 + additional TMC2208 = 5 stepper drivers (works!) and tried to build it. But now I am stuck building the Marlin firmware.
Has anybody done this before, or know how to do that?

Hi David and welcome! Please [edit] your question and post the errors (or output) as text (code formatted text) that you are encountering (not in this comment section). Without knowing what the errors are, it will be impossible to answer your question, unfortunately.

This is not that difficult, but you need some experience in configuring and compiling (Marlin) firmware.
In fact, you already linked to the solution. From the link you see that the person used the following pins to connect to the separate stepper driver on the breadboard:

Wire
Description
SKR pin
Stepper pin

GND
ground
PD4
DIR

Vio
3.3v on SPI1 header
PD5
STEP

OB2
to motor M2B
n/c
CLK

OB1
to motor M2A
either one
PDN_UART

OA1
to motor M1B
either one
PDN_UART

OA2
to motor M1A
n/c
MS2

GND
ground
n/c
MS1

Vm
to 24v from PS
PD0
ENN

In words, what you're seeing here is that I am taking 3.3v and ground from the SPI header, and taking the pins we need for STEP, DIR, ENN (enable), and the UART from the "I/O" connector. Add 24v power (and ground) from the power supply.
Now about the UART cable. You'd need to fashion a cable to go from one of the TMC2208's "PDN_UART" cable, split into two wires, one of which has a 1k resistor. The side without the resistor goes to PD2 and the one with the resistor goes to PD3.
Last thing, not shown but rather important: a 100uF electrolytic capacitor rated for 35v or higher. This will bridge the 24v and ground lines and should be close to the driver. I don't really need it for proof of concept but when driving actual loads during actual prints it's gonna be important.
I also had the idea of using the EXP1 connector's pins too. (As a klipper user, my e3v2's fancy screen don't work anyway.) Could fashion a single plug to hook up all the needed wires save for power. Wound up leaving that option open for the future.

As you are altering the board (adding a stepper) I'd prefer to define the extra stepper in the SKR Mini E3 v3.0 pin specification file.
E.g. append the stepper section to read:
//
// Steppers
//
#define X_ENABLE_PIN                        PB14
#define X_STEP_PIN                          PB13
#define X_DIR_PIN                           PB12

#define Y_ENABLE_PIN                        PB11
#define Y_STEP_PIN                          PB10
#define Y_DIR_PIN                           PB2

#define Z_ENABLE_PIN                        PB1
#define Z_STEP_PIN                          PB0
#define Z_DIR_PIN                           PC5

#define E0_ENABLE_PIN                       PD1
#define E0_STEP_PIN                         PB3
#define E0_DIR_PIN                          PB4

#define E1_ENABLE_PIN                       PD0
#define E1_STEP_PIN                         PD5
#define E1_DIR_PIN                          PD4

If UART is used be sure to set the E1_HARDWARE_SERIAL and the E1_SLAVE_ADDRESS in the section under the stepper section.
Furthermore, change the config.h to include you have multiple extruders:
#define EXTRUDERS 2

I assume you don't use 2 heaters and 2 temperature probes, so set:
#define SINGLENOZZLE

And select a driver type:
#define E1_DRIVER_TYPE TMC2208

For what it's worth, or depending on your hard- and software skills, you could probably better buy a new controller board with more stepper drivers; these boards are very affordable these days.

Thank you for the answer. I have got a problem now. I connected the BTT TFT35 E3 V3.0.1 to my printer. Every time i compile a Firmware and load it into the Printer the rotary knob doesn't work and the Screen wont connect with the printer. I have tried some ideas from other creators, but everything doesn't work.

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


text:
What is causing this under extrusion that only happens after travel moves
I am getting this under extrusion on my prints but only after travel moves. The rest of the print looks fine.

My printer is a Monoprice Maker Select V2 (rebranded Wanhao Duplicator i3 V2) with a DiiiCooler with a radial fan. I was using Repetier 0.92.9 but have upgraded the firmware to Marlin bugfix-2.1.x commit 9e879a5b.
I'm using Cura 5.6.0 and the default Draft profile with the following settings changed:

Wall Thickness: 1.2 mm
Print Thin Walls: True
Infill Density: 10%
Infill Pattern: gyroid
Print Speed: 50 mm/s
Travel Speed: 150 mm/s
Initial Layer Print Speed: 20 mm/s

I'm printing with Inland Turquoise PLA at 215 °C and the build plate at 60 °C.
I am printing Kersey Fabrications Speed Test.
I'm pulling my hair out. I've tried the following without making much headway:

Completely disabled retraction - made the problem worse
Replaced the nozzle with a Micro Swiss Nickel Plated Brass 0.4 mm Nozzle for PTFE lined hotend and replaced the PTFE tube - no improvement
Lowered the temperature to 205 °C - no improvement
Changed firmware from Repetier 0.92.9 to Marlin bugfix-2.1.x commit 9e879a5b - no improvement
Enabled linear advance and tuned it using these instructions. The test pattern looked best at 0.25 but that only made a slight improvement to the issue
Set "Max Comb Distance With No Retract" to 10 mm - slight improvement
Tried different filament (Inland Black PLA+) - no improvement
Disabled "Print Thin Walls" - no improvement
Lowered part cooling fan speed to 25% - no improvement
Changed the following: - no improvement

Printing acceleration 600->1500
Retract acceleration 3000->2000
Travel acceleration 3000->2000
Junction deviation 0.2->0.1

Lowered "E maximum acceleration" from 10000->100 - no improvement
Checked the extruder gear and it was clean. It has the newer D4 style extruder gear, not the duller slightly hobbed gear that Wanhao originally used.
I did the Teaching Tech 3D Retraction Tuning with a base feedrate of 60 mm/s.

For the first print, I did 0.5-3 mm distance, 50 mm/s retract, 20 mm/s advance. There was very slight stringing at 0.5 mm and none in the other sections. All of the sections had slightly jagged edges except for 1 mm.
For the second print, I did 1 mm distance, 20-70 mm/s retract, 20 mm/s advance. There was no stringing and I didn't see any apparent difference between the sections.
For the third print, I did 1 mm distance, 50 mm/s retract, 10-50 mm/s advance. Again, no stringing and no differences between the sections.
None of the three prints showed any signs of under-extrusion.

I printed the Teaching Tech 3D Acceleration Tuning Tower and it has the same under extrusion issue in the back left corner inner wall. This would seem to rule out any slicer settings being the cause of this.

I took apart the extruder and found that the v-groove idler wheel that pushes the filament against the extruder gear was full of grease.

It didn't spin freely, it turned but felt mushy. I cleaned the grease from the wheel and the surrounding area and added a drop of sewing machine oil to each side of the wheel. After that, it spun freely.
I did a cold check of my extruder steps with the extruder removed and found that it matched what I found earlier when I checked it hot through the hotend.
After reassembling the extruder, I reprinted the acceleration tuning tower from the same G-code as before but I saw no improvement to the under extrusion.

I took apart the hot end and replaced the PTFE tube again. I was very careful to cut it perfectly straight and exactly the right length so that it was touching each end but not compressed. I also added Kingpin Cooling KPx thermal grease between the heat break tube and the cooling block and between the cooling block and the heatsink. After reassembling everything, I printed the acceleration tuning tower again but saw no improvement.
Printed the acceleration tuning tower at 30 mm/s, 0.5 mm retract, and 0.13 linear advance - no improvement
Printed the acceleration tuning tower at 225 °C, 195 °C, and 185 °C - no improvement
Checked extruder stepper current voltage reference on the Melzi board. I had adjusted the voltage for all four steppers years ago. The extruder stepper is rated for 1.02 A but the voltage reference was set to 0.695 V (0.87 A 85% of rated). It should be set to 90%. Either I set it wrong or it had drifted even though the other three were correct). I tried printing with it set to the factory setting of 0.886 V (1.1 A 109%) and the correct 0.734 V (0.92 A 90%) - no improvement either way
As suggested in the comments, printed the acceleration tuning tower with linear advance set to 0.04 and retraction distance set to 0.4 mm - no improvement.

+1 for the extensive details. A very nice first question.

You definitely seem to have ruled out many software-type issues.  Is it possible that these underextrusions are physically located close to each other on the bed?  If you have a worn or broken wire in your cable chain, it could be losing connectivity during some moves, causing repeated underextrusion in parts of the print volume, if, for example, one of the extruder stepper signal wires is not consistently behaving.  It might be worth opening up the cable chains (if they open) and looking for damage.

@Tal I had considered that but the under extrusion happens at different spots on the build plate. Looking at the previewer in Cura and other g-code analysis tools, the spots that are under extruded exactly match locations where the extruder starts extruding after a travel move.

Can you try setting "Max Comb Distance With No Retract" to something like 1.5x to 2x the nozzle width? This essentially stops all unretracted travel except reversals at the end of solid "skin" fill.

One detail that seems to be missing is your retraction length. Having retraction too long can cause problems resuming after retract, especially if your filament is at all wet. For a direct drive (I think this machine is DD; correct me if I'm wrong) more than 0.6 mm is probably way too much retraction, but that's assuming you have linear advance calibrated correctly, which you also didn't mention.

@R..GitHubSTOPHELPINGICE I didn't try lower settings for "Max Comb Distance With No Retract" because the travel moves before the under extrusion were all further than 10mm. I'll try 0.8mm and see what happens though.
I know it was a long post so you probably missed it, but I did do retraction tuning and although there was no stringing at any distance, 1mm had the smoothest edge so I stuck with that.
I also tuned linear advance and found that 0.25 looked best but it only made a slight improvement to the under extrusion. Later on, also tried 0.13 with no further improvement.

Actually, now that I think about it, "Max Comb Distance With No Retract" shouldn't matter since the problem happens with the Teaching Tech 3D Acceleration Tuning Tower generated from their website and it doesn't use combing.

OK. 1 mm retraction and 0.13-0.25 linear advance are extremely high values for a direct drive extruder, closer to the range you'd expect for a short bowden like an original Ender 3. These could be seriously messing up your restarts. Reasonable ranges are probably 0.2-0.6 mm for retract and 0.03-0.06 s for linear advance K. If you tuned based on "make stringing go away" but had wet filament, or did your retraction tuning before lin-adv tuning (lin-adv must be done first since retraction tuning will otherwise pull in a compensation for missing lin-adv), this may have been the cause.

I had the problem before I enabled linear advance. The version of Reptier I was originally on didn't have LA, that's part of the reason I switched to Marlin. I tuned LA before I tuned retraction, using the pattern method on Ellis' Tuning Guide. Lower values had significant bulging at the top, bottom, and corners of the pattern. 0.25 looked much better. When I tuned retraction, there wasn't any stringing at any distance from 0.5-3mm so I went by which distance had the smoothest edge which was 1mm. I'll give lower linear advance and retraction a try and let you know what I find.

OK, here's another thought: is your hotend PTFE-lined? (For such an old model printer, the answer is very likely yes.) I recall this sort of symptom happening on PTFE-lined hotends when the tube isn't butted all the way against the nozzle, or when it's become damaged at the end contacting the nozzle from heat and wear. The gap there ends up acting as a sort of buffer that messes up restarts after retraction.

@R..GitHubSTOPHELPINGICE I just tried printing the acceleration tuning tower with linear advance set to 0.04 and retraction distance at 0.4mm. No improvement. I've already replaced the PTFE tube twice. The second  time, I was very careful to cut it perfectly straight and the exact right length so it fit perfectly without being compressed.

@teovall: "Perfectly without being compressed" might be too short. You need pressure that keeps molten plastic from squeezing into the gap. Back when I used a PTFE-lined hotend on my Ender, I would back the pneumatic coupler out one turn, push the tube all the way in to butt against the nozzle, then tighten the coupler to compress the tube end slightly against the nozzle.

This under extrusion occurred with the original PTFE tube from the factory, the extra replacement tube included with the printer, and the tube that I cut myself. None of them made any difference to the issue. The last one I put in, that I cut myself, was snug without bending. I really don't think it's the issue.

Printing with a brand new roll of Polymaker PolyLite grey PLA seems to have fixed the problem. I'll have to redo all of my tuning and do some more tests, but there's no sign of the under extrusion so far.
I ran out of the Inland turquoise PLA doing all my testing but I have tried drying the Inland black PLA+. I've dried it a total of 36 hours now at 50 °C and it made no improvement to the under extrusion issue. 24 hours of that was in a Sunlu S1 filament dryer (the original model without a fan) in 6 and 12 hour increments. 12 hours of that was in a convection toaster oven converted to a reflow oven with a Controleo3 kit. I tried drying with and without desiccant packs in both the filament dryer and the reflow oven.
I don't know how or why the filament degraded but it does not seem to be due to any current moisture content.


text:
Using Blender for design and Cura for slicing; trying to figure out why this is slicing this way
I am trying to create a test model for a project I am working on and am confused about why this is slicing like this. In Blender, I used the difference boolean to cut a hole in the cylinder on the side of the cube and I deleted the faces of the cylinder and the cube.
I have uploaded the Blender and the .stl files and made them available:

Blender file
STL file

I'm not a Blender user but the STL file shows a zero wall thickness on the cylinder and no closure to the cylinder. If you close the cylinder, you should be able to test for 3D printable status with a built-in feature of Blender.
Image below is screen capture from Meshmixer user created content:

There's a YouTube video that addresses the 3D print tools, auto-starting at 8:01
If your objective is to have an open cylinder and cube, it is necessary to offset the walls inward or outward to create thickness. Also ensure that the offset walls are closed.


text:
My Z axis isn't moving when I home it but it moves on TFT display and Pronterface
I'm using an SKR 1.4 turbo with a Tronxy X5SA 500 Pro, TMC2209 stepper drivers with the dialogue pins cut because I'm using physical limit switches instead of sensor-less homing. The Z-axis moves up and down fine.
When I try to home it it doesn't move. I don't know why. Everything else is working and I confirmed the limit switches work with the M119 command. Someone please help. I'm certain it is in the firmware. I pulled the stepper driver for the Z and made sure it was clipped short enough. Actually, it's the shortest of all four. Also, I'm working with dual Z-limit switches. And I have an inductive Z probe on the nozzle. But I have disabled the probe in the software. My main goal is to home Z to the limit switches right now.
Does anyone have any ideas or commands I can run? I'm running the most recent stable version of Marlin.

What do you mean by I pulled the stepper driver for the Z and made sure it was clipped short enough. Also, why using an inductive probe and two limit switches?


text:
Can I damage the Bambu A1 Mini by selecting the wrong nozzle size in settings?
I have a Bambu A1 Mini.  My daughter often prints with it, and enjoys doing all of the little tasks involved with printing like switching nozzles.  She does the process proficiently while I observe, but I often have to remind her to go into the maintenance menu to change the nozzle setting afterwards.  Is there any damage that can be done by failing to properly set that configuration?

Mea culpa: My daughter has a Bambu A1 Mini.  I often print with it. This is how things go ;-)  I am, of course, in charge of maintenance until she's ready for that.


text:
What is the potential impact of security risks associated specifically with 3D printers or their hosts?
Recently a bunch of Anycubic 3D printers have been hacked as reported in an article from  bleedingcomputer.com.

According to a wave of online reports from Anycubic customers, someone hacked their 3D printers to warn that the devices are exposed to attacks.

According to the same text file, 2,934,635 devices downloaded this warning message via the vulnerable API.

The impact in this case seems limited to only a warning using a text file that was placed on the printer. However, I can imagine a scenario where (through an intermediate host such as OctoPrint) the printer firmware can be reflashed (some OctoPlugin for example allows for remote flashing). The firmware could pose a real physical danger, for example when thermal runaway protection and heating limits are removed, or when fake temperature values are reported to the printer LCD.
My question is, what specific vulnerabilities or risks are associates with 3D printers or 3D printer hosts and what potential impact does it have?

I'm not sure about the question. If you are asking how malicious firmware could affect the intended functionality of a 3rd printer -  an intentionally malfunctioning printer might be a safety problem, like through overheating etc. But safety is not information security, i.e. off-topic. If you are asking how a compromised IoT device (which the printer is) could affect its environment (attacks inside LAN or to internet) - that's not different to any other compromised IoT device (printer, SmartTV, ...).

"What's the security risk of a compromised device on a network?" -- is a well- discussed topic. Can you clarify what your question is?

I rephrased. I'm more interested in the impact, however apart from the standard 'breached network-device' I'm more interested in the specific risks and impacts associated with network connected 3D printers or 3D printer hosts such as OctoPi.

So, as we said, just as there is for any other device. Physical safety hazards are outside of the infosec scope and the risk analysis of that will depend entirely on the physical capabilities of the machine. So, I'm not sure there is a unique answer possible here.

You're right. I will request a migration to 3D printing Stack Exchange.

It would be highly dependant on the exact printer and the nature of the vulnerability.
Using past events as a guide, we could potentially see the processing capabilities of a 3D printer used to form a botnet for a DDOS style attack. This has previously been done with compromised routers and other IOT Devices.
Example
We might also see printers with built in cameras being hacked to allow images to be taken inside people's homes
Example
Hypothetically speaking, with a 3D printer, an attack might involve some form of blackmail. Forcing the company to pay money or have their products attacked in some way. For example having a malicious update pushed down to them that rendered them useless.
We could also possibly see someone doing something silly such as to have printers simply spew out spaghetti, or malicious such as having code inserted into them that would drag the nozzles across the print bed, damaging one or both of them.
In an extreme case it's possible that a hacker may find a way heat up a printer until it catches fire.
Given that many 3D printers are wireless, it's possible that they could be harvested for wifi passwords, or for log in details to cloud accounts that contain personal information or payment details.
All of this is speculative though.

If the attacker is positioned to be able to flash the firmware, rather than just interacting with the printer as programmed to react to gcode, they can definitely switch the heaters always-on (vs PID controlled to reach a particular temperature). Ability to start a fire then depends only on whether the wires will melt and break the circuit before the heat ignites something flammable. Clever positioning of the toolhead or use of printing facilities could make that more likely.


text:
Undefined Reference Error on compiling when Integrating New Custom G-Codes into Marlin 2.1
I'm encountering an issue while attempting to add new custom G-codes to Marlin 2.1.* firmware. Specifically, I'm aiming to introduce G-codes M9910 to M9919 into the firmware. While my implementation method has worked in Marlin 2.0, I'm facing difficulties integrating it into Marlin 2.1.
Here's the approach I've taken:

Configuration_adv.h:

#define New_Custom_Gcodes

gcode.cpp:

// Inside GcodeSuite::process_parsed_command()
switch (parser.command_letter) {
    ....
    case 'M':
        switch (parser.codenum) {
            // Existing cases...
            #if ENABLED(New_Custom_Gcodes)
                case 9910:
                case 9911:
                case 9912:
                case 9913:
                case 9914:
                case 9915:
                case 9916:
                case 9917:
                case 9918:
                case 9919:
                    M9910_M9919(); // Define/execute G-code macro
                    break;
            #endif
            // Existing cases...
        }
    // Rest of the function...
}

gcode.h:

class GcodeSuite {
public:
    // Existing codes...
    #if ENABLED(New_Custom_Gcodes)
        static void M9910_M9919();
    #endif
};

I've created a new file named M9910_M9919.cpp under Marlin\src\gcode\control, M9910_M9919.cpp:

#include "../../inc/MarlinConfig.h"

#if ENABLED(New_Custom_Gcodes)

#include "../gcode.h"
#include "../queue.h"
#include "../parser.h"

void GcodeSuite::M9910_M9919() {
    // Execute Custom G-codes
    switch (parser.codenum - 9910) {
        case 0:
            // Do something
            break;
        case 1:
            // Do something
            break;
        // Cases for M9911, M9912, ..., M9919
        default:
            break;
    }
}

#endif

Despite these steps, I'm encountering the following error during the linking stage:
c:/users/****/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: .pio/build/STM32H723ZE_btt/src/src/gcode/gcode.cpp.o: in function `GcodeSuite::process_parsed_command(bool)':
C:\Users\***\***\***\***\Marlin-bugfix-2.1.x/Marlin\src\gcode/gcode.cpp:1123: undefined reference to `GcodeSuite::M9910_M9919()'
collect2.exe: error: ld returned 1 exit status

I understand that this error suggests that the linker cannot find a reference to the M9910_M9919 function, indicating a problem with its definition or how it's being referenced, however I couldn't find what is the mistake in this case.
I'd greatly appreciate any insights or suggestions on resolving this issue. If there's anything I've overlooked or if there are specific changes in Marlin 2.1.* that may affect how custom G-codes are integrated, please let me know.


text:
BLTouch problem with pin deployment
I bought and installed and uploaded the BLTouch firmware from Antclabs. When I click "level bed" it moves to homing the X and Y axes to 0 and to the middle but the probe does not extend (like its hidden all time) but when I turn on printer it lights up and do "dance" (self-test). I tried finding similar problems but every tutorial is for the Ender Pro; I have an Ender 3 (normal) not Pro or anything like that.

Have you checked to make sure that your wiring is done correctly? That would be my first thing to check.

Hi and welcome to 3DPrinting.SE! I have helped you out with the question by re-formatting and added some explanations of what you wrote down, please evaluate the edit and adjust where you think adjustments need to be made. Correctly wiring is usually the problem in these cases, maybe you can add information on how you wired it up and which firmware you have installed, this should be done through an [edit].

I put the wires into the port near the screenn cable (like on tutorial here, same thing I did with firmware.

this is what happening https://www.youtube.com/watch?v=ty93wuWkzAw&pp=ygUnQkwgVG91Y2ggbm90IGV4dGVuZGluZyB3aGVuIGF1dG8gaG9taW5n

Any additional info should be put in the question and not in the comments. Comments get deleted over time. Please [edit] and update your question.


text:
How to use transform tool in meshmixer
I have tried to add a base to teeth model. I am not fan of using extrude tool because it is slow acc. to my experience.
After selecting border, I did smooth operation on the border. After that, I have tried to use transform tool but it did not transform the border in any direction.
I have video tutorial to follow in youtube -->

What I did is that
Is it related with meshmixer version? Is it a bug? Or What am I doing wrong?


text:
Seeking a Centralized Interface Solution for Managing Multiple 3D Printers in a MakerLab
I'm responsible for a MakerLab in an engineering school, equipped with a diverse set of 3D printers: 5x Prusa MK3s+, 2x Prusa MK4, 2x Bambulab X1 Carbon, and 1x Formlab. Students currently initiate prints via USB/SD card on a shared PC. We're aiming to streamline this process by implementing a simple, centralized interface to manage all printers, view print histories, and start jobs. An ideal solution would also enable students to check print statuses from their mobile devices.
So far, I've explored Repetier Server, Octoprint, Prusa Connect, and Prusa Link. However, challenges have arisen:

Repetier Server seems to require specific firmware, posing compatibility issues with our Bambulabs;
Octoprint suggests running separate instances for each printer, which complicates centralization;
While the Prusa MK3s+ could integrate with a Raspberry Zero, this doesn't solve our need for a unified interface.

Specific Requirements:

Centralized control for all listed printers
Ability to view print history
Facilitation of print job initiation
Mobile accessibility for students to monitor prints

Given these constraints and goals, does anyone have experience with or can recommend a solution that fits this setup? Any advice or suggestions would be greatly appreciated.

For a printer to be controlled from a distance, the printer needs an advanced controller board or a dedicated controller board and a small interfacing board. Most printers have just a simple controller board, not being able to perform other tasks than sending G-codes to the printer.
Ultimaker printers have an advanced controller with enough performance to do more than just send G-codes, it also hosts a printing server host. You can connect to the Ultimaker cloud to access the individual printers and manage and browse through (un) finished prints.
There seems to be a solution for other printers, an example for Lulbotz printers, stacked in a farm is managed by software found on AutoFarm3D. Note that you are required to run a Separate Raspberry Pi 4 board next to the simple controller board.
Whether this operates with the Prusa MK4 printers is unknown, supported are:

Recommended 3D Printers

Bambu Lab X1/X1C
Bambu Lab P1P/P1S
Bambu Lab A1 Mini
Bambu Lab A1 (coming soon!)
Prusa MK3/S/+
Prusa MINI
Artillery Sidewinder X1/X2
Artillery Genius/Pro
Creality Ender 3 S1
Creality Ender 3/Pro/V2
Creality CR10/V2/V3


text:
Extruder occasionally reverses direction
The extruder gears on my Ender 3D printer v.4.1 occasionally reverse direction when feeding the PLA filament, as if testing it by trying to pull it out, then resume the correct direction and continue proper feeding. So far there is no effect on the quality of the prints.
What is the purpose of this occasional momentary reverse action, and is it to be expected?

What is it?
This reversal of the gear direction is perfectly normal, and is called retraction. It is basically a recoil movement of the filament.
Retraction (generally) occurs when the extruder effects movement and displacement from one part of a print to another. It is to prevent the molten filament from dripping unnecessarily all over the print and the print bed - otherwise known as stringing.
In short, it is perfectly normal behaviour and nothing to worry about.

Additional information
Retraction towers
Note that you can check that your retraction is fine by printing retraction towers, such as this:

Image source: Persistent Stringing with Retraction Tower
Parameters
There are a number of parameters that can affect retraction, and these include:

Retraction distance
Retraction speed
Minimum displacement
Enable combining
Z-axis elevation when retracted (Lift z)

You can adjust some, or all, of these parameters should your retraction not be "up to scratch".
However, this is going beyond the scope of your question, so I won't cover them here. Moreover, as haven't mentioned that your prints are failing, then it is probably best if you don't change these settings - unless you have to.
Further reading
There are many online resources about retraction. Some suggested reading:

Retraction Tuning With Slic3r
Slic3r and Marlin configuration for RepRap FW retraction
What is retraction in 3D printing? Definition and adjustments


text:
Bambu Labs P1P printing looping
I had fairly good prints until recently. Now, every print has the loops and such below. Inland PETG and Bambu PETG have the same issues. I know it is going to be some small, simple setting, but after a spool of failed prints, I'm starting to lose my mind. It is a P1P Bambu printer with a 0.8 mm nozzle and either Inland PETG or Bambu PETG. I am using a dehumidifier/drying dock running almost constantly (I live on the Texas Gulf Coast, meaning humidity). I've tried print temps from 235-255 °C and heated bed from 75-80 °C (Textured plate)).

It may help to know some other print settings such as print speed, fan speed, etc.

Base print speeds and fan speeds for P1P printers. 250mm/s print and 10% fan iirc

Please [edit] your question so that if the comments ever get deleted all the relevant information is still there.

That will be considered if and when I deem it needed. At this point, instead of critiquing my posting etiquette, you could answer the question or flag it if you feel that needed.

I apologize for any misunderstanding. I was only trying to help in getting the most information for anyone who might be able to help. Since you do not find my comments useful, I will leave this post.

It is better to [edit] your question to add information requested in comments, rather than adding more comments. Comments are for helping to improve questions and answers, and are distracting, so we try to keep them to a minimum. All of this information can be edited into your question to make it easier for people to answer your question. If all of the information is contained in one block then people don't have to read all of the comments to discover all of the information. Once all of the information needed to answer the question is contained within it, the comments can be tidied & deleted.

If you are indeed using the base profile that tops out at 250 mm/s and an 0.8 mm nozzle, it's probably insufficient cooling combined with print speeds that are too high. You'll need more cooling than 10 % even at lower speeds with an 0.8 mm nozzle. The large extrusions have more thermal mass and tend to cool slowly. As to why it specifically makes those "loops" instead of just sagging, the filament is probably not completely melted which will cause it to curl all over the place as it comes out of the nozzle. Slow down the prints to 15-20 mm³/s at the fastest and increase cooling.

Several different methods can be tried to solve this problem;
1- The type of filament you use (PETG) is a material that holds more moisture. You should definitely check your fan settings according to the region you live in.
2- I think you may have also reduced the retraction speed in the formation of the filament pile in the image. You are probably doing it to get a more uniform layer with a slow retraction, but the filament melting in the nozzle may have become leakage and formed piles at certain points.
But here especially because problems occur in the beginning and end layers;

3- Instead of reducing the retraction speed, you can better control the moisture content of the filament by changing the temperature between the layers. Higher temperature can vaporize the moisture in the filament and thus improve print quality.
Especially since the starting layer will cling to the ground, and act as a support structure, it can create leakage due to excessive moisture.

I don't think the answer I wrote was wrong. Why did I get a negative vote? You should share with me the part you think I wrote wrong.

It could be because the question states that moisture is not a problem I am using a dehumidifier/drying dock running almost constantly, and your points 1 and 3 indicate that the problem is moisture. I also have my doubts on your answer. Furthermore, point 2 is a guess, the OP doesn't say anything about changing the retraction. I refrained from voting, but can imagine the answer received a downvote, no pun intended.


text:
Can RAMPS V1.4 with DRV8825 drivers run 10 motors?
We need to drive 10 motors for our 3D printer. My doubt here is, RAMPS offer only one driver position for X, Y, Z. But I need multiple X, Y, Z. Is there any possible way to achieve this?

RAMPS is getting pretty outdated and is nothing more than a shield on top of the relative simple and limited ATMega 2560 microcontroller. Nowadays, 32-bit microprocessors are more common, more powerful and have more pins to be used for various tasks, like running multiple steppers.
However, you could use several RAMPS boards if you acquire a Raspberry Pi to run Klipper printer software, Klipper can control multiple RAMPS boards from the Raspberry Pi.


text:
Resin printer screen damage?
After an incident that caused a hole in the FEP and resin leakage, the screen now gives the same dark right side for all 3 test patterns. You can faintly see it split into 3 other sections but not as dark. It will not even attempt to print a file- just the same thing as the test patterns during every light cycle.
There may or may not have been a piece of support or something in there that put pressure on the screen, but there are no visible cracks.
Usually my screens fail differently. The clearly delimited sections of varying light brightness are a mystery.
I'm thinking this is the screen and not the controller board or something else that is bad... Thoughts?

I have had the same with my Anycubic Photon. It was the screen itself that started delaminating and the contacts coming loose from the resin.
Replaced the screen and it fixed the issue.


text:
PLA Print fail - Stringing and underextrusion
I've been printing for a few months now and most of my prints end up pretty fine, but recently this started happening:

I print on a Creality CR-10 Smart Pro with 1.75 mm PLA and a 0.4 mm nozzle at 200 °C nozzle temperature and 60 °C heatbed temperature. There's major stringing, and the supports and small printed structures like the fingers have big gaps, so technically that would mean it's both over- and underextruding? I tried adjusting the Z-axis. My print bed is probably bent down in the middle as per the sheet of paper leveling and I'm wondering if the x-axis isn't bent upwards, too. Nonetheless, I could still manage to print out some nice big parts until a few days ago and the print bed and x-axis being potentially bent is something I've noticed a while ago already.
I tested the drive gear (sometimes it ticks mid-print, is that a sign that something's off?), and with manual in and out commands, the measured distance is equal to the requested distance, so that one doesn't seem to be broken. I cleaned my hot end, unscrewed everything, scrubbed off some molten PLA, changed the nozzle, and tightened the hot end back together with the relevant parts heated up to 260 °C. I tried cold-pulls, around 8 of them, heating up to 200 °C and pulling at 90 °C, using the same as usual white Creality PLA filament. I can't see any debris and the shape of the thing I pull out seems the same as what others find. Another 2 things that changed are a firmware update and an OrcaSlicer update (I sadly can't roll back to the old version to test if that's related).
At this point I honestly don't mind the stringing, it's just the holes that I want to fix. I can remove material in post-process, but it's a real pain to add some and the prints are really weak, too. One of the fingers just broke off.
Is there any quick way for me to send my OrcaSlicer printer, filament, and process settings so you can better help me with the issue? If there's a chance I might have missed something during one of my attempted solutions, what are typical things I could've missed?
I'm going to try a filament dryer.
So I used the Sunlu FilaDryer S2 for around 12h on 55°C and it's not really better. Anyone got an idea?

You may want to tweak retraction parameters (retraction speed, retraction length), as well as, print speeds.
Maybe tweak these parameters and try to print one of these stringing tests with different parameters.
If the Z or X axis aren't moving during the print, they shouldn't be the issue, especially since your print seems to stick to the bed, and I wager that the smart in the name means that it has some auto bed-leveling function, and should therefore adjust for aberrations.


text:
How can I fix an error from building a 3D printing slicer software for a robotic arm based on a provided code from GitHub, getting an error LNK1181?
Not sure if the right place to ask this particular question but will try anyway. Currently trying to run a software as presented in the link here: GitHub - zhangty019/S3_DeformFDM: S^3-Slicer: A General Slicing Framework for Multi-Axis 3D Printing and without success, ergo this post.
I have been following the instructions provided in the GitHub repository to the point. The only difference in the execution has been that I am running it in VS22 instead of VS19 but this has been adjusted by the following: GKLLib/QMeshLib/ShapeLab > Right click > Properties > Configuration Properties > General > Platform Toolset > Visual Studio 2022 (v143).
A few initial errors have been presented after the initial build but that has been rectified by the following:
Specified paths of libraries and directories in the build files, specifically the ShapeLab. That has been done by the following process:

Solution explorer > ShapeLab > Properties > Configuration Properties > VC++ Directories > Include Directories > Edit > Include Directories > New Line > paste in directory path: D:\oneAPI\mkl\2024.0\include

and as well,

Solution explorer > ShapeLab > Properties > Configuration Properties > VC++ Directories > Library Directories > Edit > Include Directories > New Line > paste in directory path: D:\oneAPI\mkl\2024.0\lib

The software build process has now been brought to a halt by a single error presented below:
Severity Code Description Project File Line Suppression State Details

Error LNK1181 cannot open input file 'D:\oneAPI\mkl\2024.0\lib.obj' ShapeLab D:\Documents\GitHub\githubTest\S3_DeformFDM\ShapeLab\LINK 1

When I search in the specified file with File Explorer I find that the lib is actually a folder with other subfolders inside of it and other .obj files included. In contrast, there is no file by the name lib.obj.
When searching the web not many helpful tips or tricks have been found so not sure what is to be done to fix this particular error.
Does anyone know what could be done to fix this?

You're trying to solve a software build issue by asking on a 3D-printing site? Maybe try [SO] instead... Or, maybe just posting an issue on the GitHub repository.

We often have questions about building 3D printer firmware (i.e. Marlin, or whatever), and we can help. However, (and maybe I am wrong) this seems to be a question not about a common, or commercial, 3D printer, nor about a printer's firmware, but rather a piece of third-party robotics software. I have read the question a few times, over the past few days, and I can't really understand the issue. Is it really a build issue with the software from a Github repository? If so, then raise an issue on Github, so that the author of the software can see the issue and hopefully address the problem.

Otherwise, StackOverflow or Robotics.SE may be the place to ask. If it really is 3D printing related, then please clarify the issue, and hopefully someone will have an answer. Hi and welcome, BTW :-)


text:
Ender 3v2 mid print extrusion issue
I have been using my 3D printer for 3 years and it has been working very well for the past 6 months. I had never calibrated the bed even once in these 6 months because it was flat and had never been messed up. BLTouch has been working really well.
Two weeks ago, I printed a very long print for the first time, about 48 hours long, and there were more to come. After that print, the bed calibration keeps getting messed up constantly, and even though I get a smooth first layer print, as I go up to the upper layers, it turns out like the picture shown.
I have changed the nozzle many times, replaced the Teflon tube, and pushed it firmly into place. I also updated the bed springs, but it didn't fix the issue at all. I am using eSun PLA+ white. The 3D printer is an Ender 3v2 BLTouch updated. I would appreciate it if you could help me with this issue.
Nozzle temp: 200 °C-210 °C
Bed temp: 60 °C

Please add some image descriptions so that we know what we are looking at.


text:
How can I create a mold for an atypical shape for 3D printing using Fusion 360?
I have an STL file of a bone, and I want to create a mold to fill in with bone cement for a drilling exercise.
However, a midline cut through the mold doesn't work as the bone is atypically shaped. I would like to create a plane that follows either one of the bone's surfaces to create a mold that separates well.
Shape of the bone

This doesn't work, as you might expect:

It should look like this:

Image source: The third photo from Cranioplasty Welcomes 3D Printed Molds for Reconstructive Surgery in Russia


text:
Does the E-Value always define the filament length extrusion in millimeters and/or does it directly give a stepper rotation?
I understood on a fundamental level that E-value (in G-Code) was the length of filament pushed in millimetres. i.e. E=10 is 10 mm filament to push (with a firmware like Marlin translating this value to stepper motor RPM values).
Is that a correct statement?
Or does it sometimes indicate directly the RPM of steppers depending on a different firmware?
What happens to the E-value interpretation when working with a pellet extruder (such as a WASP3MT 3D printer) which uses spherical pellets and a screw extruder instead of filaments and stepper motors pushing said filament?


text:
Using dual Y stepper drivers on Marlin / RAMPS 1.4
I am building a DIY 3D printer, and my hw requirements are X, Y1, Y2, Z, and E0 steppers. All of them are supposed to be A4988. One hotend heater, no heatbed (by now). My board is an Arduino Mega 2560, and I am trying to use the latest Marlin available (i.e. 2.1.2.2). The issue is that I can't get any movement on the Y2 motor. I have been crawling around, and what I think I should have  is as follows:
in Configuration.h,
#define MOTHERBOARD BOARD_RAMPS_14_EFF
#define EXTRUDERS 1
#define Y2_DRIVER_TYPE A4988    //uncommented

in Configuration_adv.h
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
  //#define Y_DUAL_ENDSTOPS
  #if ENABLED(Y_DUAL_ENDSTOPS)
    #define Y2_USE_ENDSTOP _YMAX_
    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
  #endif
#endif

Note: the #define Y_DUAL_STEPPER_DRIVERS statement has to be left commented otherwise a compilation error is raised.
This is the situation. Of course, I have tested the cables/motors, and all of them are working.
Other posts on different blogs drove me to tweak the  pins_RAMPS.h file, but I realized it was a waste of time.
Can you give me a hint? Otherwise, I will be forced to build an add-on nanocard hosting a couple of twin A4988 drivers, but the room on the RAMPS shield is so little. And I don't dare to drive two motors with a single A4988, I never tried but I know that A4988 are difficult guys.

No, you shouldn't (read can't) drive two motors with a single A4988. As an aside, this seems related to a (now deleted) question, Can I add TMC stepsticks in parallel with existing A4988?, which I had commented heavily upon. The same Q has now been asked on SE.Electronics, Can I add TMC stepsticks in parallel with existing A4988?. See meta Q, Should I delete and repost in another community? for more background.

I might post my comments that are under the deleted question as an answer to this question, even though they aren't a solution, per se.

Thank you #Greenonline. I will not parallel motors, I am rather building an A4988 "twinner", unless some goodwilling fellow will show me how to use the available driver on top of the RAMPS shield.


text:
At what bed temperature is it safe to remove PLA prints?
I print with PLA with hotbed set to 60 °C. If I try to remove the print immediately after printing, the bottom part of the print might deform and keep the shape to which it was bent at the time of removal. If I don't remove the print immediately, and let the hotbed cool down, then the prints are perfectly flat when removed.
At what temperature is it safe to remove PLA prints? Would it be okay to modify my G-code so that the bed heating is turned off approximately 10 minutes before the end of the print? Would it make any sense to append a "cooling routine" to the end of my G-code that would move X and Y around for some time with the fan at full speed and heating turned off?

Are you using a removable print surface? If so, removing it will enable that surface to cool down more quickly, perhaps in a cool place like a fridge.

This question is pretty close to What is the best time interval and method to stop heating the bed to start releasing before the print is finished??

You could just punch them off! :-D

You say If I don't remove the print immediately, and let the hotbed cool down, then the prints are perfectly flat when removed. - Is that a problem, and if so why is that a problem? Don't you want perfectly flat prints? Apart from that, I would say that this is an exact duplicate of What is the best time interval and method to stop heating the bed to start releasing before the print is finished, esp. if you want to modify the G-code to turn the heat off.

No, the perfectly flat bottom of the print (read "not deformed") is what I am aiming for. The problem in this question is I don't know when it's safe to remove the print.
My question is specifically about the temperature, I couldn't find a definitive answer in the datasheet for my filament.

The reason we use heat in our platforms is to lower the temperature difference between filament being laid down and already hardened filament as some filaments shrink when cooling down (ABS is notoriously known for a larger shrinkage percentage). The temperature we use for the heated bed is close to the glass temperature of the plastic we print, at this temperature, the plastic is malleable. Because it is soft, it can better cope with the stresses caused by the relative cooler layers on top of the layers close to the bed. This prevents warping and prints getting loose from the build plate.
The reason for cooling down first after printing is to prevent the warm malleable first layers (as they have the bed temperature, especially with low height prints, or prints with a thin base) be deformed when removing from the build plate.
The temperature at which it is safe to remove the parts (so they won't get permanently deformed by the removal process) depends on the filament type. It has to be well under the glass transition temperature; so that it has hardened enough that it cannot be bend and maintain that shape. So, when printing different materials, the temperature is different. Furthermore, this is also depending on the geometric shape of the print, a larger volume print object with a relative high height to volume ratio cannot deform as easily as low height to volume ratio prints.
From personal experience, I remove large height to volume ratio prints directly after printing (printing on glass with 3DLAC), a quick tap will generally remove the print. With small height to volume ratio prints, like name tags, I wait for the bed too cool to either the print gets loose by itself (usually still temperature left in the bed) or the temperature has dropped to half the printing temperature difference (somewhere between 30 to 40 °C).
Because of the different materials and the print geometry, it is hard to device a strategy; some materials stick better (can also depend on the build surface). Cooling down the build plate before the print is finished is strongly discouraged, what if the print gets unstuck and the final layers are ruined on a long print? This waste of time and resources is not worth the few minutes to wait for the plate to cool down. If you cannot find the time to wait, you should look into alternatives; a flexible steel bed or multiple sheets of glass where you can quickly empty or replace the bed surface.

Thanks for a very comprehensive writeup! Did I get it correctly that your answer is 30 °C?
I've got time to wait, I just want to change the logic from Beep! Printing done, but you can not remove the printed part yet. to Printing done, now waiting for the bed to cool down. Beep! It's safe to remove the printed part now.

I meant half the difference, I'll adjust the text (it is not 0 °C in my home ), so at 40 °C I usually start pulling the prints, with a razor blade. That logic is also possible, you can add a bed cool down command (M190) and M300 to play a sound.

You haven't said what printer or bed you are using, or given any details of what kind of contact area you have with your print, so I'm only really able to give you a generic answer, but it will hold true for pretty much any consumer printer form an Ender E3 to a Bambu X1 and everything in between.
PLA is a very stable material that doesn't suffer badly from warping, which is one of the reasons why it's effectively the default for most printers these day.
If you have a removable flex plate you can remove your print almost immediately after the printer has completed the print. I printed a model with an 8" flat square base at 60 degrees a couple of hours ago and was impatient. I flexed the bed within a minute of the print stopping and had zero warping. This is my normal experience. I've only had warping if I've done something weird.
Just gently ease it off at a corner and you will be OK.
If I were less impatient it would probably have released automatically after 2-3  minutes.
I'm using the standard Bambu textured plate. For smooth PEI wait for the bed to cool for 5 minutes and it should release automatically as "sometimes" the cheaper smooth PEI beds can delaminate if you take the print off without them having cooled a little. Especially if they're cheap.
ABS is a different story.
Unless you're doing something uncommon, there is no need to modify your GCode, your slicer will manage the bed for you in a way that's suitable for about 90% of prints for about 90% of people. Unless you have a really specific use case or a printer with a custom slicer profile, your system will already be tuned in.


text:
How to create multiple rotated detent-like cutouts in the of a cylinder in OnShape?
Imagine a thick-walled cylinder which is going to be 3D printed. I want to carve, say, ten identical detents in the top of the object, rotated around by 36 degrees. I know how to make one of these by creating a circle above the cylinder wall with the desired small arc reaching down into the top of the cylinder, and then remove extrude the circle. I want to avoid having to create ten of these super-carefully placed at 36 degrees from the another. Is there a way to rotationally replicate a sketch or extrude around a point or on a circle? I want to say something like: Do that thing again, at every 36° (or perhaps, ten times) around this circle.

Have you tried the Circular pattern option?