Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Bambu Lab P1S: Local Developer Mode Calibration & Clean-Print Setup Guide

A practical, end-to-end guide based on a real Bambu Lab P1S setup session: updating Bambu Studio, creating clean-print profiles, enabling legitimate local control through Developer Mode, starting calibration from the CLI, and monitoring the printer safely.

Audience: Bambu P1S owners who want reliable LAN/local control, better print-quality defaults, and a clear troubleshooting path when MQTT commands are rejected.


What this guide covers

  • Clean-print Bambu Studio profile choices for a P1S with 0.4 mm hardened-steel nozzle.
  • Safe pre-calibration checks after moving the printer.
  • Bambu Studio update path.
  • Why direct LAN/MQTT commands may fail on newer firmware.
  • How LAN-only Mode + Developer Mode fixes command verification failures.
  • How to run a CLI calibration command once Developer Mode is enabled.
  • How to monitor calibration status and HMS errors.
  • Notes for upgraded/accessorized printers, including Panda status bar and internal chamber accessories.

Safety first

This workflow can cause the printer to move and heat.

Before sending any write/control command:

  1. Confirm the printer is idle.
  2. Confirm the build plate is clear.
  3. Confirm no tools, loose printed parts, loose filament, or hands are in the chamber.
  4. Treat known fixed upgrades/accessories differently from loose obstructions.
  5. Do not bypass Bambu's firmware safety/security controls. Use the legitimate Developer Mode path.

Hardware context from the real setup

Printer:

  • Bambu Lab P1S.
  • 0.4 mm hardened-steel nozzle.
  • AMS present.
  • Upgraded/accessorized chamber.
  • Internal Voxel Bento Box 2 carbon filter.
  • Panda status bar upgrade.
  • Other accessories may be present.

Important visual note:

  • A rear/center rectangular object visible in the chamber camera may be the fixed Voxel Bento Box 2 filter, not an obstruction.
  • If you have extra lighting/status bars, camera snapshots may look different from a stock P1S.

Recommended clean-print profile defaults

These are quality-focused defaults, not the fastest possible settings.

For cosmetic/visible parts:

  • Layer height: 0.16 mm
  • Wall loops: 3
  • Top layers: 6
  • Bottom layers: 4
  • Infill: 20% gyroid
  • Outer wall speed: about 100 mm/s
  • Top surface speed: about 100 mm/s
  • Speed mode: Normal/Standard, not Sport/Ludicrous
  • Seam: rear/back when appropriate
  • Bed leveling: enabled per print
  • Flow calibration: enabled when appropriate

For stronger utility parts:

  • Keep a separate 0.20 mm balanced/functional profile.
  • Use 3-6 walls depending on load.
  • Use 20-40% infill depending on geometry.
  • Prefer material/geometry-specific decisions over forcing one global profile.

Keep these conditional, not global defaults:

  • Supports.
  • Brims.
  • Ironing.
  • Adaptive layers.
  • PETG-specific temperature/cooling changes.
  • Nozzle-size changes.

The failure mode we hit

Initial direct MQTT calibration attempts failed.

Observed behavior:

  • Printer stayed idle/finished.
  • No heating or movement started.
  • HMS error appeared:
HMS_0500_0500_0001_0007

Raw values seen in printer reports:

code: 65543
attr: 83887360

Meaning:

MQTT command verification failed.

Updating Bambu Studio is worth doing, but in this real case it did not fully solve the issue by itself.


Step 1 — Update Bambu Studio

The real setup was updated from:

02.06.00.51

to:

02.07.01.62

On macOS, the official app was installed to:

~/Applications/BambuStudio.app

Verify the version manually from Bambu Studio or by running the app binary with help/version output if available.


Step 2 — Enable LAN-only Mode + Developer Mode

This is the key step for legitimate full local control on newer Bambu firmware.

On the P1S touchscreen:

  1. Open Settings.
  2. Open WLAN.
  3. Turn LAN Only Mode on.
  4. Scroll down.
  5. Open Developer Mode.
  6. Read the notice.
  7. Tap Enable.
  8. Confirm Developer Mode shows ON.

Tradeoff:

  • LAN-only/Developer Mode may affect cloud/Bambu Handy behavior while enabled.
  • You can switch modes later if you need cloud workflows again.

Step 3 — Install Python dependency

The scripts use MQTT over TLS.

python3 -m pip install paho-mqtt

Step 4 — Set local environment variables

Do not hardcode or commit printer credentials.

Create a local shell environment, .env, or secret manager entry with:

export BAMBU_HOST="192.168.x.x"
export BAMBU_SERIAL="YOUR_PRINTER_SERIAL"
export BAMBU_ACCESS_CODE="YOUR_LAN_ACCESS_CODE"

The MQTT username for Bambu LAN mode is commonly:

bblp

Never publish your serial/access code in a public repo.


Step 5 — Check printer status first

Before calibration, query printer status.

Expected safe pre-calibration status:

  • gcode_state: FINISH or IDLE
  • print_type: idle
  • No active print.
  • No serious HMS errors.
  • Nozzle/bed targets at 0 unless already heating for a known reason.

Use scripts/bambu_status.py from this repo.

python3 scripts/bambu_status.py

Step 6 — Verify the chamber is clear

Use the camera snapshot tool if you have camera access configured, or manually inspect the chamber.

Checklist:

  • Build plate clear.
  • No loose parts.
  • No tools in chamber.
  • No loose filament wrapped around toolhead/bed.
  • Known fixed accessories are okay.

For upgraded printers:

  • Bento Box 2 filter: fixed accessory, usually rear/center.
  • Panda status bar: fixed accessory/status lighting.

Step 7 — Start calibration from CLI

Once Developer Mode is on and the chamber is safe, run:

python3 scripts/bambu_start_calibration.py

In the real session, after Developer Mode was enabled, the printer accepted the command and transitioned to:

gcode_state: RUNNING
print_type: system
last_subtask_name: auto_cali_for_user_param.gcode

That confirmed local CLI control was working.


Step 8 — Monitor calibration

Use:

python3 scripts/bambu_status.py

or the included watcher:

bash scripts/watch_calibration.sh

Signs calibration started successfully:

  • gcode_state changes from idle/finished to RUNNING.
  • print_type becomes system.
  • Subtask name resembles auto_cali_for_user_param.gcode.
  • Nozzle temperature may rise during parts of the process.
  • The previous MQTT verification HMS error should disappear.

Known HMS codes from this workflow

MQTT command verification failure

HMS_0500_0500_0001_0007

Meaning:

MQTT command verification failed.

Typical fix path:

  1. Update Bambu Studio / Bambu Handy.
  2. Enable LAN-only Mode.
  3. Enable Developer Mode.
  4. Retry command.

Other HMS entries

During system calibration, additional HMS entries can appear transiently.

Do not panic immediately. Check:

  • Whether the printer keeps running normally.
  • Whether the same HMS persists after calibration.
  • Bambu Wiki for exact code interpretation.
  • Physical signs: fan noise, unusual motion, heating, or stuck toolhead.

Troubleshooting

Command publishes but printer stays idle

Likely Developer Mode is not enabled, or LAN-only mode is not active.

Fix:

  • Recheck P1S screen: Settings → WLAN → LAN Only Mode + Developer Mode.
  • Power-cycle printer after enabling if needed.
  • Retry status query and calibration.

MQTT connects but no status returns

Check:

  • Host/IP address.
  • Serial.
  • Access code.
  • Port 8883 reachable.
  • Firewall/VPN/LAN isolation.

Quick port check:

nc -vz "$BAMBU_HOST" 8883

PLA bed temperature accidentally slices to 35°C

For PLA on a P1S textured/hot PEI-style plate, target 55–65°C. A practical default is 60°C.

If Bambu Studio CLI outputs a 35°C bed target, it probably selected/inherited Cool Plate behavior. Fix by using a custom filament preset that forces PLA bed temps across plate types, for example:

  • cool_plate_temp: 60
  • cool_plate_temp_initial_layer: 60
  • hot_plate_temp: 60
  • hot_plate_temp_initial_layer: 60
  • textured_plate_temp: 60
  • textured_plate_temp_initial_layer: 60

Verify the sliced G-code contains:

M190 S60

Printing but “invisible filament” / fuzz on nozzle

Stop the job and inspect before retrying. Likely causes:

  • Wrong AMS slot mapping.
  • Filament not actually loaded or not feeding.
  • Failed purge / partial clog.
  • Bed temp too low for the selected plate/material.

Do a manual load/purge first, then retry a simpler extrusion/first-layer test before a cube.

Camera unavailable

Camera service is often on port 6000, but camera access is separate from MQTT control.

If camera is unavailable:

  • Inspect chamber manually.
  • Do not start motion/heating unless you are physically confident it is safe.

Bambu Studio UI automation blocked on macOS

If using AppleScript/UI automation, macOS may require Accessibility permissions.

Grant access in:

System Settings → Privacy & Security → Accessibility

Add your terminal app / Hermes process / automation host as needed.


Repo contents

scripts/bambu_status.py              # Query printer status over MQTT/TLS
scripts/bambu_start_calibration.py   # Start calibration via Developer Mode LAN MQTT
scripts/watch_calibration.sh         # Poll until calibration exits RUNNING
.env.example                         # Placeholder environment variables

Final practical advice

  • Use Bambu Studio/OrcaSlicer for slicing/profile management.
  • Use local CLI control for status, calibration, monitoring, and repeatable workflows.
  • Keep credentials out of GitHub.
  • Treat first calibration after relocation as mandatory.
  • Prefer quality profiles over speed profiles for visible parts.
  • Keep accessory notes for your exact printer, because camera interpretation changes with mods.

Disclaimer

This is a practical owner/operator guide, not official Bambu Lab documentation. Use at your own risk. Printer motion and heating can damage hardware or create hazards if the chamber is not clear.

About

Clear Bambu Lab P1S Developer Mode LAN calibration and clean-print setup guide with safe MQTT scripts.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages