Difference between revisions of "Microduino-NEO-6M"

From Microduino Wiki
Jump to: navigation, search
(Development)
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
{{Language|Microduino-NEO-6M}}
 
{| style="width: 800px;"
 
{| style="width: 800px;"
 
|-
 
|-
Line 5: Line 6:
 
Microduino-NEO module maybe the most beautiful GPS module that you've seen. Its core module use UBLOX NEO-6M, high sensitivity, update rate up to 5Hz, using mini ceramic antenna with IPEX interface, and build-in a rechargeable battery backup.
 
Microduino-NEO module maybe the most beautiful GPS module that you've seen. Its core module use UBLOX NEO-6M, high sensitivity, update rate up to 5Hz, using mini ceramic antenna with IPEX interface, and build-in a rechargeable battery backup.
  
|-
 
|
 
 
==Feature==
 
==Feature==
 
*High sensitivity;
 
*High sensitivity;
Line 13: Line 12:
 
*PPS indicator,easily determine the current status of the module;
 
*PPS indicator,easily determine the current status of the module;
 
*Built-in rechargeable backup battery (to support warm start or hot start);
 
*Built-in rechargeable backup battery (to support warm start or hot start);
*Small, cheap, stackable, opened platform;  
+
*Small, cheap, stackable, opened platform;
 
*Open source hardware circuit design, compatible with the Arduino IDE development environment for programming; ;
 
*Open source hardware circuit design, compatible with the Arduino IDE development environment for programming; ;
*Define unified interface Microduino specification and contain rich peripheral modules. Set up the quick connection with other Microduino modules and sensors easily and flexibly.  
+
*Define unified interface Microduino specification and contain rich peripheral modules. Set up the quick connection with other Microduino modules and sensors easily and flexibly.
 
*2.54 pitch row female connector for easy integration into breadboard.
 
*2.54 pitch row female connector for easy integration into breadboard.
  
Line 47: Line 46:
 
**TTL,compatible 3.3V/5V microcontroller system
 
**TTL,compatible 3.3V/5V microcontroller system
 
**Serial communication baud rate:
 
**Serial communication baud rate:
***Microduino NEO-6M module supports several baud rate:4800、9600、38400(defult)、57600;
+
***Microduino NEO-6M module supports several baud rate:4800,9600,38400(defult),57600;
  
 
* Set the baud rate by two resistors (R3,R4,recommend value is 1k):
 
* Set the baud rate by two resistors (R3,R4,recommend value is 1k):
Line 74: Line 73:
 
[[File:NEO6M-Pinout-2.jpg|800px|thumb|center|Microduino-NEO6M-Pinout]]
 
[[File:NEO6M-Pinout-2.jpg|800px|thumb|center|Microduino-NEO6M-Pinout]]
 
[[File:NEO6M-Pinout-1.jpg|800px|thumb|center|Microduino-NEO6M-Pinout]]
 
[[File:NEO6M-Pinout-1.jpg|800px|thumb|center|Microduino-NEO6M-Pinout]]
 
  
 
==Document==
 
==Document==
Line 83: Line 81:
 
*GPS module:UBLOX NEO-6M:'''[[File:NEO-6 DataSheet (GPS.G6-HW-09005).pdf]]'''
 
*GPS module:UBLOX NEO-6M:'''[[File:NEO-6 DataSheet (GPS.G6-HW-09005).pdf]]'''
 
*Super capacitor:XH414H '''[[File:XH414H.pdf]]'''
 
*Super capacitor:XH414H '''[[File:XH414H.pdf]]'''
*Antenna Socket:IPEX  '''[[File:IPEX.pdf]]'''
 
  
 
*NMEA-0183 protocol: '''[[File:NMEA-0183 CN.pdf]]''','''[[File:NMEA-0183 EN.pdf]]'''
 
*NMEA-0183 protocol: '''[[File:NMEA-0183 CN.pdf]]''','''[[File:NMEA-0183 EN.pdf]]'''
 
*u-center GPS evaluation software User Guide: '''[[File:U-center GPS evaluation software User Guide.pdf]]'''
 
*u-center GPS evaluation software User Guide: '''[[File:U-center GPS evaluation software User Guide.pdf]]'''
 
  
 
==Development==
 
==Development==
 
* Make sure the +3.3 v power supply current can reach 200ma, not recommended use FT232R debugging directly, because FT232R's output +3.3 v current is too small.
 
* Make sure the +3.3 v power supply current can reach 200ma, not recommended use FT232R debugging directly, because FT232R's output +3.3 v current is too small.
 +
 +
* We suggest to use Microduino Core 32u4 to debug this BT module:
 +
** 32u4 module can use the USB to simulate the serial 0, and BT uses the 32u4's serial 1 (RX0,TX1), so you don't need change the existing jumper (RX0,TX1) and it won't impact the program downloading and serial's function.
 +
* Microduino Shield BT4.0 uses the default serial RX0,TX1 to communicate with Core module, so can connect with Microduino FT232 directly.
 +
 +
===Use PC to debug===
 +
* Use serial directly:
 +
** No need superimpose the FT232 directly, cross connect the FT232 and NEO-6M's RX0,TX1.
 +
 +
===Use FT232R、Core download and debug===
 +
*Use default jumper (RX0、TX1):
 +
**Unplug the Microduino NEO-6M during download program;
 +
*If you want to change the jumper cables to meet your requirement:cut the connection between two intermediate of the pad and RX0/TX1, and then connect them to D2, D3.
 +
**If changed the jumper, need the change the serial connection between Microduino NEO-6M and Core module, change the connection "TX-RX0、RX-TX1" to following:
 +
***TX-D2、RX-D3 (For Core+'s Serial1)
  
 
===Arduino library and supported package===
 
===Arduino library and supported package===
Line 98: Line 109:
 
*[http://www.u-blox.com/en/evaluation-tools-a-software/u-center/u-center.html u-center-8.0]
 
*[http://www.u-blox.com/en/evaluation-tools-a-software/u-center/u-center.html u-center-8.0]
  
*Microduino NEO-6M use RX0,TX1 to comu模块默认与Core的串口通讯引脚是RX0、TX1,因此不可直接与Microduino FT232R叠加
+
===How to use the library===
 +
*For Adafruit_GPS library:
 +
**Make sure the GPS baud rate is 38400 in function "void setup()",that is:GPS.begin(38400);
 +
**If you don't change the jumper cable:
 +
***Unplug the Microduino NEO-6M module when downloading program;
 +
***Use the Core or Core+ to debug, make sure include "Adafruit_GPS GPS(&Serial)" in program;
 +
**If you have changed the jumper cable:
 +
***When use Core+ to debug,make sure include "Adafruit_GPS GPS(&Serial1)" in program;
 +
***When use Core to debug, make sure include "SoftwareSerial mySerial(3, 2)" and "Adafruit_GPS GPS(&mySerial)" in program;
  
===PC上位机调试时===
+
===PPS State indicator===
*需要直接通过串口调试时:
+
*This indicator connects to TIMEPULSE port on UBLOX NEO-6M module, the output characteristic can be set by program;
**不直接叠加FT232,应该将FT232与NEO-6M二者的RX0、TX1交叉连接。
+
*PPS indicator has two state as default value without program setting:
 +
**Keeping on,indicates that module has started, but but have not yet achieved positioning;
 +
**Flicker,(100ms off,900ms on),indicates that module has achieved position successfully.
 +
*Easy to identify the state of module by PPS indicator.
  
===用FT232R、Core下载、调试程序时===
+
==Application==
*若保持默认跳线(RX0、TX1):
+
===Download program===
**下载程序时请拔下Microduino NEO-6M模块;
+
Tesp Program:'''[[File:Program Test NEO-6M.zip]]'''
*玩家自己改动模块背面的跳线:切断两组的焊盘中间与RX0/TX1的连线,将焊盘中间与D2、D3焊上即可。
 
**若采用了改跳线的方法,可将Microduino NEO-6M与Core的串口连接由TX-RX0、RX-TX1改成:TX-D2、RX-D3(相对Core+的Serial1)
 
  
===PPS状态指示灯===
+
===Test Microduino NEO-6M using FT232 and core module===
*该指示灯连接在 UBLOX NEO-6M 模组的TIMEPULSE 端口,该端口的输出特性可以通过程序设置;
+
*Prepared hardware:Microduino FT232R、Microduino Core、Microduino OLED、Microduino NEO-6M;
*PPS指示灯,在默认条件下(没经过程序设置),有 2 个状态:
+
*Prepared software:Arduino IDE(1.0 release upper)、Adafruit_GPS library、Microduino provides test program(Arduino part);
**常亮,表示模块已开始工作,但还未实现定位;
+
*Test environment:Open area,don't test in root;
**闪烁(100ms 灭,900ms 亮),表示模块已经定位成功。
+
*Put the downloaded library to the libraries folder of Arduino IDE installation fold;
*通过 PPS指示灯,可以很方便的判断模块的当前状态,方便使用。
+
*Start Arduino IED,open the test program,card type chooses "Microduino Core (Atmega328P@16M,5V)",download directly;
 +
*Use the default jumper pin (RX0,TX1):
 +
**Unplug the Microduino NEO-6M module when downloading program;Microduino NEO-6M module has the same RX0/TX1 pin position with Microduino FT232R, if superimpose these two module directly, the download process will be impact.
 +
*After finished download, then superimpose the NE0 modult the core module and FT232 module again. 
 +
*Observed the OLED after the download completed:
 +
**After half of minute,display data and time;
 +
**Go on waiting,when you see PPS indicators of Microduino NEO-6M flashing, then the speed, latitude and longitude indicators can be displayed,if not, please restart Microduino Core.
 +
*Player changes the back jumper cable:Cut off the connection between the middle of bonding pad and RX0/TX1, then welding the middle of bonding pad to D2 and D3. The purpose of change jumper is download program easily. Once changed the jumper, you superimpose three board together to download program.
 +
**If you use the change jumper connection method, it will change the serial connection from TX-RX0,RX-TX1 to TX-D2,RX-D3 between Microduino NEO-6M and Core module.
  
===连接方式===
+
===Test Mocroduino NEO-6M using PC===
*如果采用Microduino FT232R调试,不可直接叠加,因为FT232与NEO-6M的串口RX、TX管脚定义一致,而正常的串口通信应该TX与RX交叉相连;
+
====Connection method====
*模块与单片机连接最少只需要 4 根线即可:
+
There are two connection methods:
**VCC 和 GND用于给模块供电,模块 TXD 和 RXD 则连接单片机的 RXD 和 TXD。
+
1. Use the default pin (RX0、TX1):
**(附:这里特别注意,模块的 TXD 和 RXD 脚不能直接连接到电脑的 RS232 串口上,必须经过电平转换芯片(MAX232 之类的),做电平转换后,才能与之连接)
+
*You need the Microduino FT232R module to connect the PC, but can't superimpose the FT232R, NEO-6M and Core module directly. Because the FT232 and NEO-6M has the same RX/TX defination and position on board, but the normal serial communication should be cross connect RX/TX.
 +
**Superimpose the FT232 and microduino core, then conects to PC with microUSB to download program;
 +
**Using the jumper cable cross connect the RX0/TX1 for FT232 and NEO-6M, that is the RX0 of NEO-6M connects to the TX1 of FT232, and the TX1 of NEO-6M connects to RX0 of FT232.
 +
**Connect the 3V3 pin of NEO-6M module to 3V3 pin of FT232, and connects the GND together.
  
==应用==
+
[[File:Neo-6m debugging.jpg|thumb|400px|center|crossover configuration]]
===程序下载===
 
测试程序:'''[[File:Program Test NEO-6M.zip]]'''
 
  
===测试Microduino NEO-6M模块===
+
2. Use the changed jumper mode
*所需要准备的硬件有:Microduino FT232R、Microduino Core、Microduino OLED、Microduino NEO-6M;
+
If you have changed the jumper as upper described, you can supperipose FT232, NEO-6M and Core module together, then connect to PC to debug directly.
*所需要准备的软件有:Arduino IDE(1.0版本以上)、Adafruit_GPS库、Microduino提供的测试程序(Arduino端);
 
*所需要准备的环境有:空阔地带,请勿在室内测试。
 
*将下载好的库文件夹放入Arduino IDE安装文件夹内的libraries中;
 
*启动Arduino IED,打开Microduino提供的测试程序,板卡选择Microduino Core (Atmega328P@16M,5V),直接下载即可;
 
*下载完毕后可观察OLED:
 
**半分钟左右,日期、时间将会先显示出来;
 
**继续等待,当你看到Microduino NEO-6M的PPS指示灯闪烁时,速度、经纬度指标都因该能显示出来,如果没有,请重启Microduino Core。
 
  
 +
====Use u-center configuration module to update rage====
 +
*Firstly, place the Microduino NEO-6M into an open area, and then connects to PC by Microduino FT232R;
 +
*Start "u-center" software:
 +
**Set the baud rate:Menu:“Receiver”-“Baudrate”-“38400”;
 +
[[File:U-center 01.jpg|thumb|703px|center|set baud rate]]
 +
**Open the serial to start the communication:Menu:“Receiver”-“Port”- choose the port that Microduino FT232R using.
 +
[[File:U-center 02.jpg|thumb|703px|center|set port]]
 +
**Now,you can see the data on the "u-center";
 +
[[File:U-center 03.jpg|thumb|703px|center|data]]
 +
*Update rate
 +
**Open menu:“View”-“Messages View”,display the "Messages" window;
 +
**Open“UBX”-“CFG(Config)”-“RATE(Rates)”,suppose you need 2HZ update rate, only need set the "Measurement Period" to 500ms;
 +
**After configured,click the "Send" button on the left bottom to send the configuration to Microduino NEO-6M module. If you see the data update quickly on other information window, that means the set successfully.
 +
[[File:U-center 04.jpg|thumb|703px|center|Configure window]]
  
===库的使用事项===
+
==Bug==
*针对Adafruit_GPS库:
 
**请确认void setup()中GPS模块波特率为38400,即:GPS.begin(38400);
 
**如果您未曾改动过模块背面的跳线:
 
***下载程序时请拔下Microduino NEO-6M模块;
 
***使用Core或者Core+调试时,需要确定程序有如下定义:Adafruit_GPS GPS(&Serial);
 
**如果您改动过模块背面的跳线:
 
***使用Core+调试时,需要确定程序有如下定义:Adafruit_GPS GPS(&Serial1);
 
***使用Core调试时,需要确定程序有如下定义:SoftwareSerial mySerial(3, 2);、Adafruit_GPS GPS(&mySerial);
 
  
 +
==History==
  
===用u-center配置模块更新速率===
+
==Picture==
*首先我们将 Microduino NEO-6M置于空阔的地方,并且通过Microduino FT232R连接到电脑;
 
*打开 u-center 软件
 
**先设置波特率:菜单:“Receiver”-“Baudrate”-“38400”;
 
[[File:U-center 01.jpg|thumb|703px|center|设置波特率]]
 
**再打开相应串口开始通信:菜单:“Receiver”-“Port”-选中Microduino FT232R所对应的串口。
 
[[File:U-center 02.jpg|thumb|703px|center|设置串口]]
 
**现在,就可以在u-center看到相应数据了;
 
[[File:U-center 03.jpg|thumb|703px|center|观察数据]]
 
*更新速率的配置
 
**打开菜单:“View”-“Messages View”,调出Messages窗口;
 
**打开“UBX”-“CFG(Config)”-“RATE(Rates)”,假设你需要2HZ的更新速率,只要将 Measurement Period设置为500ms;
 
**配置完成后,点击窗口左下角Send按钮,就可将配置发往Microduino NEO-6M模块;可看到其他信息窗口的数据更新速度变快了,说明设置成功。
 
[[File:U-center 04.jpg|thumb|703px|center|配置窗口]]
 
 
 
==Pictures==
 
 
:[[file:Microduino-NEO-t.jpg|thumb|600px|center|Microduino NEO Front]]
 
:[[file:Microduino-NEO-t.jpg|thumb|600px|center|Microduino NEO Front]]
 
<br style="clear: left"/>
 
<br style="clear: left"/>
Line 170: Line 184:
 
<br style="clear: left"/>
 
<br style="clear: left"/>
  
|-
+
==Video==
|
 
 
|}
 
|}

Latest revision as of 13:18, 10 May 2014

Language: English  • 中文
Microduino-NEO

Microduino-NEO module maybe the most beautiful GPS module that you've seen. Its core module use UBLOX NEO-6M, high sensitivity, update rate up to 5Hz, using mini ceramic antenna with IPEX interface, and build-in a rechargeable battery backup.

Feature

  • High sensitivity;
  • Update rate up to 5Hz;
  • With a powerful PC support:u-center;
  • PPS indicator,easily determine the current status of the module;
  • Built-in rechargeable backup battery (to support warm start or hot start);
  • Small, cheap, stackable, opened platform;
  • Open source hardware circuit design, compatible with the Arduino IDE development environment for programming; ;
  • Define unified interface Microduino specification and contain rich peripheral modules. Set up the quick connection with other Microduino modules and sensors easily and flexibly.
  • 2.54 pitch row female connector for easy integration into breadboard.

Specifications

  • Communication protocol:
    • Microduino NEO-6M module use NMEA-0183 protocol and output GPS data, using the UBX protocol to configure the module.
  • Reception characteristics
    • 50 channels,GPS L1(1575.42Mhz) C/A 码,SBAS:WAAS/EGNOS/MSAS
    • Capture tracking sensitivity:-161dBm
  • Positioning accuracy
    • 2.5 mCEP (SBAS:2.0mCEP)
  • Update rate
    • Maximum 5Hz
  • Capture time
    • cold start:27S(Fastest time)
    • warm start:27S
    • hot start:1S
  • Note:
    • Cold start means that module stored history information which GPS receiver has lost (corresponding to the main power supply and battery both lost power), then restart the module, called cold start.
    • Warm start means that the is the module saved the historical information, but this information is inconsistent with information of currently visible satellites, and under such conditions to start module, called warm start.
    • Hot start means that module stored GPS history information which consistent with the currently visible satellite's information, then restart the module, called a hot start.
  • Interface characteristics
    • TTL,compatible 3.3V/5V microcontroller system
    • Serial communication baud rate:
      • Microduino NEO-6M module supports several baud rate:4800,9600,38400(defult),57600;
  • Set the baud rate by two resistors (R3,R4,recommend value is 1k):
R3 R4 Protocol Baud rate
No welding No welding NMEA 9600
No welding welding NMEA 38400
welding No welding NMEA 4800
welding welding UBX 57600

Pin Description

NEO-6M Module Pin Microduino Pin Function
TX RX0(or D2) Module serial send pin (TTL level), connect to microcontroller's RXD
RX TX1(or D3) Module serial receive pin (TTL level), connect to microcontroller's MCU TXD


Microduino-NEO6M-Pinout
Microduino-NEO6M-Pinout

Document

Eagle PCB File:Microduino-NEO6M.zip


Main components

Development

  • Make sure the +3.3 v power supply current can reach 200ma, not recommended use FT232R debugging directly, because FT232R's output +3.3 v current is too small.
  • We suggest to use Microduino Core 32u4 to debug this BT module:
    • 32u4 module can use the USB to simulate the serial 0, and BT uses the 32u4's serial 1 (RX0,TX1), so you don't need change the existing jumper (RX0,TX1) and it won't impact the program downloading and serial's function.
  • Microduino Shield BT4.0 uses the default serial RX0,TX1 to communicate with Core module, so can connect with Microduino FT232 directly.

Use PC to debug

  • Use serial directly:
    • No need superimpose the FT232 directly, cross connect the FT232 and NEO-6M's RX0,TX1.

Use FT232R、Core download and debug

  • Use default jumper (RX0、TX1):
    • Unplug the Microduino NEO-6M during download program;
  • If you want to change the jumper cables to meet your requirement:cut the connection between two intermediate of the pad and RX0/TX1, and then connect them to D2, D3.
    • If changed the jumper, need the change the serial connection between Microduino NEO-6M and Core module, change the connection "TX-RX0、RX-TX1" to following:
      • TX-D2、RX-D3 (For Core+'s Serial1)

Arduino library and supported package

How to use the library

  • For Adafruit_GPS library:
    • Make sure the GPS baud rate is 38400 in function "void setup()",that is:GPS.begin(38400);
    • If you don't change the jumper cable:
      • Unplug the Microduino NEO-6M module when downloading program;
      • Use the Core or Core+ to debug, make sure include "Adafruit_GPS GPS(&Serial)" in program;
    • If you have changed the jumper cable:
      • When use Core+ to debug,make sure include "Adafruit_GPS GPS(&Serial1)" in program;
      • When use Core to debug, make sure include "SoftwareSerial mySerial(3, 2)" and "Adafruit_GPS GPS(&mySerial)" in program;

PPS State indicator

  • This indicator connects to TIMEPULSE port on UBLOX NEO-6M module, the output characteristic can be set by program;
  • PPS indicator has two state as default value without program setting:
    • Keeping on,indicates that module has started, but but have not yet achieved positioning;
    • Flicker,(100ms off,900ms on),indicates that module has achieved position successfully.
  • Easy to identify the state of module by PPS indicator.

Application

Download program

Tesp Program:File:Program Test NEO-6M.zip

Test Microduino NEO-6M using FT232 and core module

  • Prepared hardware:Microduino FT232R、Microduino Core、Microduino OLED、Microduino NEO-6M;
  • Prepared software:Arduino IDE(1.0 release upper)、Adafruit_GPS library、Microduino provides test program(Arduino part);
  • Test environment:Open area,don't test in root;
  • Put the downloaded library to the libraries folder of Arduino IDE installation fold;
  • Start Arduino IED,open the test program,card type chooses "Microduino Core (Atmega328P@16M,5V)",download directly;
  • Use the default jumper pin (RX0,TX1):
    • Unplug the Microduino NEO-6M module when downloading program;Microduino NEO-6M module has the same RX0/TX1 pin position with Microduino FT232R, if superimpose these two module directly, the download process will be impact.
  • After finished download, then superimpose the NE0 modult the core module and FT232 module again.
  • Observed the OLED after the download completed:
    • After half of minute,display data and time;
    • Go on waiting,when you see PPS indicators of Microduino NEO-6M flashing, then the speed, latitude and longitude indicators can be displayed,if not, please restart Microduino Core.
  • Player changes the back jumper cable:Cut off the connection between the middle of bonding pad and RX0/TX1, then welding the middle of bonding pad to D2 and D3. The purpose of change jumper is download program easily. Once changed the jumper, you superimpose three board together to download program.
    • If you use the change jumper connection method, it will change the serial connection from TX-RX0,RX-TX1 to TX-D2,RX-D3 between Microduino NEO-6M and Core module.

Test Mocroduino NEO-6M using PC

Connection method

There are two connection methods: 1. Use the default pin (RX0、TX1):

  • You need the Microduino FT232R module to connect the PC, but can't superimpose the FT232R, NEO-6M and Core module directly. Because the FT232 and NEO-6M has the same RX/TX defination and position on board, but the normal serial communication should be cross connect RX/TX.
    • Superimpose the FT232 and microduino core, then conects to PC with microUSB to download program;
    • Using the jumper cable cross connect the RX0/TX1 for FT232 and NEO-6M, that is the RX0 of NEO-6M connects to the TX1 of FT232, and the TX1 of NEO-6M connects to RX0 of FT232.
    • Connect the 3V3 pin of NEO-6M module to 3V3 pin of FT232, and connects the GND together.
crossover configuration

2. Use the changed jumper mode If you have changed the jumper as upper described, you can supperipose FT232, NEO-6M and Core module together, then connect to PC to debug directly.

Use u-center configuration module to update rage

  • Firstly, place the Microduino NEO-6M into an open area, and then connects to PC by Microduino FT232R;
  • Start "u-center" software:
    • Set the baud rate:Menu:“Receiver”-“Baudrate”-“38400”;
set baud rate
    • Open the serial to start the communication:Menu:“Receiver”-“Port”- choose the port that Microduino FT232R using.
set port
    • Now,you can see the data on the "u-center";
data
  • Update rate
    • Open menu:“View”-“Messages View”,display the "Messages" window;
    • Open“UBX”-“CFG(Config)”-“RATE(Rates)”,suppose you need 2HZ update rate, only need set the "Measurement Period" to 500ms;
    • After configured,click the "Send" button on the left bottom to send the configuration to Microduino NEO-6M module. If you see the data update quickly on other information window, that means the set successfully.
Configure window

Bug

History

Picture

Microduino NEO Front


Microduino NEO Back


Video