ESP-NOW vs WiFi in venues with poor connectivity
Technical notes on why we chose ESP-NOW for badge-to-badge communication, and the practical trade-offs that involves.
By HoldPixel Team
This post is for CTOs, heads of engineering, or curious people who want to understand why an electronic-badge system for events doesn’t rely on conventional WiFi. The question is reasonable; the answer has nuance.
Why venue WiFi fails, almost always
You arrive at a decent hotel with a 600-seat convention hall. They tell you there’s WiFi. You believe them. The day of the event, WiFi doesn’t work. This happens with near-religious regularity, and the reasons are technical:
- 2.4 GHz saturation. Most venues still lean on 2.4 GHz because of better coverage. But any room with 200+ phones has as many WiFi radios as people (phone + laptop + smartwatch + earbuds), all hopping across the three non-overlapping channels. Noise rises until no packets get through.
- Captive portals. Hotel WiFi sits behind a “accept the terms” page. IoT devices don’t know how to click accept. At best, you’d open a browser on each badge by hand. Unworkable at 250 units.
- Hotel APs. The access points are usually consumer-grade rebrands, with aggressive session timeouts, no QoS, no SSID separation. A full room takes them down in 20 minutes.
- NAT and opaque firewalls. Your backend is on the public internet. The badge needs to call out. The hotel, reasonably, blocks arbitrary ports. Your custom MQTT stays outside.
- Bandwidth shared with attendees. If 500 guests are on parallel Zoom or Teams calls during the breaks, your badges fight humans for bytes. Humans win.
Bottom line: relying on venue WiFi for a coordinated, real-time experience is planning to fail. We’ve seen it enough times to stop negotiating it.
What ESP-NOW is
ESP-NOW is a MAC-layer proprietary protocol from Espressif, designed for direct device-to-device communication between ESP chips without a WiFi AP. Relevant properties:
- Peer-to-peer. Every node talks to every node, up to 20 registered peers per device (a practical, not protocol, limit — with broadcast techniques you reach thousands).
- No WiFi association. No 4-way handshake, no DHCP, no roaming. A packet leaves in milliseconds.
- 250-byte useful payload per frame. Enough for control messages and UI deltas; not enough for images — heavy assets are distributed in chunks or via OTA outside the event.
- Latency ~50 ms end-to-end under normal conditions. Under load it rises to 100-200 ms, but rarely breaks.
- Shares the radio with WiFi. The ESP32 has a single radio: ESP-NOW and WiFi coexist via time-slicing if you need both. At the event we use ESP-NOW only; WiFi stays off to save battery.
- Optional native encryption with AES-128 (CCMP) per peer.
It’s a protocol built by Espressif for precisely this case: many devices in a physical space that need to coordinate without infrastructure.
Real trade-offs
ESP-NOW is not magic. It has limitations to plan for:
- ~30 m indoor range with a plasterboard wall in between. More in line of sight, less with concrete. For large venues you distribute repeater beacons.
- No direct internet. If you want cloud backend (remote admin, analytics, order state), you need a gateway: a device with ESP-NOW + WiFi/Ethernet bridging both. We solve this with beacons connected to the cloud panel.
- Not standard. Only Espressif chips speak it. If you wanted to reuse the badge in generic IoT infra, ESP-NOW locks you in. Mitigation: in our architecture, the badge also speaks standard BLE, so a future pivot to BLE Mesh is viable.
- Limited throughput. Don’t stream over it. A 1 MB firmware OTA takes minutes, not seconds. We do it when the badge is on the charger, not in the room.
When to pick each
The practical heuristic:
- Real-time coordination among many devices in a physical space → ESP-NOW.
- Internet access, heavy OTA, backend sync → WiFi (when available) or BLE→phone→internet.
- Outdoor events with decent mobile coverage → consider 4G/LTE Cat-M; more expensive but independent of the venue.
In practice the right answer is a hybrid: ESP-NOW for in-room coordination, WiFi on the beacons to sync with cloud when the network is up, and everything critical stored locally so the experience survives disconnections.
Real case: 250 badges, 1,000 m² venue, untouched client WiFi
We piloted this configuration at a corporate event in early 2026. 250 active badges, 1,000 m² ground-floor hall in a hotel with interior walls. We deployed:
- 5 ESP-NOW beacons spread around the perimeter and center of the hall, each on mains power.
- 1 gateway (a beacon with extra WiFi) in the tech control booth, connected to the hotel’s staff WiFi — not guest WiFi — solely to upload analytics to the panel.
- Badge → beacon heartbeat frequency: 30 seconds idle, 2 seconds during mass games.
- Game broadcast from the panel: press “launch Arkanoid” → all beacons receive the order via WiFi in <500 ms → forward via ESP-NOW to the fleet → 240 of 250 badges enter the game in under 1 second. The remaining 10 within 2-3 seconds.
The hotel guest WiFi went down twice during the day. The event didn’t notice: badges kept operating, beacons had local queues, and the panel resumed sync once WiFi was back. That’s the important property: graceful degradation.
The conclusion
ESP-NOW isn’t the answer to everything. It’s the right answer when you want to coordinate many devices in a controlled physical space and you don’t want to depend on infrastructure that isn’t yours. At corporate events, that describes 95% of the cases.
If you come from industrial IoT or cloud, the protocol feels primitive. But that primitiveness — no handshake, no DHCP, no TLS, no nothing — is exactly what makes it reliable when everything else fails. And at an event, everything else fails with uncomfortable frequency.