Wednesday, April 02, 2025

Why NavIC's L1 is NOT Visible to Everybody?

I am not going into the introduction of NavIC - the regional satellite navigation system developed by Indian Space Agency, ISRO. Since its inception NavIC connects over the frequency of the L5 band (1176.45 MHz) and the S-band (2492.028 MHz) while other Satnav systems mostly rely on L1 band. 

However as ISRO brought NavIC v2.0 with new satellites of NVS series, NVS-01 satellite, the first one of this batch supports L1 band. L1 band covers 1563 to 1587 MHz (center frequency of 1575.42 MHz) and is the primary and most widely used radio frequency band for global satellite navigation as it carries the Coarse/Acquisition (C/A) code, allowing public consumer devices like smartphones and car navigation units to pinpoint locations.

In real life I can't see the L1 band supporting NavIC satellite (as of now only NVS-01 supports L1 in the constellation) on GPSTest app on Android. 

Noted from GNSS.store:
 
L1 supported, older single-frequency receivers should connect to the following signals: 

  1. 1575.420 MHz: L1 GPS, also L1 SBAS, E1 Galileo, B1C Beidou, L1 QZSS
  2. 1598.062-1605.375 MHz: G1 GLONASS (also L1, L1glo, etc.). New G1 GLONASS code signals are in the same range at 1600.995 MHz. Usually, only antennas marked "L1 GLONASS" receive this sub-band. Antennas labeled "L1 GPS only" do not.
  3. 1561.098 MHz: B1I Beidou. This is the "old" signal; Beidou-2 satellites only emitted this signal. New Beidou-3 satellites emit both the "old" B1I and the "new" B1C. Currently, there are 15 Beidou-2 satellites and 29 Beidou-3 satellites in orbit. Receiving B1I increases the number of satellites by one and a half times. Fortunately, many antennas receiving L1 GPS and L1 GLONASS can also receive B1I without significant issues.
  4. 1589.742 MHz is B1-2 of Beidou. This is a very old signal found on the first Beidou-2 satellites. It is not present in contemporary documents on Beidou, indicating that either this signal would have been experimental or was (and still is) military. In any case, this is an atavism.

It's a limitation of our smartphones in different layers - hardware, firmware, or software layers, while NVS-01 is actively broadcasting the new L1 civilian frequency.  Smartphones require layered structural updates to parse and display it.

Chipset limitation:

Even though NVS-01 broadcasts on the L1 frequency—the same primary frequency used by legacy civilian GPS, the digital spreading codes of NVS-01, co-designed by ISRO and IISc, are unique spreading codes which improve performance but require a hardware-level baseband processor to decode them. Processor lines built prior to 2024 (and even some newer budget platforms) do not contain the physical logic circuits required to align with NavIC's specific L1 code structure.

Device Firmware / OEM Restrictions

Ok, so we have latest smartphone with latest chipset, still we are not getting it. The reason is smartphone manufacturers (OEMs like Xiaomi, Samsung, or OnePlus) did not enable NavIC L1 parsing inside the phone's Modem Firmware/Radio Image. So technically we should get it, but feature remains completely invisible to user apps as firmware is restricted the feature. 


Android HAL & API Bottlenecks

The Android operating system acts as the bridge between the smartphone's hardware and the GPSTest app. The phone's Hardware Abstraction Layer (HAL) reads the satellite data and populates an Android system class called GnssStatus. If the phone's manufacturer has mapped the NVS-01 satellite signal to the standard GPS L1 indicator instead of distinguishing it as an independent Indian constellation identifier (CONSTELLATION_IRNSS), GPSTest will mistake the satellite for an American GPS satellite or filter it out entirely.

GPSTest Screenshot - taken in August 2026, there is 4 NavIC satellites connected
2 is IRNSS-1B, 6 is IRNSS-1F, 10 is NVS-01. The signal of 6 came briefly (reason: 1F's atomic clock failed in March 2026). Interestingly 1I or 9 satellite could not be connected, while 10 or NVS-01 listed twice. There reason is not clear to me. 

On iOS, I used GNSS View app, which shows NavIC as inactive, while it supports 

  • GPS (L1C/A; L1C/A, L2C; L1C/A, L2C, L5)
  • GLONASS (L1,L2; L1,L2,L3)
  • BeiDou (B1,B2,B3)
  • Galileo (E1, E5, E6)
  • QZSS (L1C/A or L1C/B; L1C, L2C, L5) 
L2C/A stands for L1(Coarse/Acquisition)(1575.42 MHz)
L2C = C for Civilian
BeiDou has its own nomenclature. 

The fourth reason could be you are out of the coverage area of NavIC's NVS-01 satellite. As of August 2026 NavIC is not fully operational with just 3 satellites fully functional, until NVS-03 goes into the orbit. 

No comments: