MMX
Un chemin complet de zéro à une configuration Klipper multicolore fonctionnelle : fichiers, nomenclature, assemblage du matériel, câblage, configuration Happy Hare, calibrage, première impression et support.
Getting Started with Happy Hare v4 for MMX
This guide covers the first Happy Hare v4 menuconfig pass for the original four-gate CN3D MMX OG. MMX uses one shared gear stepper and an MG-996R servo to rotate a cam between four filament paths. It is a servo-cam selector, not a linear-selector machine and not the separate six-gate MMX6 design.
Use the MMX project pages for printed parts, assembly, power and wiring. This page starts after the mechanism is built and the controller is flashed.
1. Before you begin
- The cam and all four filament paths move freely.
- The MG-996R servo is powered from a suitable regulated supply, not an unsuitable controller pin.
- Each of the four pre-gate switches changes state when filament is inserted.
- The sensor after the selector and before the shared Bowden path changes state. Happy Hare calls this the shared exit sensor; it is the MMX gate-homing reference.
- The controller is flashed for the intended USB or CAN connection and is visible to Klipper.
2. Install Happy Hare
For a new installation, connect to the Klipper host and clone the repository:
cd ~ git clone https://github.com/moggieuk/Happy-Hare.git cd Happy-Hare ./install.sh
The first run opens menuconfig automatically. Use ./install.sh -i later when you want to reopen the configuration menu. If ~/Happy-Hare already exists, use the existing-installation path; do not clone over it.
./install.sh --help on the printer. Installer flags can change between releases.3. Choose the MMX profile
In MMU Type, select MMX - Multi-Material Extruder and leave the selector servo type at MG-996R.
- The profile supplies four gates, MMX starting geometry, gear ratio, motor currents and servo gate angles.
- Do not select MMX6: it is a different six-gate rotary-stepper design.
- Leave sync feedback, encoder, eSpooler and other optional additions disabled unless that hardware is physically fitted.
4. Choose the controller and connection
In Board type, select the controller actually installed. For the reference wiring, choose BTT EBB 42 CANbus V1.2.
Then open MCU connection and choose Serial or CANbus to match the firmware. Select the discovered serial device or CAN UUID when offered. If it is not discovered, enter its stable device path or UUID manually.
5. Enable the MMX sensors
Open MMU Features / Additions. LEDs are fixed on for the MMX profile. Enable filament sensors as follows:
- Has gate/lane entry sensors? — enable for the four pre-gate switches; these become
mmu_entry_0throughmmu_entry_3. - Has shared exit sensor (aka hub sensor) — enable for the switch after the selector and before the shared Bowden path.
6. Review the generated pins
Happy Hare v4 fills the MMX reference pins directly in Pins / TMC. It uses fully qualified pins such as unit0:PD0; do not create an EBB42 alias block in mmu.cfg.
| Function | Reference generated pin |
|---|---|
| Gear UART | unit0:PA15 |
| Gear step | unit0:PD0 |
| Gear direction | unit0:PD1 |
| Gear enable | !unit0:PD2 |
| Selector servo | unit0:PB9 |
| Entry sensors 0–3 | ^unit0:PB7, ^unit0:PB5, ^unit0:PB6, ^unit0:PB8 |
| Shared exit sensor | ^unit0:PB4 |
| NeoPixel | unit0:PD3 |
! after checking the motor wiring.7. Check homing and toolhead choices
With the shared exit sensor enabled, Endstops and Bowden movement selects it as the gate-homing endstop and applies the MMX starting distances. A normal MMX does not need a hand-edited sync_feedback_enabled value.
Under Toolhead, select the real extruder/hotend combination. Under Toolhead sensors/settings, enable only sensors physically fitted at the toolhead or extruder and enter their actual pins.
Review Software Options, keep the supplied client macros enabled initially, then leave the top menu and confirm that you want to save and install.
8. Backups and recovery
A manual backup is not required before a normal Happy Hare installer run. The installer preserves the existing mmu directory automatically as a timestamped sibling such as mmu.old-20260831-115007.
To inspect and recover an available configuration:
cd ~/Happy-Hare ./install.sh -i --prev
The installer lists the current configuration first and timestamped backups from newest to oldest. Selecting an older backup preserves the configuration being replaced, restores the chosen directory and opens the recovered choices in menuconfig.
Returning to a preserved v3 installation
If the MMX was upgraded from v3, the original configuration is preserved as mmu.V3. To return cleanly:
cd ~/Happy-Hare ./install.sh -d cp -a ~/printer_data/config/mmu.V3 ~/printer_data/config/mmu ./install.sh -b v3
The uninstall backs up active v4, removes v4 modules/configuration and leaves mmu.V3 intact. Copying rather than moving preserves the original backup. If a custom -c path is used, substitute that path. Do not copy over an existing mmu directory.
9. Validate the hardware
Restart Klipper and resolve every configuration or MCU error before moving the mechanism. Hardware can be validated from the Klipper console; the Mainsail/Fluidd panel is useful but is not the only validation method.
Sensors
MMU_SENSORS
With every path empty, run the report. Insert filament into each gate in turn: mmu_entry_0 through mmu_entry_3 must change independently. Then operate the MMX outlet sensor and confirm mmu_shared_exit changes state.
Gear direction
MMU_SELECT GATE=0 MMU_TEST_MOVE MOVE=50 GRIP=1 MMU_TEST_MOVE MOVE=-50 GRIP=1
Positive movement must feed toward the extruder; negative movement must return toward the spool.
Servo-cam selector
MMX has no physical selector zero mark. Verify every gate visually and use the dedicated servo-selector workflow:
MMU_GRIP MMU_RELEASE MMU_CALIBRATE_SERVO_SELECTOR MMU_CALIBRATE_SERVO_SELECTOR ANGLE=83 MMU_CALIBRATE_SERVO_SELECTOR GATE=0 SINGLE=1
Tune and save gates 0–3, then exercise each with MMU_SELECT. Do not use the linear-selector MMU_SERVO POS=up/down workflow.
10. First load and tool change
MMU_HELP MMU_STATUS MMU_SENSORS MMU_HOME MMU_PRELOAD GATE=0 MMU_LOAD MMU_UNLOAD MMU_EJECT GATE=0 MMU_GATE_MAP
- Preload one gate and load it to the toolhead.
- Extrude a small amount and confirm the shared exit/toolhead sensor state.
- Unload and confirm the filament parks correctly.
- Repeat with a second gate.
- Run one slow tool change before attempting a multicolor print.
11. Troubleshooting
| Symptom | Check first |
|---|---|
| Filament reported loaded while empty | Run MMU_SENSORS. Check PB4 shared-exit wiring, pull-up and inversion; do not remove the homing sensor. |
| No gate-homing reference | Enable the shared exit sensor in MMU Features / Additions and verify its generated pin under Pins / TMC. |
| Klipper rejects copied aliases | Remove the old alias-based setup and enter fully qualified pins through menuconfig. |
| Wrong selector calibration commands | Confirm MMX, not MMX6, and use the servo-cam calibration workflow. |
| MMU panel missing | Update Mainsail or Fluidd. Hardware checks can still run from the Klipper console. |
| Gear moves backwards | Check motor wiring and Gear dir pin inversion in menuconfig. |
12. Final acceptance check
- MMX mechanism assembled and manually checked;
- Klipper starts without errors;
- four entry sensors tested independently;
- shared exit sensor tested and used for homing;
- servo selector reaches all four gates;
- gear direction and movement calibrated;
- preload, load, unload and eject tested;
- two-gate tool change completed;
- slow multicolor print completed.