-
Notifications
You must be signed in to change notification settings - Fork 369
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UAT rebroadcast traffic speed incorrect #277
Comments
ES or UAT replay? |
And can you attach copies of the replay files you're using to this issue? |
What is incorrect? The 0 kts? |
This is not a replay file this is live traffic at Fort Lauderdale International Airport and yes the knots 0 of airborne aircraft being rebroadcast |
The 0 kts not be incorrect for the speed. It can be that the aircraft is equipped with a Version 0 Mode S transponder. This will be common until Jan 1, 2020 mandate. After that date all ADS-B aircraft will need to be Version 2 and broadcast the correct information. Version 0 aircraft may also show 0 heading, --- airspeed, and/or ---- heading. On February 21, 2016 7:15:17 PM CST, peepsnet notifications@github.com wrote:
|
I didn't know why until Axtel4 explained it, but I've been seeing 0 kt (and 0 degree) AC ever since I got an SDR for 1090. (Whic was some time around v0.5.) |
Ok. So it's a feature... is the a/c really reporting 0 or nothing? If the a/c's are reporting nothing then we should display it that way with something like an italicized null or something. |
Sometimes the other planes do not conform to the "official" ADS-B On 02/21/2016 07:15 PM, peepsnet wrote:
|
It depends on how the aircraft is configured and the manufacturer of the transponder. When ES was released at DO-181 Version 0 the cert requirement was that it operate correctly with TCAS. Since ADS-B was not being used in the US there was not a requirement to include all the ADS-B data at that time. The minimum data set for DF-17 was the Lat/Lon, 4096 Squawk Code, Mode C altitude, Mode S address, TCAS equipage level, and the TCAS avoidance solution if an RA was initiated. This data was used outside the US as a quality control measure for ATC. There are a number of countries that are ahead of the US with the ADS-B mandate. The other items you are accustomed to seeing did not exist until DO-181 Version 1 and 2 with them being fully mandated at Version 2 after 01-Jan-2020. |
@peepsnet Yeah, I agree. Somewhere, either here or in the reddit, I suggested that dashes would be better. But as others are telling us here, the Stratux is faithfully reporting what is being sent. Unless there's a way to know if someone's xpndr is a Ver 0 Mode S, I think we just have to live with it. (I've been invited to ride shotgun Thursday with a guy who has a Stratus V2. I'll put it on my Test Card to see how the Stratus reports these aircraft.) |
The other thing you will see with Version 0 transponders if your EFB App has a heading vector ( or arrow) is the heading vector will point to 0 degrees but the target will move across the display in the direction of flight. So for a target moving from East to West the heading vector will point North instead of in the direction of flight. |
That makes sense. But I would have (wrongly) reported that as a bug to iFly if I had seen that. Perhaps iFly is doing some post processing? I'll watch my buddy's FF for this Thursday. |
In flight I am too busy doing other tasks to monitor the app that closely and I didn't pick up on it at first until I was siting stationary at home watching the EFB app. At that point I saw what the symbol was doing and compared it to the post processed 1090ES data. If the App sees 0 degrees the vector line points North. I am not sure how the app processes the ---'s for the heading. Maybe with the ---'s the app just paints the symbol without the vector line. |
JBU672 is indicating as 978 FIS-B / ADS-R target. It's maybe a little unusual that you're not seeing a 1090 position, but within the realm of reason. However, there are two things that don't make a lick of sense to me:
I'm trying to wrap my head around this -- I wouldn't rule out anything at this point, including bad data translation from the ground stations. Did you have logging turned on? A parse through the uat.log could be telling. |
Yea it was on! tell me what you want me to try |
@Axtel4 iFly will sometimes show a diamond symbol (indicating nonjmoving traffic), say at 8000'. I'll watch it, because I know that the target can't be stationary at 8000'. The diamond moves and eventually changes to a triangle w/ a vector. I don't think that iFly is calculating the motion, because when I go back to the status page, the airspeed is usually filled in by then. But I'll check for it next flight. (BTW, I only do this head down stuff in flight when I'm the non-flying pilot.). |
@AvSquirrel This isn't the same thing that you're taking about with 978 rebroadcast. But when I get targets w/ 0 airspeed, they're usually at the limit of my SDR's range. I don't know why their GPS position comes thru loud & clear but their airspeed/heading does not. But that's what I've observed. |
@peepsnet - get the tail number, http://www.flightradar24.com/flight/b6672. Say it was N643JB, then http://registry.faa.gov/aircraftinquiry/NNum_Results.aspx?NNumbertxt=N643JB
Then paste the output from that. |
Log above and last 20 or so lines below /var/log/stratux/0094-uat.log.gz:11916521471740,-0aa8712a36bb7b93a6005eb7064886e13f15c3bc7712440b6a936280005ed0000000;rs=0;ss=249; |
FYI LAN592 is also not close to the correct speed. it should be around 350 to 250knots. That is LAn Chille a heavy cargo jet i believe... |
Since you have a 1090 dongle installed and JBU672 is an Air Transport catagory aircraft we can cross reference the Jet Blue aircraft data in the 0094-es.log to the UAT log. |
Here is is! |
Interesting, JBL672 (A8712A) doesn't show up in your 1090ES log, but there is a track record for it in FlightAware. It should since it is an A320. |
yea. I didnt see it in the ES log. |
Didn't AvSquirrel say it was a 300 miles away? Not gonna get that on 1090. |
According to flightaware, it started in FLL which is where @peepsnet is based. So perhaps it is in an earlier file? |
zgrep a8712a /var/log/stratux/*.log.gz |
@peepsnet -- this is great data! TL;DR: Technical stuff As strange as it sounds, those messages correctly encode a position over Chesapeake Bay. Take a look at the snapshot below from 0044Z, as well as the decoding of the first UAT message. Both show positions at about 38.5°N / 76.2°W, descending out of FL370 on a 34° track.
So... why is speed funky? Instead of reporting speed and track, ADS-B encode the north-south and east-west speeds, and it's up to the receiver to do the math to calculate speed and track. As it happens, there's a bug in the root sum of squares routine during decode. Velocity components are stored as int16, and aren't being recast before they're squared in line 329. If the either component is greater than 181, or the sum of squares is greater than 2^15 -1, the sum of squares is set to zero. Since the components were (correctly) flagged as valid, this gets passed to the GDL90 and UI outputs. Recasting to a more compatible data type (float64 in this example) correctly calculates a ground speed of 482 knots. Interestingly enough, you got a few messages that didn't have valid velocity components, and these would have been detected as such (i.e. speed and track would have been blanked out on the UI) :
Attached below is a modified, standalone version of the UAT traffic decode routine that does both the current method and my prototype. It's a bit rough (it reads the UAT message as a hard-coded string) but can be run from the command line as |
It always makes me grin when I see the synergy in this Project. |
Is this the same for the LAN592 he was going slower(below 10000) so the int16 could hold the value? although not calculated correctly because of the n/s & e/w component? We were probable only getting one of the 2 components n/s or e/w?? |
what are the arguements for this? I got this from the UAT log Got an example? |
Oh I see... nano the file and change the hard coded variable... |
FWIW. func main() { Added "os" in import go run decode_UAT_traffic.go -08a7bf2425571b8ddd7404f810d022e070066a0025ed2d0b0695c0a00004d0000000; |
Fixed in #285. |
Ver 0.7b3
Dual sdr
Anker 20600
Edimax
Although the gps position does update and move the aircraft on the screen the relayed speed seems to be incorrect
The text was updated successfully, but these errors were encountered: