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 project is still in development. 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

  • Finally time for production

    Pontus Borg10/28/2020 at 17:12 0 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 4 project logs

Enjoy this project?



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