UART / Serial Garbled
Posted: Mon Oct 21, 2024 6:45 am
Hi all,
I'm working on a ESP32-S3-WROOM-1 custom board. I am using the Arduino IDE and the ESP32S3 Dev board type.
The board flashes correctly from the Arduino IDE.
My custom board has an L80-R GPS chip connected to the ESP32S3. The connections are: L80 TX -> ESP32 Pin 11 (as RX), and L80 RX -> ESP32 Pin 10 (as TX). Power and GND are all correct.
As per the doco from the GPS manufacturer - the initial baud rate from the GPS is 9600, SERIAL_8N1.
I am using a very basic Arduino C++ program to read the chars coming from the L80 GPS however they are garbled. i.e. � or int 255.
I have tried all baud rates from 4800 through to 115200 and none make a difference.
I have been trawling many sites looking for clues and have seen some commentary regarding clock speeds - which I have tried to reduce from 240 MHZ through to 10 MHZ - to no avail.
I am comfortable that there are no cross talk issues on the RX/TX lines from the GPS to the ESP32S3.
This one has me slightly stumped. As I said, I am getting something from the GPS and it does look like a baud rate issue, but again, changing rates hasnt helped.
Any help is greatly appreciated.
The program is:
I'm working on a ESP32-S3-WROOM-1 custom board. I am using the Arduino IDE and the ESP32S3 Dev board type.
The board flashes correctly from the Arduino IDE.
My custom board has an L80-R GPS chip connected to the ESP32S3. The connections are: L80 TX -> ESP32 Pin 11 (as RX), and L80 RX -> ESP32 Pin 10 (as TX). Power and GND are all correct.
As per the doco from the GPS manufacturer - the initial baud rate from the GPS is 9600, SERIAL_8N1.
I am using a very basic Arduino C++ program to read the chars coming from the L80 GPS however they are garbled. i.e. � or int 255.
I have tried all baud rates from 4800 through to 115200 and none make a difference.
I have been trawling many sites looking for clues and have seen some commentary regarding clock speeds - which I have tried to reduce from 240 MHZ through to 10 MHZ - to no avail.
I am comfortable that there are no cross talk issues on the RX/TX lines from the GPS to the ESP32S3.
This one has me slightly stumped. As I said, I am getting something from the GPS and it does look like a baud rate issue, but again, changing rates hasnt helped.
Any help is greatly appreciated.
The program is:
Code: Select all
#include <HardwareSerial.h>
HardwareSerial MySerial(1); // Using UART 1 with custom pins
const int MySerialRX = 11;
const int MySerialTX = 10;
#define BAUD 9600
void setup()
{
Serial.begin(115200);
MySerial.begin(BAUD, SERIAL_8N1, MySerialRX, MySerialTX, false);
}
void loop()
{
while (MySerial.available() > 0) {
char byteFromSerial = MySerial.read();
Serial.print(byteFromSerial);
}
}