# M36 Toolhead Board

### Update Klipper Firmware

To upgrade Klipper on the toolhead board login via SSH to your host (Usually Catalyst on a v0).

Press & Hold the Boot & Reset buttons for 5 seconds, release the reset button, then after 3 seconds release the boot button.

This puts the board in DFU mode.

<div align="left"><figure><img src="https://2575181864-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9eWs42oWd1EGjAwAVmEF%2Fuploads%2FbggcNWMZ26mSjbiMw2ON%2Fthb.png?alt=media&#x26;token=e27c7da6-f2eb-4ffc-96bb-80f07ffb6d7c" alt=""><figcaption></figcaption></figure></div>

In the terminal type the command `lsusb`, amongst your list you should see `Bus ### Device ###: ID 0483:df11 STMicroelectronics STM Device in DFU Mode`.

You're ready to flash, now type the command `cd ~/klipper` followed by `make clean` followed by `make menuconfig`.

You will now see this GUI appear:\
![](https://2575181864-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9eWs42oWd1EGjAwAVmEF%2Fuploads%2FOnBcsO4AkOGXOi3sfgcx%2Fthb_klipper.png?alt=media\&token=76e07be8-4070-4a54-b4a8-bf497fc6d782)

Change your settings using the arrow keys and enter key to select, ensure your settings match 1:1 with those above. then press `Esc` or `Q` followed by `Y` to save & exit.

Now in the terminal type `make` and press `Enter` to compile the firmware, this will take upto a few minutes to complete.

When it is complete you will see a response like so:

```
...
  Compiling out/src/stm32/chipid.o
  Compiling out/src/generic/usb_cdc.o
  Compiling out/src/stm32/hard_pwm.o
  Building out/compile_time_request.o
Version: v0.12.0-179-g434770ea
  Preprocessing out/src/generic/armcm_link.ld
  Linking out/klipper.elf
  Creating hex file out/klipper.bin
pi@voron-02-pro:~/klipper$
```

The firmware is now compiled and you can flash it onto your M36 controller by typing (or pasting) the command '`make flash FLASH_DEVICE=0483:df11'` followed by the `Enter` key.\\

You will see a progress bar, followed by a success message like so:

```
...
Downloading to address = 0x08000000, size = 28160
Download	[=========================] 100%        28160 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
dfu-util: can't detach
Resetting USB to switch back to runtime mode
```

And you're done!, confirm the flash took by typing `lsusb` again, the DFU Mode line should now be gone and you'll see `Bus ### Device ###: ID 1d50:614e OpenMoko, Inc. stm32f072xb`.

{% embed url="<https://www.buymeacoffee.com/makermylo>" %}
If you appreciate my work, why not buy me a coffee to say thanks?
{% endembed %}

### Troubleshooting Issues

#### Free Spinning Fans

There is an issue with the construction of the M36 toolhead board that means your toolhead fans may spin at a very low rate by themselves even though they are fully disabled in the firmware, this appears to be an issue with the PWM control of the fans and only 1 PWM pin can be connected. The easiest solution to this is to remove the tacho pin (Either de-pin or snip the yellow fan wire) for the 2 part cooling fans.

#### Crazy high toolhead temperature reporting

See "[Free Spinning Fans](#free-spinning-fans)" above, as an aside this also fixes an issue where the temperature readout of the head\_mcu\_temp is wildly inaccurate causing false overtemp errors. Upon removing the 2 PWM pins the temperature will drop from 100+oC to around 40oC (Depending on loads).

Removing the pins is totally safe as they are not required for part cooling fans, neither are they configured by default in the Fysetc configurations. PWM will still work on the hotend fan as normal.

Credit for finding the PWM issue goes to Fragmon on the Fysetc Discord.

{% embed url="<https://www.buymeacoffee.com/Fragmon>" %}
