GPS Free Stack
This page is intended to document about a free stack GPS/GNSS Software/Hardware Defined implementation for the Nanonote/Milkymist One using a SiGE RF IC.
Some front-end GPS RF ICs have open data-sheets, for example SE4120L, there are also open stack/software/hdl code developed to correlate GNSS-GPS raw data coming from a RF frontend.
Current goal is take advantage of exiting code (hdl and software) for gps signal processing and fit it a copyleft gps receiver solution.
The GPS receiver tasks will do the regular GPS receive process (took from osmocom):
- iterate over the list of 64 possible scrambling codes and acquire the C/A signal (namuru baseband + milkymist soc)
- decode the actual data signal modulated onto the C/A carrier (namuru baseband + milkymist soc)
- measure the timing difference of arrival (TDOA) of the various satellite signals (osgps)
- compute a location estimate (GPS coordinates) based on the measurements (osgps)
Contents |
[edit] Alternative RF ICs
GPS L1 Front-end available in the market:
- SiGE SE4162T 4110L
- MAXIM MAX2769
- Atmel ATR0601
- ST STA5620
- Nemerix NJ1006
- Texas Instruments TRF5101
- Homemade GPS Receiver by Andrew Holme
[edit] Software
All this software run and compile on gnu/linux systems and some on embedded.
- GPS-SDR is proven to work with devices like gn3s/usrp and maxin based receivers. (not very well suited for embedded)
- OSGPS was designed to work with data from an old SiGE chip 4110L, GPS1A Dongle, code seems portable too, can be even be used for both off-line and real time processing.
- SoftGNSS, matlab code from Akos book about, off-line processing real data type version,ported to octave.
- RTKlib (not GUI) libs/examples can be used to improve fix accuracy.
[edit] HDL Cores
This cores are integrate and make posible the system on chip solution
- Namuru Correlator (Clone for Zarlink GP2021), peform DSP task for signal correlation.
- The Milkymist system-on-chip uses the LatticeMico32 (LM32) core as a general purpose processor. It is a RISC 32-bit big endian CPU without a memory management unit (MMU).
[edit] SE4162 GPS Receiver RF IC
This is the current specification for the chip/EVB from SiGE:
Data output format: Serial 4-bit baseband I/Q pulse sync data
2.048 Msps 4-bit I/Q interleaved, pulse sync (8.192 Mhz) Positive Edge Clock
Frame Structure: Repeating sequence of SI MI SQ MQ Active high SYNC pulse aligns with SI Sample Rate: 2.048 MSPS
Sample clock output: 8.192 MHz
GPS data and clock load: 15pF max (Nanonote pin is about 5pf)
IF Filter Centre Freq: 2.556 MHz
IF Filter BW: 2.2 MHz
TCXO reference frequency: 16.384 MHz
Tolerance: ±1.5 ppm (Set tolerance and 2 reflows)
Temperature (-30 to +85° ±0.5 ppm)
HW1 can be set ‘low’ to switch real data output mode (2-bit real, parallel SIGN/MAG data at 2.556 MHz IF and 16.384 MHz sample clock, propietary block converter disabled).
[edit] Boards
[edit] Schedule
Item | Description | Planned Start date | Status |
---|---|---|---|
Debug SiGE EVB Signaling, Visual check of signal and electrical measurements | SiGE EVB, 100Mhz scope-meter, digital multimeter, spectrum analizer | 23 Oct 2010 | Done |
Implement Three State buffer | CPLD, Computer, Xilinx Sofware | 7 Nov 2010 | Done |
Data Acquisition | Basically dump raw data to a file | 24 Nov 2010 | Done |
Bloat raw data before send to analize | Raw data need to be "bloated" in some way, in order to be verified | Done | |
Migrate sige core to mm1 soc | This task took a LOT, after learn about wishbone, understand something about FIFOs, dig milkymist code.. refoce C basis kwnoledge and who knows more | Done | |
Migrate dump/debug tool/utils as a rtems command | Some minor clean-up | In progress | |
Implement Test Software for Namuru code | On hold for now, osgps is a focused way | Done | |
Try borre matlab code in Octave | Another method for off-line processing. | Not started | |
Try SoftOSGSP with recorded data | Another method for off-line processing. AFAIK that sampled data was complex, and osgps just support real | Done | |
Port Namuru Baseband Correlator to Milkymist SoC | Namuru is a correlator like gp2021, for wich there is already made software | 24 Jul 2011 | Done |
Port osgps to rtems/uclinux | osgps was developed to work with a gp2021 correlator, now namuru is ported, is its turn | In progress | |
Implement Acquisition and Tracking Loops for namuru | in order to get telemetry | 9 Sep 2011 | In progress |
[edit] Source Code
- All code related code is avaliable at github repo https://github.com/kristianpaul/milkymist
This include Namuru baseband integration with Milkymist SoC and osgps port embedded as a bios command.
Be aware switch to gps-sdr-testing branch
[edit] Raw Data
(outdated)
Arranged as QQII Interleaved
4 BitSign/mag I/Q Data
http://downloads.qi-hardware.com/people/kristianpaul/