Introduction: Using NEO-6M GPS Module With Arduino
Using NEO-6M GPS Module with Arduino. In this project we will be collecting GPS raw data using an Arduino Uno board.
Supplies
NEO-6M GPS Module
Arduino UNO
Arduino IDE App
4 connecting wires (pin wires)
Computer
Step 1: Connect the Arduino Board
Open the Arduino IDE connect the board. Delete the current code (void setup etc..). Replace with code below (copy and paste it in). This is the code used below.
Step 2: Pin Wiring
The NEO-6M GPS module has four pins: VCC, RX, TX, and GND. The module communicates with the Arduino via serial communication using the TX and RX pins, so the wiring couldn’t be simpler
Step 3: Setting Up Serial Monitor
In the Arduino IDE app, in the top left corner you will see a "tools" button. Press it and the drop down will appear, one of the options is a Serial Monitor. Open the Serial Monitor at a baud rate of 9600. It should look like the image above.
Step 4: Reading the Data
- 110617 – represents the time at which the fix location was taken, 11:06:17 UTC
- 41XX.XXXXX,N – latitude 41 deg XX.XXXXX’ N
- 00831.54761,W – Longitude 008 deg 31.54761′ W
- 1 – fix quality (0 = invalid; 1= GPS fix; 2 = DGPS fix; 3 = PPS fix; 4 = Real Time Kinematic; 5 = Float RTK; 6 = estimated (dead reckoning); 7 = Manual input mode; 8 = Simulation mode)
- 05 – number of satellites being tracked
- 2.68 – Horizontal dilution of position
- 129.0, M – Altitude, in meters above the sea level
- 50.1, M – Height of geoid (mean sea level) above WGS84 ellipsoid
- empty field – time in seconds since last DGPS update
- empty field – DGPS station ID number
- *42 – the checksum data, always begins with *
- $GPGSA – GPS DOP and active satellites
- $GPGSV – Detailed GPS satellite information
- $GPGLL – Geographic Latitude and Longitude
- $GPRMC – Essential GPS pvt (position, velocity, time) data
- $GPVTG – Velocity made good
Step 5: Additional - HM10-Bluetooth
You can also use a Bluetooth module like the HM10-Bluetooth and connect the data using that.


