Bambu Lab
로컬 MQTT를 통해 레이어 수, 노즐 온도, ETA와 함께 3D 프린트 진행 상황을 Lock Screen에서 추적하세요.

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
PushWard 앱을 열고 → 설정 → 연동 키에서 기본 hlk_ 키를 확인하세요.
이 연동을 위한 전용 키를 생성하려면:
- 설정 → 키 관리로 이동하세요
- +를 탭하세요
- 이름을 설정하고(예: "Bambu Lab"), 선택: , 범위를 선택한 다음 선택적으로
bambu-* - 생성된
hlk_키를 복사하세요
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
| 환경 변수 | 설명 | 기본값 |
|---|---|---|
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_BAMBULAB_CERT_FINGERPRINT | Optional SHA-256 fingerprint of the printer cert (hex, with or without : separators). Pins TLS to that exact cert. When unset, the bridge auto-pins on first connect (TOFU). | -- |
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 |
To pin explicitly up front (recommended for hardened setups), extract the printer's SHA-256
fingerprint from a trusted network and set PUSHWARD_BAMBULAB_CERT_FINGERPRINT:
openssl s_client -connect <printer-ip>:8883 -servername <printer-ip> </dev/null \
| openssl x509 -fingerprint -sha256 -nooutRun this on a network you trust — TOFU (auto-pin on first connect) and ad-hoc fingerprint
extraction are both only as trustworthy as the network at extraction time. openssl will print "verify error" lines for the printer's self-signed cert; those are expected and the
fingerprint output below is still valid. The fingerprint changes any time the printer regenerates
its cert (e.g. after a factory reset).
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.