Show HN: BPU – An embedded scheduler for stable UART pipelines

I recently came across this small ESP32 project and found the design ideas behind it very interesting.

BPU (Batch Processing Unit) is a lightweight embedded scheduling core focused on keeping output pipelines stable under pressure (UART backpressure, limited bandwidth, bursty producers).

Instead of blocking or growing unbounded queues, it: enforces per-tick byte budgets, coalesces redundant events, degrades gracefully under sustained load, exposes detailed runtime statistics.

The repository includes design notes, flow diagrams, and real execution logs, which makes the runtime behavior very transparent.

Repo: https://github.com/choihimchan/bpu_v2_9b_r1

I’ve been working on an ESP-IDF backend for it, and reading through the docs gave me a lot of ideas about observability and backpressure handling in small systems.

Curious what others think about this approach.

9 points | by DenisDolya 3 days ago

1 comments

  • officialchicken 6 hours ago
    I have been porting an existing pub-sub to Rust (no_std) that runs over serial UART. The published serial protocol is very similar as this one: COBS encoding with CRC32 checksum not CRC16. These docs have a great reference on backpressure for any micro and will be helpful.