I've been working on this a couple of weekends, and so far it seems to work reasonably well:
1. The devices connect up reasonably OK.
2. The chat works
However, if you don't turn on the devices in the right order, and the one that initiates communication is turned on too early, they can "miss" each other. So I added a command to retry communications.
1. In the case where the device in question is not expected to initiate communications, the command does nothing.
2. In the case where the device in question is expected to initiate communications, it tries again.
I've also added a status LED that lights up when the devices have exchanged keys, and dropped the serial communications speed to 9600 baud for compatibility. The device doesn't transmit that much data, so this should be plenty fast enough. I've also added support for the RGB LED on the ESP32S3 SuperMini to show connection status:
- Red: Config not received yet OR error state
- Yellow: Config received, waiting for connect
- Green: connected, ready to chat
Later, I should also add a command that returns the same information via serial command, so I can add a loop to the driver, something simple like:
If not connected --> try to reconnect once in a while. Or I could use MQTT LWT.

Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.