Connecting the GPS receiver to a PC

For practical use, most likely you will want to eventually connect the GPS receivers to battery powered low cost single board computers, such as a Raspberry Pi or Beaglebone, to make them portable and stand-alone.  For testing though, the simplest way to get started is to plug both receivers directly into the USB ports of a laptop.  You will not get usable data if you try to collect data inside a building, so don't waste time trying this on a desktop computer.  It's OK to get everything configured on the laptop in the house, but be sure to choose a location with open skies away from buildings and trees when your ready to collect your first real data.

I did all my initial testing with two receivers, one as the base station reference and one as the rover.  There are other ways to get base station data that would allow you to use only one receiver, especially if you are doing post-processing rather than real-time positioning, but for these tutorials,  I will assume you are using two receivers.

If you use the M8T receivers from CSG with a USB interface that I suggested in my last post, then this step is trivial, just use two USB cables to connect the receivers to the laptop.  In that case you are done and can skip to the next post.

[Update 11/29/16:  The new Windows/u-blox sensor drivers have made this a little more complicated.  If you only need to connect one receiver at a time, the new sensor driver will work fine but if you want to connect two receivers simultaneously or want to connect a receiver directly to RTKLIB you will need to downgrade to the Windows COM port drivers.  See this post for details.]

If you are using M8N receivers with a UART interface rather than USB then it is a bit more complicated since we need to first convert the UART signals to USB.  I am using a USB to UART converter board (FTDI) from Sparkfun to do this.  There are many similar boards available, some are definitely less expensive.  I use this one because Sparkfun happens to be a few miles from my house.  If I place an order in the morning, I can pick it up in the afternoon, which is very convenient (and avoids any shipping charges).  The RX/TX lines on the u-blox receivers are 3.3 volt and are not tolerant of 5 volts so be sure you choose the correct board (see my note at the end of the post).

Here's a couple stock photos of the board I use.

 ftdi1ftdi2

 

 

And here is the FTDI board connected to my receiver and antenna.

rcvr

 

To connect the two boards requires four wires.  Note that RX and TX are swapped.

VCC-> VCC
GND -> GND
RX -> TX
TX -> RX

You can't see in the photo, but I soldered the connecting wires directly to the GPS receiver board and the other ends to a four pin header which I then plugged into the connector on the back of the FTDI board.

The board can now be connected to the PC with a USB cable, making sure you have the right connector for the UART board you are using, in this case, a mini-USB connector for the Sparkfun board.

Do this for both receivers and connect both to your laptop.

In the next post, I will cover using the Ublox eval software to talk to and configure the receivers before we start using RTKLIB.

 

 

Note on voltage levels:  USB/UART converter boards come in various combinations of 3.3V and 5V levels for Vcc and I/O.  Make sure you pay attention to the voltage levels when you select a converter board or cable.  The Vcc input on the GPS board is fed into a voltage regulator so Vcc can be either 3.3V or 5V.  RX and TX, however, are connected directly to the M8N chip and must be 3.3V.

I originally used a 5V version of the Sparkfun board and it worked fine for months but eventually I was not able to transmit commands to the receiver any more although everything else seemed to work fine.

Here's a schematic of the M8N based receiver I used that confirms the voltage levels.

m8n_schematic

 

Posted in Getting started, Tutorials and tagged , , .

One Comment

  1. Hi

    I need to connect 4 gps receiver signals into a single computer, process and compare the positions (X,Y,Z) independently… in as close to real-time as possible….

    Any thoughts?

Leave a Reply

Your email address will not be published. Required fields are marked *