Skip to content

Installation

github-actions[bot] edited this page Oct 30, 2026 · 5 revisions

Installation and updates

NebulaScreen is not installed on its own. It is part of the NebulaOS image for the Ender-3 V3 KE: NebulaOS-firmware pins a commit of this repository, cross-compiles it with scripts/build-release.sh and puts it into the read-only system image. Installing NebulaOS installs NebulaScreen: see Installing NebulaOS.

Mounting the screen: a 3D-printable bracket for the KE display is on Thingiverse — Ender-3 V3 KE screen mount. For a mount closer to the stock position, @DylanUnofficial made the Nebula screen mount on Printables.

Where it lives on the printer

Path What
/opt/nebulascreen/nebulascreen The app (static MIPS executable, read-only image)
/opt/nebulascreen/nebulabeep Compatibility client: forwards buzzer requests to Klipper's nebulaos_beeper (Beeps & songs)
/opt/nebulascreen/themes/ Colour themes
/opt/nebulascreen/nebulascreen.json Settings. Bind-mounted from the persistent file /usr/data/nebulaos/nebulascreen/nebulascreen.json
config/nebulascreen/nebulascreen.json The same settings file, visible and editable in Mainsail's config browser
/usr/share/nebulaos/nebulascreen/nebulascreen.default.json The image's default settings (used by Settings → Reset → Reset GUI settings)
/opt/printer_data/logs/nebulascreen.log Log (rotates at 10 MB, keeps 3 old files)
/etc/init.d/S58nebulascreen Service script (start, stop, restart)

The settings file is described in Configuration.

To restart only the screen, use Settings → System → Restart GUI. Over SSH: /etc/init.d/S58nebulascreen restart.

Updates

  • With NebulaOS images. A new NebulaOS image brings its own NebulaScreen: Settings → Updates → System image, from a USB stick, a Mainsail upload or Online (Updating NebulaOS). After a new image is installed, the image's own NebulaScreen is used again.
  • On its own. Each release tag of this repository publishes nebulascreen-vX.Y.Z.zip (Releases and deployment). Moonraker's update manager lists it as nebulascreen (type zip, since NebulaOS Run 19) and installs it into /usr/data/nebulaos/apps/nebulascreen; the NebulaOS update supervisor checks it and rolls it back if it fails. Without a downloaded release, the image's copy in /opt/nebulascreen runs.

Settings → Updates on the screen lists what Moonraker's update manager knows (Klipper, Moonraker, Mainsail, NebulaOS extensions, NebulaScreen, ...), with Check now, Update all and one Update button per entry.

Coming from a GuppyScreen-era NebulaOS image

Older NebulaOS images ran the same app under the name GuppyScreen, with its settings in guppyconfig.json. On the first boot of a NebulaScreen image, NebulaOS copies that file once to nebulascreen.json. NebulaScreen then maps the old default paths and the old guppy_init_script key to the new names; values you set yourself are not changed. The old file is never written, because the other boot slot may still use it.

Macro and console favorites are stored in Moonraker's database under the namespace guppyscreen. That name is kept on purpose, so favorites survive the rename.

Clone this wiki locally