Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
142 changes: 80 additions & 62 deletions docs/camera_support.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,45 +30,7 @@ The internal camera is automatically configured and enabled.

Access at: `http://<printer-ip>/webcam2/`

USB cameras must be enabled in `extended2.cfg`. See [USB Camera Configuration](#usb-camera-configuration) below for setup instructions.

## Moonraker Camera Configuration

Camera streaming settings are configured through Moonraker configuration files in the `extended/moonraker/` directory.

### Internal Camera Configuration

Edit `extended/moonraker/02_internal_camera.cfg` to customize internal camera streaming:

```cfg
[webcam case]
service: webrtc-camerastreamer
stream_url: /webcam/webrtc
snapshot_url: /webcam/snapshot.jpg
aspect_ratio: 16:9
```

**Available streaming modes:**
- `webrtc-camerastreamer` - WebRTC streaming (best quality and performance, default)
- `stream_url: /webcam/webrtc`
- `iframe` - H264/MJPEG iframe streaming (acceptable quality and performance)
- `stream_url: /webcam/player`
- `mjpegstreamer-adaptive` - MJPEG streaming (best compatibility, most resource intensive)
- No stream_url needed (uses snapshot_url only)

### USB Camera Configuration

Edit `extended/moonraker/03_usb_camera.cfg` to enable USB camera. Uncomment one of the sections:

```cfg
[webcam usb]
service: webrtc-camerastreamer
stream_url: /webcam2/webrtc
snapshot_url: /webcam2/snapshot.jpg
aspect_ratio: 16:9
```

**Important:** Only one streaming mode can be active per camera. After changing camera configuration, reboot the printer.
USB cameras must be enabled first. See [USB Camera Configuration](#usb-camera-configuration) below for setup instructions.

## Camera Controls

Expand All @@ -92,69 +54,125 @@ To reset camera settings to defaults, delete the corresponding JSON file and reb

## Configuration

All camera configuration is done through `/home/lava/printer_data/config/extended/extended2.cfg`. See [Firmware Configuration](firmware_config.md) for editing instructions.

### Internal Camera Selection

By default, the extended firmware uses a custom hardware-accelerated camera service (paxx12). To switch to Snapmaker's original camera service:
By default, the extended firmware uses a custom hardware-accelerated camera service (paxx12).

#### Using firmware-config Web UI (preferred)

Navigate to the [firmware-config](firmware_config.md) web interface, go to the Camera section, and select your preferred internal camera service or disable it.

#### Manual Setup (advanced)

**Step 1:** Edit `/home/lava/printer_data/config/extended/extended2.cfg`.

To switch to Snapmaker's original camera service:
```ini
[camera]
internal: snapmaker
```

To disable the internal camera entirely (also disables timelapses):

```ini
[camera]
internal: none
```

Note: Only one camera service can be operational at a time for the internal camera.
**Step 2:** (Optional) Customize streaming mode by editing `/home/lava/printer_data/config/extended/moonraker/02_internal_camera.cfg`:
```cfg
[webcam case]
service: webrtc-camerastreamer
stream_url: /webcam/webrtc
snapshot_url: /webcam/snapshot.jpg
aspect_ratio: 16:9
```

### Camera Logging
**Available streaming modes:**
- `webrtc-camerastreamer` - WebRTC streaming (best quality and performance, default)
- `stream_url: /webcam/webrtc`
- `iframe` - H264/MJPEG iframe streaming (acceptable quality and performance)
- `stream_url: /webcam/player`
- `mjpegstreamer-adaptive` - MJPEG streaming (best compatibility, most resource intensive)
- No stream_url needed (uses snapshot_url only)

**Step 3:** Reboot the printer for changes to take effect.

Note: Only one camera service and one streaming mode can be operational at a time for the internal camera.

Enable logging to syslog for all camera services:
### USB Camera Configuration

USB camera support is disabled by default (paxx12 service only).

#### Using firmware-config Web UI (preferred)

Navigate to the [firmware-config](firmware_config.md) web interface, go to the Camera section, and enable USB camera support. This will automatically configure both the camera service and Moonraker streaming settings.

#### Manual Setup (advanced)

**Step 1:** Edit `/home/lava/printer_data/config/extended/extended2.cfg` to enable USB camera:
```ini
[camera]
logs: syslog
usb: paxx12
```

Logs are available in `/var/log/messages`.
**Step 2:** Edit `/home/lava/printer_data/config/extended/moonraker/03_usb_camera.cfg` to configure USB camera streaming:
```cfg
[webcam usb]
service: webrtc-camerastreamer
stream_url: /webcam2/webrtc
snapshot_url: /webcam2/snapshot.jpg
aspect_ratio: 16:9
```

**Available streaming modes:**
- `webrtc-camerastreamer` - WebRTC streaming (best quality and performance, default)
- `stream_url: /webcam2/webrtc`
- `iframe` - H264/MJPEG iframe streaming (acceptable quality and performance)
- `stream_url: /webcam2/player`
- `mjpegstreamer-adaptive` - MJPEG streaming (best compatibility, most resource intensive)
- No stream_url needed (uses snapshot_url only)

**Step 3:** Reboot the printer for changes to take effect.

To disable USB camera, set `usb: none` in extended2.cfg.

When enabled, USB cameras are accessible at `http://<printer-ip>/webcam2/`.

Note: Only one streaming mode can be active per camera.

### RTSP Streaming

RTSP streaming is disabled by default (paxx12 service only). To enable:
RTSP streaming is disabled by default (paxx12 service only).

#### Using firmware-config Web UI (preferred)

Navigate to the [firmware-config](firmware_config.md) web interface, go to the Camera section, and enable RTSP streaming.

#### Manual Setup (advanced)

**Step 1:** Edit `/home/lava/printer_data/config/extended/extended2.cfg` to enable RTSP:
```ini
[camera]
rtsp: true
```

**Step 2:** Reboot the printer for changes to take effect.

RTSP streams will be available at:
- Internal camera: `rtsp://<printer-ip>:8554/stream`
- USB camera: `rtsp://<printer-ip>:8555/stream`

### USB Camera Configuration

Enable USB camera support (paxx12 service only):

```ini
[camera]
usb: paxx12
```

To disable USB camera:
### Camera Logging

**Step 1:** Edit `/home/lava/printer_data/config/extended/extended2.cfg` to enable logging:
```ini
[camera]
usb: none
logs: syslog
```

When enabled, USB cameras are accessible at `http://<printer-ip>/webcam2/`.
**Step 2:** Reboot the printer for changes to take effect.

After any configuration changes, reboot the printer for changes to take effect.
Logs are available in `/var/log/messages`.

## Timelapse Support

Expand Down
13 changes: 11 additions & 2 deletions docs/monitoring.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,21 @@ You can create custom metrics collection using the Moonraker API.

Exposes [Klipper metrics](https://github.com/scross01/prometheus-klipper-exporter) via HTTP endpoint for [OpenMetrics/Prometheus](https://github.com/prometheus/OpenMetrics) systems.

**Disabled by default.** Enable in `extended2.cfg`:
Disabled by default.

#### Using firmware-config Web UI (preferred)

Navigate to the [firmware-config](firmware_config.md) web interface, go to the Monitoring section, and enable Klipper Metrics Exporter.

#### Manual Setup (advanced)

**Step 1:** Edit `/home/lava/printer_data/config/extended/extended2.cfg` to enable the exporter:
```ini
[monitoring]
klipper_exporter: :9101
```
Then reboot the printer.

**Step 2:** Reboot the printer for changes to take effect.

## Collecting Metrics with Home Assistant

Expand Down
14 changes: 10 additions & 4 deletions docs/remote_screen.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,27 @@ Once enabled: `http://<printer-ip>/screen/`

## Enabling Remote Screen

Remote screen is **disabled by default**. To enable:
Remote screen is disabled by default.

**Step 1:** Edit `extended/extended2.cfg`, locate the setting below and set it to true:
### Using firmware-config Web UI (preferred)

Navigate to the [firmware-config](firmware_config.md) web interface, go to the Web section, and enable Remote Screen Access.

### Manual Setup (advanced)

**Step 1:** Edit `/home/lava/printer_data/config/extended/extended2.cfg`, set remote_screen to true:
```ini
[web]
remote_screen: true
```

**Step 2:** Edit `extended/moonraker/04_remote_screen.cfg`, locate the setting below and set it to true:
**Step 2:** Edit `/home/lava/printer_data/config/extended/moonraker/04_remote_screen.cfg`, set enabled to true:
```ini
[webcam gui]
enabled: true
```

**Step 3:** Reboot the printer
**Step 3:** Reboot the printer for changes to take effect.

**Editing via Fluidd/Mainsail:**
1. Enable **Advanced Mode** in printer settings
Expand Down
11 changes: 9 additions & 2 deletions docs/ssh_access.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,21 @@ The custom firmware enables SSH access to the Snapmaker U1 printer.

## Configuration (Extended Firmware)

In Extended firmware, SSH is **disabled by default** and can be enabled via the firmware-config web UI or by editing `extended2.cfg`:
In Extended firmware, SSH is disabled by default.

### Using firmware-config Web UI (preferred)

Navigate to the [firmware-config](firmware_config.md) web interface, go to the Remote Access section, and enable SSH Access.

### Manual Setup (advanced)

**Step 1:** Edit `/home/lava/printer_data/config/extended/extended2.cfg` to enable SSH:
```ini
[remote_access]
ssh: true
```

Changes take effect after restarting the SSH service or rebooting the printer.
**Step 2:** Reboot the printer for changes to take effect.

## Credentials

Expand Down
47 changes: 20 additions & 27 deletions docs/vpn.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,27 @@ title: VPN Remote Access (Experimental)

Control your printer remotely using a VPN provider.

> **Note**: VPN providers are downloaded on-demand when enabled by the user. See [third-party integration design](design/third_party.md) for details on how external components are managed.

> **Warning**: This feature is experimental. VPN services consume additional CPU and memory resources which may affect print quality or reliability during active prints. It is recommended to disable VPN while printing or monitor system performance closely.

## Supported Providers

- **none** - VPN disabled (default)
- **tailscale** - Access your printer on your [Tailnet](https://tailscale.com)

## Enabling VPN
## Tailscale

VPN is **disabled by default**.
- Gain full access to your printer from anywhere
- Requires no port forwarding

### Using firmware-config Web UI
### Using firmware-config Web UI (preferred)

Navigate to the firmware-config interface and select Tailscale under VPN Provider. This will automatically download and install Tailscale.
Navigate to the [firmware-config](firmware_config.md) web interface, go to the Remote Access section, and select Tailscale under VPN Provider. This will automatically download and install Tailscale.

### Manual Setup
### Manual Setup (advanced)

Tailscale setup requires [SSH access](ssh_access.md) to the printer.

**Step 1:** Download Tailscale (requires internet connection):
```bash
Expand All @@ -41,14 +47,7 @@ vpn: tailscale
/etc/init.d/S99vpn restart
```

## Tailscale Setup

Tailscale setup requires [SSH access](ssh_access.md) to the printer.

**Login to your tailnet:**

Use the [tailscale CLI up command](https://tailscale.com/kb/1241/tailscale-up) to login. Get a login link, QR code, or use an auth token to complete the login.

**Step 4:** Login to your tailnet using the [tailscale up command](https://tailscale.com/kb/1241/tailscale-up):
```bash
tailscale up

Expand All @@ -59,23 +58,17 @@ tailscale status | grep lava

Note: You can use `tailscale up --ssh` to enable [tailscale SSH](https://tailscale.com/kb/1193/tailscale-ssh) and bypass passwords and keys.

### Features

- Gain full access to your printer from anywhere
- Requires no port forwarding
- Tailscale runs in [Userspace Mode](https://tailscale.com/kb/1177/kernel-vs-userspace-routers#userspace-netstack-mode), there is no access to TUN

### Tailscale Certificates
### Optional: Enable SSL Certificates

Tailscale can help generate Let's Encrypt SSL certificates for your printer, using [Tailscale Serve](https://tailscale.com/kb/1312/serve)! This will securly terminate SSL and forward requests to Fluidd/Mainsail.
Tailscale can generate Let's Encrypt SSL certificates for your printer using [Tailscale Serve](https://tailscale.com/kb/1312/serve):

```
```bash
tailscale serve --bg 80
tailscale serve reset # to disable
# to disable: tailscale serve reset
```

You can now browse securly to:
https://lava.${YOUR_TAILNET}.ts.net/
Browse securely to: `https://lava.${YOUR_TAILNET}.ts.net/`

Note: The first time you load this it will take a minute to generate the certificate.

Note: The first time you load this it will take a minute to generate the certificate for the first time.
Note: Advanced users can enable [Funnel](https://tailscale.com/kb/1223/funnel) to expose Fluidd/Mainsail to the public internet. Only do this if you absutely know what you are doing to stay secure. Stay safe!
Note: Advanced users can enable [Funnel](https://tailscale.com/kb/1223/funnel) to expose Fluidd/Mainsail to the public internet. Only do this if you absolutely know what you are doing to stay secure.