Skip to content
View a5021's full-sized avatar
🙂
🙂

Block or report a5021

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
a5021/README.md

Hi there! I'm an Embedded Software Engineer

I specialize in low-level, register-level development (Bare Metal) and firmware optimization for ARM Cortex-M microcontrollers. I focus on writing highly efficient, non-blocking peripheral drivers and creating custom automation tools to streamline the development workflow.


Technical Stack

Microcontrollers (MCUs)

  • STMicroelectronics: STM32F103 (Blue Pill), STM32F030
  • Nordic Semiconductor: nRF52832

Peripherals & Protocols

  • Wireless/Radio: Proprietary 2.4GHz (nRF24L01), BLE (nRF52)
  • Sensors: BME280 (Bosch), DS18B20 (Dallas/Maxim)
  • Interfaces: Register-level control of UART, SPI, I2C, 1-Wire, DMA, and Timers

Languages & Automation Tools

  • Firmware: C (Primary for MCU), C++
  • Automation & Scripting: Python (code generation, parsing), Bash / Shell scripting
  • Methodology: Pure CMSIS & Register-level development (No heavy HAL abstractions), CPU overhead optimization, and Low Power management

Featured Projects

Here are the key repositories that reflect my engineering approach and code quality:

  • Overview: An asynchronous, non-blocking driver for the DS18B20 thermometer on STM32F103, built strictly at the register level.
  • Key Feature: Eliminates blocking hardware delays entirely, resulting in minimal CPU overhead and making it safe for time-critical, multi-tasking systems.
  • Stack: C, STM32, Reference Manual Registers.
  • Overview: A Python-based CLI tool designed to automatically generate CMSIS-compliant peripheral initialization templates for STM32 MCUs.
  • Key Feature: Serving as a lightweight alternative to heavy IDE tools (like STM32CubeMX) for developers who prefer clean, bloat-free bare-metal code.
  • Stack: Python, CMSIS, Bare-metal workflow.
  • Overview: Firmware for a wireless environmental sensor node measuring pressure, humidity, and temperature.
  • Key Feature: Implements direct radio communication on Nordic chips with a strong focus on low-power optimization and standalone efficiency.
  • Stack: C, nRF52832, BME280.
  • Overview: A shell script for instantaneous scaffolding of a clean, CMSIS-ready project structure for BluePill boards, bypassing bulky IDE project wizards.
  • Stack: Bash / Shell.

Profile Analytics

This dynamic card updates automatically and analyzes the codebase across all my public repositories:

a5021's GitHub stats


Connect with Me

  • Telegram: @a5021
  • Explore More: Feel free to check out the Repositories tab for other low-level projects (including multi-sensor setups on STM32F030 + nRF24L01).

Pinned Loading

  1. NRF52832-BME280-RADIO NRF52832-BME280-RADIO Public

    NRF52832 + BME280 Wireless Sensor

    C 6

  2. non-blocking-ds18B20-driver-for-stm32f103c8t6 non-blocking-ds18B20-driver-for-stm32f103c8t6 Public

    A bare-metal, register-level DS18B20 driver for STM32 with minimal CPU overhead.

    C 7

  3. BluePill_Project_Generator BluePill_Project_Generator Public

    STM32F103 DevBoard Project Generator

    Shell 5 1

  4. ARDUINO-NRF52832-EXAMPLES ARDUINO-NRF52832-EXAMPLES Public

    Code snippets and examples for NRF52832 based Arduino board

    C++ 8 3

  5. stm32codegen stm32codegen Public

    CMSIS-based bare-metal initialization code generator for STM32

    Python 3 1

  6. STM32F030F4P6-WIRELESS-MULTISENSOR STM32F030F4P6-WIRELESS-MULTISENSOR Public

    STM32F030F4P6 based wireless NRF24L01 multisensor

    C 4 1