I’m losing the first few characters, and only the first few when my ESP8266 sends to the terminal on my Blynk app on my Android phone. The data is an ASCII log file from a controller consisting of around 10 lines of 16 characters, each suffixed with CR and LF. As nobody else seems to have this issue it points to a problem with the data itself which is a simple 38,400 bauds serial stream sent in response to a request from the ESP8266. The data flow is:
Button on Blynk app sends to ESP8266
ESP8266 picks it up and sends a serial command to the controller (actually 0x02,0x4C,0x4C,0x0D,0x0A)
Controller responds with the log data text
ESP8266 sends the text to the virtual terminal on the Blynk app.
If I connect directly to the controller with a PC serial application it works perfectly every time.
The data is serial and meets all the voltage requirements (3.3V uni-polar) and a logic analyzer on the serial lines confirm the data is as expected. The only unusual aspect is the controller can intentionally start a reply with either 0x04 or 0x05 as part of the data routing. These are intercepted as the first character in the response and used to control indicators (LEDs) or to say the following text is a push message. Any response that does not start with those bytes is passed verbatim to the terminal window.
Question: How does the terminal window in the Blynk app respond to non-printable ASCII characters? Does it for example recognize or do anything when it sees ASCII values lower than 0x20 (space character)?