About
Embedded systems enthusiast and active STM32 application developer.
Over the years, I have written many small, dependency-free C libraries for microcontrollers: parsers, buffers, memory managers and protocol stacks that are easy to use and fit on devices with only a few kilobytes of RAM.
Several of these open-source projects, along with others I’ve contributed to, are listed below.
Embedded systems libraries
The lightweight libraries family: portable C libraries for microcontrollers, each documented at docs.majerle.eu and hosted on GitHub.
-
LwBTN
Button manager: clicks, multi-clicks and long presses.
Docs -
LwCELL
AT command parser for GSM cellular modules.
Docs -
LwDTC
Date and time cron library.
Docs -
LwESP
ESP-AT command parser for Espressif Wi-Fi devices.
Docs -
LwEVT
Event management system.
Docs -
LwGPS
GPS NMEA sentence parser.
Docs -
LwJSON
JSON parser built for embedded systems.
Docs -
LwMEM
Dynamic memory manager across one or more memory regions.
Docs -
LwOW
1-Wire protocol implemented over a standard UART.
Docs -
LwPKT
Packet protocol manager for links between devices.
Docs -
LwPRINTF
Lightweight printf and stdio implementation.
Docs -
LwRB
General-purpose ring buffer, safe for one reader and one writer without locks.
Docs -
LwSHELL
Command-line shell for embedded systems.
Docs -
LwUTIL
Lightweight generic utility functions.
Docs -
LwWDG
Software watchdog for tasks under an operating system.
Docs
Projects
Other things I have built or contributed to.
-
C coding style
Recommended C code style and coding rules for C99 or later. Comes with an AI agent skill to write, edit and format code.
-
STM32F4-Discovery.net
Tutorials and libraries for STM32 microcontrollers.
-
STM32 UART & DMA
STM32 UART examples using DMA for efficient receive and transmit when the received data length is unknown.
-
Arm CMake build kit
CMake build kit for Arm Cortex-M projects with simple configuration.
-
STM32 CMake
Tutorial explaining the STM32 development flow in Visual Studio Code with CMake and the Cortex-Debug extension.
-
Addressable LEDs
WS2812 and similar addressable LEDs driven by an STM32 timer and DMA, offloading the CPU.
-
CanOpenSTM32
CANopen stack for STM32: initial setup and active contributor.
Contact
Questions about a library are best asked as a GitHub issue on its repository, so others can find the answer too.
For anything else:
tilen [at] majerle.eu