What Changes Once the Radio Frame Arrives Without a Network Stack?
The second part shifts from transmission to reception and looks at what breaks once packet parsing, buffering, and ownership rules stop being hidden behind a kernel network stack.
Series
Bare-Metal Wi-Fi Experiments
- Part 1 What Does It Take to Transfer 1 Byte Over Wi-Fi Without an OS?
- Part 2 What Changes Once the Radio Frame Arrives Without a Network Stack?
- Part 3 Coming soon
Part two is where the experiment stops feeling like a transmit toy problem and starts looking like systems work again. Receiving even a small frame means deciding where bytes land, how long they stay valid, and what constitutes a parse error when there is no operating system quietly standardizing the answer for you.
Reception exposes ownership problems quickly
On transmit, you can often get away with treating the frame as a static payload. On receive, the questions multiply immediately: where does DMA place the bytes, who owns the buffer after the device interrupts, and how does the rest of the system know whether the payload is complete or partially corrupt?
Minimal parsing still needs policy
Even a stripped-down receive loop needs a view of framing, lengths, and failure modes. That means the experiment is no longer only about radio timing. It is also about where you draw the line between device-specific mechanics and a reusable packet model.
struct rx_buffer {
uint8_t *data;
uint16_t length;
uint16_t capacity;
bool frame_complete;
};
The next part is where retries and backpressure show up
Once transmit and receive both exist, the remaining complexity is less about individual frames and more about the control path between them. That is the point where backpressure, retries, and queue discipline stop being optional.