Custom Snapmaker U1 Firmware

Firmware Configuration

Note for users upgrading to v1.1.0: The configuration file has been renamed from extended.cfg to extended2.cfg. During the first boot after upgrading a new extended2.cfg will be created with default settings. You will need to migrate your custom settings from extended.cfg to extended2.cfg manually or use http://IP/firmware-config

The extended firmware provides two ways to configure firmware behavior:

  1. Firmware Config Web Interface - A web-based tool for managing settings, firmware upgrades, and troubleshooting
  2. extended2.cfg - A configuration file for customizing firmware behavior

Firmware Config Web Interface

Access the Firmware Config tool at http://<printer-ip>/firmware-config/

Note: The Firmware Config interface is only available when Advanced Mode is enabled. On the printer touchscreen, go to Settings > Maintenance > Advanced Mode and enable it, then restart the printer.

Firmware Config overview

Status

Displays system information including:

Dynamic links based on current settings:

Settings

Toggle settings directly from the web interface:

Setting Options Description
Frontend Fluidd, Mainsail Switch between web interfaces
Require Login (Fluidd only) Enabled, Disabled Require login for Moonraker API access
Internal Camera Paxx12, Snapmaker, Disabled Select camera service
Internal Camera Resolution 1080p30, 1080p25, 1080p15, 1080p5 Framerate for the internal camera (paxx12 service only; resolution is fixed at 1080p for AI detection)
Camera RTSP Stream Enabled, Disabled Enable RTSP streaming
USB Camera Enabled, Disabled Enable USB camera support
USB Camera Resolution 1080p30, 1080p25, 1080p5, 720p30, 720p25, 720p5, 360p30, 360p25, 360p5 Resolution and framerate for the USB camera (paxx12 service only)
Remote Screen Enabled, Disabled Enable remote screen access
Klipper Metrics Exporter Enabled, Disabled Enable Prometheus metrics
VPN Provider None, Tailscale Enable VPN remote access (Experimental)
Cloud None, OctoEverywhere Enable Cloud-based remote access (Experimental)
Tweaks TMC AutoTune, TMC Reduced Current, Object Processing, AFC Stub Experimental Klipper tweaks (tweaks)
Troubleshooting Faulty Toolhead Bypass Temporary toolhead thermistor bypass so the remaining toolheads can still be used (faulty_toolhead)
RFID Detection System External, Snapmaker, OpenRFID, OpenRFID (force generic vendor) Set how filament is detected (RFID Format & Reader Design)

Firmware Config settings

Changes are applied immediately and relevant services are restarted.

Troubleshooting

Available actions:

Firmware Upgrade

Upgrade firmware using one of two methods:

Download from URL:

  1. Enter a firmware URL
  2. Click “Download & Upgrade”
  3. The system downloads and installs the firmware

Upload File:

  1. Select or drag-and-drop a firmware file
  2. Click “Upload & Upgrade”
  3. The file is uploaded and installed

The system reboots automatically after a successful upgrade.

Configuration File (extended2.cfg)

For advanced configuration, edit the configuration file directly.

File Location

/home/lava/printer_data/config/extended/extended2.cfg

Editing the Configuration File

The extended2.cfg file is automatically created by the firmware.

Some Firmware Config options, such as tweaks and troubleshooting helpers, install files into extended/klipper/ or extended/moonraker/ instead of writing to extended2.cfg.

Via Fluidd/Mainsail

  1. On the printer, go to Settings > Maintenance > Advanced Mode and enable it
  2. Open Fluidd or Mainsail in your web browser (http://<printer-ip>)
  3. Go to the Configuration tab
  4. Navigate to the extended directory and open extended2.cfg
  5. Add or modify your configuration options (see below)
  6. Save the file
  7. Reboot the printer

Via SSH

ssh lava@<printer-ip>
vi /home/lava/printer_data/config/extended/extended2.cfg

After saving, reboot the printer.

Configuration Options

[web]

frontend - Web interface selection (only one can be active)

firmware_config - Enable or disable the Firmware Config web interface

remote_screen - Enable remote screen access at http://<printer-ip>/screen/

Note: Remote screen requires additional Moonraker configuration. See Remote Screen Access for complete setup.

[camera]

internal - Internal camera service selection (only one can be active)

internal_resolution - Internal camera framerate (paxx12 service only; resolution is fixed at 1080p for AI detection)

usb - USB camera service selection

usb_resolution - USB camera resolution and framerate (paxx12 service only)

rtsp - Enable RTSP streaming support (paxx12 service only)

logs - Camera service logging destination

[components]

rfid - Filament tag detection system

See Alternative Filament Detection for setup instructions.

[remote_access]

ssh - Enable SSH remote access via dropbear

vpn - VPN provider for remote access (only one can be active)

See VPN Remote Access for setup instructions.

cloud

See the 3D Printing Clouds for setup instructions.

[monitoring]

klipper_exporter - Enable Prometheus metrics exporter for Klipper

See Monitoring for integration with Grafana, Home Assistant, or DataDog.

Example Configuration

[web]
# Web interface frontend: fluidd, mainsail
frontend: fluidd
# Enable access at http://<printer-ip>/firmware-config/: true, false
firmware_config: true
# Enable access at http://<printer-ip>/screen/: true, false
remote_screen: false

[camera]
# Internal (Case) camera options: paxx12, snapmaker, none
internal: paxx12
# Internal (Case) camera resolution/framerate preset, resolution is always 1080p: 1080p30, 1080p25, 1080p15, 1080p5
# internal_resolution: 1080p25
# External (USB) camera options: paxx12, none
usb: none
# External (USB) camera resolution/framerate preset: 1080p30, 1080p25, 1080p5, 720p30, 720p25, 720p5, 360p30, 360p25, 360p5
# usb_resolution: 1080p25
# Enable RTSP streaming server: true, false
rtsp: false

[components]
# Filament tag detection system: external, snapmaker, openrfid, openrfid-generic
rfid: snapmaker

[remote_access]
# Enable SSH access: true, false
ssh: false
# VPN provider for remote access: none, tailscale
# Must SSH and run "tailscale up" to complete login flow
vpn: none
# Cloud: none, octoeverywhere
# - none - No cloud services enabled.
# - octoeverywhere - OctoEverywhere.com remote access
cloud: none

[monitoring]
# Enable Klipper Prometheus exporter on specified address
# klipper_exporter: :9101

Identifying Customized Settings

When you modify a configuration file, the system automatically creates a .default file alongside it containing the original default values. For example, if you customize extended2.cfg, you’ll find extended2.cfg.default in the same directory.

This makes it easy to:

The .default files are updated on each boot to reflect the current firmware defaults.

Important Notes

Recovery & Reset

Reset to Default Configuration

To restore default extended configuration, remove or rename the extended folder in Fluidd/Mainsail Configuration tab, then reboot.

Password Recovery

If you forget your Moonraker admin password when Require Login/Password (Fluidd only) is enabled:

  1. Create an empty file named extended-recover.txt on a USB drive
  2. Insert the USB drive into the printer
  3. Restart the printer
  4. The extended configuration (including authentication settings) will be backed up and reset
  5. Remove the USB drive
  6. Re-enable Require Login/Password (Fluidd only) in Firmware Config to generate a new admin password

Important: The extended-recover.txt method resets ALL extended configuration, not just authentication. Your other settings (camera, VPN, etc.) will also be reset to defaults.

Recovery from Configuration Issues

If an invalid configuration breaks Moonraker (printer won’t connect to WiFi):

  1. Create an empty file named extended-recover.txt on a USB drive
  2. Insert the USB drive into the printer
  3. Restart the printer
  4. The extended configuration will be backed up to extended.backup.N and reset to defaults
  5. Remove the USB drive (the recovery file will be automatically deleted)

On Windows with “Hide extensions for known file types” enabled, the file may be saved as extended-recover.txt.txt. Both names are recognised.

Full Recovery

If the extended reset above is not enough — for example a persisted change or /oem/.debug flag keeps a broken state across reboots — use full recovery. In addition to resetting the extended configuration, it removes /oem/.printer_data and /oem/.debug, then reboots so the overlay (S01aoverlayfs) and printer data (S48setup-lava-env) are rebuilt from defaults on the next boot.

  1. Create an empty file named full-recover.txt on a USB drive (full-recover.txt.txt is also recognised)
  2. Insert the USB drive into the printer
  3. Restart the printer
  4. The printer removes the recovery file, clears the persistence and debug flags, flags the extended configuration for reset, and reboots
  5. Remove the USB drive

Important: Full recovery resets ALL extended configuration and clears persisted changes and printer data. Use it only when a normal extended-recover.txt reset does not resolve the issue.

Custom Extensions Installed via SSH

The recovery methods above only reset changes made through the supported extended configuration. Installing third-party extensions or modifications over SSH (for example helixscreen) writes files outside that mechanism, so neither extended-recover.txt nor full-recover.txt is guaranteed to undo them. Such changes can break the system, and in some cases make it very hard to recover.

Only install custom extensions over SSH if you understand the risks and know how to restore the printer. If something breaks, try recovery in this order:

  1. extended-recover.txt — resets the extended configuration only
  2. full-recover.txt — also clears persisted changes, printer data and the debug flag, then reboots
  3. Reflash stock or extended firmware (see Installation Guide) if neither recovery method fixes the problem