Cheetah MX4 Mini: A Pint-Sized 3D Printer Controller

Cheetah 3d printer mobo

There’s a seemingly unending list of modifications or upgrades you can make to a 3D printer. Most revolve around the mechanical side of things, many are simple prints or small add-ons. This upgrade is no small task: this 17-year-old hacker [Kai] took on designing and building his own 3D printer control motherboard, the Cheetah MX4 Mini.

He started the build by picking out the MCU to control everything. For that, he settled on the STM32H743, a fast chip with tons of support for all the protocols he could ask for, even as he was still nailing down the exact features to implement. For stepper drivers, [Kai] went with four TMC stepstick slots for silent motor control. There are provisions for sensorless homing and endstops, support for parallel and serial displays, and both USB-C and microSD card slots for receiving G-code. It can drive up to three fans as well as two high-amperage loads, such as for the heated bed.

All these features are packed into a board roughly the size of a drink coaster. Thanks to the STM32H743, the Cheetah MX4 Mini supports both Marlin and Klipper firmware, a smart choice that lets [Kai] leverage the massive amount of work that’s already gone into those projects.

One of the things that stood out about this project is the lengths to which [Kai] went to document what he did. Check out the day-by-day breakdown of the 86 hours that went into this build; reading through it is a fantastic learning aid for others. Thanks [JohnU] for sending in this tip! It’s great to see such an ambitious project not only taken on and accomplished, but documented along the way for others to learn from. This is a fantastic addition to the other 3D printer controllers we’ve seen.

31 thoughts on “Cheetah MX4 Mini: A Pint-Sized 3D Printer Controller

  1. 17 year olds these days are good enough tickle my impostor syndrome, a 29 year old!

    But then again, I watching rented B list movies at their age, its not like I have anyone to blame ;D

    1. After a few hours of thinking, I take this comment back.
      Surviving to adulthood and being employed is a good enough achievement for me given my adolescence years. Everything else is just a cherry on the top. I never thought I would live to turn 29 when I was 17! Thankfully, I can imagine myself being 80 and alive, now.

    1. Our motion platform at work needs at least a 1.8Ghz ARM for 5 axis motion. The more CPU power you have, the more advanced motion algorithms you can run.

      Also, a STM32F7xx is very cheap and very feature rich. Ideal for a solution like this.

        1. Your comment attempts to be snide, but only reveals your ignorance. Go ahead and implement fourth degree controls on those 8bit systems. I’ll enjoy reading your report.
          Been there done that; the answer is to use a faster and more capable CPU.

        2. Others here have already articulated the benefit of deploying a more powerful processor, even if the present code base doesn’t take full advantage of it.

          Please, now you explain the benefit of expending all the time, effort, and hassle of designing a controller, just to outfit it with a marginally adequate computer with no room for feature growth or expansion.

          I’m willing to listen…..

        3. Yes and look at the difference between CNC routers then and now.

          Also he didn’t write the firmware, it used marlin or klipper which are open source projects and STM32H7 and STM32F4 microcontrollers are very common.

          Also motion control can typically handle as much compute as you can throw at it, especially with very fine steps requiring large step counts for movements.

        4. Dude, if you’re SO GOOD and SO MUCH MORE SKILLED, do your own version of this. Show all us no skill losers how it’s really done with an ATTiny and hand optimized assembly. And be sure to document it at least as thoroughly as this project. In the meantime, I’ve spent way too much time squeezing every last drop of performance out of the ATMega328 for projects where I have to use it for various reasons, and will always choose a cheaper and more powerful microcontroller when I can, because why on earth would you not?

    2. funny you mention that.. after my bose speakers failed from a software update forced on me by bose, i disassembled the firmware and found that the speaker is an ARM device, running android … the speaker control service.. javascript served up via electron.

    3. Trolling much? But for real – look at the size of the chip, and look at traces around it (and the number of connectors). The IO of the MCU is almost full if not full. Now go and read ST catalog. What you will find is that there is very little to none lower tier high pin count MCUs. And if there are, they are niche.

      Next – this was done using JLC PCB assembly process. You really want to use as many parts as possible that they have in stock, it makes it cheaper and faster. So you need mainstream enough high pin count MCU from ST. Why STM32? He is targeting klipper and STM32 is the best bet there – best support.

      Also 480MHz MCU for klipper for high speed high microsteps count machine is not unheard of.

      Also also – STM32H7 is pretty common in klipper control boards, just couple of examples:
      BTT Manta M8P V2.0, BTT Octopus Pro, BTT SKR 3 EZ

      3D printing is long past the AVR Marlin days.

        1. (i know i am feeding the troll – i will end after this one)

          Atmega328 for 0.5E is nonsense.
          a) it will be most likely fake with all the problems that comes with that
          b) there are far better MCUs for lower price – CH32V003 namely

          The problem will always be IO count – in AVR world you need to step up to something like ATmega2560 – and you will quickly find that that is not 0.5E

          So – that guy in his 17 years know very well what he is doing and you have no clue. Sorry, go educate yourself first.

          1. What are you on about Pedro?

            He designed his own board as a learning experience.

            If someone in Africa wanted similar, they would be best served by buying a commercial, better board and saving a bunch of time and money.

            Economies of scale…

        2. ATMega328 isn’t even a good budget option though. The STM32 is cheap and more powerful, the ESP32 is cheaper and more powerful, the CH32V003 is like 25% of the cost and 32 bit and 48MHz. What are you even arguing for?

    4. Obviously you never worked on 3D printers.
      Older boards ran on AVR and simple ran out of steam and out of flash memory space even with a 256KB Mega2560.
      In fact, this is the reason for Klipper, which degenerates the onboard CPU and uses a Raspberry Pi for all the processing.

    5. Nowadays most printers do lots of software compensation, like input shaping and pressure advance. Plus TMC drivers have 256x microstepping, so you need extremely high GPIO speeds plus the whole planning and control loops. I agree that this MCU is extremely overkill, but the good old ATMEGA2560 doesn’t cut it anymore

      The STM32F407 is more than enough for running everything on it, personally I use Klipper (processing done on a Linux SBC, realtime done on the MCU) but honestly more because of the ease of use than due to anything else

  2. The documentation for this is awesome! Excellent work, I wish more repos and projects were this well documented. I wonder if there are plans to add features like closed loop stepper control.

  3. Similar processor to what we use on the V2 Smoothieboard STM32H745 (with some work I believe this board might be able to run V2 Smoothieware, but may require adding a flash memory module, and possibly depends on pinout).

    86hrs seem very fast. I know it took us much longer. Glad to see someone taking the time to create something though…so don’t get me wrong. I just suspect there will be quite a few things that need to be debugged.

    I would not use stepsticks myself (I am aware they are popular) since a properly designed onboard stepper driver is way more reliable. (I also disagree that they “look sick compared to onboard” as stated in the build docs.)

    There appears to be very little in terms of input/output buffering. There could be some improvement in those areas. Probe input, endstop inputs for example.

    Going to smaller components and double sided board may make it even smaller. V2 Smoothieboard is 110x110mm…so not much bigger…but with way more GPIO. Although, at the sacrifice of ease of manufacturing.

    Hierarchical pages on the schematic makes things a bit cleaner too when things get dense and make repeating sections easier.

    This board is a good start. Reminds me of earlier reprap boards (pre-RAMBO). Keep working on it. I suspect plenty of people will message with suggestions.

    Overall…off to a good start. Still needs a lot of work though.

  4. I don’t understand the comment criticizing him for using a more powerful processor. Given the cost of the machine, the MCU is nothing. Any good design tries to get the most horsepower within the costs they want. Especially when its going in a 3D printer which get constant software features added all the time. How well do your 8 bit controllers handle all the new features of todays firmware? Great job getting this working for a young person. Impressive project.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.