// phase 1 — foundations hardware
ItemRecommendedPrice (approx)RequiredNotes
STM32 dev board Nucleo-F446RE or Nucleo-F411RE €14–18 must F4 family has FPU, plenty of timers, abundant docs. Avoid Blue Pill clones for learning.
USB-UART adapter CP2102 or FTDI FT232RL €3–8 must For UART CLI and debug logging. The Nucleo ST-Link also has a virtual COM port.
Logic analyser Saleae Logic 8 (or clone) €10–300 rec. Saleae clone (~€10 on AliExpress) works with Sigrok/PulseView. Genuine Saleae is better but expensive.
Breadboard + jumper wires Any 830-point breadboard €5–10 must For peripheral test circuits.
// phase 2 — rtos hardware (adds to phase 1)
ItemRecommendedPriceRequiredNotes
Ethernet PHY module LAN8720 module (MII interface) €4–8 must Works with STM32 MAC peripheral. Many Nucleo boards need an adapter; check pinout for your board.
IMU sensor (simulated data OK) MPU-6050 breakout or LSM6DS3 €3–6 optional Simulated sensor data (incrementing counter + noise) is acceptable for Phase 2. Real sensor adds authenticity.
Temperature sensor DS18B20 (1-Wire) or TMP117 €2–5 optional Use STM32 internal temperature sensor (ADC channel 18) to avoid extra hardware in Phase 2.
Segger J-Link EDU J-Link EDU Mini €20 rec. Required for Segger SystemView tracing in Week 7. The Nucleo's ST-Link does not support SystemView.
// phase 3 — motor control hardware (the main investment)
ItemRecommendedPriceRequiredNotes
Oscilloscope Rigol DS1054Z (4ch, 50MHz) €300–350 must Non-negotiable for motor control. You cannot tune a PID loop or verify FOC currents without a scope. DS1054Z can be hacked to 100MHz for free.
Upgraded STM32 board Nucleo-G431RB or Nucleo-G474RE €15–18 rec. G4 series has dedicated motor control timers (HRTIM), better ADC triggering, and dual op-amps for current sensing. Ideal for FOC.
BLDC gimbal motor BGM4108-130 or similar €15–25 must Low KV (slow), 12V, safe for learning. Never use high-KV drone motors for first FOC experiments.
Gate driver IC / board DRV8323RS evaluation board or L6234 module €8–25 must DRV8323RS: SPI-configurable, integrated protections, built-in current sense amps. Professional choice. L6234: simpler, cheaper, less protection.
Incremental encoder 600 PPR or 1000 PPR encoder €8–15 must Required for FOC angle estimation. Many gimbal motors have Hall sensors — sufficient for trapezoidal commutation; encoder gives better FOC performance.
Current sense resistors 10–50 mΩ, 1%, 2W shunt resistors €2–5 optional DRV8323RS has built-in current sense amplifiers — no external shunts needed if using that IC.
CAN transceiver SN65HVD230 (3.3V) breakout €2–4 must ISO 11898 compliant. Two needed for a minimal CAN bus (one node + USB-CAN analyser). Add 120Ω termination at each end.
USB-CAN analyser PCAN-USB (Peak) or Canable USB €20–150 rec. Canable (~€20) works with python-can and candump. PCAN-USB is the industry standard but expensive. Canable is sufficient for learning.
12–24V bench power supply Any adjustable DC supply, 3A minimum €30–60 must Current-limiting capability is essential — it protects the motor and gate driver when you make wiring mistakes. Set current limit to 1–2A during initial commissioning.
Multimeter Any with DC current measurement €15–30 must For measuring idle current, verifying supply voltages, debugging wiring.
// total hardware cost estimate
Phase 1 essentials~€25–40
Phase 2 additions~€30–50
Phase 3 additions (without scope)~€70–110
Oscilloscope (Rigol DS1054Z)~€300
Total (with scope) ~€425–500 If you already have a scope, total drops to ~€125–200
Budget tip: If you can't afford a Rigol DS1054Z, a used Rigol DS1052E or similar 2-channel 50MHz scope from eBay (~€80–120) is adequate for Phase 3. Phase 1 and 2 can be completed without a scope — a logic analyser suffices for digital debugging.
Where to buy: Mouser, Farnell, or DigiKey for proper components. AliExpress for cheap modules (gate driver breakout boards, CAN transceivers, encoder modules) — quality varies but acceptable for learning.
// build tools (free)
ToolPurposeInstall
arm-none-eabi-gccCross-compiler for ARM Cortex-Mapt install gcc-arm-none-eabi / ARM developer site
CMake 3.20+Build system — use instead of IDE project filesapt install cmake / cmake.org
OpenOCDFlash and debug over ST-Link/J-Linkapt install openocd
GDB (arm-none-eabi-gdb)Command-line debuggerIncluded with arm-none-eabi toolchain
clangdLSP server for code navigation / completionapt install clangd — needs compile_commands.json
clang-tidyStatic analysis + MISRA-C checkingapt install clang-tidy
cppcheckAdditional static analysis, MISRA addonapt install cppcheck
objdump / nm / sizeBinary analysis — section sizes, symbol inspectionIncluded with arm-none-eabi toolchain
addr2lineConvert fault PC address to source file + lineIncluded with arm-none-eabi toolchain
// testing tools (free)
ToolPurposeInstall
CeedlingTest runner for Unity + CMock in Cgem install ceedling (requires Ruby)
UnityUnit test framework for C (included with Ceedling)ceedling installs it
CMockMock generation for hardware HAL (included with Ceedling)ceedling installs it
gcov / gcovrCode coverage measurementapt install gcovr — gcc built-in gcov
GitHub ActionsCI pipeline — runs tests on every push.github/workflows/ci.yml in repo
// analysis and debugging tools
ToolPurposeInstall / Cost
Segger SystemViewFreeRTOS task timeline profilingFree at segger.com/systemview
WiresharkEthernet/TCP/UDP packet capture and analysisFree at wireshark.org
python-canCAN bus monitoring and simulation from PCpip install python-can
PulseView / SigrokLogic analyser software (works with cheap clones)Free at sigrok.org
pyserialUART communication from Python test scriptspip install pyserial
scipy + matplotlibControl system simulation and data plottingpip install scipy matplotlib
python-controlBode plots, stability margins, transfer functionspip install control
// optional but useful
ToolPurposeCost
draw.io (diagrams.net)Architecture diagrams for README and documentationFree (web or desktop)
STM32CubeIDEReference for pin/peripheral config — then abandon for CMakeFree from ST
Mermaid.jsInline diagrams in GitHub Markdown (state machines, flow)Free — built into GitHub
OBS StudioScreen recording for portfolio demo videosFree
MATLAB/Simulink StudentControl system design and simulation (more powerful than scipy)~€99/year student licence
GNU OctaveFree MATLAB alternative — runs most MATLAB scriptsFree at octave.org
// books in the programme (your existing list)
Understanding and Using C Pointers — Richard Reese
Phase 1. Finish remaining chapters on function pointers and pointer arithmetic. Strong foundation for all subsequent C work.
Modern C — Jens Gustedt
Phase 1. Type system, memory model, undefined behaviour, modern idioms. Read cover to cover. Do every exercise.
Embedded Software Design — Jacob Beningo
Phase 1. HAL design, layered architecture, state machines, testing. The "professional architecture" book.
Hands-On RTOS with Microcontrollers — Brian Amos
Phase 2. FreeRTOS API from first principles. STM32-based examples. Follow every code example on hardware.
Embedded and Real-Time Operating Systems — K C Wang
Phase 2. RTOS theory: scheduling algorithms, IPC, priority inversion theory, memory management. The "why under the API" book.
Making Embedded Systems — Elicia White
Phase 2. Architecture decisions, hardware/software interface, design for testability. Short and insightful. Read in parallel with Amos.
Applied Embedded Electronics — Jerry Twomey
Phase 3. ADC, PWM generation, signal conditioning, gate drivers, encoder interfacing, current sensing. The hardware companion to Phase 3.
The Art of Designing Embedded Systems — Jack Ganssle
Phase 4. Professional craft: firmware quality, testing philosophy, the real cost of bugs, career development. Read slowly.
// books to add (not in your original list)
Control Systems Engineering — Norman Nise
Phase 3. The standard university textbook. Read Ch. 1–5 (modelling, time response), Ch. 8 (root locus), Ch. 9 (PID design), Ch. 10 (Bode plots, stability margins). Skip the rest. Used or older editions are fine and much cheaper.
Embedded Control Systems in C/C++ — Jim Mann
Phase 3. Bridges continuous-time control theory to discrete MCU implementation. Discrete PID, z-transform, anti-windup, fixed-point. Reads Nise → Mann → hardware. Essential.
Test-Driven Development for Embedded C — James Grenning
Phase 4. The definitive TDD resource for C. Mocking hardware registers, testing without a target, refactoring for testability. If you buy one book in Phase 4, make it this one.
// st microelectronics — free application notes
AN4220 — FOC library for STM32
st.com → search "AN4220"
Full FOC implementation in C for STM32. Covers Clarke/Park, SVPWM, current sensing timing, angle estimation. Read alongside your own Week 7–8 implementation.
AN4013 — STM32 timer overview
st.com → search "AN4013"
All STM32 timer modes, configurations, and use cases. Essential reference for PWM generation, encoder mode, input capture, and ADC trigger setup.
AN3116 — STM32 ADC modes
st.com → search "AN3116"
ADC regular/injected conversion modes, DMA, multi-ADC synchronous operation, trigger sources. Essential for Phase 3 current sensing setup.
STM32 Reference Manuals
st.com → product page → Documentation tab
The ground truth for every peripheral. Keep the RM for your target MCU open at all times during Phase 1–3. The register descriptions tell you exactly what every bit does.
// arm / cortex-m documentation
Cortex-M4 Technical Reference Manual
developer.arm.com/documentation/ddi0439
Core architecture: instructions, registers, exception handling, memory model, MPU, FPU. Essential for understanding HardFault decoding (Phase 2 Week 8) and context switching internals.
ARM Application Note 209 — Using Cortex-M3/M4 Fault Exceptions
developer.arm.com → search "AN209"
Explains CFSR, HFSR, BFAR, MMFAR registers in detail. Gives worked examples of common fault causes and how to decode them. Essential companion to Phase 2 Week 8 fault handler work.
// freertos
FreeRTOS Documentation
freertos.org/Documentation
Full API reference, kernel internals book (free PDF), and worked examples. Read the internals book alongside K C Wang in Phase 2.
FreeRTOS Source Code
github.com/FreeRTOS/FreeRTOS-Kernel
Read tasks.c, queue.c, list.c, and timers.c. Phase 2 Week 1 exercise: find xReadyTasksLists[] and understand how the scheduler picks the next task. Non-optional.
// lwip
LwIP Documentation
lwip.fandom.com/wiki/LwIP_Wiki
API reference, PBUF memory management, netconn API tutorial. Read the PBUF page carefully before Phase 2 Week 6 — PBUF exhaustion is the most common LwIP bug.
// standards and safety
MISRA-C 2012 Summary (free)
barr-group.com/code-craft/coding-standard
Free MISRA-C 2012 summary and comparison. Good starting point. The full document (~£30) is worth buying if you're serious about automotive work.
ISO 26262 Overview
iso.org/standard/68383.html
The standard itself is expensive, but many free introductory summaries exist. Search "ISO 26262 ASIL introduction". Understand ASIL A–D, Part 6 software requirements, and how MISRA-C relates to it.
// control theory
Brian Douglas — Control Systems Lectures (YouTube)
youtube.com/@BrianBDouglas
The best free control systems lecture series. Covers PID, Bode plots, root locus, Nyquist in clear visual format. Watch alongside Nise in Phase 3 Weeks 1–5. Start with the PID playlist.
Khan Academy — Laplace Transform
khanacademy.org → search "Laplace transform"
Free Laplace transform review. If your Laplace is rusty at the start of Phase 3, spend half a day here before opening Nise. Essential foundation for everything in Phase 3.
// essential channels
Phil's Lab — STM32 FOC from scratch series
youtube.com/@PhilsLab
The single most relevant YouTube resource for Phase 3. Phil implements FOC step-by-step on STM32 with oscilloscope verification at every stage — exactly the same path as this programme. Watch his FOC playlist during Phase 3 Weeks 7–9.
Brian Douglas — Control Systems Lectures
youtube.com/@BrianBDouglas
The clearest free control theory resource. PID intuition, Bode plots, root locus, Nyquist stability — all visualised. Watch the "Understanding PID Control" and "Bode Plots" playlists during Phase 3 Weeks 1–5.
Fastbit Embedded Brain Academy — STM32 peripheral deep dives
youtube.com/@FastbitEmbeddedBrainAcademy
Deep STM32 peripheral tutorials: DMA, UART, SPI, I2C, timers. Useful companion for Phase 1–2 hardware work when the reference manual isn't enough.
Mitch Davis — FreeRTOS tutorial series
youtube.com/@MitchDavisTech
Practical FreeRTOS on STM32. Good complement to Amos's book for Phase 2. Covers queues, semaphores, software timers with working code examples.
Beningo Embedded Group — Architecture and design videos
youtube.com/@BeningoEmbedded
Jacob Beningo's channel. Supplements his book (Phase 1). Covers HAL design, state machines, testing patterns — short, practical videos.
GreatScott! — Electronics fundamentals
youtube.com/@GreatScottLab
Clear electronics explanations: MOSFETs, op-amps, filters, power supplies. Useful for Phase 3 hardware concepts (gate drivers, current sensing, bootstrap circuits).
// specific playlists to watch by phase
Phase 1: Beningo Embedded — HAL design series. Fastbit — STM32 GPIO, UART, DMA tutorials.
Phase 2: Mitch Davis — FreeRTOS series. Fastbit — STM32 DMA deep dive. Segger — SystemView tutorial (segger.com).
Phase 3 (control theory): Brian Douglas — entire PID and Bode plot playlists. Essential. Watch before touching hardware.
Phase 3 (FOC implementation): Phil's Lab — FOC from scratch playlist. Watch Weeks 7–9 of the programme alongside this series.
Phase 4: Barr Group webinars on MISRA-C and ISO 26262 (barr-group.com — free registration). Beningo — unit testing in embedded C series.