QZSS Support [GPS, added in v1.170]

Is it possible to support QZSS reception on KiwiSDR's GPS receiver ?
QZSS (Quasi-Zenith Satellite System)  is a Japanese satellite positioning system and compatible with GPS L1C/A code. So the QZSS is sometimes called the “Japanese GPS.”
In Japan, there is not a sufficient number of GPS satellites to perform high-precision positioning constantly.
Currently, four satellites on QZSS will be visible at all times from locations in the Asia-Oceania regions. (PRN 193,194,195 & 199GEO)
If QZSS can be used in an integrated way with GPS, ensuring a sufficient number of satellites for stable, high-precision positioning in the Asia-Oceania regions.

Thanks for all experts.


  • jksjks
    edited February 2018
    That's an interesting question. I read a little bit about QZSS, but I don't have a lot of time to look into it.

    Does anyone know if you just have to search for the QZSS PRN codes using the same techniques as for Navstar L1 C/A to get an acquisition?

  • jksjks
    edited February 2018
    Yeah I've been looking at that. The section about the PRN code generation is ambiguous. What I've tried implementing so far hasn't worked.

    Update: got it now..

  • Well, that was easier than I thought.

    I'm tracking PRN 194 and 195 no problem from here in New Zealand (QZS-2 and -4 respectively). Subframes are decoding and the software is flagging them as good. I have a little work to do to make the az/el display work correctly for them.

  • Okay, v1.170 is released with support for QZSS.

  • That's a great job!!
    Thank you for your quick work.
    Now PRN 193,194 & 195 can be received. (See attached image file)

    PRN199(GEO) seems to be unusable due to some obstacle now.

    Since GEO has been newly added to the QZSS specification, there is currently no commercial equipment that can be received.
    Therefore, if PRN199 can be received by Kiwi SDR, it is probably the world's first available GPS device in general.
    I'm paying considerable attention to that point now.

  • I have not seen any acquisitions of PRN199 yet. There is some test code in the file Beagle_SDR_GPS/gps/search.cpp to make sure I got the PRN 193-202 initialization correct and the first 10 chips match what is written in the specification.

  • Looks like PRN199 is being acquired now.

  • Dear jks, I am excited with the update. This is really a great achievement! I am running a kiwisdr in Japan, and now it almost always has more than four satellites. This should be the case in other part of Asia and Oceania.
  • I have recently moved to a new location where I have a limited view of the sky. Either blocked by other apartment buildings or a nearby (hopefully inactive) volcanic cone. The addition of the QZ sats really improves the amount of time I have enough sats in view (4) to compute location fixes.

  • v1.172 adds a switch to the admin page GPS tab called "include alerted?" that overrides the exclusion of alerted sats from the position fix. The alert "A" symbol will appear green instead of red when the sat is actually being used. It will be interesting to see if some position fixes get worse when alerted sats are included.

  • It is an interesting attempt. 
    Although I tried to include the alerted sats(PRN193,194&195), it seems that there is no particular impact on the positioning result at the moment.
    By the way, about PRN199(QZS-3), the signal has been stopped for several days. 
    This may be quite a serious trouble. 

  • I also have not seen any problems including PRN193-5 in position fixes when they are in alert mode.

    But a few days ago when PRN199 was transmitting I noticed position fixes on your Kiwi often had altitude values that were very wrong. By thousands of meters sometimes. And the lat/lon positions were also wrong by some amount. Before I could add any code to ignore PRN199 it had stopped transmitting. So when it does return it will be very interesting to experiment with the new alert switch and see if there is any effect.

    On my own Kiwi I didn't have enough sats for any position fix during the time when I saw PRN199 transmitting. So I couldn't verify if it was also a problem here.

  • The attached image is the result of reception including PRN199 on February 9, 8:00 UTC.
    Certainly the value of altitude was quite strange.
    The contents of the navigation data may have been abnormal.

    According to some information, the last PRN199(QZS-3) signals were sent between 7:00 and 11:00 UTC on February 9.
    I can not receive it at all after that.

  • The alert flag of PRN193-195 has been released earlier.
    PRN199 is still stopped.
  • Thanks for your GPS improvements.

    PRN199(QZS-3) is still inactive.
    I can not see the prospect of recovery.

    Currently four PRNs (193-195, 199) are in operation.
    Other PRNs (196-198, 200-202) will not be used for a while.
    It will be around 2023 at the earliest.

    Therefore, these PRNs may be excluded from the search target in order to speed up acquisition.
  • Good idea, I'll do that. Although acquisition is now faster than ever thanks to ongoing improvements by Christoph (https://github.com/jks-prv/Beagle_SDR_GPS/commit/f7d2906940631ee990fe3fcf630c072102651032)

    Hopefully QZS-3/PRN199 is just undergoing a longer period of validation due to its geosync orbit.

  • Hi John,

    I can see Q 201, 199, 198, 197, 195, 194, and 193 very occasionally (fleeting) appearing on my KiWi in the SW UK however I don't know if these are valid signals or false decodes.

    I'm using a Trimble 'mushroom' antenna (mounted outside and well in the clear) to feed a few GPS receivers including my KiWi's. The shadow graph (and Lady Heather on my Trimble) indicates that it's capable of receiving sats below 20 degrees elevation.


    Martin - G8JNJ
  • I have the SNR threshold set very low. So quite often tracking will be attempted on a sat that isn't really there. But this does help pickup weak sats when a sub-optimal antenna is being used.

    All PRN values that are not already being tracked will appear next to the icon in the "acq" (acquire) column as they are being searched for.

  • Hi John,

    Ah OK that makes sense.

    I'm seeing the search rather than an actual sat.


    Martin - G8JNJ
  • Yeah, it's a two phase process (more than you want to know here: http://www.aholme.co.uk/GPS/Main.htm)

    Step 1: Acquisition of sat signal. For each sat PRN search all possible PRN code offsets (1023) plus doppler offsets (40) until signal (SNR column) exceeds threshold.
    Step 2: Based on code offset and doppler values from acquisition attempt to track signal and extract navigation message (hold & subframe columns) with which to compute position/time solution.

  • According to a GNSS developer in Japan, the signal of QZS-3(PRN199) has been restarted since yesterday.
    I received it, but I can not decode the navigation data.

    He said,"QZSS overview: 2018/03/06 5:30 UTC QZS-3 L1C/A(PRN199) signal resumed. However, C/N0 is about 34 dBHz, which is lower than normal value by 9dB. It seems that LNAV is not a normal value yet because it is all parity error. Until now, it is predicted that stakeholders are performing hard recovery work. I pray for recovery."

  • That is interesting news about QZS-3.

    On the admin GPS display the "hold" count is the number of bits recovered noise-free from the 50 baud data stream. When it gets to 300 a check is made for a valid subframe. While searching for the 8-bit subframe sync pattern the hold count is reduced by one. So that's why it is stuck at 299 much of the time. It is searching for sync. If sync is achieved, but subsequent 30-bit words have parity errors, the hold count is reduced by the number of word bits in error. Then it will start incrementing again as new bits start coming in. A valid subframe is declared when there is sync and ten 30-bit words with no parity errors (300 bits per subframe). A 60 second watchdog timer releases the channel tracking if no subframes are found.

    An RSSI value of 3xx is pretty weak. You can bring up the IQ display for the channel and notice the x-axis spacing is small between the I & Q scatter plot regions.

  • jksjks
    edited March 2018
    Well, the alert flag is on, but QZS-3/PRN199 seems to be up and decoding subframes! And the az/el is right where it's supposed to be. Also seen in Shenzhen and Adelaide, Australia.


  • Yes, I could receive all four QZSs simultaneously.
    The reception level(RSSI) of PRN199 seems to be getting higher than a few days ago. 
    Complete recovery of QZS-3 is expected.

Sign In or Register to comment.