Show HN: I designed my own 3D printer motherboard (github.com)

127 points by kaipereira ↗ HN
3D printing is such a fascinating field of technology, so a couple months ago, I decided to take a deep dive and learn how they actually work!

This took me to one of my very first PCB projects, a small, cheap, 3D printer motherboard. While it's not the most cutting edge board, I learned a lot and I fully documented my process designing it (https://github.com/KaiPereira/Cheetah-MX4-Mini/blob/master/J...), so other people can learn from my mistakes!

It runs off of an STM32H743 MCU, has 4 TMC stepsticks with UART/SPI configurations, sensorless/endstop homing, thermistor and fan ports, parallel, serial and TFT display connectors, bed and heater outputs and USB-C/SD Card printing, all in a small 80x90mm form factor with support for Marlin and Klipper!

Because it's smaller and cheaper than a typical motherboard, you can use it for smaller/more affordable printers, and other people can also reference the journal if they're making their own board!

If I were to make a V2, I would probably clean up the traces/layout of the PCB, pay more attention to trace size, stitching and fills, BOM optimize even further, and add another motor driver or two to the board. I also should've payed a bit more attention to how much current I would be drawing, and also the voltage ratings, because some of the parts are under-rated for the power.

I'm still actively refining it and fixing up some of the mistakes, but I plan on using this board to make a tiny foldup 3D printer I can bring to hackathons and 3D print on the go!

The project is fully open source, and journaled, so if you'd like to check it out it's on GitHub (https://github.com/KaiPereira/Cheetah-MX4-Mini)!

I absolutely loved making this project and I'd love to hear what you guys would want to see in a V2!

20 comments

[ 1082 ms ] story [ 1201 ms ] thread
For some reason my brain read the title as “3D printed motherboard” and I was really curious about how this was even possible, and I ended up being disappointed by the lack of detail on the github readme.

It's only after a few more seconds back on the HN front page that I realized my mistake.

Less exciting than what I read but cool project nonetheless.

Mobile RepRap (the ideal self-printing technology)
It's not exactly 3d printing but Bad Obsession Motorsports took a small mill, stuck a hot end into the tool holder, fed solder instead of filament into it, and "printed" traces onto a blank PC board.

I thought it was pretty clever but they admit it was tricky to make work at all, let alone get good results.

Really cool.

I found myself traveling recently and missed my 3d printer. There were a few neat things I could have done if I had a printer in a carry on. It would be kinda awesome to have a self contained 3d printer with a battery to take wherever I go.

If you're near a harbor freight, they have cheap rugged cases. Maybe design around that form factor, since they're easy to get?

That's a really cool idea!

I have a couple idea's on how I wanted to do it: - Belt printer fitted into a briefcase (the harbor freight case form factor would be good for that!) - Positron style - Maybe mess around with double four-bars

Making it self-contained with a battery is also a really cool concept I'll have to explore!

You'd need a pretty substantial battery on account of how much heat it takes to melt filament. Even the Bambu A1 Mini uses ~150W while heating the hot end. I like the idea of a portable printer, though.
May not meet your particular definition of small, but my portable printer is a Voron 0.2. The frame is sturdy enough that you can attach a handle to one corner and just carry it around with you, at least for a while. It's not particularly lightweight. But it is small (fits completely inside the build volume of my other printer), and being fully enclosed within the frame, seems more durable than the likes of the other tiny printers (Lemontron, A1 Mini, etc.)
>This is one of the first PCB's I've ever created, so it might have some flaws.

>4 layers

That's quite the jump for a noob. Would you mind sharing how you learned to produce such advanced output so fast? I mean my first ~50 PCB we're still just 2 layers.

Edit: nvm I just saw the journal.

4 layer boards actually make it easier instead of more advanced in my opinion. You can have a dedicated ground and power plane which makes routing much simpler, and the fields are much easier to predict.

It's also just double the price, so I can get 4 layer boards for like $8 from JLC and it just makes everything much more easily.

You still do want to build up to it though, I made a macropad, then a keyboard, and then made this, so it's definitely not just an immediate jump, but I built those 2 projects within the span of a couple months!

Nice work; I’d love to see a V2. Quick tip: try Flux AI to help accelerate the V2 work!
You did an amazing job. What I really like is the attention to detail that will facilitate cable management and repair. This is the weak point for most 3D printers: when you run them long enough and hard enough they'll break and you will need to replace parts. Depending on the brand of printer this can be hard, tricky or next to impossible without a complete teardown of wiring looms and such.

Consider using a slightly higher level connection to the print head: just power and a serial protocol. That way you are immediately future proof. What firmware are you running on this?

I was confused by the prominent use of the word "stepstick", not something I was familiar with even though I try to expose myself to quite a lot of 3D printing material (having one is still more like a bucket list item, though).

I think the term is/was originally a product name for a small, rectangular module with a stepper motor driver on it [1] from 2012. Then it seems the term has been made more generic, with updated versions like the SilentStepStick [2] featuring a driver chip by Trinamic instead.

I guess my point is that for some readers, the stepper motor features on OP's board could be made more clear and perhaps use actual chip numbers, too. :)

Great job!

[1]: https://wiki.geeetech.com/index.php/StepStick_A4988_Stepper_...

[2]: https://learn.watterott.com/silentstepstick/

I suspect 3D printing will be huge the next couple of years as SaaS gets more and more saturated
Really great job, Kai!!! The fact that you’re only 17, you’re absolutely killing it.
Why all those heat sinks? Power electronics are getting very good these days with low RDS-on. Have stepper drivers not kept up?
This is awesome! I'm in the industrial software / CAD space, so I have a rough idea of how painful and complex these engineering workflows can be, even though I don't design hardware myself.

You might find it interesting to look into AI-powered PCB design tools for your next iteration. There are some cool tools popping up that can use AI to assist with the trace routing and layout, which could make the process much less tedious for you.

For your V2: a Can-Bus connector would be great. Should really be standard for toolheads nowadays. Makes cable management so much easyer. And the board does not need the driver for the extruder, the heater contoll and sensors anymore.

So maybe a version which is optimized for Can-Bus toolheads?

And more driver slots, 4 is not sufficient if you want a self leveling bed.

Vorons need 4 drivers for the gantry alone.

HW eng here.

If you need (emphasis on need - if it's not in the requirements, don't bother!) to make it smaller, you can fold the low power/compute section underneath the power section by putting it on another board and using either a mezzanine connector or FPC/FFC/ribbon cable to connect them.

You can also integrate the motor controllers directly onto your PCB and give them a combined thermal solution i.e. one heatsink with one fan if needed.

But likely your effort is better spent on making the rest of the printer rather than this :)