Hi all,
we have the Electron on our PCB together with a Ublox Neo-M8N-0-10.
The GPS module's UART is linked to Electron's USART1 and I can read messages from it via Serial1.
Unfortunately something is not working well since from the GPS I'm getting:
$GNTXT,01,01,01,More than 100 frame errors, UART RX was disabled*70
From the Ublox forum I found this:
This is a common symptom when your MCU sets its TX pin (connected to M8P RX pin) to 0 V / logic LOW when MCU is not transmitting. Check your MCU code; check the idle state output of your.MCU or any other logic that connects to NEO RX. RX input on M8P must stay high (above about 70% of NEO VCC) at all times when idle and NEO is operating.
Now I'm asking you if the Electron has the behaviour descripted above and how I can prevent it.
I'm currently running a very simple sketch:
SYSTEM_THREAD(ENABLED);
SYSTEM_MODE(MANUAL);
String inWord;
char inByte;
String data;
void setup() {
Serial1.begin(9600, SERIAL_8N1); // GPS Serial
delay(2000);
}
void loop() {
while (Serial1.available() > 0) {
inByte = Serial1.read();
if (inByte == '\n') {
Serial.println(inWord);
if (inWord.startsWith("$GPRMC")) {
data = inWord;
}
inWord = "";
}
else
inWord += inByte;
}
}
To exclude (I guess) any PCB related issues I've detached the Electron I used another MCU (an UDOO Neo in my case) to power 3V3/GND the PCB/GPS and to read the Serial. With the other MCU I haven't got any GNTXT error checking with minicom -D /dev/ttymxc5 -b 9600.
Any ideas?