C Embedded Systems

Open-source C projects categorized as Embedded Systems

Top 23 C Embedded System Projects

  • rt-thread

    RT-Thread is an open source IoT operating system.

    Project mention: The Most Popular Open Source IoT Operating System from China | news.ycombinator.com | 2022-11-14

    There's a bunch of documentation (in english) at https://github.com/RT-Thread/rt-thread/blob/master/documenta...

    One thing that stands out is that one of the selling points would be the inclusion of middleware etc.

      Internet of Things related software packages:

  • shairport-sync

    AirPlay and AirPlay 2 audio player

    Project mention: Curious to see if everyone pays full price for sonos products or are there ways to get discounts? Would appreciate any guidance to save $s. | reddit.com/r/sonos | 2023-02-03

    If you’re interested, you might be able to get Airplay 1 & 2 support by running shairport-sync on your pi.

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

  • u8g2

    U8glib library for monochrome displays, version 2

    Project mention: I need some help, I want to "rotate" the screen by 180 degrees. I am just printing some simple data on the screen for my modified nerf gun. Any advice on how to do it? | reddit.com/r/arduino | 2022-12-28

    Use u8g2, awesome library, very flexible, works with everything.

  • printf

    Tiny, fast, non-dependent and fully loaded printf implementation for embedded systems. Extensive test suite passing.

    Project mention: Nolibc: A minimal C-library replacement shipped with the kernel | news.ycombinator.com | 2023-01-22

    Seems unlikely. My spot check of the the two vfprintf implementations shows no flow from one to the other, and shows that part of the Cosmopolitan code has an older lineage than nolibc.

    The nolibc source has many reference to copyright held by "Willy Tarreau", under LGPL-2.1 OR MIT license, with a copyright date starting in 2017.

    The string "Tarreau" does not exist in the Cosmopolitan library, so that's a strong negative there. Let's look closer.

    The file organization is quite different. And so is the implementation. So that's another negative.

    Compare the vfprintf in nolibc at https://elixir.bootlin.com/linux/v6.2-rc4/source/tools/inclu... (a 'minimal vfprintf()') with the one in cosmopolitan starting at https://github.com/jart/cosmopolitan/blob/master/libc/stdio/....

    Right away we can see nolibc places many functions in the same file while Cosmopolitan uses a one-function-per-filename organization.

    Cosmopolitan's fvprintf locks the file (which nolibc doesn't need to do) then calls vfprintf_unlocked which calls __fmt at https://github.com/jart/cosmopolitan/blob/master/libc/fmt/fm... , which is the actual implementation. It look very different from NOLIBC's.

    Okay, so perhaps that's they way now but not at the beginning?

    We can also go back to Cosmopolitan's original implementation and see how vfprintf goes through https://github.com/jart/cosmopolitan/blob/c91b3c50068224929c... to call "palandprintf", which https://github.com/jart/cosmopolitan/blob/c91b3c50068224929c... says is copyright "Marco Paland" from 2014-2019.

    That's a few years older than the start of nolibc, available from https://github.com/mpaland/printf , and part of https://github.com/embeddedartistry/libc , a "libc targeted for embedded systems usage".

    Thus, multiple factors seem to agree that nolibc code is not used in the Cosmopolitan library.

  • tilck

    A Tiny Linux-Compatible Kernel

    Project mention: Tilck – A Tiny Linux-Compatible Kernel | reddit.com/r/patient_hackernews | 2023-01-08
  • inih

    Simple .INI file parser in C, good for embedded systems

    Project mention: Include library with meson | reddit.com/r/C_Programming | 2022-03-31

    I don't know if it's the best place to post that but on the meson subreddit there is not much people. I want to include the library INIH (which use meson too) to my project but I don't know how.

  • wolfssl

    The wolfSSL library is a small, fast, portable implementation of TLS/SSL for embedded devices to the cloud. wolfSSL supports up to TLS 1.3!

    Project mention: “Purchasing an arm” | reddit.com/r/Firearms | 2022-11-27

    Or something a bit more lightweight - https://github.com/wolfSSL/wolfssl

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • Vitis-Tutorials

    Vitis In-Depth Tutorials

    Project mention: Xilinx HLS AXI4-Lite registers don't update right away | reddit.com/r/FPGA | 2022-08-15

    Here is the top level function. It is a modified version of the convolution HLS provided in one of Xilinx's Vitis tutorials. I've run into a similar problem for other HLS IP where the AXI4-Lite registers don't update right away. ``` void Filter2DKernel( const float coeffs[MAX_COEFFS], float factor, short bias, unsigned short width, unsigned short height, unsigned short stride, hls::stream &input_stream, hls::stream &output_stream) {

  • xboot

    The extensible bootloader for embedded system with application engine, write once, run everywhere.

  • MuditaOS

    Mobile operating system based on FreeRTOS™ optimized for E Ink displays - developed for Mudita Pure minimalist phone

    Project mention: Symbian Was Right | news.ycombinator.com | 2022-10-24

    Maybe the MuditaOS for the Mudita Pure phone based on FreeRTOS is free (GPL) succesor ?

    https://github.com/mudita/MuditaOS

  • libhydrogen

    A lightweight, secure, easy-to-use crypto library suitable for constrained environments.

    Project mention: libsodium-wrappers on a Raspberry Pi Zero W | reddit.com/r/raspberry_pi | 2022-04-22

    See if you can use this library instead of libsodium, as it'll probably work on your raspi zero: https://github.com/jedisct1/libhydrogen (Node bindings: https://github.com/trampi/node-libhydrogen-binding)

  • luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    Project mention: Embedded microservices and Luos: a love story | dev.to | 2022-12-07

    After much research and experimentation, Ada discovered Luos. Luos is a framework for building and managing microservices on embedded devices. It provides a set of tools and libraries that make it easy to develop, deploy, and manage microservices on embedded systems. Ada was thrilled with Luos and knew that it was the perfect solution for her client's project.

  • libc

    libc targeted for embedded systems usage. Reduced set of functionality (due to embedded nature). Chosen for portability and quick bringup. (by embeddedartistry)

    Project mention: Nolibc: A minimal C-library replacement shipped with the kernel | news.ycombinator.com | 2023-01-22

    Seems unlikely. My spot check of the the two vfprintf implementations shows no flow from one to the other, and shows that part of the Cosmopolitan code has an older lineage than nolibc.

    The nolibc source has many reference to copyright held by "Willy Tarreau", under LGPL-2.1 OR MIT license, with a copyright date starting in 2017.

    The string "Tarreau" does not exist in the Cosmopolitan library, so that's a strong negative there. Let's look closer.

    The file organization is quite different. And so is the implementation. So that's another negative.

    Compare the vfprintf in nolibc at https://elixir.bootlin.com/linux/v6.2-rc4/source/tools/inclu... (a 'minimal vfprintf()') with the one in cosmopolitan starting at https://github.com/jart/cosmopolitan/blob/master/libc/stdio/....

    Right away we can see nolibc places many functions in the same file while Cosmopolitan uses a one-function-per-filename organization.

    Cosmopolitan's fvprintf locks the file (which nolibc doesn't need to do) then calls vfprintf_unlocked which calls __fmt at https://github.com/jart/cosmopolitan/blob/master/libc/fmt/fm... , which is the actual implementation. It look very different from NOLIBC's.

    Okay, so perhaps that's they way now but not at the beginning?

    We can also go back to Cosmopolitan's original implementation and see how vfprintf goes through https://github.com/jart/cosmopolitan/blob/c91b3c50068224929c... to call "palandprintf", which https://github.com/jart/cosmopolitan/blob/c91b3c50068224929c... says is copyright "Marco Paland" from 2014-2019.

    That's a few years older than the start of nolibc, available from https://github.com/mpaland/printf , and part of https://github.com/embeddedartistry/libc , a "libc targeted for embedded systems usage".

    Thus, multiple factors seem to agree that nolibc code is not used in the Cosmopolitan library.

  • lwesp

    Lightweight and versatile AT parser library for ESP8266 and ESP32 devices.

    Project mention: LwESP library for ESP8266 and ESP32 MCUs | reddit.com/r/microcontrollers | 2022-02-16
  • fwup

    Configurable embedded Linux firmware update creator and runner

  • hummingbird

    Hummingbird init system for Linux based operating systems. (by Sweets)

  • modern-embedded-programming-course

    Companion repository to the "Modern Embedded Systems Programming" video course.

    Project mention: STM32Cube IDE: how do you override the existing start-up code with a vector table defined in C code? | reddit.com/r/microcontrollers | 2022-11-13

    Hi, I'm following along in Miro Samek's embedded systems tutorial lesson #14 and hes using IAR Embedded Workbench and hes defining his own startup code in C. (see https://github.com/QuantumLeaps/modern-embedded-programming-course/blob/master/lesson-14/startup_tm4c.c)

  • printf

    Tiny, fast(ish), self-contained and fully loaded printf, sprinf etc. implementation, mainly for embedded systems. (by eyalroz)

    Project mention: What is the most efficient way to create an ASCII string from multiple types? | reddit.com/r/embedded | 2022-12-29

    Take a look at an embedded focused sprintf like this one and measure: https://github.com/eyalroz/printf

  • totalcross

    TotalCross is a Software Development Kit that helps cross platform application development. Currently supported platforms are: Windows, Wince, Android, iOS, Linux and Linux ARM for embedded systems.

    Project mention: Managing XCode dependencies | reddit.com/r/cmake | 2022-03-02

    I have this cross platform project named TotalCross that builds for Windows, WinCE (both using VS2008), Android, iOS, Linux (x64 and ARM) that used to have a separate build system for each platform.

  • USB4VC

    USB Keyboard/Mouse/Gamepads on Retro Computers!

    Project mention: My Descent 1 setup with modern trims | reddit.com/r/retrobattlestations | 2023-01-06

    The USB4VC is a RPi based project allowing you to send modern mouse, keyboard and joystick signals to a vintage computer. In this case, a wireless bluetooth Playstation 4 gamepad is used. More info on its github: https://github.com/dekuNukem/USB4VC

  • QuarkTS

    An open-source OS for embedded applications that supports prioritized cooperative scheduling, time control, inter-task communications primitives, hierarchical state machines and CoRoutines.

    Project mention: Looking for a non-preemptive (cooperative) multi-tasking library in C. | reddit.com/r/embedded | 2022-07-10
  • uMTP-Responder

    Lightweight USB Media Transfer Protocol (MTP) responder daemon for GNU/Linux

    Project mention: DeckMTP, a decky plugin for transfering files via USB | reddit.com/r/SteamDeck | 2023-02-02

    You might also notice that there's no SD card mount in the config. That's because it's added during runtime, since uMTP-Responder supports it. They show example usage on their github, and I show example usage of that in my start script, where it detects the SD card. The runtime way is temporary, though, and it disappears when it restarts.

  • qtools

    QTools collection of open source tools for embedded systems development on Windows, Linux and MacOS

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-02-03.

C Embedded Systems related posts

Index

What are some of the best open-source Embedded System projects in C? This list will help you:

Project Stars
1 rt-thread 7,906
2 shairport-sync 6,024
3 u8g2 3,629
4 printf 1,960
5 tilck 1,945
6 inih 1,908
7 wolfssl 1,822
8 Vitis-Tutorials 740
9 xboot 668
10 MuditaOS 483
11 libhydrogen 466
12 luos_engine 428
13 libc 369
14 lwesp 354
15 fwup 344
16 hummingbird 228
17 modern-embedded-programming-course 226
18 printf 209
19 totalcross 200
20 USB4VC 140
21 QuarkTS 135
22 uMTP-Responder 125
23 qtools 99
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com