I am working on a project that has 1 Master and should send 30 Bytes to 2000 Slaves. I don't care to receive synchronized messages or ack from the slaves,. The data rate should be 2Mbps and the data should be transmitted every 0.2ms (Duty Cycle). The maximum distance between the master and the slaves is 7 meters. I have purchased ESP32 Devices to try and use them for such project. Is ESP NOW appropriate for such project or what should I use or do if you have any suggestions or used anything for a similar system.
No problem with ESP-NOW
But will it be capable to have 2Mbps data rate?
the doc states
What is the maximum number of devices that can be controlled by ESP-NOW?
...
If broadcast packets are used, theoretically there is no limitation in the number of devices that can be controlled. You only need to configure the correct broadcast address and take care of the interference issue when too many devices are paired.
If the clients are only listening (ie not transmitting) you won't get collisions, however, the clients may still experience signal interference issues from other active transmitters in the same frequency band.
Do you control what's going on in the area ?
Just curious, what are you working on? swarm of drones?
no it's for controlling some circuits. but does ESP NOW handle a duty cycle of 0.2ms
I don't think expressif specifies a duty cycle or a minimum time between transmissions in its documentation.
A duty cycle of 0.2ms (200µs) is extremely short and is likely to be challenging for ESP-NOW, especially when considering real-world conditions such as network congestion, processing time, and hardware limitations...
it's as fast as the ESP can do it. Managed networks have a latency of 10-500ms, unamaged isfaster. 0.2 is most unlikely - so you'll need to take care of that in advance, e.g. movement blocks, motion plan ...
do you have an example to help me understand more maybe?
You need to define a protocol tat hndles 2 things:
- establish a common timebase
- send a command with a timestamp sometime in the future
"future" means some time furter in the future than your maximum jitter on the network. 5ms jitter -> send commands that should be completed at a timestamt now +10ms in the future
I wonder how you will place the 2000 slaves and the master.
a grid with 44 x 44 slaves with distance of 7 meters per grid, might be more than 300m from one end to the other, and I doubt, this is to far for a plain ESP-Now network if you haven't the master in the center.
Can you make a schematic with distances and indicate where the master is located?
Why does it need to be wireless? Cables for 7m can work very reliable.
my understanding was the 2000 devices were within a circle/sphere of 7m radius centred around the master
r=700cm
769 cm2 per device? every 27cm an ESP?
r=350cm
192cm2 per device? every 13cm an ESP?
That didn't make so much sense for me neither.
Therefore - a nice schematic could clarify what and why.
Some form of RGB neopixel type video display ?
OP said
may be that makes sense for him
I am just testing the ESP NOW then i will just use the MCU and add it to a pre built system with boards and a configured setup.
The system is complex with wires so we need to change it to a wireless Environment
May be you’ll add way more complexity with a wireless networking approach…
With wires, you can track down failures. With wireless, not possible. With that many devices there will always be a failing station.
It’s a project that is given to me and I need to do it anyway. Is there other better options than Esp now or any better wireless technology that could be good for my project?
Only if you get feedback from each slave or don't care when a unit fails.