Notifications
Clear all

GPSDR ++ GNSS reception improvement for getting a fix with the U-Blox M8N chip

12 Posts
3 Users
0 Reactions
212 Views
(@julius-hermens)
Posts: 7
Active Member Customer
Topic starter
 

Hi,

After some hours of trying to get a fix with the GNSS receiver on the VU GPSDR board I decided to connect an active GNSS antenna. I used a small cable (pigtail) with a connector suitable for the GPSDR antenna connector a SMA female connector. With this set-up even inside the house I got a fix within a few minutes. This is conform my experience with GNSS u-blox modules connected via a serial to USB interface and using U-center. To investigate further I connected the GPSDR patch antenna (13x13mm) to one of my U-blox M8N modules. It took a long time to get a fix with the GPSDR patch antenna, less satellites and the deviations were much larger than with the patch antenna (20x20) delivered with the module.

For me the patch antenna seems to be inadequate and I plan to make a 3D printed back plate with the possibilitie to attach the SMA pigtail permanently to the GPSDR unit.

By the way I also went also through all the power problems with the Vivid Unit combined with the GPSDR. Facing USB-C cables that don't work and USB chargers that don't work even when specified for 5V, 3 Amp. I got it working with a Samsung Super fast charger with its original USB-C to USB-C cable and with an Anker powerbank with an USB-C to USB-A cable connected to Vivid Unit extender board.

 
Posted : 01/12/2025 12:01 pm
(@admin)
Posts: 708
Member Admin
 

The 18x18mm GPS antenna on VU GPSDR is already an active one, and it has an LNA with about 30dB gain built-in. Its performance may get limited by the way it is placed. 

We never have problem to get a GPS fix outdoor, sometimes we even get a fix inside our office (the emerald LED lights up).

We did tested some bigger active antennas with iPEX-to-SMA adapter, and some of them did get better performance. Probably due to:

  • bigger antenna size, and
  • the flexibility to adjust angle during usage, and
  • keep away from sources of interference from the device itself
1765011036-GPS_fixed_in_office.jpg
 
Posted : 01/12/2025 12:49 pm
(@julius-hermens)
Posts: 7
Active Member Customer
Topic starter
 

@admin It is probably true that you get a fix outside with that small patch antenna. But I see a significant difference between that antenna and the patch antennas with a larger dimension when I connect it to a GNSS-module with an original U-Blox Neo M8N module while observing the performance with Ublox's U-center. The C/N0 is lower, the amount of satellites is lower, the position deviations are larger (50 m against 5 m). To really make use of the frequency output I assume that one needs to have a stable fix providing the 1 second PPS sync pulse. Maybe the active part of my GPSDR patch antenna LNA gain is lower than its specification or it is faulty. The actual position I used for both patch antennas was exactly the same.

Can you tell me the configuration of the U-blox Neo M8N on the GPSDR? As it is using the I2C communication I don't have a means to query the module with the UBXTool that communicates over serial or USB-to-serial COM ports.  I guess I could take the GPSDR out of the extender board and hook up a serial to USB interface to the serial header near the U-Blox Neo M8N module marked as RXD, GND and TXD and connect the 3.3 V near IC31.

 
Posted : 01/12/2025 2:36 pm
(@admin)
Posts: 708
Member Admin
 

The TXD and RXD of M8N module has already been brok out to the unpopulated header P1 (on the right of the M8N), and you may try your connection from there first.

The STM8 microcontroller also queries the module in the background, and I am not sure if that will affect the communication with your UBXTool.

I am not sure what kind of configuration are you looking for? If you wonder how GPSDR++ initialises the M8N module, it is all in the gps.c file: https://github.com/uugear/GPSDRPP/blob/main/core/src/gps.cpp

 
Posted : 01/12/2025 2:54 pm
(@julius-hermens)
Posts: 7
Active Member Customer
Topic starter
 

@admin A quick scan of the code reveils, that the M8N is configured withwhat I think is the U-Blox default configuration at least for the sat configuration to be used.I.e. GPS, Glonass, SBAS, QZSS and Galileo. Further it looks like that mainly NMEA messages are read from the GNSS module. There is I think no information on what features of the module are enabled and what firmware it is flashed with. U-Bloxdoesn't develop updates for this module anymore unfortunately. My other modules I could update to Version 3.01 as downloaded from U-Blox.

With respect to hooking up the M8N serial interface to my PC I have some concerns, especially with the 3.3 V supply. I don't want to short something when I connect a 3.3 Volt supply to the pin near IC31. If the unpopulate serial header is not connected to anything else a serial connection to a laptop orPC it maybe possible when the GPSDR is powered by the extender board and use only the GND, TX and RX pins, the serial to USB interface would be powered by the USB port and the U-Blox would be powered by the extender board. I have to verify that in the schematic drawings to be sure.

Attached a picture of the GNSS fixed with the external active patch antenna behind a window looking to the south. With the standard patch antenna I don't get a fix at all even when I put the GPSDR screen down antenna facing up. 

 
Posted : 01/12/2025 9:47 pm
(@julius-hermens)
Posts: 7
Active Member Customer
Topic starter
 

The picture was too large, another try.

1764622842-20251201_213048-1.jpg
 
Posted : 01/12/2025 10:00 pm
(@admin)
Posts: 708
Member Admin
 

Indeed we currently use M8N with its default configuration, and its firmware version is also 3.01.

If you are interested, you may use the attached Python script (I renamed it to .txt for uploading) to read related information (after GPSDR++ has been run at least once).

You can run it like this:

mv read_M8N_fw_info.py_.txt read_M8N_fw_info.py

python3 read_M8N_fw_info.py

Depends on your software installation, you may need to do these beforehand:

sudo apt install pip

pip install smbus2

The output of that Python script will look like:

=== NEO-M8N Version info ===
Firmware (swVersion): EXT CORE 3.01 (107900)
Hardware (hwVersion): 00080000
Extra info:
- ROM BASE 3.01 (107888)
- FWVER=SPG 3.01
- PROTVER=18.00
- MOD=NEO-M8N-0
- FIS=0xEF4015 (100111)
- GPS;GLO;GAL;BDS
- SBAS;IMES;QZSS

 

 
Posted : 02/12/2025 10:10 am
(@julius-hermens)
Posts: 7
Active Member Customer
Topic starter
 

@admin 

Thanks, that output looks familiar to me. 

UBXtool seems to work also over the I2C interface, if I can find out what the I2C interface is for the M8N on the GPSDR, according to this:

ubxtool over i2c

 is not a direct command, but rather a method of interacting with a u-blox GPS receiver over an I2C (Inter-Integrated Circuit) interface, using the ubxtool utility or a library, to send and receive binary UBX protocol messages. This is achieved by specifying the I2C port in the configuration and commands, as I2C is a common alternative to UART for communicating with u-blox modules. 

 
How it works
  • Protocol: You use the same UBX binary protocol commands for I2C as you would for UART, but you configure the commands to target the I2C port (often referred to as "DDC" by u-blox).
  • Configuration: You can disable unnecessary NMEA messages and change the message output rate using the UBX-CFG-MSG command to reduce the amount of data sent over I2C.
  • Implementation:
    • You can build custom code (e.g., with Arduino) to send and receive UBX messages over I2C.
    • Tools like ubxtool can be configured to communicate over the I2C bus if your system is set up to use it.
  • Example Commands:
    • To configure a message output, use UBX-CFG-MSG and specify the I2C port for the output.
    • For example, UBX-CFG-MSG with RMC - Only active on I2c with a value of 1 would enable the RMC message to be sent over I2C. 
 
Key considerations
  • I2C Interface: The I2C port on the u-blox module is also known as "DDC" (Display Data Channel).
  • Data Sheets: Always refer to the specific u-blox module and firmware documentation for precise details on how to configure and use the I2C interface.
  • Performance: To get data faster, you can disable messages you don't need to reduce the size of the data packets. 
 
Posted : 03/12/2025 2:01 pm
(@julius-hermens)
Posts: 7
Active Member Customer
Topic starter
 

Hi,

From the python script you provided, I got that the U-Blox module on the GPSDR is the device /dev/i2c-2.

So:

$ubxtool -d BEIDOU /dev/i2c-2

Should disable the use of BEIDOU

$ubxtool -e BEIDOU /dev/i2c-2

Should enable the use of BEIDOU

ubxtool is part of the GPSD project https://gitlab.com/gpsd/gpsd and can be installed with:

$sudo apt install gpsd

Examples of how to use ubxtool I found on https://gpsd.io/ubxtool-examples.html

Other useful information I found on https://conorrobinson.ie/raspberry-pi-ntp-server-part-4/ for more understanding of how to set up a Raspberry PI with a GNSS module as a Stratum 1 NTP server, this information could be used I think for the GPSDR also by directing gpsd to /dev/i2-c instead of the default /dev/serial0 or /dev/tty0 device.

 

 
Posted : 03/12/2025 10:54 pm
(@test27)
Posts: 19
Eminent Member Customer
 

You stated,

The 18x18mm GPS antenna on VU GPSDR is already an active one, and it has an LNA with about 30dB gain built-in. Its performance may get limited by the way it is placed.

If I plug in an external antenna into the board where it plugs in, will it get the same (about 30dB gain), the reason I'm asking is I'm not sure where the LNA is located, is it in the NEO-M8N module?

 

 
Posted : 08/12/2025 8:21 am
(@admin)
Posts: 708
Member Admin
 

@test27 The LNA is under that 18x18mm GPS antenna (in a small, flat metal case). The LNA is integrated with that antenna, and is powered via bias-tee when it connects to the board.

If you connect another active antenna to the board, it will be using its own LNA instead.

 
Posted : 08/12/2025 10:11 am
(@julius-hermens)
Posts: 7
Active Member Customer
Topic starter
 

A picture of my solution for a backplate with a SMA connector for an external GNSS antenna.

1765220545-gpsdr-back-plate.jpg
 
Posted : 08/12/2025 8:02 pm
Join Waitlist We will inform you when the product arrives in stock. Please leave your valid email address below.