Huvud, a 3D Printer Tool Head Controller Board

World's smallest (42x42mm) 3D printer controller board for use on a direct drive hotend. Made to run Klipper firmware.

Similar projects worth following
A very small 3D printer board for use on a direct drive toolhead. It is designed to be used with Klipper firmware. Klipper has the awesome feature to be able to use multiple MCUs connected to the host over a (relatively) high latency connection. Using CAN bus it is possible to chain many small board using just a pair of twisted wires and power.

A good solution for multiple head 3D printers.

* CAN 2.0B bus.
* One TMC2209 stepper driver for the extruder
* Two small MOSFETs for fan control
* One big MOSFET for a hotend heater control
* Thermistor input
* One endstop
* STM32F103 72Mhz MCU
* Micro USB

The boards in the pictures are all prototypes.

Thermals has been a challenge for this board. The stepper driver generates quite a lot of heat. Even if the TMC2209 is far more efficient than earlier drivers it's still a few Watts to get rid of, on a tiny board. 

The goal is that is should be possible to run an extruder stepper with no extra cooling at all. 

The board is designed to work as a heat sink, it has large ground planes to distribute the heat over the entire board. So far it's been manufactured with the normal thin 1oz copper layers, it works.

My testing has shown that it can run up to 1A RMS and it's just warm to the touch. At 1.2A it gets hot, and over that it's a good idea to add some small cooling fins. Results will vary depending on the motor you use.

I'll have to experiment with the CoolStep feature of the driver and see what results that might give. It's a cool (no pun intended) feature where the driver lowers the drive current when there is low load on the stepper driver.

  • 1 × STM32F103C8T6 Microprocessors, Microcontrollers, DSPs / ARM, RISC-Based Microcontrollers
  • 1 × TMC2209-LA Stepper driver
  • 1 × SN65HVD230 CAN bus transceiver

  • Improved board in the works

    Pontus Borg06/11/2021 at 15:19 4 comments

    While it is not really possible/viable to produce any more Huvud v0.5 boards at the moment I am slowly working on an improved v0.6. Many component are very very hard to find, and if you manage to find any they are ridiculously expensive.

    The main improvements on this new board are:

    • On board accelerometer (ADXL345), 
    • 3 endstops that are 5V tolerant 
    • 5V supply

  • Finally time for production

    Pontus Borg10/28/2020 at 17:12 3 comments

    One more version was assembled today, and it works perfectly fine. The differences from before is an added ESD protection diode on the CAN bus and the CAN bus is now in the same connector as power. 

    The CAN bus used to have it's own 4-pin JST PH connector but is now in the Molex Micro-Fit together with power. That connector is now a 2x2. 

    This was the last prototype for this round and I will now start some volume production. First batch will be only 200 boards. It's hard to know how big the market is and as it's just a hobby project I take things one step at a time. 

    Time to start hacking on the software some more now. The CAN-serial tunnel used by klipper is a bit hacky and needs some love. And a CAN bus capable bootloader would be awesome since it's a major pain to update the firmware if you have many boards.

    And I should make a little jig for testing and programming the boards. Anyone have hints where to get pogo-pins or other useful test-jig items/software etc?

  • Heat!

    Pontus Borg10/14/2020 at 05:50 1 comment

    Pushing the poor little board to its limits. It smells funny and I managed to burn my fingers, but it keeps on trucking! 

    The stepper driver protests at these temperatures and stops moving the stepper for short moments. 

    The MCU reaches about 80C, which is a good thing, the heat transfer works as designed. I wish I had a FLIR to do some more detailed analysis.

    It has now reached a good enough state and I am getting quotes for some minor volume production. Next step is to make a test-jig to be able to program and test the produced boards in an efficient manner.

  • New (v0.44) boards arrived

    Pontus Borg08/31/2020 at 20:24 1 comment

    New boards arrived!

    The ripple on the 3.3V line is now at the expected 30mV with the TPS54308 controller. Very good! I'll test with a TPS54302 in a few days when they arrive. The '302 is $0.50 cheaper than '308 even if it has more fancy power saving features. 

    Now for the horrible task of hand soldering the TMC stepper drivers. Not an easy task for an unskilled solderer like myself.

    The board should be ready for volume production now. I just need to re verify that everything works as intended and push the boards to their limits.

  • New version on the way

    Pontus Borg08/27/2020 at 14:10 0 comments

    The fourth version of the board is finally in the mail from assembly. 

    The major change is that the DC-DC Switch Regulator Controller has been changed to a more modern and smaller version than before. I had issues that when the old one (TPS54331) went into low power "eco-mode" the output ripple sky rocketed to 100mV. The new controller (TPS54308) has no such features and should be more stable. I'll try the TPS54302 as well, same footprint, has the eco features and is a lot cheaper.

    I have made some changes to the thermistor input subsystem as well. The construction for filtering was totally broken and had massive noise. 

    Despite all these power/analogue issues all versions of the boards have worked perfectly fine. The klipper firmware has been tested and runs well on all kind of questionable 3D printer boards, far worse than this board.

View all 5 project logs

Enjoy this project?



Simon wrote 04/25/2022 at 09:59 point

Is there a recommended tutorial for CANBUS 101.

I'm trying to get my head around the Huvud toolboard firmware requirements and the CAN Board firmware requirements (board connected to Raspberry Pi 4B) using Klipper CAN Bus support.

  Are you sure? yes | no

Michael wrote 07/17/2021 at 21:27 point

Do you have an idea when version 0.6 is finished?

  Are you sure? yes | no

Gnindit wrote 03/24/2021 at 11:20 point

Hi. I just bought one but I think there is to little information on what CAN bus boards to buy. There are three examples on the github page where one does not work (Inomaker), one is not recommended if using more than 1-2 boards (Can hat) and the last one (Canable USB CAN clone)  is out of stock at Tindie and It is not easy available to find stores for it.

It seems very much harder to find a CAN adapter that works good. Wonder if there will be a SPI or serial version.

  Are you sure? yes | no

storhemulen wrote 03/23/2021 at 19:48 point

Looks brilliant!

Is it possible to add an ADXL345 accelerometer somehow?

  Are you sure? yes | no

Viktoras S. wrote 03/14/2021 at 21:04 point

Just found this gem and immedietly ordered it. How does it work for you. any tips on instaling. Have klipper runing on duet 2.

  Are you sure? yes | no

Colin MacKenzie wrote 02/10/2021 at 04:05 point

I thought about doing exactly this! But this board has everything I need and want. Now it just needs to work with my SKR board and Marlin. We could probably adapt a CAN transceiver chip to fit in place of the stepper's TMS stepper slot on the SKR (or other board) and add support to Marlin. I want to have swappable tools. Thoughts?

  Are you sure? yes | no

ThantiK wrote 09/03/2020 at 15:54 point

Why the CAN bus?  I thought klipper was able to talk to boards over USB?  Doesn't that add far more complexity to this project than simply using the USB interface that's on the STM32F?

  Are you sure? yes | no

Pontus Borg wrote 09/03/2020 at 16:26 point

CAN has much nicer cables and connectors than USB, and you can chain it from board to board. If you have something like a tool changer with loads of print heads this is a big advantage. STM32F has a CAN interface already, it just needed a small transceiver chip for it to work, pretty simple.

There are reasonably priced (~$25) CAN hats or USB adapters that work perfectly fine with a Pi.

The board can do USB as well for those that prefer that.

  Are you sure? yes | no

bozkurt13 wrote 08/27/2020 at 14:04 point

bu projeyi paylaşmayı düşünüyor musun?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates