Skip to content

Instantly share code, notes, and snippets.

@dalegaard
Last active July 9, 2026 10:22
Show Gist options
  • Select an option

  • Save dalegaard/b5106af63fcdde305e8c47421a8cc9b9 to your computer and use it in GitHub Desktop.

Select an option

Save dalegaard/b5106af63fcdde305e8c47421a8cc9b9 to your computer and use it in GitHub Desktop.
INDX Commissioning

INDX Basic Commissioning

Entering bootloader

Connect MCU board in bootloader mode. If the firmware has already been flashed earlier, bridge the CAN RESET jumper when powering up the board. This will force entry in to the bootloader.

The bootloader will show in dmesg as:

[11327.818718] usb 9-2.4.1.2: new full-speed USB device number 30 using xhci_hcd
[11327.925660] usb 9-2.4.1.2: New USB device found, idVendor=04d8, idProduct=e483, bcdDevice= 1.07
[11327.925665] usb 9-2.4.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[11327.925666] usb 9-2.4.1.2: Product: INDX Toolboard Bootloader
[11327.925667] usb 9-2.4.1.2: Manufacturer: Bondtech AB

And in lsusb:

$ lsusb | grep INDX
Bus 009 Device 030: ID 04d8:e483 Microchip Technology, Inc. INDX Toolboard Bootloader

Kalico install (skip if using Klipper)

Kalico support will be merged soon. Once it is, simply update Kalico.

To compile the firmware for Kalico, run the following command within the Kalico directory:

$ KCONFIG_CONFIG=board_configs/bondtech_indx_usb.config make

Once the firmware has been compiled, it can be flashed to the board. Assuming the board is currently in bootloader mode, flash with the following command:

$ KCONFIG_CONFIG=board_configs/bondtech_indx_usb.config make flash FLASH_DEVICE=04d8:e483
# You may be asked to enter you password here

Klipper install (skip if using Kalico)

First download the Klipper module using the following command:

$ git clone https://github.com/BondtechAB/indx_klipper.git

Now install the module. Replace the path /home/pi/klipper with the real path to Klipper. If Klipper is installed at ~/klipper, you can also leave out this part of the command:

$ cd indx_klipper
$ ./install.sh /home/pi/klipper

With the module installed, you can now compile the firmware:

$ make

Once compiled, and assuming the board is connected and in bootloader mode, run the following command to flash:

$ make flash FLASH_DEVICE=04d8:e483
# You may be asked to enter you password here

Configuration

A very basic configuration block to get started:

[mcu indxmcu]
serial: dev/serial/by-id/usb-Bondtech_INDX_<REPLACE WITH REAL SERIAL>-if00@

[indx]
mcu: indxmcu

[extruder]
sensor_type: indx
min_temp: 0
max_temp: 300

heater_pin: indx:heater
control: watermark
nozzle_diameter: 0.4
filament_diameter: 1.75

step_pin: indxmcu:motor_step
dir_pin: indxmcu:motor_dir
enable_pin: !indxmcu:motor_enable
microsteps: 32
rotation_distance: 5.7

[tmc2240 extruder]
cs_pin: indxmcu:motor_cs
spi_software_sclk_pin: indxmcu:motor_sclk
spi_software_mosi_pin: indxmcu:motor_mosi
spi_software_miso_pin: indxmcu:motor_miso
rref: 24000
run_current: 0.6

[fan]
pin: indxmcu:part_cooling
tachometer_pin: indxmcu:part_cooling_tacho

First heatup

The heater must be calibrated before it will heat. To initiate calibration, run:

INDX_CALIBRATE

This will calibrate the inductive heater and heat the nozzle to a high temperature to build the thermal check model.

After this, the heater can be used. To save the calibration, run SAVE_CONFIG at any point after.

To improve the thermal model, calibrate the part cooling fan as well. This is done with:

INDX_FAN_CALIBRATE

This will heat the nozzle to a high temperature and run the fan at various speeds in order to model the part cooling fan losses. Once done, the calibration can be saved with SAVE_CONFIG.

To calibrate filament density and heat capacity, either manually set values from lookup table with:

INDX_SET_MODEL_PARAMS FILAMENT_DENSITY=[g/cm³] FILAMENT_HEAT_CAPACITY=[J/g/K]

Or automatically determine the heat capacity(and assume density = 1.0) by auto-loading filament with:

INDX_LOAD_FILAMENT

To clear the current filament values, run INDX_CLEAR_FILAMENT or set the values directly with INDX_SET_MODEL_PARAMS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment