Become an Embedded Expert with These 100+ Open Source Projects!

Become an Embedded Expert with These 100+ Open Source Projects!

In the early stages of learning, the hardest part is finding learning materials, so today I recommend a repository that summarizes embedded open source projects.

This article carefully compiles some embedded-related resources, including but not limited to programming languages, microcontrollers, open source projects, Internet of Things, operating systems, Linux and more. These materials are continuously updated, aiming to create the most comprehensive embedded resource library on the internet.

Address:
https://gitee.com/zhengnianli/EmbedSummary

Become an Embedded Expert with These 100+ Open Source Projects!

Become an Embedded Expert with These 100+ Open Source Projects!

1. OS

HarmonyOS: An open-source distributed operating system for all scenarios.

RT-Thread: A small and beautiful IoT operating system.

TencentOS tiny: A real-time operating system developed for the IoT field.

FreeRTOS: A lightweight operating system.

µC/OS: A fully functional embedded operating system.

mbed-os: A complete software solution created by ARM, focusing on IoT.

BabyOS: A code framework developed to accelerate MCU projects.

LuatOS: A real-time operating system running on embedded hardware that requires minimal flash memory space; users can write Lua code to achieve various functionalities.

Contiki-OS: A small, open-source, and easily portable multitasking operating system.

DJYOS: A Dujiangyan operating system.

klite: A simple and easy-to-use embedded operating system kernel.

lmosem: A complete 32-bit operating system kernel based on the ARM platform, supporting multiprocessing, multi-CPU, memory management, and file and device management, written from the first line of boot code.

freenos: FreeNOS microkernel operating system.

More resources coming soon…

2. Practical Libraries/Frameworks

cJSON: A lightweight JSON parsing library based on C.

jsmn: A small JSON parsing library based on C.

MultiTimer: A software timer extension module.

MultiButton: A small, simple, and easy-to-use event-driven button driver module.

SmartTimer: A lightweight timer scheduler based on STM32.

CmBacktrace: An error code automatic tracing library for ARM Cortex-M series MCUs.

EasyLogger: A super lightweight, high-performance C/C++ logging library.

EasyFlash: An open-source lightweight embedded Flash storage library.

SFUD: An open-source serial SPI Flash universal driver library.

lw_oopc: A lightweight C language object-oriented programming framework.

PLOOC: Protected low-overhead object-oriented programming.

cmd-parser: A very simple and easy-to-use command parser.

mqttclient: A resource-efficient, highly stable MQTT client.

NorthFrame: An ultra-simple graphical state machine framework for microcontrollers.

letter-shell: A powerful embedded shell.

pigweed: A collection of embedded target libraries (modules) open-sourced by Google.

lwrb: A lightweight general ring buffer management library.

cQueue: Message queue function written in ANSI C.

Unity: A lightweight testing framework suitable for embedded systems.

Embedded Unit: A pure standard C-based unit testing framework.

CuTest: A tiny C language unit testing framework, all code combined is less than a thousand lines.

cmockery: Google’s C unit testing framework.

googletest: Google’s C++ testing framework.

znfat: ZhenNan FAT, a domestic embedded file system solution.

libu: A multi-platform utility library written in C.

LWIP: A small open-source TCP/IP protocol stack.

SQLite: An open-source embedded relational database.

OpenBLT: An open-source bootloader.

Linux Lab: A Linux kernel laboratory, a fast learning, development, and testing environment for Linux kernels based on Docker/Qemu.

airkissOpen: Tencent Airkiss protocol parsing library.

nr_micro_shell: Shell for MCU, microcontroller command line interaction.

FlexibleButton: A small and flexible key processing library based on standard C.

mbedtls: An open-source, portable, easy-to-use, readable, and flexible SSL library.

mosquitto or mosquitto (fast download): An open-source MQTT broker.

inih: An INI file parser written in C.

QP: QP real-time embedded framework.

MS-RTOS: Micro Safe RTOS.

protobuf-c: Protobuf-c.

eepromfs: A simple class file data read/write library based on EEPROM.

gear-lib: A C library suitable for IoT/embedded/network service development.

mult_timer: A super streamlined multi-timer under Linux.

EFSM: An event-driven finite state machine.

EasyX: A free graphics library.

More resources coming soon…

3. GUI Related

GuiLite: The simplest approach – 5000 lines/only header files/all-platform GUI library.

yoxios: A lightweight IoT system and hardware platform developed based on Linux.

ToughGFX: A GUI software framework written in C++.

emwin: An established GUI library.

littlevGL: A free open-source graphics library.

Wild Bull LittlevGL demo: A LittlevGL demo program based on the Wild Bull development board.

MonoGUI: A black-and-white graphical user interface system.

MiniGUI: A fast, stable, cross-operating system GUI.

QT: A cross-platform application and user interface framework.

QT_Creator: QT_Creator download link.

Gtk: A graphics library for creating graphical user interfaces.

AWTK: A GUI framework developed in C by ZLG.

Linglong GUI: Linglong GUI tutorial page.

More resources coming soon…

4. IoT and Smart Home

HomeAssistant: An open-source smart home system based on Python.

Domoticz: An open-source smart home system.

Kaa IoT Platform: A rich-featured open and efficient IoT cloud platform.

RT-Thread IoT SDK: Various routines based on the RT-Thread IoT development board.

Building IoT from scratch: A web development tutorial suitable for embedded developers.

More resources coming soon…

5. Examples/Projects/Software-Hardware Integration

qt_2019_ncov: A COVID-19 monitoring platform implemented with Qt/C++.

H7-TOOL_STM32H7_App: H7-TOOL multifunctional development tool.

DAPLink/CMSIS DAP: A debugger that integrates download, debugging, and USB virtual serial port.

mcush: MCU shell.

DoST: Develop STM32 under Linux.

Crazepony: Crazepony open-source quadcopter.

MiniQ: A mini quadcopter.

LiPow-Firmware: An open-source lithium battery charger based on STM32G0 using USB type-C power supply.

Avem: A lightweight drone flight control.

SoftwareSerial: A software serial port program simulating STM32 IO ports.

Serial ISP program: An STM32 serial ISP program.

DSO_Nano: A handheld oscilloscope.

DSView: A cross-platform logic analyzer.

MCU-Development: Various common hardware module demos based on the 51, 430, STM32F10X, STM32F407X, T4MC123G platforms.

Arduino: An open-source electronics prototyping platform.

EWAHBoolArray: Bitmap algorithm.

More resources coming soon…

6. Learning Materials/Resources/Tools/Websites

100ask download: Baiwen website material download center.

armfly: Anfu Lai/Hardman embedded forum.

fire download: Wildfire material download center.

openedv download: ZD Atom material download center.

Wildfire: Wildfire electronics forum.

ZD: ZD Atom forum.

ST: ST Chinese community.

Xunwei Development Community: Beijing Xunwei ARM development community.

Xunwei Official Website: Xunwei official website.

NXP Community: NXP forum.

Linux: Linux kernel official website.

Linux Source Code: Online reading of Linux kernel source code.

Buildroot: Buildroot source code.

Debian: Debian official website.

Ubuntu: Ubuntu official website.

Lychee Pie: Lychee Pie guide.

Tsinghua Mirror Site: Tsinghua University open-source software mirror site.

USTC Mirror Site: University of Science and Technology of China mirror site.

u-boot: U-boot source code download page.

bear-pi: Little Bear Pi demo.

Home Study Tribe: A learning website for Linux, programming languages, kernels, and driver development.

Microcontroller Tutorial Network: Basics of microcontrollers, design examples, forums.

GNU: GNU official website.

ChinaUnix: Linux/Unix related.

PyQt5: PyQt5 tutorial.

qter: QT open-source community.

Git Manual: Git learning manual.

Open Source Project Style: Google open-source project style guide (Chinese version).

Electronics Family: An electronic navigation website.

21ic: 21ic electronics website.

Xinlu Heng Electronics: Xiao Meige blog, FPGA forum.

Embedded Developer Community: Chuanglong forum.

micropython: Micropython Chinese website.

Taixiao Technology: Linux related.

Diantang Technology: STM32 related.

Source Code Usage Example Aggregator: Search CPP code examples from over 1 million open-source projects.

KST-51: “Teaching You to Learn 51 Microcontroller Step by Step”.

Atom Brother: Focused on electronic technology education.

digoboy: Digua Pi video website.

c.biancheng: C language Chinese website.

open-c-book: “C Language Programming Perspective”.

PyQt5: PyQt5 online tutorial.

open-shell-book: “Shell Programming Examples”.

software_unit_test: “Introduction and Practice of Software Unit Testing”.

kerneltravel: Journey through the Linux kernel.

Wowo Technology: Slow down and enjoy technology.

bookstack: Bookstack website.

wireshark: Packet capture tool download link.

MobaXterm: A useful terminal software.

Stduino: An integrated development platform for quick learning aimed at 32-bit processors.

easyicon: A free icon download website.

codingdict: A programming tutorial website similar to the Rookies tutorial.

codingdict open-source software: A collection of various open-source software collected by the codingdict website.

······

END
Source: Uncle Wheat
Copyright belongs to the original author. If there is any infringement, please contact to delete.
Recommended Reading
I discovered another open-source serial port tool, it’s amazing
Graduated with a 450,000 offer, working in chips is really great!
The skill checklist and upgrade roadmap to become an embedded expert
→ Follow to avoid getting lost ←

Leave a Comment