Skip to content

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.

  1. MQTT connection -- connects to printer on port 8883 using TLS with the printer's access code
  2. State tracking -- subscribes to printer reports and merges delta updates into a full state
  3. Progress updates -- sends layer count, nozzle temperature, and progress bar to PushWard every 5s (configurable)
  4. 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:

  1. Go to Settings → Manage Keys
  2. Tap +
  3. Set name (e.g. "Bambu Lab"), choose scope, and optionally restrict tobambu-*
  4. Copy the generated hlk_ key

4. Deploy the Bridge

docker-compose.yml
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-stopped
Info

No ports need to be exposed -- the bridge connects outbound to both the printer (MQTT) and PushWard API.

Configuration

Environment VariableDescriptionDefault
PUSHWARD_URLPushWard server URL--
PUSHWARD_API_KEYIntegration key (hlk_ prefix)--
PUSHWARD_BAMBULAB_HOSTPrinter IP address or hostname--
PUSHWARD_BAMBULAB_ACCESS_CODE8-character access code from printer Settings > WLAN--
PUSHWARD_BAMBULAB_SERIALPrinter serial number (15 characters)--
PUSHWARD_POLL_INTERVALHow often to send progress updates5s
PUSHWARD_PRIORITYActivity priority (0-10)1
PUSHWARD_CLEANUP_DELAYHow long the activity stays after ending15m
PUSHWARD_STALE_TIMEOUTEnds activity if no updates received60m

Print States

Printer StateLive ActivityColor
PREPAREPreparing...Blue
RUNNINGLayer N/MBlue
PAUSEPausedOrange
FINISHCompleteGreen
FAILEDFailedRed
💡 Tip

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.