Prevents MAVLink frames from being split at the 512-byte boundary
into two UDP packets. With 64B threshold + 3ms inactivity timeout,
each MAVLink frame (9-280 bytes) fits in a single UDP packet.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Accumulate UART bytes and flush to UDP only when buffer is full (512B)
or after 3ms of UART inactivity (end-of-frame gap). Fixes mavp2p
"packet too short" / "invalid magic byte" errors caused by sending
partial MAVLink frames in separate UDP packets.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
H743 FC is now wired to Serial2 (RX=GPIO18, TX=GPIO17, 57600 baud).
ESP32 becomes a raw byte relay: UART→UDP and UDP→UART on port 14550.
Removed fake heartbeat generator — real heartbeat comes from H743.
Added byte counters with periodic stats log every 10s.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>