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)
 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
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.
 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).
 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).
|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|
 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
 Raw Data
Arranged as QQII Interleaved
4 BitSign/mag I/Q Data