# Plugin: BambuLab

The **BambuLab Plugin** is a Driver plugin that extends FilaMan with full BambuLab 3D printer integration. It enables communication via MQTT, AMS slot management, and automatic filament setting assignment.

> ⚠️ **Important:** Controlling the printer via FilaMan (e.g. setting spools in the printer/AMS) only works when the printer is in **LAN-only Mode** AND **Developer Mode**.

**Installation:** → [Admin: Plugin Management](/Docs/En/11-Admin#115-system-plugin-management)

---

## Overview

| Property | Value |
|----------|-------|
| **Plugin Type** | Driver (Printer Driver) |
| **Author** | FilaMan |
| **Source** | [Fire-Devils/filaman-plugins](https://github.com/Fire-Devils/filaman-plugins) (Registry) |
| **Connection** | MQTT over local network |
| **Capabilities** | AMS support, RFID detection, Automatic filament matching |

---

## Supported Printer Models

| Model | AMS Type |
|-------|----------|
| **P1P / P1S** | AMS (Automatic Material System) |
| **P2S** | AMS |
| **X1C / X1E** | AMS |
| **A1 / A1 Mini** | AMS Lite |
| **H2C / H2D / H2S** | AMS |

---

## Configuration

When adding or editing a BambuLab printer, the plugin shows the following configuration fields:

| Field | Required | Description |
|-------|----------|-------------|
| **Printer Model** | Yes | Printer model (P1S, P1P, P2S, X1C, X1E, A1, A1 Mini, H2C, H2D, H2S) — determines the AMS data structure and number of slots |
| **IP/Hostname** | Yes | IP address or hostname of the printer on your local network |
| **Serial Number** | Yes | Serial number of the printer (found on the device or in the Bambu Handy app) |
| **Access Code** | Yes | Access code from the printer's LAN settings |
| **Reconnect Interval** | No | Interval in minutes for automatic reconnection on connection loss (default: 5, range: 1–60) |

> **Tip:** You can find the serial number and access code in the **Bambu Handy App** under the printer settings, or directly on the printer under **Settings → Network → LAN Mode**.

---

## What Gets Installed?

Upon installation of the plugin and when a BambuLab printer is first started, the following components are automatically set up:

### Printer Parameters

The plugin creates **10 extra fields** (called "Printer Parameters") specifically needed for BambuLab printers. These fields are automatically created as **System Extra Fields** (visible under [Admin: Extra Fields](/Docs/En/11-Admin#114-extra-fields)).

| Parameter | Description | Field Type |
|-----------|-------------|------------|
| **Bambu Material Index** (`bambu_idx`) | Material index from the BambuLab filament list — select the matching BambuLab material from a dropdown | Dropdown |
| **Tray Info Index** (`bambu_tray_idx`) | Index identifying the tray entry in the BambuLab system | Text |
| **Setting ID** (`bambu_setting_id`) | Print profile ID used internally by BambuLab for print settings | Text |
| **Calibration Index** (`bambu_cali_idx`) | Calibration index for print calibration | Text |
| **K Value** (`bambu_k_value`) | K value (Pressure Advance) for extrusion control | Number |
| **Flow Ratio** (`bambu_flow_ratio`) | Flow rate / extrusion multiplier | Number |
| **Bed Temperature** (`bambu_bed_temp`) | Print bed temperature in °C | Number |
| **Nozzle Temp Min** (`bambu_nozzle_temp_min`) | Minimum nozzle temperature in °C | Number |
| **Nozzle Temp Max** (`bambu_nozzle_temp_max`) | Maximum nozzle temperature in °C | Number |
| **Max Volumetric Speed** (`bambu_max_volumetric_speed`) | Maximum volumetric flow speed in mm³/s | Number |

---

## Where Do Printer Parameters Appear?

Printer parameters appear in two places in the user interface:

### 1. Filament Edit Page

Under the **"Printer Parameters"** section on the filament edit page.

- This is where you set **default values** for a filament (e.g. "PLA generally at 210–220°C")
- These values serve as the **base** for all spools of this filament
- When creating a new PLA filament, for example, enter the BambuLab parameters that are typical for this filament here

### 2. Spool Edit Page

Under the **"Printer Parameters"** section on the spool edit page.

- This is where you can set **spool-specific values** that differ from the filament defaults
- Spool parameters take **priority** over filament parameters when sending to the printer
- Useful when a specific spool requires different calibration values or temperatures

> **Priority rule:** When sending filament settings to the printer, spool parameters and filament parameters are merged. If a value exists for a parameter at both spool and filament level, the **spool value** is used.

---

## Populating Printer Parameters

There are three ways to populate the parameters:

### 1. Enter Manually

Open the filament or spool edit form and fill in the values in the "Printer Parameters" section.

- The **Bambu Material Index** can be conveniently selected from a dropdown — the list contains all material types supported by BambuLab
- The remaining fields (temperatures, K value, etc.) can be entered directly as numbers or text
- This method is especially suitable for filaments you are setting up for the first time

### 2. Import from AMS Slot

On the **spool detail page**, you can import parameters directly from an AMS slot:

1. Click on an AMS slot dot in the printer slot overview
2. Select from the context menu:
   - **"Import to spool"** — Imports the values (tray index, temperatures, calibration ID, etc.) into the spool's printer parameters
   - **"Import to spool & filament"** — Imports the values into both the spool and its associated filament

> **Tip:** This method is especially convenient when using BambuLab original filament — all parameters are automatically read from the AMS and imported.

### 3. Automatically When Adding a Printer

When a new BambuLab printer is added and another BambuLab printer already exists, FilaMan automatically copies the printer parameters from the existing printer. This saves you from entering the parameters again.

---

## AMS Slot Display

After a successful connection, FilaMan shows all AMS slots and their current contents on the **printer page** and the **spool detail page**:

- **AMS Slots** — Up to 4 slots per AMS unit
- **External Tray** — The printer's external spool feeder
- Displayed information includes: filament type, color, temperature range, and calibration status
- The display updates in **real time** via Server-Sent Events (SSE)

For more details on assigning spools to slots: → [Printers: Setting Spools](/Docs/En/09-Printers#setting-spools--overview)

---

## Migration from Older Versions

If you are updating the BambuLab plugin from an older version, existing parameters are automatically renamed:

| Old Name | New Name |
|----------|----------|
| `bambu_cali_id` | `bambu_cali_idx` |
| `bambu_k` | `bambu_k_value` |
| `bambu_max_volspeed` | `bambu_max_volumetric_speed` |
| `bambu_nozzle_temp` | `bambu_nozzle_temp_min` |

Your existing data is preserved — the renaming happens automatically on the first printer connection after the update.

> **Note:** If you previously used Spoolman with BambuLab fields, FilaMan also automatically migrates this data into the new printer parameter format.

---

← [Back: Tips & FAQ](/Docs/En/13-Faq) | [Next: Plugin: SpoolmanDB Import →](/Docs/En/15-Plugin-Spoolmandb)
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9