A modern touch interface for Klipper 3D printers
Your printer can do way more than your current touchscreen lets you. Bed mesh visualization, input shaper graphs, multi-material management, print history — it's all trapped in a browser tab. HelixScreen puts it at your fingertips.
Fast, beautiful, and frugal enough to run on hardware you already own — your printer's onboard SoC, a Raspberry Pi from a drawer, or anything newer.
Quick Links: Website · Features · Screenshots · Installation · User Guide · FAQ · Contributing · Changelog · Discord
- Customizable dashboard — Multi-page grid with drag-to-reposition, edge resize, and 30+ widgets including temperature graphs, fan arcs, and power toggles
- Every feature at your fingertips — 30+ panels, 20+ overlays, 20+ modals, 300+ XML layouts
- ~15MB RAM on embedded targets, ~75MB disk — sips memory on a Creality K1 or Flashforge AD5M; a few times more on 64-bit Pi, still well under what other touchscreen UIs need. Your printer's onboard SoC or an older Pi is plenty — no need to buy new hardware.
- 80+ printers in the database — Auto-detects your hardware and configures itself
- Multi-material ready — AFC, Happy Hare, ACE, AD5X IFS, CFS, Snapmaker U1, tool changers, Spoolman
- Exclude objects — Tap-to-exclude overhead map view with object outlines during prints
- Looks great — Light/dark themes with 17 presets, responsive layouts, GPU-accelerated blur
- First-run wizard — Guided setup discovers your printer's capabilities
- 9 languages — English, German, Spanish, French, Italian, Japanese, Portuguese, Russian, and Chinese
Technical comparison
| Feature | HelixScreen | GuppyScreen | KlipperScreen |
|---|---|---|---|
| UI Framework | LVGL 9 XML | LVGL 8 C | GTK 3 (Python) |
| Declarative UI | Full XML with reactive bindings | C only | Python only |
| RAM Usage | ~15MB (32-bit) | ~15-20MB | ~50MB |
| Disk Size | ~75-115MB | ~60-80MB | ~50MB |
| Multi-Material | 7 backends | Limited | Basic |
| Printer Database | 80+ models | — | Manual config |
| Display Layouts | Auto-detecting (tiny to ultrawide) | Fixed | Configurable |
| Internationalization | 9 languages | — | 40+ languages |
| Status | 1.0 (active) | Inactive | Mature (maintenance) |
| Language | C++17 | C | Python 3 |
See docs/devel/GALLERY.md for the full gallery.
Dashboard — Customizable multi-page grid with drag-to-reposition, edge resize, and a catalog of 30+ widgets. Temperature graphs, fan arcs, power toggles, camera feeds, active spool, favorite macros — add what matters, hide what doesn't. Per-breakpoint layout persistence.
Printer Control — Print management with G-code preview, motion controls, temperature presets with per-material overrides, multi-fan control, Z-offset, speed/flow tuning, live filament consumption tracking, power device management.
Multi-Material — 7 filament system backends: AFC (Box Turtle, ViViD), Happy Hare (ERCF, 3MS, Tradrack, Night Owl), ACE (Anycubic ACE Pro), AD5X IFS, Creality CFS, Snapmaker U1 (with RFID spool recognition), and tool changers. Multi-unit and multi-backend support. Full Spoolman integration with spool creation wizard.
Visualization — 3D G-code layer preview with memory-aware geometry budgets, 3D bed mesh with async rendering, print thumbnails, frequency response charts, unified temperature graph.
Calibration — Input shaper with frequency response charts, PID tuning with live graph, MPC calibration (Kalico), belt tension tuning, bed mesh, screws tilt adjust, Z-offset, firmware retraction, probe management.
Integrations — HelixPrint plugin, power devices with quick-toggle, print history, timelapse (Moonraker plugin), exclude objects with tap-to-exclude map view, LED control (5 backends), sound alerts (SDL/PWM/M300), Bluetooth label printing (Brother QL/PT, Niimbot, MakeID).
Display — Auto-detecting layout system (480x320 to 1920x480 ultrawide), display rotation (0/90/180/270) with auto-detection, light/dark themes with 17 presets and live theme editor, GPU-accelerated backdrop blur, screensavers.
System — First-run wizard with guided hardware discovery, 80+ printer models with auto-detection, 9 languages, opt-in crash reporting with debug bundles, KIAUH installer, versioned config migration.
| Platform | Architecture | Status |
|---|---|---|
| Raspberry Pi 3/4/5, CM4, Zero 2 W (64-bit) | aarch64 | Tested |
| Raspberry Pi 3/4 (32-bit) | armhf | Tested |
| BTT Pad / CB1 / CB2 / Manta | aarch64 | Tested |
| Creality K1 / K1C / K1 Max | MIPS32 | Tested |
| Creality K2 Max / K2 Plus / K2 SE | ARM (musl) | Tested |
| Creality Sonic Pad | armhf | Tested |
| Flashforge AD5M / AD5M Pro | armv7-a | Tested |
| Flashforge AD5X | MIPS32 | Tested |
| Snapmaker U1 (SnapSwap toolchanger) | aarch64 | Tested |
| QIDI Q2, Max 4 | aarch64 | Supported¹ |
| Sovol SV06 / SV08 | Pi build | Tested |
| Elegoo Centauri Carbon | armv7-a | Tested² |
| x86 Mini PC (Debian) | x86_64 | Tested |
| macOS / Linux desktop | x86_64 / ARM64 | Development / CI |
¹ QIDI models with Linux framebuffer displays (Q2, Max 4) only. Stock firmware runs standard Moonraker and works directly; community firmware like FreeDi, 53Aries/Q2-Firmware, or FreeQIDI is optional. Older models (X-Smart 3, X-Plus 3, X-Max 3, Q1 Pro, Plus 4) ship with QIDI's MKS PI smart-panel (a TJC serial HMI that is the UI; TJC is the Chinese OEM that Nextion licenses globally) and are not compatible for on-device install without a screen replacement — see QIDI_SUPPORT.md → Display Compatibility for why. Remote-control mode works on all six QIDI models regardless.
² Elegoo Centauri Carbon requires the community OpenCentauri COSMOS firmware (docs; stock Elegoo firmware has no SSH, Klipper, or Moonraker). Ships with factory white-balance calibration for the 4.3" panel.
Run these commands on your printer's host computer, not your local machine. SSH into your Raspberry Pi, BTT board, or similar host. For all-in-one printers (Creality K1/K2, Flashforge AD5M/Pro), SSH directly into the printer.
One-line install:
curl -sSL https://raw.githubusercontent.com/prestonbrown/helixscreen/main/scripts/install.sh | shThe installer auto-detects your platform, downloads the correct binary, sets up the service, and launches the first-run wizard. To update:
curl -sSL https://raw.githubusercontent.com/prestonbrown/helixscreen/main/scripts/install.sh | sh -s -- --updateAlso available through KIAUH as an extension.
Flashforge AD5M/Pro: We provide a ready-made firmware image (Forge-X fork with HelixScreen pre-configured) — just flash from a USB drive. Or install manually on an existing Forge-X/Klipper Mod setup.
See the Installation Guide for detailed instructions, display configuration, and troubleshooting.
# Check/install dependencies
make check-deps && make install-deps
# Build
make -j
# Run with mock printer (no hardware needed)
./build/bin/helix-screen --test -vv
# Run with real printer
./build/bin/helix-screen
# XML hot reload (edit XML, switch panels to see changes live)
HELIX_HOT_RELOAD=1 ./build/bin/helix-screen --test -vv
# Run tests
make test-runControls: Click navigation icons, press 'S' for screenshot, use -v (INFO), -vv (DEBUG), or -vvv (TRACE) for logging.
Test suite: 5,000+ test cases across 460+ test files covering printer state, UI components, XML parsing, multi-material, and more.
See docs/devel/DEVELOPMENT.md for detailed setup, cross-compilation, and contributing guidelines.
How is this different from GuppyScreen/KlipperScreen? More features, far lower RAM use (~15MB on embedded targets vs ~50MB for KlipperScreen), and actively developed. The lighter footprint means the printer you have or a Pi you've owned for years is plenty — no need to chase new SBC hardware. See the comparison table.
Which printers are supported? Any Klipper + Moonraker printer. 80+ models in the auto-detection database spanning Voron, Creality, QIDI, Anycubic, Flashforge, Sovol, RatRig, FLSUN, Elegoo, Prusa, Snapmaker, and more. The wizard auto-discovers your printer's capabilities even if it's not in the database.
What screen sizes are supported? 480x320, 800x480, 1024x600, and 1920x480 (ultrawide) with auto-detecting layouts. Display rotation (0/90/180/270) with auto-detection.
What multi-material systems work? AFC (Box Turtle, ViViD), Happy Hare (ERCF, 3MS, Tradrack, Night Owl), ACE (Anycubic ACE Pro), AD5X IFS, Creality CFS, Snapmaker U1 (with RFID spool recognition), and tool changers (viesturz/klipper-toolchanger). Full Spoolman integration for spool management.
See docs/user/FAQ.md for the full FAQ.
| Issue | Solution |
|---|---|
| SDL2 or build tools missing | make install-deps |
| Submodule empty | git submodule update --init --recursive |
| Can't connect to Moonraker | Check IP/port in settings.json |
| Wizard not showing | Delete settings.json to trigger it |
| Display upside down | Set rotation in settings or check panel_orientation in /proc/cmdline |
See docs/user/TROUBLESHOOTING.md for more solutions, or open a GitHub issue.
| Guide | Description |
|---|---|
| Installation | Setup for Pi, Sonic Pad, K1, K2, AD5M, AD5X, QIDI |
| User Guide | Using HelixScreen — panels, overlays, settings |
| Configuration | All settings with examples |
| Upgrading | Version upgrade instructions |
| FAQ | Common questions |
| Troubleshooting | Problem solutions |
| Telemetry & Privacy | What data is collected (opt-in) |
| Guide | Description |
|---|---|
| Development | Build system, workflow, contributing |
| Architecture | System design, patterns |
| LVGL9 XML Guide | XML syntax reference |
| UI Contributor Guide | Breakpoints, tokens, colors, widgets |
| Changelog | Release history |
| Roadmap | Feature timeline |
Join the HelixScreen Discord — Get help, share your setup, request features, and follow development.
Also discussed in:
- FuriousForging Discord — #mods-and-projects (jump to HelixScreen topic)
- VORONDesign Discord — #voc_works (jump to HelixScreen topic)
We're looking for co-maintainers to help grow HelixScreen! You can contribute broadly across the project or own a specific area that interests you:
- Printer support — Maintain builds and testing for specific platforms (Creality, QIDI, Flashforge, etc.)
- Multi-material backends — Own a filament system integration (AFC, Happy Hare, ACE, CFS, etc.)
- UI/UX — Help design and implement panels, overlays, and responsive layouts
- Localization — Maintain translations for your language
- Documentation — Keep guides accurate and help new users get started
- Testing & CI — Expand the test suite and maintain build infrastructure
If you're interested, join the Discord and introduce yourself, or open a GitHub Discussion.
Bug Reports & Feature Requests: GitHub Issues — please include your printer model and logs (helix-screen -vv) when reporting bugs.
GPL v3 — See LICENSE for details.
Inspired by: GuppyScreen (general architecture, LVGL-based approach), KlipperScreen (feature inspiration)
Built with: LVGL 9.5, Klipper, Moonraker, libhv, spdlog, SDL2
AI-Assisted Development: Built with Claude Code by Anthropic









