← Back to Projects

Arseni Aliakseichyk

Embedded and Infrastructure Engineer

arseni.aliakseichyk@gmail.com LinkedIn GitHub Portfolio Słupsk, Poland

STM32F4 Peripheral Firmware Development

Register-Level Firmware on STM32F411 & STM32F407 via LL Drivers

Personal • 2024 – 2025
Complete

A collection of firmware projects on the STM32F4 family. The main working board is the STM32F411 (Nucleo / Black Pill class), chosen for its compact form factor and lower power draw. The STM32F407VGT6 Discovery was introduced to me during training at GlobalLogic Poland and is the board I use primarily as a learning platform for peripheral exploration.

My deliberate choice on both boards is the ST Low-Level (LL) driver library together with CMSIS - not HAL. STM32CubeMX is used only for the initial clock tree configuration (PLL setup, SYSCLK source, peripheral clock dividers); the generated project is stripped down to the LL headers + startup + linker script, and every peripheral from that point on is configured and driven directly from application code through LL calls. This gives register-level control and determinism without writing the full bit-banging boilerplate by hand.

Key Features

  • Boards: STM32F411 (main working board) and STM32F407VGT6 Discovery (GlobalLogic training / learning platform)
  • Driver stack: LL drivers + CMSIS from application code - no HAL abstraction layer in the runtime path
  • Toolchain: STM32CubeMX used only for clock init; builds via STM32CubeIDE / arm-none-eabi-gcc
  • GPIO configuration through LL + direct register access where useful
  • Timer-based PWM generation for motor and LED control via LL_TIM
  • NVIC interrupt handling for event-driven firmware
  • SPI, I2C, and UART peripheral communication via LL
  • ADC/DAC analog signal processing via LL
  • Hardware debugging with LA1010 logic analyzer and oscilloscope via JTAG/GDB
  • C
  • STM32F411
  • STM32F407
  • ARM Cortex-M4
  • LL drivers
  • CMSIS
  • CubeMX (clock init)
  • SPI
  • I2C
  • UART
  • ADC/DAC
  • NVIC

View source on GitHub →