Sunday, April 10, 2011

Skytraq s1315f-raw (under the magnifying lens)


Lately I have been working with one of the few mass market receivers which outputs raw observables: the Skytraq S1315F-RAW. The only other "low cost" alternative to it is the uBlox LEA-4T, LEA-5T, and LEA-6T.

My purpose was to assess its capabilities, to understand if there are applications in which this device can really be useful. I don't know the answer yet, but I can publish some preliminary results obtained with RTKLIB.

So, I assembled a few of these on a board together with a FT232RQ UART-to-USB transceiver and run Cutecom on my Linux machine.

Figure 1: Yuan10 20-Hz raw measurements GPS receiver.

To my surprise, this does not work like the uBlox chips, which can output both NMEA and binary. The S1315F-RAW only outputs binary data. The news you don't read anywhere else is that the observations are taken at 20Hz, and do not include a PVT solution. Also, the clock bias is let running free and therefore the measures can be quite far off (tens of milliseconds) the real GPS time.

Ultimately I wanted to know what is the quality of the carrier phase, since this will tell if the receiver is fit for low-cost RTK applications.

Scenario 1: Zero Baseline, Open Sky

Figure 2: Zero baseline track results in 1 hour.

Figure 3: Zero baseline ENU results in 1 hour.

Scenario 2: Short (known) Baseline, Open Sky
To be done still :)

Comparison 1: Orcam GPS-26 OEM (SiRF Star II)
Using the board below I collected RAW observables (pseudorange, carrier phase, Doppler, and C/N0) from two SiRF Star II receivers.

Figure 4: Dual SiRF Star II receiver board assembly
I wrote a simple SiRF binary to Rinex3 parser and the observations look like:

> 2011 04 08 17 23 47.7684297  0  8                                            
G26  50696315.376     1063480.948       91453.281          46.500              
G17  51072993.018     1467528.376       86392.422          43.500              
G27  48803613.805     2145210.883       87538.367          48.000              
G09  48571516.433      925322.182       85910.797          50.000              
G22  51765421.846     1955361.390       86170.438          40.800              
G12  51568741.123      921796.354       84204.570          42.900              
G28  51649721.912     1347484.069       90745.469          42.900              
G15  48654575.927     1362007.686       89023.945          53.800              
> 2011 04 08 17 23 48.7684297  0  8                                            
G26  50713719.228     1154933.716       91452.766          46.000              
G17  51089432.729     1553920.546       86392.164          43.000              
G27  48820272.359     2232748.763       87537.875          47.900              
G09  48587864.077     1011232.602       85910.422          50.400              
G22  51781819.554     2041531.555       86170.164          41.000              
G12  51584765.483     1006000.356       84204.008          42.900              
G28  51666990.473     1438229.023       90744.961          42.900              
G15  48671516.093     1451031.430       89023.742          53.300              
> 2011 04 08 17 23 49.7684297  0  8                                            
G26  50731122.086     1246383.916       91450.203          46.000              
G17  51105869.630     1640310.413       86389.867          43.000              
G27  48836930.232     2320284.139       87535.375          48.000              
G09  48604211.074     1097140.644       85908.039          50.000              
G22  51798218.833     2127699.431       86167.875          40.900              
G12  51600789.059     1090201.716       84201.359          42.700              
G28  51684257.464     1528971.343       90742.320          42.600              
G15  48688455.438     1540052.871       89021.438          53.000              
> 2011 04 08 17 23 50.7684297  0  8                                            
G26  50748523.408     1337830.931       91447.016          46.300              
G17  51122307.805     1726697.388       86386.977          43.100              
G27  48853586.988     2407816.398       87532.266          48.100              
G09  48620558.438     1183045.689       85905.047          50.000              
G22  51814616.209     2213864.420       86164.992          40.800              
G12  51616810.906     1174399.828       84198.109          42.300              
G28  51701524.646     1619710.464       90739.117          43.000              
G15  48705394.801     1629071.432       89018.555          53.000                

but unfortunately RTKLIB refuses to process the raw measurements and I am still trying to work out why!

Anyway, the first results with the S1315F-RAW seem promising enough, showing 2-3 cm errors in Kinematic mode. More will come on this post soon.



ege said...

Ciao Michele,

in case you are interested, there is another low-cost receiver providing raw observations: Fastrax IT03

Michele said...

Ciao ege,

Yes I am aware of the Fastrax IT03... I am just wondering what is going to be its lifespan, after uNav has been acquired by Atheros, which has been in turn acquired by Qualcomm!

Anyway, if I get hold of a couple of those, I'll test them as well :)


Michele said...

Hi ege again,

Actually yes I could buy two of these for £40 from RS Components, but are the pseudorange and carrier-phase available without paying for the Fastrax iSuite SDK licence (and how much is it)?

And once I have the SDK, how much can I really tweak the IT03?
For example, could I change the frequency search range in acquisition?
And the tracking loop parameters?


ege said...

Ciao Michele,

I was not aware of the Atheros/Qualcomm acquisition of uNav.
Thanks for the information :)

I'm not sure about the license: I'm working with some colleagues in Italy for adding Fastrax support to goGPS and, as far as I know, they just asked Fastrax for an evaluation kit which could provide us with raw data, so they bought an application board with the IT03 and a "mini evaluation kit". Maybe there was also a license in the bundle, I don't know... but I can ask further details if you need.

As for the tweaking, I don't think that you can tweak things so deep, but you cannot do that with SkyTraq or u-blox too (AFAIK). That's one of the good things about [open source] software defined receivers, isn't it? ;)

Actually, after having implemented u-blox and SkyTraq binary format decoders in goGPS we had (and are still having) some troubles with Fastrax because it lets you access much "lower level" components compared to the other two. You can see that from iTalk protocol description.
But still, I don't think that you can tweak acquisition/tracking parameters (but maybe I'm wrong).


ege said...

Sorry I forgot to write this in the last comment...

You can set the S1315F-RAW to output observations at 1 Hz (or any other rate among 2, 4, 5, 10 and 20 Hz): in GPS Viewer you can use "Binary" -> "Configure Binary Message", or you can send the appropriate configuration message through the COM port.

The same thing for the PVT solution: you can get it in NMEA format by enabling it in "Binary" -> "Configure Message Type". Unfortunately, NMEA and binary data are mutually exclusive (while with u-blox it is so convenient to get both observations and NMEA data, so that I can easily compare goGPS result with u-blox positioning! ;)

As for the clock bias, I also noticed the issue...


Michele said...

Hi ege,

I suspected you were involved with the goGPS project :)
I recently discovered it and since then I am following its development:
there is a whole lot of applications which could benefit from low-cost RTK.

Let's keep in touch and if you need some raw observables to run through your code, please do not hesitate to contact me at name dot surname at gmail dot com.


NAVIPARK said...

Hello Michele and EGE
Probably we synchronously with you do very similar devices.
Probably it is destiny:)

Modules IT03 can be bought directly from the manufacturer. We in February have received them without problems.
Module S1315F-RAW shows very good results. We recommend to increase gradually frequency of poll in RTKLIB – 1Hz, 5Hz …. The result in many respects depends on quality of antennas.

Unknown said...

Hello Michele

Does your Sirf Binary to Rinex3 converter parse Sirf IV binary from Navman Jupiter F2 OEM chip?
My output file shows

SiRFLive Version: SiRFLive 2.0 Marketing
Thursday, August 25, 2011
PC: W037D299

Thx DK
Physical Connection: UART
SW Version: GSD4e_4.1.0-P1 12/20/2010 354 GSD4e
DUT Name:

Michele said...

Hi Unknown,

Seems like your SiRF IV receiver is compatible with SiRFDemo, as your logging seems similar to the one that program produces (see MID28 message format in the SiRF binary protocol specification).

Even better: your module outputs carrier phase! Amazing.
You don't need any binary parser as SiRFDemo does it for you, so good luck with RTK processing and thanks for sharing!


ege said...

Wow, it's the first time that I hear of a SiRF module outputting phase measurements.

I checked the Navman Jupiter F2 chip data sheet (, but it does not specify that MID28 message is provided in output. Nonetheless, Unknown's data seem to be exactly that.

Any idea about the reason?

Michele said...

Hi Ege,

I know that NAVSAS had some SiRF III modules that, using a special firmware they were granted for research purposes, did output carrier phase.

I am afraid only "Unknown" can say where he bought this Jupiter F2 OEM with SW version
GSD4e_4.1.0-P1 12/20/2010 354 GSD4e

I see Navman has many distributors around the World. I could have access to Comprel in Italy:

and AvnetEmbedded in UK:[country]=0&tx_aveproductsfe_pi1[maincat]=WIRELESS&tx_aveproductsfe_pi1[subcat]=GPS&tx_aveproductsfe_pi1[w_manufacturer]=11

Most importantly, Digikey has some Jupiter-F2 modules in stock and RS has some older models so could soon stock the new one as well pretty.

Mirko said...

Hi everyone,

This a very interesting discussion. This is my very small contribution:


This output comes from an ORG4472 despite Origin stated that none of their receivers provide raw data measurements... someone wants to boycott low cost RTK ;)

Michele said...

Hi Mirko,

I have dealt before with the ORG4472, shame I listened to Origin and did not try MID28 :)
Actually Fastrax also says that their IT430 does not output carrier phase.. I wonder if they just did not try. Anyway, could you please mention the firmware version of your receiver as well? Did you try processing the SiRF output with RTKLIB? Could you post a bigger snapshot of data somewhere?


Unknown said...

Hi Michael,

The GPS dump came from Navman's Jupiter F2 OEM module. We used it on one of our custom R&D devices.

The data was collected using SirfLive by someone else in my organization.
I understand this data is not yet RINEX. My understanding to get to RTK I can...
1) Convert Sirf -> RINEX.
assume MSG ID 7, 15, 28 needed
2) Get data from nearest CORS station
3) Use tools RTKlib (Free), GrafNav ($), Topcon ($), etc to calculate corrected position.

Do I need to convert to Sirf to RINEX? What tool can convert Sirf to RINEX (step1)?

Thanks DK

Michele said...

Hi DK,

Now that you have a text file (and you lost the original binary stream) my suggestion is to write a simple text parser in your favourite language (mine is C) to build a Rinex OBS file.
The one I wrote was compatible with Sirf II binary (where some double precision floating point numbers are split and transmitted in different order), but very simple and with no pretension of being as good as CONVBIN.EXE is.
People can write a parser for you and give you a hand, but you will have to share the file you collected with the community I am afraid.


Mirko said...

Hi Michele,

The software version is:
GSD4e_1.0.0-P1 12/18/2009 352

I did not try to process the data with RTKlib. We are working with our own algorithms at the moment. I am asking my colleagues to do a 1 hour clear sky recording session with two receivers and short baseline. They are quite busy at the moment and weather is so hot in Rome that they are not so happy for my request ;-) I will post the results as soon as available. Then, can we help us to pre-process the SIRF data to use in RTKlib?



Ps: MID 28 and MID 30 are disabled by default. Initialize Data Source – Message ID 128 is used to enable Nav Lib (raw) data output.

ege said...

Hi Mirko,

may I ask you what kind of algorithms you are developing?
Are you planning to use a low-cost base station or a "standard" permanent station for your tests?


Mirko said...

Hi Ege,

We are developing a very short baseline (< 10 meters) algorithm for attitude determination. Our algorithm does not perform positioning or navigation.


Jon said...
This comment has been removed by the author.
Jon said...

Hi Michele, did you ever get your Rinex working with RTKLib? I was getting errors with my output before, but it may be my SBAS information that is not getting parsed out correctly.