3D printing
Run your 3D printer without the cloud: Bambu LAN-only vs Klipper vs OctoPrint
Choose Bambu LAN-only, Klipper with Mainsail or Fluidd, or OctoPrint on a Pi 5. Compare printer support, cloud trade-offs, host parts and local camera setup.

OUR PICKS / YOUR SETUP
Find your fit.
Use Bambu Studio LAN-only for P2S/A1 without buying a Pi. Choose OctoPrint to keep compatible USB printer firmware, or Klipper with Mainsail/Fluidd for a supported controller conversion. Build the Pi host only for the route that needs it.
- Bambu routeLAN-only in Studio
- Firmware projectKlipper + Mainsail/Fluidd
- Keep USB firmwareOctoPrint
Your printer can make a rack bracket without sending the job on a cloud round trip. The trick is choosing the right control panel for the machine you own: Bambu Studio in LAN-only mode for a P2S or A1, Klipper with Mainsail or Fluidd for a supported firmware conversion, or OctoPrint for a compatible USB-connected printer.
Research guide: compatibility and setup steps come from the printer makers and the software projects.
Start with the 3D printing hub for printer and filament picks. Here, the purchase is the host hardware for the Pi routes—not another computer just to switch on Bambu LAN mode.
Pick this if: three routes, three different jobs
| Route | Pick this if… | What stays local | What it costs you | Extra host needed? |
|---|---|---|---|---|
| Bambu LAN-only | You own a P2S or A1 and want the least disruptive change | Bambu Studio sends jobs and monitors the printer across your LAN | Handy, cloud print history and Bambu’s outside-LAN remote-printing route stop working | No Pi required; use your existing Studio computer |
| Klipper + Mainsail or Fluidd | Your exact printer/controller has a suitable Klipper configuration, and you enjoy tuning | Browser dashboard, job files, macros and printer control through the host | Controller flashing, configuration and calibration; some stock display/features can change | A supported host, such as a Pi |
| OctoPrint | You want a browser dashboard while keeping compatible printer firmware, commonly Marlin | File upload, USB print control, status and a configured webcam feed | The host must stay running during a streamed job; model-specific USB-printing limitations apply | A supported host, such as a Pi |
Keep the firmware you like unless changing it solves a real problem. Bambu’s LAN switch is a network setting. OctoPrint is a host application. Klipper is printer firmware plus a host component; Mainsail and Fluidd are its dashboards. Those are very different Saturday projects.
Bambu P2S and A1: flip the LAN switch
For a Bambu owner, start here. The maker’s LAN-mode guide covers sending files and monitoring without internet access, including the current P2S and A-series menu paths.
- Enable LAN-only on the printer. On P2S, open the LAN Only page under Settings. On A1, open Settings → LAN Only Mode. Turn the mode on.
- Bind locally in Bambu Studio. Open the printer dropdown on the Device page, select the LAN-mode printer and enter its access code. Keep the computer and printer on a network where they can communicate.
- Send a small sliced job. Choose the correct printer/nozzle profile as usual, then send it locally. On P2S, enable LAN Only Liveview when you want its camera in Studio.
You keep the Bambu firmware and local Studio workflow. You lose Bambu Handy, cloud print history and the maker’s outside-LAN remote printing while this mode is enabled. Downloading software and firmware updates is a separate task from sending a print locally.
Developer Mode is the optional next step
Developer Mode opens local control interfaces for third-party tools. Bambu documents it after LAN-only is enabled on both P2S and A-series printers. Turn it on when your chosen third-party tool needs those interfaces; ordinary Bambu Studio LAN printing does not require that extra step.
This still leaves the printer running Bambu firmware. A Pi connected to a Bambu USB socket does not turn it into a generic Marlin printer or a ready-made Klipper conversion. For printer choices rather than control software, use our homelab 3D printer buying guide.
Klipper: build a dashboard around a supported controller
Choose Klipper when you want to own the configuration as well as the print queue. Its host software works with firmware on the printer’s microcontroller. Moonraker supplies the API; Mainsail or Fluidd gives you the browser interface.
The official Klipper installation guide starts with a matching printer or controller-board configuration. The project includes a configuration for the stock 2020 Creality Ender-3 V2. Read the board and chip details in that configuration: a familiar model badge does not identify every controller revision.
Prusa support also needs that precision. Klipper’s configuration library includes the Prusa MINI+, but its file calls out an unsupported LCD and a board modification for initial flashing. That is a conversion project. For a Prusa owner who wants a dashboard while preserving the stock firmware, the OctoPrint route below is the more direct starting point.
A sensible Klipper build path
- Install the host. MainsailOS in Raspberry Pi Imager is the packaged route: choose your Pi, then Other specific-purpose OS → 3D printing → MainsailOS. Writing the image erases the selected card.
- Match the printer controller. Save the existing configuration and obtain the appropriate Klipper configuration before compiling and flashing the controller firmware.
- Configure the dashboard. Use Mainsail’s configuration editor and Moonraker connection. Prefer Fluidd’s layout? Its installation guide covers that alternative frontend.
- Do the configuration checks before printing. Follow Klipper’s temperature, endstop and heater checks, then the remaining homing and calibration steps for your machine.
The payoff is a local control panel with configuration files and macros you can maintain yourself. The work is getting the printer configuration right—not installing a different-looking webpage and hoping the motion system follows along.
OctoPrint: keep the firmware, add the browser
For a compatible USB-serial printer, OctoPrint is the straightforward host upgrade. It sends G-code to the printer, presents controls and status in a browser, and can display a webcam feed. This is the usual route for adding a dashboard to a supported Marlin printer without replacing its firmware.
The OctoPrint download page provides OctoPi through Raspberry Pi Imager. Its current stable image lists Pi 5B 4 GB and 8 GB compatibility. The project’s recommended-hardware list still favours Pi 3/4 and Zero 2, so keep a working Pi 4 rather than replacing it for this job alone.
For a fresh Pi 5 installation:
- In Imager, choose the Pi and Other Specific Purpose OS → 3D printing → OctoPi → stable.
- Write the Pi’s card, boot the host and open its local OctoPrint interface.
- Complete the setup wizard, create your user account and set the printer profile. Keep OctoPrint access control enabled.
- Connect a USB data cable suited to the printer’s socket, establish the serial connection and upload a small sliced file.
The printer keeps its existing firmware. Keep the Pi powered during USB-streamed jobs: it is part of the printing path, not just a remote display.
Prusa owners: use the maker’s USB profile
Prusa publishes an OctoPrint setup manual for MK4/S, MK3.9/S, MK3.5/S, XL and CORE. Follow its printer profile and special G-code instructions. That walkthrough uses Pi 4; Pi 5 image compatibility comes from OctoPi’s own documentation.
Prusa also flags Crash Detection, Power Panic, multi-tool printing and BGCODE among the USB-printing limitations. Weigh those against the dashboard you gain. If the maker’s built-in local PrusaLink workflow already does your job, keep it.
Pi 5 parts list: build one host, choose one cooling plan
This list is for the Klipper or OctoPrint host. A Bambu LAN-only setup uses your existing Studio computer.
We earn a commission if you buy through our links — it doesn’t change our picks. How we make money → As an Amazon Associate I earn from qualifying purchases.
| Part | Pick | What it does |
|---|---|---|
| Board | Raspberry Pi 5, 8 GB | Runs the host software; 8 GB is this parts choice, not a printing requirement |
| Power | Official 27W USB-C supply | Supplies the Pi’s documented 5.1 V, 5 A profile |
| Case | Official Pi 5 case | Covers the board and includes its own fan/heatsink |
| Alternative cooling | Pi Active Cooler | Clip-on heatsink/blower for an open mount or an adapted case arrangement |
| Boot storage | SanDisk Extreme 128 GB A2 microSD | Holds the host image, settings and uploaded files |
| Camera | Logitech C270 USB webcam | Fixed-focus view of the bed without a separate Pi camera ribbon cable |
The Pi 5 product brief covers the board. The official supply brief explains why the 5.1 V/5 A profile matters: it raises the Pi’s combined USB peripheral allowance from 600 mA to 1.6 A. Power the Pi from its own supply, with the printer powered normally.
Use one fan arrangement. The case already includes cooling. Choose the Active Cooler for an open mounting arrangement, or remove the case’s original fan assembly to fit it inside; Raspberry Pi’s staff author confirms that fit in the cooling article. Do not stack both fan assemblies.
Our Pi 5 kit guide has the broader board, storage and enclosure choices. Add the data cable your printer actually uses; the power supply’s USB-C lead powers the Pi, not the printer connection.
Put a camera on the bed, not on the shopping wishlist
The C270’s maker specifications give a 720p/30 fps maximum, fixed focus and USB-A connection. Position it so the nozzle and first layer are visible, with the cable clear of moving and heated parts.
For Mainsail, configure the webcam service in Crowsnest, then add its stream to the dashboard. Use the actual device path and supported formats reported in its log; the camera configuration guide recommends a stable /dev/v4l/by-id/ path.
Pi 5’s camera catch: MainsailOS supports it but does not recommend it for webcam-heavy use, because it lacks the hardware encoder used on older Pis. Crowsnest recommends µStreamer/MJPEG on hardware without that encoding support. Follow its backend guide and select a resolution/frame rate your camera reports, rather than treating the C270’s maximum as the configured stream. OctoPi includes its own camera-streaming setup; configure that instead of installing a second stack alongside it.
For off-site viewing, reach the Pi dashboard through a VPN such as Tailscale or WireGuard, rather than opening router ports; our remote-access guide expands the choices, and OctoPrint explains the VPN approach.
Prove the local path with a small print
With the software installed and the printer profile ready, send a small job across the local network and watch its status and camera. Then disconnect the internet uplink while leaving the local network working, and repeat the local send/monitor workflow. Keep the printer and its host connected throughout the test.
For Klipper, finish the documented configuration checks first. For OctoPrint, verify the USB connection stays established. For Bambu, send through Studio’s locally bound printer rather than Handy. Save your working printer/host configuration before adding plugins or changing firmware.
Choose Bambu LAN-only for the simple switch, OctoPrint for a compatible firmware-preserving USB host, or Klipper when you want the configuration project too. Buy the Pi parts for the route you actually need, then get back to making the bracket.
Once the printer has its local control panel, add Home Assistant print alerts and a dashboard without confusing monitoring with firmware control.
Sources & methodology
Where these facts come from.
- Bambu LAN-only: P2S/A1 setup and cloud features · checked October 28, 2026
- Bambu Developer Mode: optional third-party controls · checked October 28, 2026
- Klipper host, printer configuration and firmware installation · checked October 28, 2026
- Klipper temperature, endstop and heater checks · checked October 28, 2026
- Install MainsailOS with Raspberry Pi Imager · checked October 28, 2026
- Fluidd installation choices · checked October 28, 2026
- OctoPi image compatibility and installation · checked October 28, 2026
- OctoPrint accounts and access control · checked October 28, 2026
- Prusa OctoPrint USB setup and feature limitations · checked October 28, 2026
- Raspberry Pi 5 product brief · checked October 28, 2026
- Official 27W supply and USB peripheral allowance · checked October 28, 2026
- Active Cooler assembly and fan-header connection · checked October 28, 2026
- Official case cooling and Active Cooler fit · checked October 28, 2026
- Logitech C270 specifications · checked October 28, 2026
- Crowsnest device paths and camera configuration · checked October 28, 2026
- MainsailOS Pi support and webcam caveat · checked October 28, 2026
- Crowsnest streaming backends for Pi 5 · checked October 28, 2026
- OctoPrint safer remote access through a VPN · checked October 28, 2026
- Klipper configuration library: exact printer/controller files · checked October 28, 2026
Source dates are listed above.
As an Amazon Associate I earn from qualifying purchases.
Parts from this article
The gear, on Amazon
The models recommended above, with the specifications that matter for your choice.
The board
Raspberry Pi 5 8GB
Quad-core Pi 5 with Gigabit Ethernet, PCIe for NVMe and USB ports for connected hardware.
Power
Raspberry Pi 27W USB-C Power Supply
The official 5.1 V 5 A supply for a Pi 5 driving an SSD and USB devices.
Cooling
Raspberry Pi Active Cooler
Clip-on heatsink and temperature-controlled fan; the M.2 HAT+ stacks above it.
Official case base
Official Raspberry Pi 5 case
Use the base for a standard M.2 HAT+ stack with the lid and supplied case fan removed.
First-try storage
SanDisk Extreme 128GB A2 microSD
Use an A2 microSD card for a simple Pi boot drive before adding an NVMe stack.
Simple USB print view
Logitech C270 USB webcam (960-000694)
Aim the fixed-focus USB camera at the bed for a local print-viewing feed.
Prepared by Racks & Watts.