Skip to content

About

Klipper config for a ProForge 5 5-tool servo toolchanger: toolchange macros, Beacon, per-tool offsets, Pi setup and OrcaSlicer G-code

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

ProForge 5 — 5-tool servo toolchanger

500 × 400 CoreXY with five docked SmartOrbiter v3 toolheads, a servo-driven lock and a Beacon probe on the carriage. The config structure is adapted from RatOS (V-Core 3) conventions.

Hardware: BTT Octopus Pro (STM32H723) · 5× SO3 tool boards (STM32F042, one per tool, USB) · Beacon RevH · Raspberry Pi 5 · Klipper v0.13.0 · Moonraker v0.9.3

Files

File What it does
printer.cfg Kinematics, steppers, bed, the toolchanger servo, shaper/belt-graph shell commands, includes
macros.cfg The toolchanger: T0–T4, SELECT_PHn / _DOCK_PHn, DOCK, servo cam lock, pre/post select and dock checks. Also end/cancel print, pause/resume, the automatic Z reference from T0's true zero, and a motion-limit reset at print start. Start G-code itself lives in the slicer
so3_common.cfg Shared SmartOrbiter filament logic for all five heads: runout debounce, load/unload, sensor health, status LEDs (each macro takes TOOL=N)
so3_0.cfg … so3_4.cfg One per tool: MCU, extruder + TMC2209, heater, hotend fan, dock sensor, filament sensor and unload button wired into so3_common.cfg. Kept parallel — change one, change all. so3_0 also carries the LIS2DW accelerometer and [resonance_tester], and pressure advance differs per tool
beacon.cfg Beacon probe, proximity homing, contact "true zero", bed mesh scan macros
eddy.cfg Alternative Eddy probe config (needs eddy-ng). Mutually exclusive with beacon.cfg — include only one
calibrate-offsets.cfg Per-tool XY/Z offset calibration (needs the tools_calibrate Klipper extra)
reset-z-offsets.cfg RESET_Z_ALL — recalibrate only the Z offsets for every tool
z-babystep.cfg Live Z babystep that persists across dock/select
pid-tune.cfg PID tuning for all five hotends
fan-ramp.cfg Part-cooling fan ramp helpers
enclosure.cfg Chamber heater, filter/exhaust fans, SET_CHAMBER, cooldown-aware TURN_OFF_HEATERS
scripts/ Wrapped by [gcode_shell_command]: input-shaper and belt-tension graphs from the latest CSV
moonraker.conf, moonraker-obico-update.cfg Moonraker. Only Obico is registered with the update manager besides Klipper/Moonraker; the other entries are commented out
crowsnest.conf, KlipperScreen.conf, sonar.conf Host services. sonar.conf has enable: false

Things worth knowing

  • Per-tool print Z = Beacon model_offset (T0 reference) + one_z_offset … four_z_offset for T1–T4 + an automatic correction for drift in T0's true zero (SET_Z_REFERENCE re-baselines it) + any live babystep (z-babystep.cfg). The offsets and reference are stored in variables.cfg, which isn't included because it's calibration state.
  • Cancelling an object mid-print on a multi-tool job can poison Klipper's exclude_object and abort at the next toolchange. max_extrude_cross_section is already 10 in every so3_N.cfg (Klipper's default is 0.64). Don't raise it further to "fix" this.
  • A print that ends in an error leaves is_paused set, which makes the next print unpausable. Start G-code should run CLEAR_PAUSE.
  • Klipper macro names can't have a digit in the middle (_SO3_RUNOUT_TICK gets parsed as _SO3). Digits at the end are fine.

Notes on the files

Everything lives in config/, which maps to ~/printer_data/config/ on the Pi.

  • The comment block near the top of printer.cfg still calls Eddy "current" and Beacon "future". It's out of date: Beacon is the active probe ([include beacon.cfg] is on, eddy.cfg is commented out).
  • Comments in so3_common.cfg mention pf5/sim, an offline simulator I use to check the runout timing. It isn't part of this repo; the comments explain the reasoning on their own.

See SETUP.md for the Pi, and slicer/ for the slicer G-code.

Before you copy anything

  • The Beacon serial is replaced with <YOUR_BEACON_SERIAL> in beacon.cfg. The Octopus and SO3 boards use readable USB names (OctopusPro, PH1 … PH5) set when their firmware was built; yours will differ. Find them with ls /dev/serial/by-id/*.
  • The #*# SAVE_CONFIG block at the bottom of printer.cfg is mine — PID values, probe models and meshes are for my machine. Delete it and recalibrate.
  • Calibration state is not included (variables.cfg with the tool dock positions and offsets, input shaper graphs). The toolchanger macros read variables.cfg, so you have to calibrate your own docks and offsets first.
  • Stock files are left out: mainsail.cfg (MainsailOS) and moonraker_obico_macros.cfg (Obico installer). printer.cfg includes both.
  • Paths like /home/pi/... are the defaults on MainsailOS. Change them if your user isn't pi.

Nothing here is guaranteed for your machine. Read a file before you include it, and keep a hand near the power switch the first time you home.

This repo is one of four, one per printer: ProForge 5 · RatRig V-Core 3 · Voron 2.4 · Qidi X-Max 4

License

GPL-3.0, the same as Klipper and RatOS, which much of this is derived from.

About

Klipper config for a ProForge 5 5-tool servo toolchanger: toolchange macros, Beacon, per-tool offsets, Pi setup and OrcaSlicer G-code

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages