rulos
qpc
rulos | qpc | |
---|---|---|
6 | 3 | |
16 | 900 | |
- | 2.7% | |
6.2 | 6.1 | |
15 days ago | 13 days ago | |
C | C | |
GNU General Public License v3.0 only | GNU General Public License v3.0 or later |
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.
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.
qpc
-
FreeRTOS Communication between tasks - Physical design
The QP/C framework already seems to solve all your problems, so if you're asking how to organize your code, this is the best answer you can get. It also seems a little inconsistent that you are taking FreeRTOS, so you are not considering writing your own RTOS kernel. But at the same time, you are rolling out your own event-driven framework as though it was somehow easier, which is not the case and probably quite the opposite.
- Generic HSM implementation in C
-
I made a state machine compiler that outputs C
HSM-test code in C (on GitHub)
What are some alternatives?
Super-Simple-Tasker - Event-driven, preemptive, priority-based, hardware RTOS for ARM Cortex-M.
rt-thread - RT-Thread is an open source IoT real-time operating system (RTOS).
nanopb - Protocol Buffers with small code size
arm-none-eabi-gcc-xpack - A binary distribution of the Arm Embedded GCC toolchain
zephyr - Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
modern-embedded-programming-course - Companion repository to the "Modern Embedded Systems Programming" video course.
libhydrogen - A lightweight, secure, easy-to-use crypto library suitable for constrained environments.
QuarkTS - An open-source OS for embedded applications that supports prioritized cooperative scheduling, time control, inter-task communications primitives, hierarchical state machines and CoRoutines.
nanoMODBUS - A compact MODBUS RTU/TCP C library for embedded/microcontrollers
makina - A simple hierarchical state machine compiler that generates C.