NEO-6M GPS with Arduino, ESP32, Raspberry Pi – Pinout Diagram and Wiring Guide


The NEO-6M GPS module is a very popular GPS Module for adding GPS functionality to electronics projects. The NEO-6M is widely used in hobby and DIY electronics projects because it offers accurate GPS data, low power consumption, and easy integration with microcontrollers. Whether you are building a tracking system, a navigation device, or just experimenting with GPS technology, this module is a great place to start.  It can provide details like latitude, longitude, altitude, speed, and time, which makes it perfect for vehicle tracking, navigation systems, drones, and even weather stations.

In this article, we are going to see the pinout diagram of the both NEO-6M GPS module and the standalone IC. Also, you will get the wiring diagrams that shows how to connect it to Arduino, ESP32, and Raspberry Pi. The steps are very easy to follow, even if you are new to electronics or programming.

Pinout Diagram


Here, in the below figure, you can see the NEO-6M GPS module Pinout Diagram and NEO-6 IC Pinout Diagram.

This figure shows NEO-6M GPS Module Pinout Diagram and NEO-6 IC Pinout Diagram


NEO-6M GPS module Pinout


The NEO-6M GPS module generally comes with a small onboard PCB that includes the a GPS chip, a button type backup battery, and an antenna connector. This module have 4 main pins used for interfacing with external devices. Here is the description for each pin is explained below,

VCC - Power supply (required 3.3V to 5V)
GND - Ground (need to connect to GND on the microcontroller)
TX - Transmit – Sends GPS data to the microcontroller
RX - Receive – Receives data from the microcontroller

NEO-6 IC Pinout


The NEO-6 IC has 24 pins, here are the details of each pin,

Pin 1 - RESERVED – Reserved pin, not connected in normal use.

Pin 2 - SS_N – SPI chip select (active low) for SPI communication.

Pin 3 - TIMEPULSE – Outputs precise timing pulse, typically 1PPS (1 Pulse Per Second).

Pin 4 - EXTINT0 – External interrupt input, used for event triggering or power saving.

Pin 5 - USB DM – USB data minus line for USB communication.

Pin 6 - USB DP – USB data plus line for USB communication.

Pin 7 - VDD USB – USB supply voltage input, required when using USB interface.

Pin 8 - RESERVED – Reserved pin, do not connect.

Pin 9 - VCC_RF – Power output to active antenna (typically 3.0V).

Pin 10 - GND – Ground connection.

Pin 11 - RF IN – RF signal input from GPS antenna (50Ω impedance).

Pin 12 - GND – Ground connection.

Pin 13 - GND – Ground connection.

Pin 14 - MOSI / CFG_COM0 – SPI MOSI or configuration input for communication settings.

Pin 15 - MISO / CFG_COM1 – SPI MISO or configuration input for communication settings.

Pin 16 - CFG_GPS0 / SCK – SPI clock input or GPS configuration pin.

Pin 17 - RESERVED – Reserved pin, not connected.

Pin 18 - SDA2 – I²C data line (SDA) for secondary I²C interface.

Pin 19 - SCL2 – I²C clock line (SCL) for secondary I²C interface.

Pin 20 - TXD1 – UART transmit data output (TX).

Pin 21 - RXD1 – UART receive data input (RX).

Pin 22 - V_BCKP – Backup power for RTC and SRAM (1.65V–3.6V).

Pin 23 - VCC – Main power supply (2.7V–3.6V).

Pin 24 - GND – Ground connection.


NEO-6M GPS Interfacing with Arduino


Here, you can see the connection diagram for interfacing NEO-6M GPS Module with Arduino UNO

This wiring diagram shows the connection for GPS Module NEO-6M Interfacing with Arduino Uno


To interface the NEO-6M GPS module with an Arduino Uno, start by connecting the power pins.

Connect the VCC pin of the GPS module to the 5V pin on the Arduino, and the GND pin to one of the Arduino's GND pins.

Next, connect the TX pin of the GPS module to the digital pin 4 on the Arduino, and the RX pin of the GPS module to digital pin 3 on the Arduino.

Since the GPS module uses 3.3V logic and the Arduino operates at 5V, it's recommended to use a voltage divider or a logic level shifter on the GPS RX pin (connected to Arduino TX) to avoid damaging the GPS module.


NEO-6M GPS Interfacing with ESP32(30-Pin Devkit)


Here, you can see the connection diagram for interfacing NEO-6M GPS Module with ESP32(30-Pin Devkit)

This wiring diagram shows the connection for GPS Module NEO-6M Interfacing with ESP32(30-Pin Devkit)


To interface the NEO-6M GPS module with an ESP32 (30-pin Devkit), begin by connecting the power lines. 

Connect the VCC pin of the GPS module to the 3.3V pin on the ESP32, and connect GND to GND. Unlike Arduino Uno, the ESP32 operates at 3.3V logic, which matches the GPS module, so there's no need for a logic level shifter. 

Next, for serial communication, connect the TX pin of the GPS module to GPIO16 (RX) on the ESP32, and the RX pin of the GPS module to GPIO17 (TX). 

Make sure the GPS antenna is placed where it has a clear view of the sky for reliable satellite lock.


NEO-6M GPS Interfacing with Raspberry Pi


Here, you can see the connection diagram for interfacing NEO-6M GPS Module with Raspberry Pi Pico.

This wiring diagram shows the connection for GPS Module NEO-6M Interfacing with Raspberry Pi Pico


To interface the NEO-6M GPS module with a Raspberry Pi Pico, begin by connecting the power pins - connect the VCC of the GPS module to the 3.3V (OUT) pin on the Pico, and connect GND to one of the Pico's GND pins. 

The Pico operates at 3.3V logic, just like the GPS module, so you can directly connect the communication lines without using a level shifter.

So, connect the TX pin of the GPS module to GPIO5 (Pico RX) and the RX pin of the GPS module to GPIO4 (Pico TX). You can use UART1 on the Pico for this communication.


Thank you for visiting the Website. Keep visiting for more Updates.

Powered by Blogger.