Skip to content

prestonbrown/helixscreen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8,204 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HelixScreen

HelixScreen

A modern touch interface for Klipper 3D printers

helixscreen.org

Build Code Quality License: GPL v3 LVGL Platform Version Discord

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


Why HelixScreen?

  • 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

Screenshots

Home Panel

Home Panel

Print File Browser

Print Select

Bed Mesh Visualization

Bed Mesh

More screenshots

Controls Panel

Controls Panel

Motion Controls

Motion Controls

AMS / Filament Management

AMS Panel

Input Shaper Results

Input Shaper Results

PID Tuning

PID Tuning

Settings

Settings

First-Run Wizard

Setup Wizard

See docs/devel/GALLERY.md for the full gallery.

Features

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.

Supported Platforms

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.

Installation

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 | sh

The 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 -- --update

Also 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.

Development

# 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-run

Controls: 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.

FAQ

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.

Troubleshooting

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.

Documentation

User Guides

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)

Developer Guides

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

Community

Join the HelixScreen Discord — Get help, share your setup, request features, and follow development.

Also discussed in:

Co-Maintainers Wanted

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.

License

GPL v3 — See LICENSE for details.

Acknowledgments

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

About

A modern, lightweight touchscreen interface for Klipper 3D printers

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors