Piicodev Transceiver latency

Hi everyone. Currently, I’m using some Piicodev potentiometers hooked up to a few Raspberry Pi Pico Ws to control some Zigbee Light bulbs (brightness, colour temp, hue, etc.) When I rotate the knobs, the Pi Picos send an MQTT message (over WiFi) to my Raspberry Pi 4B server, running Zigbee2MQTT. Then, the server sends a Zigbee signal back to the respective light-bulb (through a USB Zigbee dongle).

This system works reasonably well, but there is a short delay between rotating the knobs, and the light bulbs changing. I wonder whether WiFi might be a bottleneck, and whether I could improve latency and take it to the next level by communicating between the Picos and Raspberry Pi using Piicodev transceivers.

So, I’m wondering what the latency of the transceivers is like—and more importantly—whether the transceivers are suitable for sending bursts of messages in short succession. I’m in a small flat.


1 Like

Hey @Steven - I was able to control a robot arm in realtime using the PiicoDev Transceivers.
You can find the example at the bottom of the guide. In short, that project used the .send_bytes method to pack 3x potentiometer values into a single message payload - very efficient. I think in the video we only show one axis working, but rest assured the 3-axis response felt very realtime.

The transmitter had a 20ms delay in the main loop and the receiver was polling for new transmissions about as fast as the I2C bus would allow.


Hi Michael (and everyone following at home!) I tried a few other tricks first - using the more robust async mqtt_as library (instead of umqtt.simple), using my Raspberry Pi 3B+ (instead of the Pico), using the built-in Zigbee integration with the Home Assistant API directly (instead of Zigbee2MQTT) - all of these helped a little, but I was still getting some lag!

Thinking that Zigbee itself might be the bottleneck, I was a little sceptical whether the Transceiver would make a difference.

I took the plunge, and to say I’m impressed would be an understatement. I’m now getting virtually real-time control of my lights with the potentiometers on the Pico! (I have the Pico communicate with the same Raspberry Pi I’m running Home Assistant on, which recieves and translates the messages to the Home Assistant). I’m so impressed, in fact, that I’m going to get another set of transceivers!

TLDR; Piicodev is awesome, it just works.