CONRADKRAMERSign in

article← all posts

What a printer taught me about LAN mode

Bambu’s local mode is real, but it took a packet capture and a weekend to trust it.

·14:12 PDT·2 min·updated

There is a specific kind of trust you extend to a machine that sits in your house and talks to the internet on your behalf. I extend it to my thermostat, grudgingly, and to my router because I built it. I did not want to extend it to a printer that costs as much as a used car and phones home to a cloud I can’t read.

Bambu ships a “LAN mode” for exactly this person. Toggle it, the printer says, and everything stays local: the app talks over your network, the printer stops calling out, and the cloud is out of the loop. It is a lovely promise. It is also the kind of promise you check.

What LAN mode actually does

The printer speaks MQTT over TLS on port 8883, and it exposes an FTPS server for the SD card. Both use the access code printed on the screen as a password. When you flip the switch, the printer keeps those two services running and drops the outbound connection to the broker in Shenzhen. That’s it. There is no second, quieter channel; I looked.

Forty minutes of capture with LAN mode on: two hosts, one port, nothing leaving.

Talking to it directly

Once you know the shape of it, you don’t need the app at all. The MQTT topic layout is small and stable enough that a script fits on a napkin:

unknown node

The report topic streams a JSON blob a couple of times a second: nozzle and bed temperatures, layer number, percent complete, the AMS humidity, and a print_error field that is 0 far more often than the app’s red banner would suggest.

The best local-first products don’t make you choose. They make the cloud a convenience you can turn off, and then they behave exactly the same.

A few things I’d tell someone doing this on a Sunday:

  • Give the printer a static lease and put it on a VLAN that can’t reach the internet. LAN mode is a promise; the firewall is a fact.
  • The access code rotates if you factory reset. Write the new one down before you close the panel.
  • FTPS uses implicit TLS on 990. lftp handles it; curl needs --ftp-ssl and patience.

I don’t think Bambu is doing anything wrong here — the cloud path is genuinely nicer for most people, and LAN mode does what it says. But the point of a switch labelled local is that you shouldn’t have to take anyone’s word for it. Now I don’t.