Show HN: BPU – An embedded scheduler for stable UART pipelines
11 points| DenisDolya | 28 days ago
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.
eqvinox|25 days ago
(I break out CTS&RTS whenever I can, & so should everybody else. You don't have to use it. Just route it to wherever the serial ports goes.)
octablock|25 days ago
A lot of small setups don’t wire CTS/RTS these days, so I wanted to explore a software-side approach as well. But I agree, proper flow control is still very important.
officialchicken|25 days ago
octablock|25 days ago
COBS with CRC32 over UART is very close to the kind of problems I’ve been thinking about too. Glad the docs were helpful!
octablock|25 days ago