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. Learn more →
Top 23 C Microcontroller Projects
-
MicroPython
MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems
Project mention: Where can I start testing python on real-life objects? | reddit.com/r/learnpython | 2023-02-04The lowest friction way would probably be to get some microcontroller that can run MicroPython.
-
lvgl
Embedded graphics library to create beautiful UIs for any MCU, MPU and display type. It's boosted by a professional yet affordable drag and drop UI editor, called SquareLine Studio.
Have you considered https://lvgl.io ?
-
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.
-
zephyr
Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
I think that's uncharitable. Almost no one realized these things were being generated. We all assumed that links to github's "releases" were just links to files because they look like links to files! Here's one to Zephyr 3.2.0: https://github.com/zephyrproject-rtos/zephyr/archive/refs/ta...
You pull that and get a tarball that is presented to the world as an "official release". Looks like a file. Acts like a file. It's a file.
So now your package manager or reproducible build engine or whatever needs a reference to the "official source code release", and what do you point it to? That file, obviously. It's right there on the "release" page for the download. And of course you checksum it for security, because duh.
Then last week all of a sudden that file changed! Sure, it has the same contents. But the checksum that you computed in good faith based on the official release tarball doesn't match!
If there's a misunderstanding here, it's on github and not the users. They can't be providing official release tarballs if they won't guarantee consistency. "As documented", this feature was a huge footgun. That's bad.
-
-
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.
-
Project mention: NoTRRS! - TRRS-less split. Supports more than 2 Spit | reddit.com/r/ErgoMechKeyboards | 2023-02-02
CircuitPython doesn't have USB HOST support for RP2040
-
Project mention: What are some interesting uses of WebUSB you have come across? | news.ycombinator.com | 2023-01-28
It's used for flashing the BBC micro:bit in both Microsoft MakeCode (makecode.microbit.org) and the micro:bit Python Editor (python.microbit.org). MakeCode uses it for lots of other devices like MakeCode Arcade too https://arcade.makecode.com )
It's amazing for students to be able to quickly get a program they've written in their browser onto a device in their hands that can respond to and interact with the real world.
Also great because with MicroPython and the Python Editor you get a standalone Python environment including REPL that's completely isolated from the PC - schools love it because no matter what the students do they're not going to break the host PCs.
(The firmware that implements web USB on the micro:bit's USB interface chip is open source, DAPLink https://github.com/ARMmbed/DAPLink - poke
-
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.
-
You can code in Arduino using the ATTinyCore - https://github.com/SpenceKonde/ATTinyCore
-
Hi Rust experts, we are willing to integrate rustix on NuttX RTOS, the initial effort was done by rustix author: https://github.com/bytecodealliance/rustix/tree/nuttx but it hit the wall since we don't know the right way to integrate cargo with the old-school NuttX's Makefiles. Any help or suggestion is welcome. More about NuttX here: https://nuttx.apache.org and here: https://nuttx.apache.org/docs/latest/
-
PikaPython
PikaPython - Python runs with only 4KB of RAM, zero dependencies, easy to bind with C. Similar project: MicroPython, JerryScript.
A very interesting solution for high level interface access by less professional developers could be seen in pikascript, which works even on very small devices. WAMR is another project with similar capabilities. Both of them can be very well combined with core infrastructure realized as embedded rust code.
-
Look at Embox (https://github.com/embox/embox). It can run on EFM32ZG with 32kB ROM 4kB RAM
-
stm32-bootloader
Customizable Bootloader for STM32 microcontrollers. This example demonstrates how to perform in-application-programming of a firmware located on an external SD card with FAT32 file system.
-
tinyengine
[NeurIPS 2020] MCUNet: Tiny Deep Learning on IoT Devices; [NeurIPS 2021] MCUNetV2: Memory-Efficient Patch-based Inference for Tiny Deep Learning; [NeurIPS 2022] MCUNetV3: On-Device Training Under 256KB Memory (by mit-han-lab)
Project mention: TinyEngine: High-performance neural network library for Microcontrollers | news.ycombinator.com | 2022-08-30 -
You can also get ext4 (with journalling) rather small so it's usable on an MCU.
-
Project mention: A New Battery-Free System Gives Devices an 'Infinite Lifetime' [Sept, 2021] | reddit.com/r/Futurology | 2022-04-06
It looks like the software is open-source and available at their GitHub repository here, along with instructions for assembling the hardware.
-
-
tiny-json
The tiny-json is a versatile and easy to use json parser in C suitable for embedded systems. It is fast, robust and portable.
Project mention: jemi: a compact JSON serializer for embedded systems | reddit.com/r/embedded | 2022-10-05 -
LVGL. It is designed for embedded system, but can be used on virtually every platforms.
-
Project mention: A Tiny Software Protocol for Communication over UART, SPI, etc. | news.ycombinator.com | 2022-08-09
-
ubxlib
Portable C libraries which provide APIs to build applications with u-blox products and services. Delivered as add-on to existing microcontroller and RTOS SDKs.
Project mention: Does anyone know of any open-source repositories utilizing an nRF52 chip and NCS/Zephyr? | reddit.com/r/embedded | 2022-09-24Check out u-blox ubxlib which supports a few examples for nRF52/Zephyr https://github.com/u-blox/ubxlib
-
Project mention: Can you develop an NES emulator within 2 months in C on BeagelBone? | reddit.com/r/EmuDev | 2023-01-29
-
Project mention: Any recommendation for a fail-safe filesystem for FreeRTOS that is well-tested and production ready? | reddit.com/r/embedded | 2023-01-22
+1 littlefs, we have used it in production, and it ran pretty well. One more option is reliance edge, it has nice GUI configuration tool, but it distributed over GPLv2
-
Project mention: Pico3D: Open World 3D Game on an RP2040 (PicoSystem) | reddit.com/r/raspberrypipico | 2023-01-08
I have worked on an open world 3D game running on the Pimoroni PicoSystem for the past few months to proof it was possible :). Gameplay video: https://m.youtube.com/watch?v=n6bECGQyNuk Source: https://github.com/bernhardstrobl/Pico3D
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
C Microcontroller related posts
- Where can I start testing python on real-life objects?
- NoTRRS! - TRRS-less split. Supports more than 2 Spit
- Is it possible to code a script (eg. in python), translate it into binary and upload it onto a breadboard computer(with an Arduino maybe) and it would work straight away?
- [PCB Review] An IOT playground board based on esp32 s3 wroom
- Dreaming is free, so I dreamt about calculators. Would anyone actually want this?
- ESP32 touch remote
- Waking Pico with button
-
A note from our sponsor - InfluxDB
www.influxdata.com | 4 Feb 2023
Index
What are some of the best open-source Microcontroller projects in C? This list will help you:
Project | Stars | |
---|---|---|
1 | MicroPython | 15,854 |
2 | lvgl | 11,224 |
3 | zephyr | 7,182 |
4 | littlefs | 3,739 |
5 | u8g2 | 3,629 |
6 | circuitpython | 3,381 |
7 | DAPLink | 1,720 |
8 | ATTinyCore | 1,298 |
9 | nuttx | 1,236 |
10 | PikaPython | 926 |
11 | embox | 882 |
12 | stm32-bootloader | 717 |
13 | tinyengine | 423 |
14 | lwext4 | 359 |
15 | BFree | 263 |
16 | nf-interpreter | 247 |
17 | tiny-json | 234 |
18 | lv_drivers | 194 |
19 | tinyproto | 175 |
20 | ubxlib | 161 |
21 | CHIPnGo | 94 |
22 | reliance-edge | 81 |
23 | Pico3D | 75 |