Me again. After doing some testing I determined that the uiFlow code is adding 10 bytes of information (
preData) to the beginning of the text being sent. Maybe some type of checksum. This can be seem here.
preData bytes are constant, either
0. Below is
preData I created in the Arduino IDE and sent to a M5StickC Plus to get the receive callback to be triggered.
// Sent from Arduino IDE, ESP32, #include <esp_now.h>
// The 3 combinations for header3, header5, header6 and cmd after the comment (//) trigger the uiFlow receive callback.
// Changing any of the values causes the uiFlow receive callback not be to triggered
// There must be a some type of checksum calculation within the M5Stack uiFlow code.
data.header1 = 1;
data.header2 = 1;
data.header3 = 0; // 0, 1, 2 Seems to be a counter, rolling over a 255
data.header4 = 0;
data.header5 = 222; // 222, 249, 144 Seems to be a checksum of some kind
data.header6 = 67; // 67, 111, 27 Seems to be a checksum of some kind
data.header7 = 0;
data.header8 = 0;
data.header9 = 0;
data.header10 = 0;
strcpy(data.cmd, "on");// on, on, on
esp_now_send(broadcastAddress, (uint8_t *)&data, sizeof(data));
Can someone point me to the code which creates the 10 bytes of information?