Bambu Lab
Track 3D print progress with layer counts, nozzle temperature, and ETA on your Lock Screen via local MQTT.
How It Works
The pushward-bambulab bridge connects directly to your printer over local MQTT (no cloud dependency) and streams print progress to PushWard.
- MQTT connection -- connects to printer on port 8883 using TLS with the printer's access code
- State tracking -- subscribes to printer reports and merges delta updates into a full state
- Progress updates -- sends layer count, nozzle temperature, and progress bar to PushWard every 5s (configurable)
- Lifecycle management -- automatically starts tracking when a print begins and ends when it finishes, fails, or is cancelled
Setup
1. Enable Developer Mode
On your Bambu Lab printer, enable Developer Mode (or LAN-only mode) in the printer settings. This allows local MQTT connections.
2. Get the Access Code
Navigate to Settings > WLAN on the printer to find the 8-character access code.
3. Get Your Integration Key
Open the PushWard app → Settings → Integration Key to find your default hlk_ key.
To create a dedicated key for this integration:
- Go to Settings → Manage Keys
- Tap +
- Set name (e.g. "Bambu Lab"), choose scope, and optionally restrict to
bambu-* - Copy the generated
hlk_key
4. Deploy the Bridge
services:
pushward-bambulab:
image: ghcr.io/mac-lucky/pushward-bambulab:latest
environment:
PUSHWARD_URL: https://api.pushward.app
PUSHWARD_API_KEY: hlk_YOUR_INTEGRATION_KEY
PUSHWARD_BAMBULAB_HOST: 192.168.1.100
PUSHWARD_BAMBULAB_ACCESS_CODE: 12345678
PUSHWARD_BAMBULAB_SERIAL: 01S00A123456789
restart: unless-stoppedNo ports need to be exposed -- the bridge connects outbound to both the printer (MQTT) and PushWard API.
Configuration
| Environment Variable | Description | Default |
|---|---|---|
PUSHWARD_URL | PushWard server URL | -- |
PUSHWARD_API_KEY | Integration key (hlk_ prefix) | -- |
PUSHWARD_BAMBULAB_HOST | Printer IP address or hostname | -- |
PUSHWARD_BAMBULAB_ACCESS_CODE | 8-character access code from printer Settings > WLAN | -- |
PUSHWARD_BAMBULAB_SERIAL | Printer serial number (15 characters) | -- |
PUSHWARD_POLL_INTERVAL | How often to send progress updates | 5s |
PUSHWARD_PRIORITY | Activity priority (0-10) | 1 |
PUSHWARD_CLEANUP_DELAY | How long the activity stays after ending | 15m |
PUSHWARD_STALE_TIMEOUT | Ends activity if no updates received | 60m |
Print States
| Printer State | Live Activity | Color |
|---|---|---|
PREPARE | Preparing... | Blue |
RUNNING | Layer N/M | Blue |
PAUSE | Paused | Orange |
FINISH | Complete | Green |
FAILED | Failed | Red |
The bridge automatically resumes tracking if it starts while a print is already in progress, so it recovers gracefully from restarts.
Activity Slug Format
Uses the format bambu-<serial> (serial lowercased), e.g. bambu-01s00a123456789. One activity per printer.