From Qi-Hardware

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)

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

SE4162T-EK1 Evaluation Board

Active GPS Atena, just on the Window 3 meters away receiver (Second floor apartment)

Milkymist One and SiGE EVB

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/