Oct 31: Corrected pin numbers for how to wire the SN74AHC125  IC.


In this guide I will hook-up the LS20031 GPS receiver to a PC (most likely a laptop) to interface it to Google Earth. This is a 3-part process:
  1. Wire the LS20031 GPS receiver to the FTDI serial-USB interface.
  2. Configure the LS20031 GPS receiver baud rate and other settings using the MiniGPS 1.4 utility.
  3. Connect the LS20031 GPS receiver either in real-time or batch-mode (import NMEA log file) to Google Earth.
This guide is a precursor to a follow-up guide for a GPS Logger using the LS20031 receiver, Arduino Uno, and an SD card. But unlike other GPS loggers, this one will not use TinyGPS or SoftwareSerial libraries leaving plenty of Arduino program memory available. I will publish the GPS logger soon after I finish this guide. So stay tuned.


The LS20031 is a bread and butter GPS receiver. It's very simple to operate like most serial GPS receivers. It's a decent receiver for the money (appx. $50). This receiver is made by LOCOSYS Technology.
  • Model: LS20031
  • Chip: MediaTek MT3329
  • Voltage: 3.3V
  • Frequency: L1 1575.42MHz, C/A code
  • Channels: Support 66 channels (22 Tracking, 66 Acquisition)
  • Update rate: 1Hz default, up to 10Hz
  • Hot start: (Open Sky) < 2 seconds (typical)
  • Acquisition Time: Cold Start (Open Sky) 35 second  (typical)
  • Autonomous 3m (2D RMS)
  • Position Accuracy: SBAS 2.5m (depends on accuracy of correction data)
  • Datum: WGS-84 (default)
  • Max. Operating Altitude: < 18 Km
  • Max. Operating Velocity: < 515 m/s


It's possible to use a 3.3V FTDI interface to wire the LS20031 directly to the PC without the 5V to 3.3V level-shifting, but I am planning to use this prototype for my GPS logger which is controlled by a 5V Arduino Uno. Also, most of the FTDI interfaces in circulation in my geek group (PIN13 Protospace) were purchased from Ebay and they tend to be 5V only.

I tried using resistors as voltage dividers to shift from 5V to 3.3V but the circuit was unstable, especially when an SD card was part of the circuit  So I opted to use a 3.3V regulator and a quad bus buffer to drop the FTDI's 5V power pin and the TX signal from 5V to 3.3V. The performance of the final prototype is stable. 
  • LS20031 GPS Receiver: $50 (Ebay, Pololu, SparkFun, Adafruit)
  • Basic FTDI (5V) Serial over USB: $7 (Ebay)
  • SN74AHC125 Quad Buffer used as 5V to 3.3V level shifter/converter: $0.5  You can user the popular CD4050 if you prefer. They are not pin compatible but plenty of wiring examples on net. (Mouser).
  • LM1117T-3.3V Regulator TO-220: $0.5 (Futurlec, Ebay) 
  • Electrolytic capacitors 10uf X 2: $0.5
  • Breadboard
  • Right-angle male header 2.54mm/0.1in. Only 5-pins are needed to be soldered to the GPS receiver so we can plug it into the breadboard.: $0.5 (Ebay)
  • Jumper wires
  • MiniGPS - To configure and debug the GPS receiver
  • Google Earth - To map the data tracked by the GPS receiver
  • TeraTerm - You can use this simple terminal software to also receive and send data to/from the GPS receiver. In this guide I will use it as a detection tool to find out which COM port the FTDI adapter is connected to. 

Hazim Bitar (techbitar)
techbitar at gmail dot com


This is a short video to help visualize the process of exporting the NMEA coordinates from MiniGPS to a log file. Also, the video shows how to connect Google Earth to the GPS receiver to receive NMEA coordinates and other data in realtime as well as how to import the NMEA log file generated by MiniGPS into Google Earth.

Step 1: Wiring the circuit

  • VIN......PIN2 (3.3V) which is the middle pin of the LM1117T regulator
  • RX.......PIN3 (1Y) of SN74AHC125 IC
  • TX.......RX pin of FTDI adapter
  • GND...GND rail of breadboard
  • GND...GND rail of breadboard
Notice how I am connecting the TX pin of the LS20031 to the RX pin of the FTDI without and voltage conversion. That's because a 5V input pin can handle a 3.3V output and considers it a logic high.

  • GND.....GND rail of breadboard
  • CTS......NC
  • 5V ........5V rail of breadboard
  • RX........TX pin of the LS20031 GPS receiver
  • TX.........PIN2 (1A) of the SN74AHC125 IC
  • DTR.....NC

  • PIN1 (1OE) ........GND
  • PIN2 (1A)............5V PIN of the FTDI adapter
  • PIN3 (1Y) ............RX PIN of the LS20032 GPS receiver
  • PIN7 (GND)........GND rail of breadboard
  • PIN14 (VCC)......3.3V pin which is the middle pin of the LM1117 regulator
  • PIN1 (GND)......GND of breadboard rail and to negative pins of the two 10uF electrolytic capacitors.
  • PIN2 (3.3V).......VIN pin of the LS20031 and PIN14 of the SN74AHC125 IC and to the positive pin of the first 10uF electrolytic capacitor
  • PIN3 (VIN).........5V pin of FTDI adapter and to the positive pin of the second 10uF electrolytic capacitor

Hi, thank you for your good projects!. <br> <br>I encountered your these two related projects, and really like them! I decided to build them myself to get used to and learn more about this kind of projects. I have a problem, if you can help me with this, that will be great. <br> <br>I built the same circuitry with same components. This is the first time I use LS20031 and the other components. I make the com configuratins with tera term, make the ls20031 configurations with mini gps. I am able to get response but, all the datas are invalid like : <br> <br>$GPRMC,102635.009,V,,,,,0.00,0.00,040413,,,N*45 <br>$GPRMC,102636.009,V,,,,,0.00,0.00,040413,,,N*46 <br> <br>what may be the problem? can you help me with this ? <br>
does this GPS locator has to be always plug in into a computer or is it portable so that we can know where to find the bearer of the GPS reciever? reply pls ASAP tnx <br>NICE project by the way.. :)))))
You may wish to look at my latest guide <br>http://www.instructables.com/id/Geo-Data-Logger-ArduinoGPSSDAccelerometer-to-l/
Very nice!
Glad you like it.
Are you planning on doing something along these lines that is a fullblown GPS 'cause I'd love something like this for my bike.
I have something in the works :)
Sweet please post when you are ready.
Great Instructable, and do publish the other GPS Projects, please! :) <br>A note about it went into my Gizmo blog: <br> <br>http://faz-voce-mesmo.blogspot.pt/2012/11/paspi-pc-portatil-sketchy-phisics.html <br> <br>Well, Raspi runs on Ubuntu Linux, and with this other Instructable, you install Google Earth in just one step! <br> <br>http://www.instructables.com/id/How-to-install-Google-Earth-in-Linux-the-easy-way/
Thanks, Edgar!
Lovely diagrams! Really nicely done. No idea why I'd want to do this. I do have a GPS receiver that came with MS Streets and Trips. Could I use it? It has a USB connector that plugs right in to the laptop - but it looks as if I'd need to plug it into some of your stuff and then connect it to the laptop. At any rate, thanks for sharing this one.
nice idea! Wlll you be incorporating this into a project eventually? do you know if you can run google earth on a raspberry pi?
Thanks! Yes, I have a number of GPS-based projects in mind such as a GPS data logger which I had completed a while ago but have not finished documenting the steps yet. It would be great if Google Earth can run on RasPi. I Googled it but did not find anything helpful. Maybe I missed it. So many possibilities; so little time :(

About This Instructable


159 favorites


Bio: Did I unplug the solder iron?
More by techbitar: IR Remote Control Station for Android - TURN THE TV DOWN SensoDuino: Turn Your Android Phone into a Wireless Sensors Hub for Arduino Modify The HC-05 Bluetooth Module Defaults Using AT Commands
Add instructable to: