Skip to content

Instantly share code, notes, and snippets.

@neslekkim
Created January 27, 2014 09:16
Show Gist options
  • Save neslekkim/8645457 to your computer and use it in GitHub Desktop.
Save neslekkim/8645457 to your computer and use it in GitHub Desktop.
FAQ: NavSpark GPS / GNSS
Copied from : http://pastebin.com/1f5iXwiT
FAQ for NavSpark
=========================
Arduino Compatible with GPS GNSS Receiver
Packing 32bit Features and GPS GNSS into 8bit Size and Price
http://www.indiegogo.com/projects/navspark-arduino-compatible-with-gps-gnss-receiver/x/6094574
=========================
NavSpark FAQ:
based on www.indiegogo.com/projects/navspark-arduino-compatible-with-gps-gnss-receiver/x/6094574?c=comments
This FAQ page is not official, and may not be accurate. Summarized by J.Beale Jan. 26 2014
Sections:
=========================
Hardware Specs
Electrical Specs
I/O Signals
Software Programming
GPS, GLONASS, Beidou
RAW output version
GPS Antenna
GPS Performance
Time from one satellite
Hardware Specs
=========================
· 100MHz 32bit LEON3 Sparc-V8 + IEEE-754 Compliant FPU
· 1024KB Flash Memory + 212KB RAM
· ~80uA/MHz @ 3.3V
· Powered and programmed by mini USB connector
· 1 full duplex asynchronous UART
· 1 asynchronous UART transmit
· 2 SPI with master/slave mode configurable
· 1 I2C
· 1 24bit PWM
· 17 digital I/O pins (shared with above functional pins)
· Atomic clock synchronized P1PPS time reference with +/-10nsec accuracy
Electrical Specs
=========================
NavSpark is 3.3V +/-10% type. It has 2 Schottky diodes in parallel, taking input from USB 5V interface and battery input, with outputs going into a 3.3V output LDO regulator to power the circuitry. The I/O is also 3.3V type, does not work with 5V.
Current consumption for initial full power signal acquisition / fully tracked navigation for NavSpark, NavSpark-GL, NavSpark-BD is roughly 38/30, 45/40, 45/40 mA at 3.3V using on-chip DC/DC switching regulator.
Both BD and GL version can be used in GPS only mode to have same CPU MIPS/memory resource left as GPS-only mode, but current consumption will not differ very much.
Adapter board does not have a separate regulator, it only has micro SD card holder + battery connection + batter charger for user-supplied external Li battery. The charger voltage supply comes from NavSpark’s 5V pin-out. Size is 38mm x 18mm.
I/O Signals
=========================
Venus822 has 2 sets of UART, TXD1/RXD1 and TXD2/RXD2. TXD1/RXD1 is connected to UART-to-USB bridge chip to allow USB interfacing. TXD1 output is also brought out to the pin. RXD1 is not brought out to the pin due to application UART driving RXD1 will be in conflict with the USB-to-UART bridge chip also driving RXD1. For NS-RAW application needing serial output interfacing, it can be connected to TXD1.
Venus822 = LEON3 Sparc-V8 + FPU + memory + peripherals. All LEON3 Sparc-V8 & FPU details can be found in section 69 of GRIP document.
What we need to add from scratch for existing Venus822 datasheet are the memory map and peripheral register control descriptions, which isn’t difficult to describe clearly. http://t.cn/8FbovJT http://t.cn/8Fboh6t
The GPS/GNSS chip datasheet from other vendors are all like this, just enough information for making a GPS receiver. :-) http://t.cn/8FboAEX
Regarding time stamping on external trigger, we’ll modify hardware to support this. For NavSpark time accuracy is ~60nsec due to 16.368MHz clock. For -GL, -BD, time accuracy is ~40nsec due to 24.552MHz clock. NavSpark’s timing stamping will be correct in absolute time reference, with error within 60nsec or 40nsec.
Software Programming
=========================
Currently remaining Flash/RAM space for user application on NavSpark, NavSpark-GL, NavSpark-BD is roughly 490/45, 420/20, 440/10 Kbytes.
The user space will be larger if we later could have time to optimize.
The provided GPS/GNSS library will be integrated into the customized Arduino IDE, automatically linked during compilation phase. The GPS/GNSS library will not be open sourced; NavSpark board level hardware design and customized Arduino IDE will.
We expect to have 2 kinds of library for Arduino, one with GPS/GNSS, and one without. The new Venus822 datasheet will have detailed description on the hardware peripherals, enabling users interested to fully access the hardware can build things from ground up using the library without GPS/GNSS. The other library will have easy to use API provided. Description on LEON3 Sparc-v8 used in Venus822 can be found at: http://www.gaisler.com/index.php/products/processors/leon3?task=view&id=13
Will later port customized Arduino IDE to OS X.
NavSpark is generally a good choice with larger programmable space (490KByte Flash, 45KByte RAM).
Both BD and GL version can be used in GPS only mode to have same CPU MIPS/memory resource left as GPS-only mode, but current consumption will not differ very much.
Will NavSpark have command set similar to TinyGPS?
Below is the document for our standard $199 GPS SDK, of which is the core GPS library going into ported Arduino. User can call it directly or through a wrapper API that makes it friendlier. All will be explained clearly in the document release. As GPS related information are native, there is no need for NMEA parser. Anyone can easily add a wrapper to have an API similar to some other GPS parser library he/she is using. http://t.cn/8Fb1H3d
GPS, GLONASS, Beidou
=========================
Under urban canyon or heavy signal attenuation environment, dual-satellite navigation receiver may give better accuracy due to more satellite measurements available. Outside Asia, one will see more GLONASS signal than Beidou signals, since latter is not yet fully deployed yet. So GL may perform better than BD under adverse condition in Canada. Under open sky with good satellite visibility and enough satellites over all time, GPS/GLONASS or GPS/Beidou will not offer more accurate 1PPS timing.
-GL will see more satellites, due to 24 globally orbiting MEO GLONASS satellites. Beidou is not fully deployed yet, only 5 globally orbiting MEO satellite, 6 geostationary and 5 inclined geostationary satellites over Asia.
Venus8 baseband hardware is designed to handle GPS/Galileo, GLONASS, Beidou signals from 3 IF signal paths concurrently, yet there’s only GPS + GLONASS or GPS + Beidou 2 IF paths RFIC available, thus we’re unable to have solution processing all 3 signals concurrently yet.
Due to the RFIC used will have poor GLONASS performance if we make GL and BD NavSpark software configurable, and there isn’t alternative cost-effective single RFIC design that supports configurable dual reception of GPS/GLONASS and GPS/Beidou, reluctantly we had to have different hardware for GPS/GLONASS and GPS/Beidou for optimal signal reception performance. Due to different hardware, NavSpark-GL and NavSpark-BD cannot be configured into one and the other.
The RFIC used doesn’t support Galileo. All GPS/GNSS modules on the market claiming Galileo-capable likely will be superseded by their next-gen solution when there are enough Galileo satellites, unlikely will have resource to develop code for an older chip. Some may have experience with xxxxx-5 Galileo capable solution, which is already phased out by latest Galileo capable xxxxx-8 solution, yet no consumer ever saw Galileo reception on any. Such marketing claim is to be taken with grain of salt.
SkyTraq has been shipping GLONASS/GPS modules to Russia since early 2011, much earlier than ublox, MediaTek, or SiRF/CSR.
RAW output version
=========================
NS-RAW module is GPS-only, it cannot be configured to be GPS/GLONASS nor GPS/Beidou receiving.
NS-RAW output measurement data: RTKLIB receive correction data from reference station and take meas data from NS-RAW to compute position to cm-level. SBAS output for raw measurement is in the pipeline. NS-RAW version is not (user-) programmable. NS-RAW can switch between binary mode that output carrier phase raw measurement data and NMEA mode. In NMEA mode, PVT solution is computed and 1PPS signal will be generated. In binary mode, PVT solution is not computed and no 1PPS signal will be generated.
The RTKLIB website, especially the RTKLIB document, has sufficient information on how to properly setup and run using low cost GPS receiver. NS-RAW is compatible to S1315F-RAW mentioned in the RTKLIB document. There is also a forum with much discussion on RTKLIB below for reference: http://www.rtklib.com/ http://t.cn/8FG6RMr
RTKLIB has utility that converts our binary to RINEX. We also have program that converts to RINEX that could provide.
S1315F-RAW uses Venus 6 chipset. At first posting of NS-RAW, we were still having some issue with Venus8 port working with RTKLIB, so Venus 6 version was planned as backup. Last Friday we had Venus8 port working correctly with RTKLIB, so we expect to ship NS-RAW using Venus 8 solution.
GPS Antenna
=========================
The supplied internal active antenna will be 1”x1” type, 10cm length, ~28dB gain, current drain < 10mA. We are still deciding on the antenna supplier, will be something that looks like this: http://t.cn/8Fbz7t4
Due to construct of female connector on antenna, it has rating of less than 50 plug/unplug durability, although we see far higher durability in our production S2532DR dead-reckoning GPS module which use female UFL on test-fixture. UFL male receptacle on the PCB has typical rating of 500 plug/unplug cycles. So if supplied embedded active antenna is left in place without much plug/unplug, it’ll last for long time. In case it wears out, a 2nd antenna at hand comes in handy.
Despite being more compact, problem with antenna on board is that it then becomes the bottleneck on receiver performance; usually bigger the antenna, better the signal reception performance. Having RF connector allows user to choose different antenna according to their needs.
GPS Performance
=========================
GPS accuracy highly depends on signal condition. Accuracy under open sky is : 2.5m CEP for position, 0.1m/sec for speed, 10nsec for time pulse. An example application using previous generation Venus 6 chipset has just been added to the NavSpark page; it might serve as a reference on quality of the GPS. NavSpark uses latest Venus 8 chipset, has the good characteristics of the previous generation.
Time from one satellite
=========================
Signal traveling from GPS satellite to earth takes about 70msec. With just one GPS signal with sufficient signal strength to decode the data bits, the GPS receiver can determine time with error less than distance variations between zenith and horizon position if accounting this signal traveling time difference, if not then within 100msec error. For an outdoor clock that only shows hours, minute, second, this within 100msec accuracy time without ever needing to time adjust is pretty good.
NavSpark doesn’t have precision timing mode receiver features of TRAIM, self-survey mode and single-sat precision 1PPS timing generation features. SDK for standard navigation, tracking application is integrated into the Arduino IDE; it has same feature as those $40 ~ $60 GPS receivers selling on hobby electronics sites, but with unprecedented major feature of SkyTraq’s $199 SDK put into form of Arduino IDE.
=========================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment