awesome-embedded-software
github.com/idoka/awesome-embedded-software ↗:stars: List of software (HW interfaces, libs, protocols, etc) specifically suitable for resource-constrained Embedded Systems (low-memory and low-power) like 8-bit, 16-bit and 32-bit microcontrollers.
Use this list with your AI agent
Add the Context Awesome MCP server to Claude, Cursor, or any MCP client, then ask:
"Show me radio frequency protocols resources from awesome-embedded-software"
Installation instructions →What's inside
Protocols
- Adafruit's RadioHeadRadio Frequency Protocols
Packet Radio library for embedded microprocessors with
- aem-modbus-simulator
Open-source Python Modbus RTU/TCP slave simulator emulating an industrial DC monitor (147 holding registers, 6 baudrates). Useful for testing embedded firmware Modbus master implementations without physical slave hardware on the bench.
- atatProtocol Parsers
Lib for AT-like custom commands processing.
- atcommanderProtocol Parsers
Portable C++ library for sending AT commands and parsing their responses.
- ATParserProtocol Parsers
An mbed-os compatible AT command parser.
- cATProtocol Parsers
Plain C library for parsing AT commands for use in host devices.
Cryptography
- µAESGeneral
Lightweight, highly flexible, portable and ANSI-C compatible implementation of the AES encryption and block cipher modes.
- arduinolibsGeneral
Arduino Cryptography Library.
- c25519-and-ed25519Elliptic Curve Cryptography
Curve25519 and Ed25519 for low-memory systems (Curve25519 scalar multiplication uses less than half a kB of peak stack usage).
- CycloneCRYPTOGeneral
A cryptographic toolkit designed for use in embedded systems. It provides a comprehensive set of cryptographic primitives (hash functions, stream and block ciphers, public key cryptography) that can be used to add security features to your embedded application.
- kryptonGeneral
Embedded TLS/DTLS library, source and binary compatible OpenSSL subset.
- LibHydrogenGeneral
Lightweight, secure, easy-to-use crypto library suitable for constrained environments.
GUI
- AFGUI
Embedded GUI Library.
- bitmap-OSD-fontFont utils
A 'C' bitmap font for on screen display.
- EasyGUI
EasyGUI for embedded systems (highly optimized for STM32).
- eGUI
An eGUI embedded graphic library.
- Embedded-graphics
2D graphics library that is focused on memory constrained embedded devices to draw graphics without using any buffers (Rust).
- emGUI
Simple C UI Library for embedded platforms.
OS
- Apache NuttXRTOS
Apache NuttX is a mature, real-time embedded operating system (RTOS).
- Arm Mbed OSRTOS
Platform operating system designed for the Internet of Things. It includes all the features you need to develop a connected product based on an Arm Cortex-M microcontroller, including security, connectivity, an RTOS and drivers for sensors and I/O devices.
- asyncEvent based scheduler
Asynchronous framework in C for systems where low memory usage is important.
- Azure RTOS ThreadXRTOS
Advanced real-time operating system (RTOS) designed specifically for deeply embedded applications.
- chaos
Bare metal multicore ARM® Cortex®-A operating system based on a microkernel architecture.
- ChibiOS/RTRTOS
Compact and fast real-time operating system supporting multiple architectures designed for embedded applications on microcontrollers of 8-, 16-, and 32-bits.
Uncategorized
- Apache NuttX Apps
Collection of tools, shells, network utilities, libraries, interpreters and can be used with the NuttX RTOS.
- cembed
Small utility for embedding files in a C header.
- incbin
One-header library for compile-time embedding binary and textual files.
- modm
Barebone embedded C++20 library generator for AVR, SAM and ARM Cortex-M Microcontrollers (supported 3534 devices).
User Interface
- BBmenuMenu
Simple portable CLI menu for misc tasks (it is based on text menus, easily defined in a file).
- cliCLI
CLI (Command Line Interface) example build in pure C. Designed for MCU, support block/non-block mode input.
- cmd-lCLI
Command line handler for embedded devices.
- EasyLoggerLogging
Ultra-lightweight (ROM<1.6K, RAM<0.3k), high-performance C/C++ log library.
- elogLogging
Log system is thinked for embedded systems with mininmal resource utilization. The log system is designed to minimize memory compsumition in flash or RAM, enable an eficient in-ram loggin buffer with very efficient storage.
- embedded-cliCLI
Single-header CLI with history and autocompletion for embedded systems.
Data processing
- caffepressoAI ML
Optimized Library for Deep Learning on Embedded Accelerator-based platforms.
- CMSIS-DSPDSP and Filtering
Embedded compute library for Cortex-M and Cortex-A.
- CraniumAI ML
Portable, header-only, feedforward artificial neural network library written in vanilla C99.
- ECLCompression
Embedded Compression Library is not only for embedded, it is mostly oriented for small data and has special optimized low-memory modes for restricted environments.
- edge-agents (ForestHub)AI ML
Open-source (AGPL-3.0) 30 MB AI agent runtime for edge devices. Offline by default; GPIO/UART/MQTT as first-class nodes; local SLMs alongside cloud LLMs. Runs on Raspberry Pi, Jetson, STM32MP25.
- EigenMath
C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
Hardware
- CanBootCAN bus
Can Bootloader for MCUs (Currently lpc176x, stm32 and rp2040 MCUs are supported).
- Canbus-MessageCAN bus
CAN message assembly and disassembly library for teensy & stm32.
- CherryUSBUSB
Tiny, beautiful and portable USB host and device stack for embedded system with USB.
- embedded-driver
Embedded driver library for various peripheral.
- FastIOIO
Fast GPIO forked from
- libcanardCAN bus
Compact implementation of the UAVCAN/CAN protocol in C for high-integrity real-time embedded systems.
Showing a sample of 265 resources. View the full list on GitHub →