Ring Buffer / DMA Size Calculator
embedcalc_ring_buffer_sizeCalculate the required ring buffer size from data rate, worst-case consumer latency, and a safety factor, rounding up to a power of two.
Instructions
Size a ring buffer (or DMA buffer) from data rate, worst-case consumer latency, and a safety factor, rounded up to a power of two. Args: data_rate_bytes_per_sec, latency_ms (worst-case time before the consumer drains), safety_factor (default 2). Returns (structured): { bytes_needed, recommended_pow2 }. Example: 102400 B/s, 10 ms, ×2 -> 2048 bytes -> use 2048 (2^11).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| latency_ms | Yes | Worst-case consumer latency in milliseconds | |
| safety_factor | No | Headroom multiplier (default 2) | |
| data_rate_bytes_per_sec | Yes | Incoming data rate in bytes/second |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bytes_needed | Yes | ||
| recommended_pow2 | Yes | Next power of two >= bytes_needed (fast masking index math) |