Skip to content

Limitations ​

Bambu Lab Printer Limitations ​

Understanding these constraints will help you avoid frustrating errors and set appropriate expectations.

  1. Printable 3MF required for print_3mf. The print_3mf tool expects a sliced 3MF containing at least one Metadata/plate_<n>.gcode entry. If you pass an unsliced 3MF (one exported from a CAD tool without slicing), the server attempts auto-slicing. BambuStudio, FULU, and Orca CLI paths require the matching machine preset and complete profile preparation; any inspection or slicing failure stops before upload. For a previewable workflow, pre-slice in FULU OrcaSlicer-bambulab, OrcaSlicer, or Bambu Studio and pass the resulting .gcode.3mf. See slicing guide for the full procedure.

  2. Layer height, temperature, and slicer settings are baked in. The project_file MQTT command tells the printer which plate to run. It does not support overriding layer height, temperature targets, infill percentage, or other slicing parameters at print time. These must be set in your slicer before generating the 3MF.

  3. G-code and 3MF jobs use different command paths. start_print_job sends a GCodeFileCommand over MQTT and is intended only for plain G-code files stored in the cache/ directory. Sliced 3MF files must go through print_3mf, which selects the model-specific command and upload location. See the routing table. Mixing these up will result in the printer either ignoring the command or displaying an error.

  4. Temperature commands depend on printer state. set_temperature dispatches M104 or M140 G-code via MQTT. Whether the printer accepts these commands depends on its current firmware version and operational state. Some printer states (such as the idle screen with AMS management open) may ignore or queue the commands.

  5. Status and command submission are separate evidence. Local MQTT connections are reused and status is read from received printer reports. Reports can lag during startup, sleep, or state transitions. Inspect HMS errors and the printer's actual state after submitting a job; a tool's success response is not physical-print confirmation.

  6. Network requirements depend on the path. Direct MQTT/FTPS tools require local reachability and compatible LAN/Developer Mode settings. FULU bridge cloud jobs use BambuNetwork and require its runtime, internet access, and authentication. Standard status, camera, file, and control tools remain local; bridge printing does not turn them into cloud tools.

  7. Self-signed TLS certificate. The printer's FTPS server uses a self-signed certificate. The basic-ftp client is configured with rejectUnauthorized: false to accept it. This is standard for local network Bambu connections but assumes a trusted local network environment.

General Limitations and Considerations ​

Memory usage ​

STL manipulation tools load the entire mesh into memory as Three.js geometry. For large files:

  • Files over 10 MB can consume several hundred MB of RAM during processing.
  • Running multiple operations sequentially on large files may cause memory to accumulate between garbage collection cycles.
  • If you encounter out-of-memory errors, try splitting large operations or working with smaller/simplified meshes.
  • The server has no built-in memory cap. On constrained systems, set the TEMP_DIR to a fast local path and avoid processing multiple large files concurrently.

STL manipulation limitations ​

  • lay_flat identifies the largest flat face by analyzing surface normals. It works reliably on mechanical parts with clear flat faces and less reliably on organic or curved models where no single dominant face exists.
  • extend_stl_base adds a new rectangular solid beneath the model. For models with complex or non-planar undersides, the result may include gaps or intersections at the join. Review the modified STL before printing.
  • merge_vertices uses a distance tolerance to identify near-duplicate vertices. Setting the tolerance too high can alter model geometry. The default of 0.01 mm is safe for most models.
  • Non-manifold meshes (meshes with holes, overlapping faces, or internal geometry) may produce unpredictable results for any transformation operation. Use a mesh repair tool (Meshmixer, PrusaSlicer's repair function, or Bambu Studio's repair option) before working with problematic files.

Performance considerations ​

  • Slicing with BambuStudio CLI can take 30 seconds to several minutes depending on model complexity, layer height, and your system's CPU. The slice_stl call is synchronous and will block until the slicer process completes.
  • FTPS uploads for large 3MF files (multi-plate prints, high-detail models) may take 15 to 60 seconds depending on your local network speed.
  • MQTT connections are pooled by host + serial key. The first call to any printer tool in a session establishes the MQTT connection; subsequent calls reuse it. If the connection drops (printer power cycled, network interruption), the next call will reconnect automatically.

Released under the GPL-2.0 license. An independent open-source project, not affiliated with Bambu Lab.