Hello!
I have many Arduinos acting as transceivers (ESPs, Nanos, etc). They can all receive and transmit data at 433MHz through a module connected on SoftwareSerial pins.
Everything works fine on those. But the device with the XIAO fails to receive more than 64 bytes of data.
My project has thousands of lines of code but the relevant could be simplified (and be reproduced) as follows :
void loop() {
while (rfModule.available()) {
Serial.write(rfModule.read());
}
}
where
SoftwareSerial rfModule(7, 6);
at baudrate 9600, for both software and hardware serials.
Below is what I read on the serial monitor on the XIAO when the XIAO is receiving SHORT data
<1OSKbXcOwsNeEiSJIikqrdNoMB1nnAD2NYJ9l5vAHrU=>
Below is what I read on the serial monitor on the XIAO when the XIAO is receiving LONGER data
<kweITGBlQfhqHSsZ1+BGO6DfwSlStRgrX2ZQKSkQsY5f+wTMj18TGldDcZPojK
as you can see, it is truncated.
(logs on transmitter shows data was fully sent, uncorrupted, and successfully received uncorrupted and full size on other devices such as an ESP8266, so the problem must be the XIAO).
chars < and > are delimiters for the encrypted data.
As far as I know, on any other device, method .read()
will read one byte at a time and remove it from the buffer (whether hard/soft serial). I have no clue why this does not work on the XIAO.
Help would be appreciated.