Skip to content

Satellite Info (1064.Sats)#69

Open
dakejahl wants to merge 1 commit intodronecan:masterfrom
dakejahl:pr-satelliteinfo
Open

Satellite Info (1064.Sats)#69
dakejahl wants to merge 1 commit intodronecan:masterfrom
dakejahl:pr-satelliteinfo

Conversation

@dakejahl
Copy link
Contributor

It would be helpful for GPS debugging to get the satellite information. The information chosen reflects what is currently available from the PX4 uORB message. I structured the message as per-satellite instead of arrays to allow the CANnode to emit the data on-update and interleaved with the higher rate GNSS sensor messages.

https://github.com/PX4/PX4-Autopilot/blob/main/msg/SatelliteInfo.msg

uint64 timestamp		# time since system start (microseconds)
uint8 SAT_INFO_MAX_SATELLITES = 20

uint8 count			# Number of satellites visible to the receiver
uint8[20] svid	 		# Space vehicle ID [1..255], see scheme below
uint8[20] used			# 0: Satellite not used, 1: used for navigation
uint8[20] elevation		# Elevation (0: right on top of receiver, 90: on the horizon) of satellite
uint8[20] azimuth		# Direction of satellite, 0: 0 deg, 255: 360 deg.
uint8[20] snr			# dBHz, Signal to noise ratio of satellite C/N0, range 0..99, zero when not tracking this satellite.
uint8[20] prn                   # Satellite PRN code assignment, (psuedorandom number SBAS, valid codes are 120-144)

But I think there are probably other metrics worth considering adding to the message. I'm opening this now to start a discussion.

@AlexKlimaj
Copy link

Should this be able to take an array instead of one sat per message?

@mhand1998
Copy link

mhand1998 commented Sep 3, 2025

Awesome, I think it might be helpful to get the for tightly coupled navigation systems

Pseudorange (m?)
Carrier phase (num cycles)
Doppler (hz)
LockTime (Duration of continuous carrier phase)

Would also be great to get the GPS Navigation message and correction messages
https://www.gps.gov/technical/icwg/IS-GPS-200M.pdf
see 6.2.9 Clock, Ephemeris, Integrity (CEI) Data Set

@Claudio-Chies
Copy link

This would be awesome to get it, as it would greatly help for debugging and monitoring.
building on this it might also be nice to get following info in as well:

uint8 constellation_id    # 0: GPS, 1: SBAS, 2: Galileo, 3: BeiDou, 4: IMES, 5: QZSS, 6: GLONASS
uint8 signal_id           # Signal/frequency band: 0: L1 C/A, 1: L1C, 2: L2 CL, 3: L2 CM, 4: L5, 5: E1, 6: E5a, 7: E5b, 8: B1I, 9: B2I
uint8 quality_ind         # Signal quality indicator (u-blox qualityInd): 0: no signal, 1: searching, 2: acquired, 3: unusable, 4: code locked, 5: code+carrier locked, 6: code+carrier+half-cycle, 7: code+carrier+time locked

uint8 health              # SV health flag: 0: unknown, 1: healthy, 2: unhealthy
float32 diff_age_s        # Age of differential corrections in seconds. 0 = no corrections.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants