Skip to content

Add Happy Hare MMU integration and Docker build tools#151

Open
boetti-dev wants to merge 5 commits intoOpenCentauri:mainfrom
boetti-dev:boetti/minimal-hh-integration
Open

Add Happy Hare MMU integration and Docker build tools#151
boetti-dev wants to merge 5 commits intoOpenCentauri:mainfrom
boetti-dev:boetti/minimal-hh-integration

Conversation

@boetti-dev
Copy link
Copy Markdown

Summary

This PR adds Happy Hare MMU support to COSMOS firmware for the Elegoo Centauri Carbon, enabling multi-material printing with aftermarket MMU systems.

---

New Images


┌─────────────────────────────────┬────────────────────────────────────────────────┬──────────────────────────────────────────────────┐
│ Image                           │ Description                                    │ Status                                           │
├─────────────────────────────────┼────────────────────────────────────────────────┼──────────────────────────────────────────────────┤
│ opencentauri-upgrade-hh-full    │ Standard COSMOS + Happy Hare + Mainsail/Fluidd │ ⚠️ Untested - likely exceeds 128MB RAM limit     │
├─────────────────────────────────┼────────────────────────────────────────────────┼──────────────────────────────────────────────────┤
│ opencentauri-upgrade-hh-minimal │ Happy Hare without web frontend                │ ✅ Recommended - optimized for limited resources │
└─────────────────────────────────┴────────────────────────────────────────────────┴──────────────────────────────────────────────────┘

---

Key Features

Happy Hare Integration
 - Full MMU software suite with configuration files in /etc/klipper/config/mmu/
 - Kalico firmware for MMU MCU board (ERB, etc.)
 - MMU-specific macros and hardware configs adapted for OpenCentauri paths

HH-Minimal Design
 - Removes memory-heavy packages: Mainsail, Fluidd, atomscreen, guppyscreen, grumpyscreen, ustreamer, fbdoom
 - Moonraker API remains accessible on port 80
 - Use tools/local-mainsail/ to run Mainsail on external PC

Docker Build Environment
 - tools/local-build/ - Complete Yocto build setup in Docker
 - Bindgen cross-compilation fix for Rust packages (atomscreen)
 - Automatic site.conf cleanup after build

---

Removed Packages (HH-Minimal only)

 - fluidd, mainsail - No browser interface on printer
 - atomscreen, guppyscreen, grumpyscreen - No touchscreen interface
 - ustreamer - No webcam streaming via moonraker
 - fbdoom - No DOOM game (no display available)
 - v4l-utils - No webcam configuration tools

---

Network Setup Required

HH-Minimal has no touchscreen interface. Users must configure network access before flashing:

 - USB Ethernet Adapter - Auto-detected
 - WiFi via USB Stick - Place wpa_supplicant.conf on USB, auto-copied on insertion

---

Documentation

 - README-happy-hare.md - Detailed HH image documentation
 - tools/local-build/README.md - Docker build instructions
 - tools/local-mainsail/README.md - Local Mainsail setup guide

---

Important Notes

 - Happy Hare `install.sh` must be run externally to generate MMU-specific configs
 - Network connectivity should be tested on base COSMOS image before flashing HH-Minimal
 - Chamber lighting will not work (v4l-utils removed, no v4l2-ctl)

---

> Note: Release publishing configuration was intentionally not included. This decision is left to project maintainers.

- Happy Hare MMU configuration and hardware files
- Kalico firmware MMU build recipes
- Docker-based local build environment with bindgen sysroot fix
- HH-Full and HH-Minimal image recipes
- Mainsail docker setup for local development
- README documentation for Happy Hare images

Note: Release publishing configuration intentionally not included
(decision left to project maintainers)
- Turns off display backlight and blanks framebuffer after boot
- Optimized for headless MMU operation without touchscreen
- Added to opencentauri-image-hh-minimal.bb
- Add do_install task to properly install init script
- Clean backlight-off before build to ensure IPK is created
- Package now correctly includes /etc/init.d/backlight-off
@boetti-dev boetti-dev force-pushed the boetti/minimal-hh-integration branch from 99b1f70 to fc1c0d3 Compare April 17, 2026 21:47
- Create mainsail-config package (only macros, no frontend)
- Remove mainsail frontend from HH-Minimal (re-remove after accidental add)
- Move mmu_vars.cfg from mmu/ subdir to config/ to prevent overwrite by updates
- Update save_variables path in mmu_macro_vars.cfg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants