finds.dev← search

// the find

feilipu/Arduino_FreeRTOS_Library

★ 957 · C · MIT · updated Dec 2024

A FreeRTOS Library for all Arduino ATmega Devices (Uno R3, Leonardo, Mega, etc).

FreeRTOS ported to 8-bit ATmega Arduinos — the Uno, Mega, Leonardo family. Lets you run multiple tasks with proper scheduling instead of juggling state machines in loop(). For anyone who's hit the ceiling of cooperative multitasking on AVR hardware.

The delay() override that transparently calls vTaskDelay() is a genuinely useful touch — existing sketches and tutorials work without modification. Watchdog-timer-based ticking is clever: no hardware timer sacrificed by default. The port contributed back to the upstream FreeRTOS kernel, so this isn't a fork drifting in isolation. PlatformIO support with configurable build flags is practical for anyone doing serious embedded work outside the Arduino IDE.

2KB SRAM on an Uno means you're fighting for every byte — the default loop() stack of 192 bytes plus the Timer Task stack of 92 bytes plus the Idle Task eat a meaningful chunk before your application does anything. SoftwareSerial is broken at 9600 baud due to interrupt masking; that's a common library and the workaround (use hardware UART) isn't always available on pin-constrained boards. The maintainer has explicitly declared this an LTS freeze at FreeRTOS v11.1.0 since upstream has gone 32-bit-only — reasonable call, but means no future improvements. The megaAVR 0-series (ATmega4809, used on the Uno WiFi Rev2) is unsupported and the README doesn't give a timeline.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →