12/11/2025
Earlier this year I purchased a collection of 3D Printer parts on Facebook Marketplace.
The 2 boxes contained 1 (nearly complete but slightly damaged) TronXY 3D printer
along with a nice collection of parts for the Ender 3 printer I had recently acquired.
Part of this collection was an obscure 3D printer mainboard labeled “ET4-MB V1.1”
It certainly wasn’t compatible with my Ender 3 so I thought I’d try to see if I could
flash some code on it and make it communicate to a terminal, blink LEDs and such.
The microcontroller on this board was an STM32F407 the same as what’s on the
STM32F407 Discovery Board which I’ve already experimented with and similar to the
STM32F103 on the popular “Blue Pill” boards.
I traced out the pins connected to the on-board CH340 USB-Serial converter chip and determined
that they connected to USART1 pins on the CPU which supported the built-in serial bootloader.
It didn’t take me long to also trace out which pin controlled an on-board LED so I was off to
get some blink action going on.
With flashing and blinking figured out it was on to serial communication which is where I stalled out for a bit.
I copied come code I used successfully on the Discovery board and modified it slightly to match
this setup but couldn’t make it work.
I eventually resorted to coding bit-bang serial I/O routines which worked fine.
So I knew the hardware was OK (since I was flashing the code on the same port) and the pins
were connected correctly (bit-bang routines worked) I was really puzzled.
Some days later I stumbled upon a code error that was causing my problem.
This board has a LOT of cool hardware on it.
4 (noiseless) stepper motor drivers, a couple of high current FET drivers (for heaters),
voltage regulators, a 16MB serial flash chip and another 4K serial EEPROM.
Unable to find a schematic for this version online, I did a LOT of probing of the MCU pins
(not an easy task on a 100pin SMD chip), until I stumbled upon this git-hub site that housed
firmware for the board. This site also had a description of all the devices on the board and
how they were connected to the STM32F407 MCU.
https://github.com/Atanasovgoran/Marlin-Labists-ET4
I then spent a couple weeks playing around with the various on-board devices.
I’m sharing a link to an eclipse project the drives the USART and blinks some LEDs
contact me if you’re interested in sample code that addresses other devices on this board.