Electron drops USART1 when it's not transmitting?

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:


String inWord;
char inByte;
String data;

void setup() {
    Serial1.begin(9600, SERIAL_8N1); // GPS Serial

void loop() {
    while (Serial1.available() > 0) {
        inByte = Serial1.read();
        if (inByte == '\n') {
            if (inWord.startsWith("$GPRMC")) {
                data = inWord;
            inWord = "";   
            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? :frowning:

I can’t remember where I saw the post but IIRC the Serial1 interface is set to non-return-zero after transmission so the issue mentioned in the ublox forum should not apply here.
However, you could try (temporarily) adding a 10k pull-up resistor to TX and see whether the issue disappears - or you do as they suggested and probe the idle state of the TX pin.

BTW, the Particle AssetTracker Shield v2 uses a ublox MAX-M8Q and that doesn’t have any issues with Serial1.
You could try the AssetTrackerRK library and see if the same issue creeps up with that - not sure about compatibility between Neo-M8N and MAX-M8Q tho’