Repository navigation
Contributing
Issues and pull requests are welcome. NebulaScreen is part of NebulaOS; bugs seen on a printer are best reported from the screen (Settings → System → Report a problem), which saves the logs to a USB stick and points to github.com/NebulaOS-KE/NebulaOS/issues.
- Develop and test against the simulator first, then verify on-device where relevant.
- Keep changes consistent with the existing panel structure and LVGL v8 idioms in
src/(each screen is a*_panel.cpp; shared helpers live insrc/utils.cpp). - Build the targets your change affects before opening a PR — at minimum the simulator, and the MIPS build for anything that touches on-device behavior or layout.
- For small-screen work, build with
GUPPY_SMALL_SCREEN=1and check the 480×272 layout. - Run the host tests:
make testandpython3 tests/test_nebulascreen_release.py(see Testing).
Issue templates are in .github/ISSUE_TEMPLATE/. CI builds and tests every pull request
(.github/workflows/pull_request.yml), see CI.
NebulaScreen is licensed under the GNU General Public License v3.0 (see LICENSE and NOTICE at
the repository root). It is based on GuppyScreen by ballaswag, also GPL-3. Contributions are accepted
under the same license.
NebulaScreen builds on the work of:
- ballaswag/guppyscreen — the original GuppyScreen, which NebulaScreen is based on
- probielodan/guppyscreen — KE-focused UI rework
- pellcorp/grumpyscreen — bug fixes and improvements
- prestonbrown/guppyscreen — 3D bed mesh
- coreflake1/guppyscreen (OpenKE) — the KE fork this repository grew out of, see History and credits
- Libraries: LVGL, lv_drivers,
libhv, spdlog,
lv_touch_calibration— each under its own licence - Moonraker and Klipper, which the app talks to
- Icons: Material Design Icons
The Klipper macros and add-ons the guides describe (purge and park, TMC autotune, buzzer macros) are part of NebulaOS-firmware and NebulaOS-klipper-extensions and carry their own credits there.
Upstream GuppyScreen documentation: https://ballaswag.github.io/docs/guppyscreen/configuration/ (written for GuppyScreen; paths and file names differ in NebulaScreen).
Get started
Get great prints
- Calibration guide (4 steps)
- Calibration walkthrough (A→Z)
- Bed tramming
- Load cell calibration (water bottle)
- Axis Twist Compensation
- Adaptive meshing + purge
- Square parts (Skew Correction)
- Quieter steppers (TMC Autotune)
Using the screen
Help
- Working on NebulaScreen
- Build from source
- Dev & simulator
- Architecture
- Configuration
- Releases & deployment
- Testing
- CI
- Contributing
- Publishing this wiki
NebulaOS