The application stack via KIAUH#
Everything above Klipper — Moonraker, Mainsail, Crowsnest — is already stock upstream, so the fastest clean install is dw-0/kiauh. Clone it and install, in order: Klipper, Moonraker, Mainsail, Mainsail-Config, Crowsnest.
Point Klipper’s host at the same master checkout your MCUs were built from, with a venv built from its requirements.txt, and set [update_manager klipper] channel: dev in moonraker.conf so it tracks master.
Two post-install fixes#
Both come from experience on this board:
- Camera by-id path. Point the Crowsnest camera at its
/dev/v4l/by-id/path, not/dev/video0. The video index shifts between kernels, so the numeric device is not stable; the by-id path is. See troubleshooting. - Crowsnest v5 update_manager. Add the Crowsnest v5
update_managersnippet verbatim from~/crowsnest/resources/moonraker_update.txt— the older inline snippet is wrong for v5 and breaks the update path.
Enable CAN on the host#
For the bridge and toolhead to appear, the host needs CAN plumbing:
- a
systemd-networkdlink bringingcan*up at 1 Mbit, can+can_rawin/etc/modules-load.d/,- a udev rule for
tx_queue_len128.
On a clean-slate OS install this is part of the preseed — see clean-slate. Install scipy into the Klipper venv for the eddy probe (see plugins).
Verify the stack is alive#
systemctl is-active klipper moonraker crowsnest # all active
curl -s localhost:7125/printer/info # state: readyKlippy ready with both CAN UUIDs connected is the proof the whole stack — host, bridge MCU, toolhead — is alive. Query Moonraker /printer/info for the state, not a log grep.
Next: translate the config, then install the plugins you use.