Introduction
Continuously updated for reference! To prevent losing track later, please like and bookmark.
Main Content
Embedded projects worth bookmarking:
-
Earth_rover_localization: ROS package for configuring the robots_localization package’s EKF. Using GPS Piksy Multi and IMU MTi-3 AHRS for sensor fusion -
piksi_multi_rtk: Repository containing ROS drivers and utilities for Piksi RTK receiver devices. -
xsens_mti_ros_node: ROS drivers for third-generation and fourth-generation Xsens IMU devices.
-
1. Supports speed, distance, time, calories, and heading display -
2. Has offline maps, supports displaying real-time location, and supports zooming -
3. Supports step counting -
4. Supports displaying latitude, longitude, and altitude -
5. Supports RTC automatic calibration based on GPS -
6. Supports recording tracks and exporting GPX format files -
7. Supports automatic data saving during power loss (JSON format) -
8. Four hours of battery life (continuous operation, always on display) -
9. Supports simulation on PC emulator for debugging without hardware (configured as Release x86) -
10. Supports displaying real-time tracks
20. FindMyCat
is a soft and hardware open-source pet tracker that works outdoors and indoors. The battery lasts for months (in Near Home mode, standby power consumption is 18uA, with a 350mA battery lasting for 2 years).
https://github.com/FindMyCat/
21. FarmBot
The FarmBot project is a large open-source project that includes hardware (Arduino and RPi), FarmBot OS, and FarmBot web APP
https://github.com/FarmBot
22. Astrobee Robot
is a new type of zero-gravity robotic system designed to support space exploration missions. The Astrobee robot is developed through a collaboration between NASA and the École Polytechnique Fédérale de Lausanne (EPFL) and is mainly used for performing various tasks in microgravity environments.
The source code for the Astrobee robot software, including flight software running on the Astrobee robot, software simulators, and supporting tools, is mainly written in C++.
The project consists of three modules: 1. Propulsion module: Located on the sides of the robot, these teal modules are primarily responsible for moving and positioning the robot in space. They contain hydraulic-driven thrusters that generate thrust by expelling gas, enabling the robot to move autonomously in a microgravity environment. 2. Core module: Located in the middle of the robot, this yellow module is the heart of the robot, responsible for controlling and managing all functions. It contains processors, sensors, batteries, and other critical components for processing data from various sensors, making decisions, and controlling other modules to execute corresponding actions. 3. Sensor module: Besides the core module, the Astrobee robot is equipped with multiple sensors such as cameras, laser radars, ultrasonic sensors, etc. These sensors are distributed around the robot to perceive the surrounding environment, assisting the robot in autonomous navigation and obstacle avoidance.
https://github.com/nasa/astrobee
23. open-source-rover
The JPL open-source rover is a scaled-down version of a 6-wheeled rover design, used by JPL to explore the surface of Mars. The open-source rover is entirely designed using consumer off-the-shelf (COTS) components. This project aims to provide educational and learning experiences for those interested in mechanical engineering, software, electronics, and robotics, and serves as an excellent research platform for rugged terrain. No prior skills or knowledge are required.
https://github.com/nasa-jpl/open-source-rover
24. SmartBMS
The Smart Battery Management System (BMS) is crucial for ensuring battery safety, extending lifespan, and improving energy efficiency.
Smart BMS is an open-source battery management system suitable for lithium batteries (Lifepo4, Li-ion, NCM, etc.).
Smart battery management systems need to have real-time monitoring, charge and discharge management, battery state estimation, fault diagnosis and warning, battery balancing management, temperature management, data collection and analysis, remote monitoring and control, battery performance prediction, and user interaction interface, among other functionalities. These functions work together to ensure the safe, stable, and efficient operation of batteries, extending battery lifespan and improving energy efficiency.
https://github.com/Green-bms/SmartBMS
25. Smart Plant
Smart Plant aims to help gardeners monitor the health of plants. With an advanced sensor kit, Smart Plant can measure soil moisture, environmental light, air temperature, and air relative humidity. In addition to IoT functions, Smart Plant is also equipped with a 2.9-inch electronic paper display, making plant data clear at a glance.
Smart Plant is designed for high energy efficiency, with its ESP32 microcontroller featuring deep sleep functionality, allowing the battery to be used continuously for weeks. When charging is needed, Smart Plant can be charged using a USB-C cable or a small solar panel, making it an environmentally friendly choice for gardeners looking to minimize their environmental impact.
https://github.com/JGAguado/Smart_Plant/
26. OpenEarable
OpenEarable is a brand new open-source Arduino platform (Arduino Nano 33 BLE Sense Nordic nRF52840) for ear sensing applications.
It supports a range of sensors and actuators: 9-axis inertial measurement unit, ear canal pressure and temperature sensors, inward-facing ultrasonic microphones, as well as speakers, buttons, and controllable LEDs. A series of example application scenarios demonstrate the versatility of the prototype platform. Thus, OpenEarable provides a general, open sensing platform for headphone development.
https://github.com/OpenEarable/open-earable
27. Home Assistant
Home Assistant is a feature-rich and flexible smart home automation platform, which is also a well-known project in the open-source smart home field, suitable for personal DIY smart home device matching upper computer services. This is often the most troublesome part for many enthusiasts.
https://github.com/home-assistant
Independent official website address:
https://www.home-assistant.io/
28. traccar
Traccar is a free, open-source modern GPS tracking system that supports over 170 GPS protocols and more than 1500 models of GPS tracking devices. It is suitable for various scenarios, such as taxis, vans, trucks/trailers, agricultural equipment, fleets, containers, vessels, all-terrain vehicles, and personal vehicle tracking. Traccar has rich features including switchable satellite and street view maps, tracking motion trajectories, tracking trips, stop points, etc.
The backend service of Traccar is based on Java and can be used with any major SQL database system (such as MySQL). Setting up the Traccar server requires some basic Linux knowledge. The installation process is relatively simple, just follow the official tutorial. Once the server-side is running, users can monitor vehicle data in real-time and query historical data through the web interface.
Tests have shown that Traccar’s positioning accuracy is around 10 meters, which is quite good. In addition, Traccar also supports corresponding models of mobile phones or GPS locators, making it easy for users to choose according to their needs.
https://github.com/traccar/traccar
29. ZSWatch
ZSWatch is an open-source smart watch that includes both hardware and software. Since ZSWatch is built on top of Zephyr RTOS, it is named ZSWatch-Zephyr Smartwatch.
Zephyr was originally developed by Wind River as a microkernel and became a project maintained by the Linux Foundation in 2016. It has developed into a fully functional embedded OS. The platform now supports ARM, RISC-V, X86, Xtensa, and many other processor platforms, with native BLE protocol stack and complete Net protocol stack, including TCP/IP and application layer protocols, providing strong support for embedded application development.
https://github.com/jakkra/ZSWatch
30. iCupBox smart coaster
This smart coaster product is designed based on the GTD (Getting Things Done) time management concept, aiming to remind users to focus on work and timely drink water and take breaks, thereby improving work efficiency.
-
Client APP, developed using QML, integrates GTD time management methods and communicates with the coaster firmware system to control its display content; -
Coaster firmware system, using ESP8266 as the main control, integrates WIFI, Bluetooth, infrared transceiver, 0.96-inch OLED, DHT11 temperature and humidity module, lithium battery, and lithium battery charging module.
https://gitee.com/jiangtao008/iCupBox
31. Electronic ink screen IoT badge – badgy
32. Open-source embedded operating system NuttX
-
NuttX is designed to be very compact, suitable for microcontroller environments. At the same time, it has high scalability, ranging from 8-bit to 32-bit embedded systems, and even supports 64-bit environments. -
As a real-time operating system, NuttX fully complies with POSIX standards, ensuring real-time performance, and it is fully open source. -
After years of development and multiple version iterations, NuttX has gained market recognition for its rich features, stable performance, and high commercialization maturity.
Since 2017, Xiaomi has developed IoT products based on NuttX. With Xiaomi’s promotion, NuttX officially entered the Apache Foundation in 2019, renamed Apache NuttX. Xiaomi’s IoT embedded software platform – Xiaomi Vela, is built on the open-source embedded operating system NuttX. This means that learning this system will greatly help students who wish to pursue embedded development at Xiaomi in the future.
33. Microsoft’s open-source project: Devicescript
DeviceScript is an open-source project launched by Microsoft Research, aimed at extending the TypeScript language to micro IoT devices.
DeviceScript brings the developer experience of TypeScript to low-resource, microcontroller-based devices (like ESP32 and RP2040 hardware platforms). It is a subset of TypeScript that is compiled into custom VM bytecode that can run in very limited environments, allowing developers to leverage TypeScript’s strong typing and object-oriented features to develop IoT devices.
https://github.com/microsoft/devicescript
34. Ultra-mini robot Dimebots
As the title suggests, Dimebots are a series of autonomous and independent micro-robots that are small enough to fit on a coin and weigh less than a cent, making Dimebots one of the smallest robots in the world.
Thus, the project’s focus is on how to achieve the necessary functionality within such a small size, which is very relevant for many projects with size constraints, from material selection to programming implementation.
https://github.com/dimebots/dimebots
35. Open-source video surveillance software – zoneminder
ZoneMinder is an integrated and comprehensive video surveillance solution designed for Linux systems. It can capture, analyze, record, and monitor any CCTV or security camera signals connected to Linux machines. The software is compatible with Linux distributions that support the Video For Linux (V4L) interface and has been successfully tested with cameras connected to BTTV cards, various USB cameras, and most IP network cameras.
As a free and open-source video surveillance software, ZoneMinder is developed specifically for Linux systems, supporting IP cameras, USB cameras, and analog cameras, and provides a convenient web interface for users to monitor in real-time. The software was inspired by an unfortunate incident where the author’s garage was robbed, prompting him to design a monitoring security system.
ZoneMinder utilizes Linux servers, PHP, MySQL databases, and multiple cameras to provide users with a powerful monitoring platform. Users can easily monitor important places through the web interface and receive timely email or SMS notifications in case of abnormal events.
PS: The birth of ZoneMinder stems from an unfortunate event – the author’s garage was robbed. This experience inspired him to design a monitoring security system aimed at protecting important places through technology. Thus, ZoneMinder was born, becoming a powerful and easy-to-use video surveillance software.
GitHub: https://github.com/ZoneMinder/zoneminder
Documentation: https://zoneminder.readthedocs.org
36. Open-source IoT platform – thingsboard
ThingsBoard is an open-source IoT platform based on Java, designed for rapid development, management, and scaling of IoT projects.
Application scenarios:
Smart home: Manage and monitor home sensors and devices through ThingsBoard.
Industrial IoT: Monitor and optimize industrial equipment and processes.
Smart city: Monitor and manage urban infrastructure, such as traffic, lighting, and environmental sensors.
GitHub: https://github.com/thingsboard/thingsboard
37. Build your own STM32G4 oscilloscope – black_scope
This is an open-source oscilloscope project based on STM32 that I saw at Jialichuang, which is an idea I have always wanted to do but haven’t had time for. I will try to replicate it when I find time; it’s a very good learning project for STM32.
Introduction: https://www.eetree.cn/project/2612
Official website: https://hackaday.io/project/192234-stm32g4-scope
GitHub: https://github.com/jgpeiro/black_scope
38. Open-source smart health wearable – healthypi move
HealthyPi Move is an open-source hardware device that allows you to track all vital signs with high accuracy. However, it is not just a smart watch equipped with a heart rate monitor. It is a comprehensive wrist-worn vital sign monitoring and recording device that can measure ECG, photoplethysmography (PPG), blood oxygen saturation (SpO₂), finger-measured blood pressure, skin electrical activity/skin conductance response (EDA/GSR), heart rate variability (HRV), respiratory rate, and even temperature.
GitHub:
https://github.com/Protocentral/healthypi-move-hw
https://github.com/Protocentral/healthypi-move-fw
https://github.com/Protocentral/protocentral_openview2
39. AI car based on ESP32-CAM
ESP32-CAM is a microcontroller module integrated with Wi-Fi and Bluetooth functions, also specifically equipped with a camera interface, making it an ideal choice for building smart robots. In this project, I will demonstrate how to use the ESP32-CAM module to build a simple AI robot. This robot can transmit video streams in real-time to Android devices and perform AI task processing on Android devices.
The highlight of this project is the integration of AI recognition in the smart car, making it very friendly for students looking to innovate for entrepreneurship competitions. It has innovative points and combines skills related to traditional smart car control, highly recommended for learning.
Open-source address:
https://github.com/longpth/ESP32CamAI
40. An ultra-cool geek watch based on ESP32
Let’s start with a picture, a very geeky and hardcore DIY watch. I personally love this kind of hardware product, which can achieve as many functions as possible within limited space, testing overall skills.
However, I would not recommend replicating this project; the cost will be high and the difficulty quite significant. Instead, everyone can learn about the project process and refer to the design ideas.
Original address:
https://www.roboticworx.io/p/build-the-ultimate-smartwatch-lidar
Source code address:
https://github.com/RoboticWorx/Gateway-Smartwatch/tree/main
41. Build an IoT demo from scratch – soft-and-hard
Thus, the tutorial’s focus is on linking the entire chain from hardware to server. The author recorded a video and tutorial, published on Bilibili and GitHub, which is very practical and creative for those wanting to enter the IoT field.
42. QuarkTS – Small Embedded Operating System
QuarkTS is written specifically for embedded developers, targeting scenarios where required features exceed those provided by existing RTOS task schedulers, but want to avoid the space and complexity of a full RTOS while retaining the powerful and safe applications of RTOS.
I have always advocated for operating systems, as they can be said to be the most meaningful projects in software learning, allowing for a deep understanding of project operation mechanisms. I have learned a lot about FreeRTOS and Linux, which is very helpful for learning or understanding new operating systems.
Main application directions:
The design goal of QuarkTS is to achieve its described functionality using a small, simple, and (most importantly) powerful implementation, making it suitable for resource-constrained microcontrollers, where fully preemptive RTOS is excessive, and their inclusion adds unnecessary complexity to firmware development. Additionally, with support for state machines, cooperative routines, time control, and inter-task communication primitives, QuarkTS provides a modern environment for building stable and predictable event-driven multitasking embedded software. Their modularity and reliability make this operating system an excellent choice for efficiently developing various applications in low-cost devices, including automotive control, monitoring, and IoT.
Official documentation:
https://kmilo17pet.github.io/QuarkTS/
GitHub address:
https://github.com/kmilo17pet/QuarkTS?tab=readme-ov-file
43. FabGL – Graphics Library for ESP32
This project is a graphics library implemented by the author for ESP32, specifically designed for ESP32 development. It provides various display drivers, input controllers, and other useful features, making it easier and more convenient to develop graphical applications on ESP32, allowing ESP32 development boards to support image output to VGA displays and support mouse and keyboard, transforming ESP32 development boards into mini-computers.
FabGL also supports PS/2 keyboards and mice as input devices. This allows users to interact with the ESP32 through keyboards and mice, enabling more application scenarios.
The entire project is quite complex; everyone can focus on learning the author’s software ideas and design patterns.
GitHub address:
https://github.com/fdivitto/FabGL?tab=readme-ov-file
44. ExpressLRS – Open-source radio for radio control applications
ExpressLRS is an open-source radio communication technology specifically designed for radio control applications, such as for drones (FPV racing) and others. It combines Semtech’s SX127x or SX1280 LoRa hardware with Espressif or STM32 processors, utilizing LoRa modulation technology and reducing packet sizes to achieve excellent communication range and ultra-low latency. It employs a specially optimized wireless packet structure to achieve this, ensuring both communication range and reduced latency. ExpressLRS supports 900 MHz and 2.4 GHz communication links, each with its advantages. Among them, the 900 MHz link can achieve a maximum packet sending rate of 200 Hz and has stronger signal penetration, making it more suitable for use in certain environments.
Highly recommended for students preparing for graduation projects or those doing their own projects, as it highlights a technical point.
Open-source address:
https://github.com/ExpressLRS/ExpressLRS
A usage case link:
https://blog.csdn.net/lida2003/article/details/126260136
45. escrcpy – Display and control Android devices via GUI
This project serves the same purpose as the title suggests, allowing the use of a webpage to control Android devices. Escrcpy utilizes open-source technologies such as Scrcpy, adbkit, Electron, Vue, and Gnirehtet. It employs synchronization technology to connect to devices quickly and efficiently. Escrcpy also provides customizable configurations, multi-device support, and automatic connection features.
I think of an application point where this can be used to remotely control industrial control devices or other Android devices. This can be referenced for many graduation projects or those with such needs.
Moreover, Electron is a great tool for quickly building platforms, which can replace QT in some fields; highly recommended for learning.
Open-source address:
https://github.com/viarotel-org/escrcpy
Documentation address:
https://github.com/viarotel-org/escrcpy/blob/main/README-CN.md
46. Raspberry Pi Pico 200Khz Digital Oscilloscope – An oscilloscope project based on Raspberry Pi pico
When I was in university, I did a similar project based on STM32, using external hardware for measurement, leveraging the display and computational power of the phone to create a simple oscilloscope, and I remember winning an award at the Huawei Cup.
This project is based on pico, more innovative, highly recommended for learning.
Learning link:
https://www.instructables.com/Raspberry-Pi-Pico-200Khz-Digital-Oscilloscope/
Firmware and code address:
https://drive.google.com/file/d/1MyzIdmDzdpmcEGTyDlmEuSUjGVFN33P0/view?pli=1
App download link:
https://play.google.com/store/apps/details?id=xyz.fhdm.scoppy&pli=1
47. TinnySTL
TinnySTL is a lightweight C++ STL implementation consisting of a series of header files that can be easily embedded into your projects. This project covers many basic STL components, such as vector, list, map, etc., which are re-implemented based on the STL standard, helping you better understand the implementation principles of STL.
https://github.com/zouxiaohang/TinySTL
48. Snake
Snake is an implementation of the snake game, written in C++. This project can help you learn basic C++ syntax and object-oriented programming concepts. The code structure is clear and simple, easy to understand and modify.
https://github.com/heyuhhh/Snake
49. BilibiliLiveRecorder
BilibiliLiveRecorder is a tool for recording B station live broadcasts, written in C++. This project can help you learn how to use C++ for network programming, multithreading, and streaming media technology. The code is simple and easy to understand, suitable for beginners to practice.
https://github.com/floatinghotpot/BilibiliLiveRecorder
50. Tetris
Tetris is an implementation of the Russian puzzle game, written in C++. This project can help you learn basic C++ syntax, graphical interface programming, and game programming concepts. The code is simple and easy to understand, suitable for beginners to practice.
https://github.com/maburix/Tetris
To be continued, continuously updated!
To prevent losing track later, please like and bookmark!
Welcome to seek career planning with me, a great self-investment ->One-on-one guidance for embedded software engineers
My other account, specifically updating embedded directionCareer planning/Employment information/Job information/Internal recommendation information, highly recommended for students or friends with employment needs in the embedded direction to follow!