Project Specification — STM32F446 CNC / Laser Motion Controller
Project Overview
Status: Draft implementation in progress.
Professional-quality modular 3-axis CNC / laser motion controller built around STM32F446RETx LQFP64 for grblHAL-class firmware development and future production refinement.
Intended Use
CNC routers, CO2/fiber laser controllers, plasma/experimental motion systems.
Prototype/development board with production-minded routing, grounding, debug access, and connector grouping.
What the Device Should Do
Generate stable STEP/DIR/ENABLE signals for X/Y/Z external drivers.
Read filtered/noise-resistant limit, control, and probe inputs.
Provide spindle/laser PWM from TIM1_CH1 and coolant control.
Support USB FS, UART debug/breakout, SWD programming, and I2C expansion.
Main Features
STM32F446RETx LQFP64 MCU.
24V protected input, buck to 5V, LDO to 3.3V.
MCU decoupling, VDDA ferrite filtering, VCAP capacitor, reset/BOOT0 network, 8MHz HSE crystal.
Buffered motion outputs and protected/filtered external inputs.
USB FS with ESD and 22Ω series resistors.
Standard 2.54mm headers, 0805 passives, 2-layer ~100mm x 100mm PCB.
System Architecture
24V Input
Protection Fuse TVS Reverse Polarity
5V Buck Regulator
3.3V LDO
STM32F446RETx
Buffered X Y Z Step Dir Enable
Filtered Limits EStop Hold Start Probe
Spindle Laser PWM Buffer and Optional Isolation
USB FS Connector
SWD UART I2C Expansion
Hardware Subsystems
Power: 24V input protection, 5V switching regulator, AMS1117-class 3.3V LDO, rail indication LEDs.
MCU Core: official STM32F446RETx LQFP64 symbol/footprint, 8MHz HSE, reset/BOOT0, SWD, decoupling.
Motion Outputs: STEP/DIR/ENABLE for X/Y/Z via buffers to 2.54mm headers.
Machine Inputs: limit/control/probe inputs with pull-up, RC filter, and ESD consideration.
Laser/Spindle: PA8 PWM buffered with 3.3V/5V compatibility and optional optoisolated output stage.
Communications: USB FS, UART breakout, I2C auxiliary header.
Interfaces and Connections
Function MCU Pin X_STEP PA0 X_DIR PA1 X_EN PA2 Y_STEP PA3 Y_DIR PA4 Y_EN PA5 Z_STEP PA6 Z_DIR PA7 Z_EN PB0 LIMIT_X PB1 LIMIT_Y PB2 LIMIT_Z PB10 ESTOP PB11 FEED_HOLD PB12 CYCLE_START PB13 PROBE PB14 SPINDLE_PWM PA8 COOLANT PB15 UART_TX/RX PA9 / PA10 USB_DM/DP PA11 / PA12 I2C_SCL/SDA PB6 / PB7
Power Tree and Power Budget
Initial design target loads:
3.3V: STM32F446, input pull-ups/filters, low-power logic, indicators; design budget 250mA peak.
5V: output buffers, optional optocoupler side, headers; design budget 500mA peak.
24V input supports onboard logic only, not motor power distribution.
Sizing target: protected input and buck converter should support at least 1A at 5V equivalent with margin. 3.3V LDO dissipation at 250mA from 5V is ~0.425W, so SOT-223 copper area is required; lower-current firmware use is expected.
Manufacturing and Assembly Expectations
2-layer PCB, approximately 100mm x 100mm.
Standard KiCad-compatible footprints: LQFP64 10x10mm 0.5mm, SOT-223, 0805 passives, 2.54mm headers.
Prefer common parts and hand-debuggable spacing.
Add test points for 24V, 5V, 3V3, GND, NRST, SWD, USB, and major I/O.
Firmware-Relevant Hardware Requirements
grblHAL-style pin map preserved exactly as requested.
SWD header accessible at board edge.
BOOT0 pull-down for normal boot.
USB FS and UART available for firmware/debug.
HSE 8MHz crystal for stable motion timing and USB clock generation.
Physical Design Expectations
USB near board edge.
SWD near board edge.
Stepper outputs grouped together.
Power input/protection/buck grouped away from MCU crystal and logic inputs.
Short crystal and decoupling loops.
Bottom/top ground pours with stitching where practical.
Important Design Decisions
Use a single GND net for 2-layer manufacturability; treat VDDA with ferrite filtering rather than split ground.
Buffer external outputs instead of driving machine cabling directly from MCU pins.
Add RC filtering and pull-ups to all external inputs for machine-noise tolerance.
Assumptions
Onboard 24V is for controller power only, not stepper motor current distribution.
External stepper drivers accept STEP/DIR/ENABLE logic-level signals.
USB connector may be data/debug only; main power comes from 24V input.
Exact buck regulator part may be selected based on library availability and datasheet suitability.
Change Notes
Initial specification created from user design brief.
Schematic implementation started in Flux with STM32F446RET6, power tree, USB, SWD, UART, I2C, motion outputs, filtered machine inputs, and laser/spindle outputs.
Pin-map deviation: requested ESTOP on PB11 cannot be implemented on the STM32F446RE LQFP64 symbol because PB11 is not exposed in this package/symbol. ESTOP is currently assigned to PC6 and documented in the firmware starter file.
Electrical review currently reports no ERROR/WARNING checks after initial schematic wiring.