This is NebulaOS's touchscreen UI — a KE-focused fork of GuppyScreen. Full print control, an interactive 3D bed mesh, an on-screen calibration suite, running right on the printer's display with no X11, Wayland, or display server involved.
It shares history with OpenKE, but they're separate
projects now — OpenKE has its own installer and its own releases for stock Creality firmware. If
you followed a link expecting that, coreflake1/guppyscreen is the repo you want; this one is the
NebulaOS component.
- 🖨️ Print control & status — temps, fans, LED, movement/homing, file browser (incl. USB sticks), Spoolman
- 🟦 Interactive 3D bed mesh — rotate / zoom / pan colour height map (plus a table view)
- 🎯 Guided Calibration hub — a single numbered menu: Axis Twist, a combined Z-offset + bed mesh
Recalibration Wizard (talks to NebulaOS-klipper's
z_compensatestatus), Input Shaper, E-Steps Calibration, Skew Correction, TMC Autotune - 🎚️ Fine-tune mid-print — speed, flow, Z-offset, pressure advance (firmware retraction is its own panel)
- 📷 Camera — persistent image tuning (contrast/saturation)
- 🔔 Buzzer beeps & songs — real-pitch
M300,PLAY_TUNEjingles (editablesongs.conf), soft touchscreen click - 🔒 Print-state safety locks — anything that could ruin a running job is blocked or asks first
- 📐 Tuned 480×272 layout
Two different workflows depending on what you're doing.
If you're just trying to build the whole OS — use
NebulaOS-firmware instead. It pins an exact
commit of this repo and cross-compiles + installs it automatically as part of the full image. You
don't need to clone this repo directly for that.
If you're actually developing GuppyScreen itself:
git clone --recurse-submodules https://github.com/coreflake1/NebulaOS-guppyscreen.git
cd NebulaOS-guppyscreenSubmodules: lvgl (LVGL v8), lv_drivers, libhv, spdlog. wpa_supplicant is vendored in-tree.
Full prerequisites, the SDL simulator target, and the MIPS cross-build are covered in
Building from Source.
Offline logic tests (no cross-compile, no LVGL/SDL2 needed) run with make test.
| Printer | Creality Ender-3 V3 KE, running NebulaOS |
| SoC / arch | Ingenic XBurst2 X2000 — MIPS (mipsel) |
| Display | 480×272 |
Commit b15ad7f fixed a real bug where Config::init()/ThemeConfig::init() silently fell back to
in-memory defaults on every boot on NebulaOS's read-only-squashfs setup, instead of reading your
actual saved config.json/theme.json. No crash, just settings that quietly never stuck. We've
since tested this on real hardware — config and theme survive a real flash now. See
NebulaOS-firmware's manifests/dependencies.conf
for the pin history.
Developer docs live in wiki/ and DEVELOPMENT.md. Heads up: a chunk of
wiki/ (installation, upgrading, troubleshooting) is inherited from this fork's OpenKE history and
still describes OpenKE's own SSH-installer setup on stock firmware, not how NebulaOS actually builds
or deploys this. For NebulaOS build/install instructions, start at
NebulaOS-firmware instead.
GPL-3.0 — see LICENSE. Builds on ballaswag/guppyscreen, probielodan/guppyscreen, and pellcorp/grumpyscreen, with the 3D bed mesh from prestonbrown/guppyscreen. Vendored Klipper mods keep their own upstream licenses and credits.