GNSS Receiver Breakout - MAX-M10S not working

Hi,

I’m trying to hook up an GNSS Receiver Breakout - MAX-M10S module to an ESP32-AZ-delivery device, but it doesn’t seem to work…

I currently have the wiring hooked up as follows:

uBlox module ESP32
3V3 3V3
RX TX (gpio 17)
TX RX (GPIO 16)
GND GND

I’m using the simple example code

(but I have enabled the debugging already and all I see is the following;

17:04:54.045 → waitForACKResponse: TIMEOUT after 1100 msec.
17:04:54.045 → getVal: sendCommand returned: Timeout
17:04:54.045 → u-blox GNSS not detected
17:04:54.045 → Attempting to enable the UBX protocol for output
17:04:54.045 →
17:04:54.045 → Sending: CLS:CFG ID:0x8A Len: 0xE Payload: 0 3 0 0 1 0 76 10 1 2 0 76 10 0
17:04:54.078 → sendCommand: Waiting for ACK response
17:04:55.159 → waitForACKResponse: TIMEOUT after 1100 msec.
17:04:55.159 →
17:04:55.159 → Sending: CLS:CFG ID:0x8A Len: 0x9 Payload: 0 3 0 0 4 0 76 10 0
17:04:55.159 → sendCommand: Waiting for ACK response
17:04:56.279 → waitForACKResponse: TIMEOUT after 1100 msec.

So in basics, this is the code;

#include <SparkFun_u-blox_GNSS_v3.h>

SFE_UBLOX_GNSS_SERIAL myGNSS;

#define gpsSerial Serial2

void setup() {
  Serial.begin(115200);

delay(1000); 

  Serial.println("Starting GPS...");

  gpsSerial.begin(38400);

  myGNSS.enableDebugging();

  myGNSS.connectedToUART2();

while (myGNSS.begin(gpsSerial) == false) //Connect to the u-blox module using mySerial (defined above)
  {
    Serial.println(F("u-blox GNSS not detected"));
    
    Serial.println(F("Attempting to enable the UBX protocol for output"));
    
    myGNSS.setUART2Output(COM_TYPE_UBX); // Enable UBX output. Disable NMEA output
    
    Serial.println(F("Retrying..."));
    delay (1000);
  }
}

//... loop code, but never reached here dus to not being able to communicate...

What I physically see; No blinking led for the fix (I do see power). I connected the RX and TX at the side of the module (so not at the opposit side of the SMA connector).

There is an external antenna connected to the module and has a clear sky view. The uBlox module has been bought 3 days ago.

Any ideas? Thanks in advance!

Kindest regards

Robin

MAX-M10’s default baud rate is 9600, w/GSV at 1/5th Hz
UART2 ? There’s not a second UART on the M10

Okay, thanks, got it communicating, however, I still don’t get a fix? What can be up with that?

Hi Robin (@Robin_Rosiers ),

I think you are getting your code examples mixed up?

Basics/Example12_UseUart will work on the MAX-M10S. Afterwards, the MAX-M10S UART1 baud rate will be set to 38400 baud and it will only output UBX messages. That example disables NMEA output on UART1.

The code you posted seems to be based on Example5_CustomSerial. That won’t work on the MAX-M10S. As Clive says, it has no UART2. From that example: “UART2 is only available on modules like the ZED-F9P/R/T/K etc… It is not available on the MAX-M10.”

Regarding the ESP32 serial port, please check you have the correct board and port selected. Are you using the Arduino IDE? Are you using the Espressif arduino-esp32 board package? Which version? Which “board” have you selected? I’m seeing some references to the “NodeMCU” TX2 and RX2 being pins 17 and 16. But “Serial2” will only work correctly if you have the correct board, port and pins selected. You may have to define the pins manually:

// In globals
HardwareSerial mySerial(1); // Use ESP32 UART1
int8_t myTxPin = 17; // GPIO pin for UART TX
int8_t myRxPin = 16; // GPIO pin for UART RX

// In setup
mySerial.begin(9600, SERIAL_8N1, myRxPin, myTxPin);
while (myGNSS.begin(mySerial) == false) //Connect to the u-blox module using mySerial
{
  Serial.println(F("u-blox GNSS not detected"));
}

I hope this helps,
Paul

For fix problems, please check your antenna is connected correctly and has a clear view of the sky. Which antenna are you using?

Hi Paul (@PaulZC )

Thanks for the super fast answer, yep, now I see that I’ve been wrong and mixing up things (programming on a sunday evening isn’t the best idea lol)

The fix issue is I think due to the used antenna indeed, it’s a random chineese thing I had laying around, only things on it;
‘module: GPS-001’
‘voltage: 3v-5v’
‘frequency: 157.42MHz’

the antenna is placed next to a window (also placed it outside already, same result)

guess i’ll need another antenna?

Hi Robin,

‘frequency: 157.42MHz’ makes no sense… 1575.42 would be correct for the L1 band.

Maybe that antenna is drawing too much current? The MAX-M10S breakout antenna power circuit includes a current-limit resistor, to prevent damage if the antenna cable is shorted. If your antenna is drawing more than 10mA, the voltage drop will be too high and will stop the active antenna from working. Maybe try a passive antenna, if you have one?

I hope this helps,
Paul

Hmm, well I also have an ANT-555 (mounted in my car) So that is a little bit more difficult to test with lol.

However I’ll try it out.

Do you have any kind of suggestion of external antenna atherwise? I’m looking for one on my car (thus magnetic base with protective feet) and around 3-5m cable.

ANT-555 should work well. The quoted current draw is 8mA.

An alternative would be:

1 Like

The only real issue I see with the ANT-555 is it’s 1575.42 MHz only. It will give you GPS, SBAS, GALILEO, BEIDOU (B1C on M10’s), QZSS
GLONASS buys you perhaps another half-dozen satellites

Thanks all for the quick help, attaching it to the different antenna worked instantly.