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 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
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
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
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.