Three-board wireless Pong with no router

Oct 26, 2026 Last reply: 1 day ago 2 Replies
Jump to replies (2)

Getting two boards to play a game together usually means a router or an access point sitting in the middle. This build skips that entirely: a two-player Pong demo where three ESP32 boards talk to each other directly over ESP-NOW, with no network infrastructure at all. The maker built it to exercise a networking module with a real game instead of simple board-to-board tests, and responsiveness was a stated goal from the start.



The hardware split is tidy. An ESP32-2432S028, the Cheap Yellow Display, acts as the host and handles the ball, paddles, score and game logic. Two DFRobot Beetle ESP32-C3 boards serve as controllers, each with a 128x64 OLED and two tactile pushbuttons, sitting on solderless breadboards wired with jumper wires. The controllers send button inputs upstream and display the score plus their own paddle position. Everything runs on channel 6.



Under the hood it runs on the maker's own C++17 engine, PixelRoot32, which supplies networking, rendering and input handling. Packets are tagged, little-endian bytes with type and length checked before any content is read, and message types range from APP_HELLO through INPUT, STATE, POINT, ROUND_START, PAUSE and MATCH_END. The game runs at 60 Hz while state snapshots go out unreliably at 30 Hz, since newer packets supersede older ones. Scoring and match end use reliable delivery through a queue of eight frames with a 20 ms ACK timeout. Controllers predict paddle movement locally and redraw only on visible changes, at most 10 Hz, so display transfers do not compete with radio processing. There are 72 networking tests plus 55 more for game logic and protocol, including simulated disconnects.



Open points worth noting: the protocol has no encryption, the channel is fixed, there is no node-ID collision detection, and only two players are supported. The diagnostics screen shows a round-trip time of 32.85 and 12 dropped packets.


One thing I am curious about: what happens mid-rally if one of the Beetle controllers loses power or reboots? Does the whole match just freeze up, or can the host recover on its own without a full restart of the game?

The maker has covered that case. When a controller disappears, the host pauses the match, and once the board reconnects there is a handshake before play resumes. Disconnects and reconnects are also simulated in the automated tests, so that recovery path has actually been exercised rather than left to chance.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required