Back to projects
2025

Bare-Metal STM32F4 Library

A from-scratch STM32F4 bare-metal firmware library focused on deterministic startup, direct peripheral ownership, and reusable low-level drivers without HAL dependence.

Highlights

I maintain this STM32F4 library because I want to understand the machine before I abstract it.

The goal is not to reject productivity tools for the sake of purity. The goal is to build a firmware base where I know exactly what the startup path is doing, how memory is laid out, how peripheral ownership is defined, and where timing or side effects can appear. That level of control is valuable when debugging embedded systems that need predictable behavior.

Design philosophy

The library is intentionally close to the hardware. I focus on drivers, register-level interfaces, startup code, and carefully chosen abstractions that remove repetition without hiding system behavior.

That makes it useful in two ways:

  1. As a personal framework for faster future work
  2. As a learning platform for new architectures and peripherals

What it includes

The project is centered on STM32F4, where I can build and test low-level behavior directly. The focus is on reusable peripheral drivers, startup structure, memory control, and understanding how the system behaves before any larger abstraction layer is added.

Why it belongs in the portfolio

This project shows how I think when there is no team deadline pushing me toward the quickest tool-generated answer. It captures my engineering instincts: understand deeply, build reusable foundations, and stay close enough to the hardware to reason confidently when things go wrong.