The main goal of this project is to build the best Monoprice Mini Delta (MPMD) V2 printer as-possible. This is not a budget build.
The inspiration for this project was previously upgrading my Ender 3 V2 to a highly-calibrated custom Klipper rig. After completing that project I wanted to do the same with a delta printer, achieving the same print quality.
Goals:
Disclaimer & No Responsibility:
This project deals with AC mains electricity, electronics/components that get very hot, and heavy modification of a complex machine. This document is for general information/educational purposes only - any reliance you place on this document is at your own risk.
The author of this document makes no representations or warranties of any kind, express or implied about the completeness, accuracy, reliability, or safety of the information/instructions included in this document.
FOLLOW THESE INSTRUCTIONS AT YOUR OWN RISK.
Both “Physical Printer Calibration” and “Klipper Printer Calibration” sections assume that all upgrades/conversions have been made from the “Upgrades & Conversions” section of this document.
It’s important to get all belts to a consistent tension. To do this we pluck the belt asif it were a guitar string to create an audible note.
Before running any Klipper-level calibration we need to ensure the towers are square with the build surface.
Operation time: 5-15m depending on if extruder e-steps tests performed
Operation time: 15m
Operation time: 15m
https://www.klipper3d.org/Rotation_Distance.html#calibrating-rotation_distance-on-extruders
Operation time: 5m (10-15m if finding stepper_*.position_endstop)
https://www.klipper3d.org/Delta_Calibrate.html
We will need to revert back to previous settings to re-run the delta calibration. This process will also invalidate any previous bed meshes, so we must remove those as-well:
To start, we will want to find an accurate endstop position so that our z-offsets are as-close to zero as-possible. We will accomplish this by starting a DELTA_CALIBRATE from the KlipperScreen, and ensuring our z-offset is zero for the starting point.
Operation time: 10m (15m if test print is performed)
DELTA_CALIBRATE basic + manual bed mesh
calibrated bed with 0.4mm first layer height
Operation time: 5m
Operation time: 30m (20-25m for print, 5-10m for measuring + configuration)
https://www.klipper3d.org/Pressure_Advance.html
mpmd_tests/pressure_advance.stl
After completing the pressure add a macro both to fh_macros.cfg, and to Simplify3D pre-print.
[gcode_macro SET_PRESSURE_ADVANCE_PLA]
description: Sets pressure advance for specific material
gcode:
SET_PRESSURE_ADVANCE ADVANCE=0.68
Operation time: 30m for print, 30m for measuring + spreadsheet (not inclusive of re-running bed mesh)
Operation time: 45m
NOTE: Bottom assembly/disassembly is greatly sped up by using the printed tool in the “Bottom Driver Tool” section of this document.
Fig 1. Printer top / compute bottom recessed bolt holes
Fig 2. “Maintenance mode” position - for accessing compute internals while printer still capable of printing
Fig 3. Position for disconnecting the printer-to-compute cable harness
The optical endstops on the MPMD are just pass-through connections to a slotted photo microsensor with phototransistor output. I am not sure, but I believe the sensor to be an Omron EE-SX198 or EE-SX199 - https://www.mouser.com/datasheet/2/307/sx1025-1190149.pdf
To get this into a pull-up configuration a custom cable is made including a ballast resistor (R1 - required) for the emitter LED, and a pull-up resistor for the signal coming from the phototransistor collector (R2 - potentially optional). Alternatively one may be able to omit the R2 pull-up by instead enabling the RP2040’s internal pull-up resistor in Klipper with the “^” character; ex: “endstop_pin: ^gpio4” - this has not been tested by the author of this document!
Fig 1. Diagram for MPMD V2 optical endstop cabling
2.5mm JST-XH 2 pin male connectors | 3 |
2.5mm JST-XH 2 pin female connectors | 3 |
1k Ω resistors | 3 |
220 Ω resistors | 3 |
24 AWG 3P stranded wire | X |
Heat shrink tubing of various sizes | X |
Fig 2. Completed cables for X/Y/Z axis endstops
There are wiring and layout differences between the MPMD V1 and V2 endstops that can cause a lot of confusion when replacing them. V1/V2 wiring diagrams as-follows:
To calibrate the correct position for the optical endstops first remove the top and measure to the bottom of the optical sensor from the top corner bracket. Make sure all are consistent measurements - this will result in consistent stepper_*.position_endstop values and better print quality.
The starting/default stepper_*.position_endstop should be approx 122mm since our modified extruder nozzle is lower than the stock configuration.
See “Physical Printer Calibration > Positioning Optical Endstops” section for more detailed information + full instructions.
To hold the needed electronics + upgraded power supply we need to print an extended base that the MPMD will sit on top of. The base is also designed in a way for modular disassembly of the printer for upgrades/maintenance.
The way everything is wired is in segments, with connector “interfaces” to ease maintenance, repair, and upgrade operations. This document refers to the “top/bottom cable interface” which is the bundle of connectors at the base of the MPMD which can be disconnected to fully separate the printer base, and the MPMD printer “top.” Cabling such-as the part cooling fan power will be ran to this before it is ran to its final destination in the printer.
Top/bottom cable interface
base/ac_corner/ac_corner_final.stl
base/corners/corner_final.stl x2
base/vent_wall/vent_wall_final.stl
base/fan_wall/fan_wall_final.stl
base/front_wall/front_final.stl
base/bottom/bottom_final.stl
Fused AC IEC male power socket | 1 |
Noctua 40mm x 20mm 12V non-PWM fan | 1 |
MEAN WELL LRS-150-12 12V 150W PSU | 1 |
Heavy rubber speaker adhesive feet | 4 |
M4 8mm bolts - bottom to corners | 6 |
M4 knurled nuts 6mm x 6mm - corners bottom mount | 6 |
M3 15mm bolts - corners to bottom of MPMD V2 | 12 |
M3 4mm bolts - fused AC IEC male power socket to back corner mount | 2 |
M3 knurled nuts 6mm x 5mm - fused AC IEC male power socket to back corner mount | 2 |
M4 10mm bolts - walls to corner mounts | 12 |
M4 knurled nuts 6mm x 6mm - walls to corner mounts | 12 |
M4 30mm bolts - Noctua fan mount | 4 |
M3 nuts - Noctua fan mount | 4 |
M2 knurled nut 3mm x 3.5mm - PSU to bottom top mount | 1 |
M2 6mm bolt - PSU to bottom top mount | 1 |
M3 4mm bolts - bottom of bottom to PSU mount | 2 |
18 AWG stranded wire in green, white, and black - fused IEC male power socket wiring; can be easily salvaged from an IEC cable | X |
22 AWG stranded wire in red, black - PSU to top/bottom cable interface for 120mm part cooling fans | X |
16 AWG female spades - fused AC IEC male power socket wiring | 7 |
16 AWG M5 forks - PSU AC load, PSU SKR Pico power terminators | 5 |
22 AWG M5 forks - PSU to 120mm part cooling fan power at top/bottom cable interface | 2 |
2.5mm JST-XH 2 pin male connector - Noctua fan to SKR Pico | 1 |
2.5mm JST-SM 3 pin male connector - PSU to 120mm part cooling fan power at top/bottom cable interface (3rd pin will be populated in the “SKR Pico” section) | 1 |
The core MCU is replaced with the Bigtree SKR Pico to fully support Klipper + advanced printer features. Controlling the MCU is a Raspberry Pi 3.
Bigtree SKR mounted to 25mm brass standoffs above Raspberry Pi
Raspberry Pi mounted to risers by 25mm (20mm + 5mm) brass standoffs
Ethernet/USB runs, piezo glued to riser
1 | 2 | 5V Power - SKR Pico | |
3 | 4 | 5V Power - SKR Pico | |
5 | 6 | GND - SKR Pico | |
7 | 8 | GPIO14 - SKR Pico Serial | |
9 | 10 | GPIO15 - SKR Pico Serial | |
11 | 12 | ||
13 | 14 | ||
15 | 16 | ||
17 | 18 | ||
19 | 20 | ||
21 | 22 | ||
23 | 24 | ||
25 | 26 | ||
27 | 28 | ||
29 | 30 | ||
31 | 32 | ||
33 | 34 | ||
35 | 36 | ||
GPIO26 - Piezo 3V (signal) | 37 | 38 | |
GND - Piezo ground | 39 | 40 |
Power | MEAN WELL DC Out 1 |
HB | Heated bed heater |
HE | Hotend heater cartridge |
E | Extruder “A” stepper motor |
X | X/A stepper motor |
Y | Y/B stepper motor |
Z | Z/C stepper motor |
Raspberry Pi 5V + Serial | Raspberry Pi GPIO |
Fan 1 | Hotend fan |
RGB PWM | Part cooling fan PWM speed control signal |
THB | Heated bed thermistor |
TH0 | Hotend thermistor |
X-STOP | X custom ballast + pull-up then to X optical endstop |
Y-STOP | Y custom ballast + pull-up then to Y optical endstop |
Z-STOP | Z custom ballast + pull-up then to Z optical endstop |
NOTE: These instructions are pretty rough thanks to the original instructions being pretty bad from GitHub. Refer to the Klipper docs and SKR Pico GitHub readme if you run into issues.
Resources:
From the Linux console:
cd ~/klipper/
make menuconfig
From “menuconfig”
Firmware install
After any updates to /boot/config.txt ensure to reboot before settings take effect!
Resources:
Needed Configurations:
Sample Finished /boot/config.txt
# Disable audio
dtparam=audio=off
########################################################
#
# DSI Display Options
#
# Ensure camera not auto detected
# camera_auto_detect=1
# Ensure display not auto detected
# display_auto_detect=1
# Disable KMS VC4 V3D driver
# dtoverlay=vc4-kms-v3d
# Comment out max framebuffers setting
# max_framebuffers=2
# Disable FKMS VC4 V3D driver
dtoverlay=vc4-fkms-v3d
# Explicitly start X (not necessary - but was in Waveshare docs)
# start_x=1
########################################################
#
# ADXL345 - enable SPI
#
dtparam=spi=on
########################################################
#
# SKR Pico GPIO serial communication
#
[all]
dtoverlay=pi3-miniuart-bt
########################################################
#
# Better GPU memory
#
[all]
gpu_mem=256
########################################################
#
# Power saving
#
[all]
# Clock CPU frequency down from 1200Mhz
# arm_freq=900
# Disable WiFi and Bluetooth
dtoverlay=disable-wifi
dtoverlay=disable-bt
dtoverlay=pi3-disable-wifi
dtoverlay=pi3-disable-bt
# Disable LEDs
dtparam=act_led_trigger=none
dtparam=act_led_activelow=on
# Disable HDMI
# - https://raspberrypi.stackexchange.com/a/82996
# - https://github.com/raspberrypi/firmware/issues/352#issuecomment-355844013
hdmi_blanking=2
Disabling HDMI on boot:
From the Linux console edit the /etc/rc.local and add “/usr/bin/tvservice -o” before exit to ensure HDMI is disabled on every boot.
base/rpi/rpi_riser_final.stl x2 - risers to mount the Raspberry Pi + SKR Pico on top of the PSU
base/piezo/piezo_cradle_final.stl - piezo glued cradle which is glued to riser
Bigtree SKR Pico | 1 |
Bigtree SKR Pico serial/power to Pi cable (included with Pico) | 1 |
Raspberry Pi 3 | 1 |
USB 3 male-to-female 12in cable | 1 |
RJ45 male-to-female CAT6 cable (re-crimped to 6-8cm) | 1 |
40 pin female Dupont connector - GPIO for Raspberry Pi | 1 |
Piezo speaker | 1 |
M3 8mm bolts - bottom to Raspberry Pi riser mounts | 4 |
M3 knurled nuts 6mm x 5mm - Raspberry Pi riser mounts | 2 |
M2 4mm bolts - SKR Pico to brass stand-offs | 4 |
M2 20mm brass stand-off - 25mm brass stand-offs from Pi to SKR Pico | 4 |
M2 5mm brass stand-off - 25mm brass stand-offs from Pi to SKR Pico, 5mm brass stand-offs from RPI risers | 4 |
M2 washers - mounts for rpi_riser_final.stl to 25mm brass stand-offs | 4 |
M2 knurled nuts 3mm x 3.5mm - mounts for rpi_riser_final.stl to 5mm brass standoffs | 4 |
M3 8mm bolts - front USB mount, side ethernet mount | 4 |
24 AWG wire of all colors | X |
24 AWG 4P stranded wire - RPI ADXL345 > M Dupont at top/bottom cable interface, new stepper motor cables | X |
18 AWG stranded wire in red, black - PSU to SKR Pico cable; can be easily salvaged from original MPMD wiring | X |
3 pin female Dupont connector - back connector for piezo | 1 |
6 pin male Dupont connector - RPI ADXL345 to top/bottom cable interface | 1 |
4 pin JST-XH male connector - SKR Pico extruder stepper “A,” X/Y/Z steppers to top/bottom cable interface | 4 |
16 AWG ferrules - PSU to SKR Pico power, SKR Pico heater bed + extruder heater cartridge power to top/bottom cable interface | 6 |
2.5mm JST-XH 2 pin male connectors - heater block fan at SKR Pico (fan 1) to top/bottom cable interface, heater bed thermistor to top/bottom cable interface, hotend thermistor to top/bottom cable interface | 3 |
2.5mm JST-XH 3 pin male connector - SKR Pico RGB PWM channel part cooling to top/bottom cable interface | 1 |
Optical endstop pull-up + ballast resistor custom cables from “Optical Endstops” portion of doc - SKR Pico X/Y/Z endstops to top/bottom cable interface | 3 |
Molex 2 pin male connector - SKR Pico heater bed power to top/bottom cable interface | 1 |
2.5mm JST-XH 2 pin female connector - heater bed thermistor to top/bottom cable interface | 1 |
2.5mm JST-XH 4 pin female connector - extruder stepper motor “A” SKR Pico to top/bottom cable interface | 1 |
2.5mm JST-SM 2 pin female connectors - hotend thermistor SKR Pico to top/bottom cable interface, hotend fan SKR Pico to top/bottom cable interface | 2 |
2 pin female JST-SYP connector - hotend heater cartridge SKR Pico to top/bottom cable interface | 1 |
4 pin JST-SM female connectors - SKR Pico X/Y/Z steppers to top/bottom cable interface | 3 |
2mm 6 pin JST-PH male connectors - top/bottom cable interface to printer-mounted X/Y/Z steppers | 3 |
Superglue | X |
base/display/display_case_front_final.stl
base/display/display_case_back_final.stl
base/display/display_case_back_bracket.stl
Waveshare 4.3in DSI LCD screen | 1 |
6-12in DSI cable | 1 |
M2 knurled nuts 3mm x 3.5mm - front to back screen mount | 4 |
M2 15mm bolts - front to back screen mount, base front wall to screen mount | 6 |
M2 washers - base front wall to screen mount | 2 |
M2 knurled nuts 6mm x 3.5mm - base front wall to screen mount | 2 |
M4 10mm thumb screw - interaction angle adjust screw | 1 |
M4 knurled nut 6mm x 6mm - interaction angle adjustment screw mount | 1 |
Yea - it’s a lot of crimping and cable creation… but to develop this printer it has been required to be able to replace, and reconfigure everything constantly. Segmenting the cabling has allowed for easier development. This entire thing could be refactored out of the end-design by extending the hotend cabling all the way down to the top/bottom cable interface (or even perhaps further).
Top/bottom cable interface
Top of printer cable interface
Anchor point for top of printer cable interface; uses the old holes from stock extruder PCB
Bottom of printer cable interface:
Top of printer cable interface:
2.5mm JST-SM 2 pin male connectors - hotend fan bottom of printer cable interface to top of printer cable interface, hotend thermistor bottom of printer cable interface to top of printer cable interface | 2 |
2.5mm JST-SM 2 pin female connectors - hotend fan bottom of printer cable interface to top of printer cable interface, hotend thermistor bottom of printer cable interface to top of printer cable interface | 2 |
2 pin male JST-SYP connector - hotend heater cartridge bottom of printer cable interface to top of printer cable interface | 1 |
2 pin female JST-SYP connector - hotend heater cartridge bottom of printer cable interface to top of printer cable interface | 1 |
6 pin male Dupont connector - ADXL345 bottom of printer cable interface to top of printer cable interface | 1 |
6 pin female Dupont connector - ADXL345 bottom of printer cable interface to top of printer cable interface | 1 |
24 AWG stranded wire red, black - hotend fan, potentially heater thermistor | X |
24 AWG 6P stranded wire - ADXL345 | X |
16 AWG stranded high-temp wire - heater cartridge power (likely included with cartridge) | X |
Zip-ties | X |
extruder_knob/extruder_knob_final.stl
Micro Swiss bowden dual-gear extruder w/Creality Ender 3 compatibility (plus included hardware) | 1 |
Creality 42-34 stepper motor | 1 |
Top of printer cable interface not taped
Top of printer cable interface taped to hinder movement around connectors
With the new hotend + shroud the nozzle is offset by 1mm on the Y axis, and -10mm on the Z axis. For the Y axis, it is helpful to configure your Slicer to account for this - especially when doing the extended DELTA_CALIBRATE. See section “Simplify3d Build Volume” for more information + instructions.
shroud/shroud_final.stl - effector plate to hotend/etc. shroud with 40mm fan mount
shroud/fan_grill_final.stl - 40mm fan grill
Noctua 12V 40x10mm 3an | 1 |
ADXL345 | 1 |
Creality-style hotend (compatible with Ender 3) | 1 |
Bowden PTFE tube | 1 |
NTC thermistor | 1 |
Cartridge heater | 1 |
M3 16mm bolts - 2 for fan + grill mounts, 1 for top left grill | 3 |
M3 nuts - top left fan grill bolt | 1 |
M3 knurled nuts 6mm x 5mm - fan + grill mount, bottom effector plate mount | 5 |
M2 16mm bolts - hotend mount | 2 |
M2 knurled nuts 6mm x 3.5mm - hotend mount | 2 |
M2 4mm bolts - ADXL345 mount | 2 |
M2 knurled nuts 3mm x 3.5mm - ADXL345 mount | 2 |
M2 washers - ADXL345 mount | 2 |
M3 8mm bolts original MPMD button-heads! - shroud to effector plate mounting; use the original button-head bolts to keep them as-flush as possible with bottom of effector plate | 3 |
Zip-ties | X |
Velcro cable ties | X |
24 AWG 6P stranded wire - ADXL345 to top of printer cable interface | X |
24 AWG stranded wire - fan/perhaps thermistor cable | X |
16 AWG stranded high-temp wire - heater cartridge power (likely included with cartridge) | X |
6 pin female Dupont connector - ADXL345 to top of printer cable interface | 2 |
2 pin male JST-SYP - heater cartridge to top of printer cable interface | 1 |
2 pin male JST-SM connectors, hotend fan cable interface, thermistor to top of printer cable interface, hotend fan to top of printer cable interface | 3 |
2 pin female JST-SM connector, hotend fan cable interface | 1 |
Goal is to have more effective part cooling that does not require a second fan on the print head/extruder assembly.
TODO!
Dual 120mm PWM part cooling fans + vertical cabling zip-tied to right fan
Right 120mm fan with vertical cabling zip-tied
TODO!
Back trash shield with 120mm PWM wiring + connectors taped down
TODO!
Right trash shield with opening for vertical cable run; vertical cable run zip-tied to 120mm fan
TODO!
Left trash shield, fully blocked
part_cooling/part_cooling_fan_rig_final.stl x2 - left/right fan rigs
part_cooling/trash_shield_back_final.stl - back/Z trash shield
part_cooling/trash_shield_left_final.stl - left/X trash shield
part_cooling/trash_shield_right_final.stl - right/Y trash shield
Noctua 12V 120mm PWM fans | 2 |
Double-sided mounting tape - keeps JST-SM connectors flush with bed to avoid effector plate interference | X |
M4 30mm bolts - Noctua 120mm fan to part_cooling_fan_rig_final.stl | 4 |
M4 knurled nuts 6mm x 6mm - mounts for M4 30mm fan bolts | 4 |
M3 12mm bolts - mounting hardware for part_cooling_fan_rig_final.stl to printer body | 4 |
M3 8mm bolts - left/right trash guards to printer body | 2 |
22 AWG stranded wire | X |
Heat shrink tubing of various sizes - custom Y cabling | X |
2.5mm JST-SM 3 pin male connectors - outside M/F connectors | 2 |
2.5mm JST-SM 3 pin female connectors - outside M/F connectors, Y split to top/bottom cable interface | 3 |
bed/ba_clamp_bottom_final.stl x3 - bottom bed clamp section
bed/ba_clamp_top_final.stl x3 - top bed clamp section
bed/ba_top_mount_ring_final.stl - top mounting ring (on top of printer body)
bed/ba_bottom_mount_ring_final.stl - bottom mounting ring (inside printer body)
bed/ba_thermal_template_110mm.st (optional) - 110mm ring template to cut thermal pad
M2 3mm x 3.5mm - bed corner mount knurled nuts | 6 |
M2 3mm x 3.5mm - top ring mount knurled nuts | 3 |
M4 4.5mm x 6mm - bottom triangle mount knurled nuts - NOTE: non-standard size filed down from M4 6mm x 6mm | 3 |
M2 6mm bolts - bed corner clamp | 6 |
M2 washers - bed corner clamp | 6 |
M2 6mm bolts - top-to-bottom ring mount | 3 |
M2 washers - top-to-bottom ring mount | 3 |
M4 12mm bolt - bed height adjustment bolt | 3 |
M4 washers - bed height adjustment bolt | 3 |
0.6mm x 8mm x 10mm springs (coil diameter x outer diameter x length) | 3 |
110mm circular thermal pad - NOTE: non-standard size cut from 200x200mm | 1 |
120mm circular borosilicate glass bed | 1 |
Molex 2 pin female connector - heater pad cable to top/bottom cable interface | 1 |
2.5mm JST-XH 2 pin male connector - heater pad thermistor to top/bottom cable interface | 1 |
mpmd/filament_spooler/filament_spooler_top_final.stl
mpmd/filament_spooler/filament_spooler_shaft_final.stl
mpmd/filament_spooler/filament_spooler_spacer_large_final.stl x2
mpmd/filament_spooler/filament_spooler_spacer_small_final.stl x4
Bearings 8mm x 2mm x 7mm (skateboard bearings) | 4 |
M2 12mm bolts | 2 |
M2 or M3 washers | 2 |
M2 knurled nuts 6mm x 3.5mm | 2 |
Zip-tie | 1 |
handle/handle_side_final.stl x2
handle/handle_shaft_final.stl
M3 12mm bolts - top printer plate to bottom of handle mount | 4 |
M3 washers - top printer plate to bottom of handle mount (4), (optional) upgraded top hardware | 18 |
M3 knurled nuts 10mm x 5mm - top printer plate to bottom of handle mount | 4 |
M5 20mm bolts - shaft to handle sides mount | 2 |
M5 knurled nuts 8mm x 7mm - shaft to handle sides mount | 2 |
M3 4mm - (optional) top printer plate upgraded hardware | 6 |
M3 8mm - (optional) top printer plate upgraded hardware | 12 |
These replace the thin plastic cable guards that were previously in the tower. My MPMD V2 shipped with these all screwed up so they were immediately removed before even attempting to print. These push into the same rails that the optical endstops mount to with an interference fit.
clips/clip_final.stl x8 (2-per tower; 2 extras in case they break)
This part is totally optional. It converts an M3 allen wrench into a crude “driver” to make assembly/disassembly easier when it comes to the bottom bolts. It’s definitely not perfect, but vs. using the allen wrench by hand it makes the process go way faster.
driver_tool/driver_tool_top_final.stl
driver_tool/driver_tool_bottom_final.stl
M2 8mm bolts | 2 |
M2 washers | 2 |
M2 knurled nuts 6mm x 3.5mm | 2 |
M3 allen wrench | 1 |
Throughout the project different stepper motors were tested for the extruder “A” motor. An E3D pancake stepper and a Creality 42-34 were tested with the Creality winning.
Between the stock, the pancake, and the Creality stepper motors, different wiring configurations were necessary to get the motors to work as-expected. It is advised to wire the motors up as-expected and then debug if you find errors.
IMPORTANT: the V1 and V2 versions of the Delta have differing rotation_distance parameters! (V1 has 14 teeth on the stepper toothed gear where-as the V2 has 16)!!! If you misconfigure this you will have hell on earth trying to level your bed + all of your prints will be dimensionally inaccurate.
Two different ways to get this configuration value:
To list available USB resolutions (from Linux terminal):
v4l2-ctl -d /dev/video1 --list-formats-ext
To list device controls (from Linux terminal):
v4l2-ctl -l
Instead of using the “camera_usb_options” in webcam.txt, use v4l2-ctl –set-ctrl=* - advanced options supplied to “camera_usb_options” don’t actually work (ex: disable auto focus).
# Base USB options
# camera_usb_options="-r 1920x1080 -q 100 -f 2"
camera_usb_options="-r 1280x720 -q 85 -f 10"
camera_streamer=mjpeg
###########################################################
# v4l2-ctl settings
v4l2-ctl --set-ctrl=brightness=0
v4l2-ctl --set-ctrl=contrast=51
v4l2-ctl --set-ctrl=saturation=64
v4l2-ctl --set-ctrl=sharpness=80
v4l2-ctl --set-ctrl=gamma=300
v4l2-ctl --set-ctrl=hue=0
v4l2-ctl --set-ctrl=exposure_auto=0
v4l2-ctl --set-ctrl=exposure_absolute=300
v4l2-ctl --set-ctrl=white_balance_temperature_auto=0
v4l2-ctl --set-ctrl=white_balance_temperature=4600
v4l2-ctl --set-ctrl=focus_auto=0
v4l2-ctl --set-ctrl=focus_absolute=68
To get a solid manual focus once you’ve got the camera positioned you can use the following to figure out the “focus_absolute” (or other) value:
v4l2-ctl --set-ctrl=focus_absolute=280
It is best to set a similarly sized object on the print bed to focus on it and ensure that the exposure isn’t blown-out.
Install Moonraker-timelapse (has great install instructions! Ensure to add the update_manager option to moonraker.conf) - https://github.com/mainsail-crew/moonraker-timelapse/
Follow the slicer/timelapse configuration instructions, including timelapse.cfg in printer.cfg, and enabling it with [timelapse] in the moonraker.cfg https://github.com/mainsail-crew/moonraker-timelapse/blob/main/docs/configuration.md
NOTE! Restart Moonraker then Klipper every time you make an update - if you don’t specifically do this, in this order, you will have service errors. Saving the config and restarting will not cause the full configuration to load in, resulting in either [timelapse] invalid config section or missing macro errors.
Setup the output directories:
[gcode_macro M600]
description: Proxy macro for extended PAUSE with an ALERT
gcode:
PAUSE
ALERT
TODO:
If you’re an idiot like me and incorrectly wire your hotend fan to your hotend thermistor (and vice-versa) you may blow the transistor for the fan channel and summon magic smoke.
To fix this, you can find the popped transistor on the BOTTOM of the SKR Pico and replace it with an SOT23 AO3400 N-type transistor.
Easter egg memorial sticker found hidden within bottom of printer <3