nanopb
rulos
Our great sponsors
nanopb | rulos | |
---|---|---|
19 | 6 | |
4,056 | 16 | |
2.6% | - | |
8.2 | 6.2 | |
10 days ago | 9 days ago | |
C | C | |
zlib License | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nanopb
- Nanopb – Protocol Buffers for Embedded Systems
-
Looking for a data serialization/deserialization library for use in an embedded system
While I don't have much experience with it directly, I do know that Google's protobuf was designed with minimal footprint capabilities in mind. While it might not work out-the-box for embedded systems, it looks like there is a well maintained open source library NanoPB that "is a small code-size Protocol Buffers implementation in ansi C. It is especially suitable for use in microcontrollers, but fits any memory restricted system." And for added reassurance, it looks like Chromium has a dependency on NanoPB.
-
Embedded communication protocols doc gen
nanopb
-
Lightweight data serialization/deserialization format
Protocol buffers are designed for this. Consider using nanopb on the device side.
-
serialization protocol for rf messages in C
I think you're looking for nanopb, the lightweight implementation of Google's protocol buffers.
-
How to create a program that sends to and receive data from Arduino via Bluetooth using C?
In that runtime environment, using only C is indeed the (very) safe "bet". In particular, I might personally prefer using Nanopb - Protocol Buffers for Embedded Systems.
-
Is a packed struct always the same in size?
I know it’s not the question you asked, but the answer might be this: https://github.com/nanopb/nanopb
-
ESP-Now: multiple devices, but how to do multiple types of data?
The OTHER way to do it is with protobufs, since they don't encode parts of the message that aren't included (that is: any missing part of the message has 0 transmission overhead). nanopb works well on the ESP32.
-
looking for c++ libraries whose equivalent c libraries are also present..
You could look at my library Embedded Proto and Nanopb. If you have any questions let me know.
- How many of you do you actually use C++ for device drivers?
rulos
- Show HN: Homemade rocketship treehouse – hardware to custom OS
-
Homemade rocketship treehouse, from hardware to custom OS [2011-2023]
(This was previously submitted as https://news.ycombinator.com/item?id=2246856)
The Ravenna Ultra-Low-Altitude Vehicle is a backyard rocketship treehouse nestled in the Seattle neighborhood of Ravenna. Click the link to see a demo video.
The hexagonal treehouse is about 6.5 feet (2 meters) across at its widest point. The frame is welded mild steel with riveted aluminum siding. It contains nearly 800 LEDs forming dozens of numeric displays spread across 14 control panels, each with an acrylic face laser-cut and etched with labels such as "Lunar Distance" and "Hydraulic Pressure". The pilot controls the rocket using a joystick and panels full of working switches, knobs and buttons. Underneath the capsule are three "thrusters" that shoot plumes of water and compressed air under the control of the pilot's joystick, simulating real positioning thrusters. Takeoff and docking sequences are augmented by a paint-shaker that simulates the vibration of a rocket engine. Sound effects complete the illusion, with a powered subwoofer that gives the rocket a satisfying rumble.
When it was built in 2011, rocket operations were controlled by three Atmega328 microprocessors on custom-fabricated printed circuit boards, running a small operating system, RULOS, built just for this project. A trench running from the house to the rocket carries 12VDC power for the lighting and electronics, water for the thrusters, compressed air, and several data signals.
Since 2011, the two-person team has upgraded it, here is a recent update from the makers:
One of the most visible changes is replacing the primary 4-line display with a slicker 6-line display (i.e., 6 rows of 8 columns of 7-segment LEDs). The audio synthesizer has been upgraded to a PCB that can generate 50khz, 16-bit audio. The interconnection bus, which had been flat IDC cable carrying individual on/off lines, was upgraded to a true I2C-based networked distributed system with over a dozen individually addressable targets, all interconnected by standard cat5 cable that carries both our I2C protocol and power. We also moved much of the electronics from 8-bit atmega328s to newer, 32-bit STM32F3's. RULOS has been expanded into a pretty general purpose embedded systems platform ported to 5 major lines of CPU (atmega, attiny, stm32, nxp lpc, and esp32). We've used it for dozens of other projects in the last 12 years, including a nanosecond-accurate timestamper, a GPS datalogger, an air quality sensor, various little electronic control boards for toys (e.g. these, and this), and an autonomous boat (that sank). It is all available on [github](https://github.com/jelson/rulos).
-
I2C trace routing on multiple boards that connect together. I am unsure how what i need to consider.
Master Control Board, based on stm32f303. This is different than the others because it feeds 12 power into the RJ45 connector. It also regulates input power down to 10v for the bus driver.
What are some alternatives?
protobuf-c - Protocol Buffers implementation in C
Super-Simple-Tasker - Event-driven, preemptive, priority-based, hardware RTOS for ARM Cortex-M.
EmbeddedProto - Embedded Proto is a C++ Protocol Buffers implementation specifically suitable for microcontrollers. It is small, reliable and easy to use.
zephyr - Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
nanopb-example - This is a simple project created to test the capabilities of Google's protobuf C implementation, nanopb.
qpc - QP/C Real-Time Embedded Framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
raylib - A simple and easy-to-use library to enjoy videogames programming
libhydrogen - A lightweight, secure, easy-to-use crypto library suitable for constrained environments.
modern-embedded-programming-course - Companion repository to the "Modern Embedded Systems Programming" video course.
nanoMODBUS - A compact MODBUS RTU/TCP C library for embedded/microcontrollers
stuff_sack - Efficient multi-language message packing / serialization.