In a project with focus on low power consumption I use an Espruino Pico and a Microchip RN2483 for LoRaWAN communication.
I send the RN2483 to sleep with a command, and to wake it up from sleep I need to send a "break" condition to the UART and send a 0x55 character for auto-baud detection.
I can use Serial1.unset() followed by pulling down TX from some time, then again Serial1.setup(...) and send the 0x55 character.
My issue is that I use the AT command handler wrapped around the Serial1, and doing this break-condition stuff on the Serial1 causes garbage characters piled up in the AT command handler, disturbing future use of this command handler.
Is there an elegant solution to that?
Maybe a command to "clean" the AT command handler?
I cannot re-instantiate the AT command handler, because it consumes too much memory if you do it periodically.
Yes, I can send a dummy command to the RN2483's UART and just deal with the fact that it will return an error due to the piled up garbage characters, but that doesn't seam elegant to me. There has to be a more attractive solution :)
Ahh, forget about it. Just sending \r\n on the AT command handler and ignore the returned result works okay for me. Sorry for this post. I tried to delete it, but could not find this feature.
Actually @wklenk, this post contains the condition others may encounter with UART comm, along with your discovery. It is good information.
Thanks, that's handy to know though.
Some other potential ideas:
Don't worry about formatting, just type in the text and we'll take care of making sense of it. We will auto-convert links, and if you put asterisks around words we will make them bold.
For a full reference visit the Markdown syntax.
© Espruino, powered by microcosm.
Report a problem