Skip to main content
Version: ACS CC

3D Printer

An engineered-from-scratch 3D printer powered by a 32-bit STM32 board, featuring custom hand-wired electronics, silent motor operation, and robust thermal management.

info

Author: Bârsan Clara Maria
GitHub Project Link: link_to_github

Description

This project is a custom-built Cartesian 3D printer based on the classic Prusa i3 architecture. Its main purpose is to manufacture physical 3D objects by melting and depositing plastic filament layer by layer. The end-user interacts with the device by providing a digital 3D model that has been sliced into a "G-code" file. Once started, the machine autonomously coordinates its three axes (X, Y, and Z) and regulates high temperatures to print the object. It solves the problem of needing an affordable, highly customizable, and easily repairable manufacturing tool for personal DIY projects and prototyping.

Motivation

My primary motivation for building this 3D printer is to create a personal manufacturing hub at home. I want the independence to design, prototype, and print highly customized components for my other DIY endeavors. Having a tailor-made machine will give me the freedom to bring complex ideas to life, ensuring my future projects are never limited by off-the-shelf parts.

Architecture

Sistem arhitecture

The architecture of this custom 3D printer controller is designed as a standalone, state-machine-driven embedded system. To ensure safety, signal integrity, and a strict separation of concerns, the system is logically divided into distinct architectural subsystems. This design isolates low-voltage processing logic from high-voltage mechanical and thermal actuation.

Core Processing Unit (MCU): The central "brain" of the system is the STM32 Nucleo microcontroller. It is responsible for parsing G-code, executing the internal state machine, and orchestrating asynchronous tasks (Motion, Thermal, and I/O management).

Data Storage Subsystem: A Micro SD Card Module acts as the local repository for G-code files, allowing the printer to operate fully standalone.

Sensory & Feedback Subsystem: The input layer continuously gathers physical data from the machine's environment (temperatures and physical axis limits) and feeds it back to the processing unit to close the control loop.

Motion Subsystem: The kinematic layer translates digital movement commands into physical steps, driving the printer's axes and the extruder mechanism.

Thermal Subsystem: The high-current heating layer manages the rapid heating of the print bed and the hotend nozzle based on PWM duty cycles received from the Core Processing Unit.

Cooling Subsystem: The thermal management layer provides continuous hotend heatsink ventilation — powered permanently by the direct 24V supply — to prevent heat creep and maintain hardware integrity.

Log

Weeks 23 March - 12 April

Chose the project idea, researched components, and ordered hardware.

Week 13 - 26 April

Assembled the frame and the Y axis.

Week 27 April - 10 May

Finished the Z axis and parts of the X axis.

Week 11 - 17 May

Structured and organized the hardware schematic in EasyEDA and soldered the physical hardware components using a soldering iron.

Hardware

This custom 3D printer utilizes an STM32 Nucleo-U545RE-Q microcontroller as the core processing unit. The motion system features NEMA 17 stepper motors driven by ultra-silent TMC2209 modules, with axis limits detected by reliable SS-5GL2 mechanical endstops. Thermal actuation for the MK3 heated bed and MK8 extruder is safely managed by optoisolated external MOSFETs and continuously monitored by NTC 100k thermistors. To ensure signal integrity, the system employs a dual-isolated power architecture—a 5V power bank for logic circuits and a 24V 20A PSU for high-current loads. The entire setup operates independently of a PC using an SPI Micro SD Card module, with all custom signal routing soldered onto a double-sided FR4 prototype PCB.

Schematics

Motor Schematic Other elements Schematic

Bill of Materials

DeviceUsagePrice
STM32 NUCLEO-U545RE-QMain microcontroller processing G-code and controlling the entire system105 RON
NEMA 17 Stepper MotorStepper motor driving the physical movement of the axes and the extruder218 RON
TMC2209 Motor DriverUltra-silent stepper driver translating MCU logic signals into motor movement157 RON
NTC 100k ThermistorTemperature sensor used to continuously monitor the hotend and heated bed9,7 RON
SS-5GL2 Mechanical EndstopPhysical microswitch used to detect the 0-position (home) of the printer's axes15,7 RON
Micro SD Card ModuleSPI storage module allowing the printer to read G-code and work standalone4,7 RON
External MOSFET ModuleHigh-current solid-state switch used to safely route 24V power to the heaters41,2 RON
MK3 Heated Print BedAluminum build plate that heats up to ensure first-layer print adhesion54 RON
24V 20A Power SupplyMain power supply unit providing high-current 24V for heaters and motors111 RON
FR4 Prototype PCB (7x9cm)Double-sided board used to solder and route the custom electronic circuits5,8 RON
MK8 Extruder ComponentsMechanical assembly responsible for feeding, melting, and depositing the filament211 RON

Software

LibraryDescriptionUsage
st7789Display driver for ST7789Used for the display for the Pico Explorer Base
embedded-graphics2D graphics libraryUsed for drawing to the display
  1. link
  2. link ...