From Microduino Wiki
Jump to: navigation, search

It may be the most beautiful GPS module that you have ever met. The core adopts UBLOX NEO-6M modules combination, which has high flexibility and the update rate can reach 5Hz. It adopts mini ceramic antenna of IPEX interface , and it has built-in rechargeable battery back-up.


  • High flexibility;
  • The update rate can reach 5Hz maximumly;
  • Supported by strong-function PC upper computer:u-center;
  • PPS indicating lights, which can make it convenient to judge the current state of the module;
  • Built-in rechargeable battery back-up(support the warm start or hot start);
  • Small, cheap, stackable, and open;
  • Ope-source hardware circuit design, and compatible-with-Arduino programming development environment.


  • Communication protocol:
    • Microduino NEO-6M module adopts NMEA-0183 protocol to output GPS location data by default, and it can configure the modules through UBX protocol;
  • Receiving characteristics:
    • 50 channel, GPS L1(1575.42Mhz) C/A code, SBAS:WAAS/EGNOS/MSAS
    • Capture tracking sensitivity: -161dBm
  • Accuracy of positioning
    • 2.5 mCEP (SBAS: 2.0mCEP)
  • Update date
    • Maximum 5Hz
  • Capture time
    • Cold start : 27S(at the soonest)
    • Hot start: 1S
  • The attached:
    • Cold start means that restart when the GPS receiving history information saved by the module is all lost(which is equivalent to the main battery and the backup battery both have no power).
    • Warm start means that restart when the module saves the GPS receiving history information, but the current visual satellite information is not consistent with the saved information.
    • Hot start means that restart when the module saves the GPS receiving history information and it is consistent with the current visual satellite information.
  • Characteristics of interfaces
    • TTL, compatible with 3.3V/5V single-chip microcomputer system
    • Serial communication baud rate:
      • Microduino NEO-6M module supports multiple communication baud rate: 4800, 9600, 38400(default), 57600;
  • Set baud rate through the two resistance on the module(R3 and R4, recommend 1k value):
R3 R4 Protocol Baud Rate
Not weld Not weld NMEA 9600
Not weld Weld NMEA 38400
Weld Not weld NMEA 4800
Weld Weld UBX 57600

Description of Pins

Name of GPS module pins Microduino pin Function
TX Default D2 (you can choose RX0) Module serial port sending pin(TTL level), and can pick up SCM RXD
RX Default D3 (You can choose TX1) Module serial port receiving pin(TTL level), and can be connected to TXD of SCM

PPS Status Indicator Lamp

  • The light is connect to the TIMEPULSE port of UBLOX NEO-6M module set, and the output characteristics of the port can be set by the program;
  • PPS light has two status, by default(without the program set):
    • Lights all the time, means the module has started to work, but not yet realize positioning;
    • Twinkle(100ms off, and 900ms on), means the module has positioned successfully;
  • It is convenient to judge the current status of the module through the PPS indicator light.


Main Component


*Please confirm whether the current of the +3.3v power supply can reach 200ma. It is not recommended that directly use the FT232R to debug, because the +3.3v current that FT232R outputs is too small.

Jumper Change

  • Players change module jumper by themselves:Cut off the wire on the center and the left of the two groups(D2 and D3) of bonding pad, and weld the middle and the right (RX0, TX1)of the bonding pad.
    • If you has used the method of changing the jumper, you can connect Microduino NEO-6M with the serial port of the core, and change from TX-D2 and RX-D3 to: TX-RX0, RX-TX1.
    • After changing the jumper, when downloading programs, please unplug Microduino NEO-6M module;or it will have a conflict with downloading programs.

Arduino Library and Support Package

Use Items of Library

  • Open the example"gps_test" program
Gps test.jpg
  • Please confirm that the GPS module baud rate in void setup() is 38400, namely:GPS.begin(38400);
  • If you haven't altered the jumper wire on the reverse of the module:
    • When using Core+ to debug, you need to confirm that the program has the following definition:Adafruit_GPS GPS(&Serial1);
    • When using Core to debug, you need to change "Adafruit_GPS GPS(&Serial1)" into "SoftwareSerial mySerial(3, 2); and Adafruit_GPS GPS(&mySerial);"
  • If you have changed the jumper on the reverse of the module:
    • When download programs, please unplug Microduino NEO-6M module;
    • When using Core or Core+ to debug, you need to confirm that the program has the following definition: Adafruit_GPS GPS(&Serial);


Program Download

The testing programs: File:Program Test

Test Microduino NEO-6M Module

  • Hardware needs to be prepared: Microduino USBTTL, Microduino Core+, Microduino OLED, Microduino GPS;
  • Software needs to be prepared: Arduino IDE(Version 1.0 and above), Adafruit_GPS library, and the testing programs (Arduino end)that Microduino provides;
  • Environment need preparing: Open area, please don't test indoor.
  • After downloading, you'd better stack Microduino NEO-6M after cut off the electricity, to prevent stacking error , leading to short circuit and burn the modules.
  • You can watch OLED after powering on:
    • After about half a minute, the date and time will be displayed firstly;
    • Continue waiting. When you see the PPS indicator light is twinkling, the velocity, latitude and longitude indexes should be all displayed. If not, please restart Microduino Core.


  • What to do if some problems appear when using this module?
    • Please refer to the instruction and testing programs in wiki.
  • How much is the power consumption of Core module and GPS module?To choose the power.
    • You need to make sure that the 3.3v is more that 200ma
  • How to change the jumper





Microduino NEO Front

Microduino NEO Back