A box which receives ADS-B and emits it as RS232 RS422 or ARINC429 - Page 1
Forum section: electronics / projects

author: peter-h
author_rank: Super Contributor
timestamp: November 29, 2024, 11:01:47 am
content: This is a long shot. These sort of exist (e.g. Air Avionics AT1 is the neatest) but I need something which also emits the SIL number. The AT1 also has some weird code update policy and stops running if you don't do it. I need the SIL # because I am looking for SIL=0 traffic only.It can also be done with a USB SDR e.g. RTL2832U but I don't have a USB port, let alone something which can run the driver... The PAW Rosetta does this - a Raspberry Pi hack and a USB SDR in a box. There are others using the same flimsy method.

author: NiHaoMike
author_rank: Super Contributor
timestamp: November 29, 2024, 12:32:04 pm
content: If there's no particular reliability requirement, how about a Flight Aware receiver (includes LNA and filter) and a Raspberry Pi or other embedded computer running custom software?

author: jc101
author_rank: Frequent Contributor
timestamp: November 29, 2024, 01:20:00 pm
content: If you want reliable, then a Mode-S beast could be used. It's FPGA based and outputs serial, which could be tapped into as it uses an FTDI serial to USB converter. You'd need to do the TTL serial to RS232 yourself. Not the cheapest option out there, mine has been running untouched for over a year now. It chucks out a lot of data. It generates the same data as the SDR type receivers, which can be read by the likes of readsb (https://github.com/wiedehopf/readsb). Pretty sure the SIL will be in there.Where you can buy themhttps://webshop.jetvision.de/en/product/mode-s-beast-kit/?v=7885444af42e#Block diagramhttps://wiki.jetvision.de/wiki/Mode-S_Beast:System_DesignPossible the Radarscope might work (https://wiki.jetvision.de/wiki/Radarcape:Contents), but that is IP based. Would IP to serial be an option?If you literally just want SIL=0 data, then you will need something to pre-process that before sending it onto you. I receive around 2000 ADSB messages a second, which could take some processing to handle.

author: peter-h
author_rank: Super Contributor
timestamp: November 29, 2024, 02:24:01 pm
content: The Mode S beast looks absolutely perfect - thank you so much! I've emailed them with the SIL question.2k packets per second is fine. I have an ARM32 32F417 running at 168MHz. It does most things in 1 clock cycle (7ns). How long are the packets?The reason I want only SIL=0 packets ultimately is because I have a TCAS-1 box (TAS605A) which processes SIL=1+ data, and using the 24 bit aircraft ID it de-duplicates the ADS-B and the Mode S data so if a target is using a given 24 bit code, only the ADS-B version is displayed. But AFAIK much (all?) SIL=0 traffic (basically portable ADS-B OUT "velcro attached" gadgets) don't emit the 24 bit ID and if they do it is sometimes bogus/misconfigured. For example I found one guy emittingmy24 bit ID with his Sky-echo 2The TAS605A emits the traffic via ARINC429 and I want to merge the SIL=0 targets into this ARINC429 stream. I've done tons of 429 code so am well familiar with it.

author: jc101
author_rank: Frequent Contributor
timestamp: November 29, 2024, 03:09:17 pm
content: SkyEcho is allowed to transmit SIL=1 in the UK, and it does broadcast ADSB. I think it is probably the only portable unit that does transmit ADSB in the UK.But I think SkyEcho uses DF 18, isn't general ADSB-Out normal DF 17 - so you may be able to ignore the SkyEcho transmissions.Any ModeS / ModeS-ES transponder will also transmit the aircraft hex ID programmed into the transponder. If you feed a GPS location into a ModeS-ES transponder it will squit that data out without interrogation on 1030 first, but depending on the type of GPS source that will be SIL 0 or 1.Some people these days also may 'misconfigure' a transponder as they want to hide their registration from the various tracking websites. That, or they don't turn the transponder on, but will complain that others don't so they can't seem them on the EC device of choice.The SIL is part of the ADSB packet, so will probably be thrown out by the beast. I could probably capture some raw data from it for you to sift through if you they don't get back to you.Edit to add in that the packets are the just the raw ADSB packets, it doesn't decode the data, just grabs the data from the air and fires it out the serial port. So you'd need to decode those ADSB packets of interest.

author: peter-h
author_rank: Super Contributor
timestamp: November 29, 2024, 03:38:05 pm
content: That sounds great.Idowant to pick up Sky Echo packets - it is a popular product - but only if SIL=0. Although, nobody knows, if the TAS605A will display SE packets with SIL=1. If not then I want those alsoBut not if the TASisincluding them in the data.I don't know DF17 v. DF18. Both must be "ADS-B", I would think? The tracking sites pick up SE, AFAIK.Yes; decoding is no problem.

author: jc101
author_rank: Frequent Contributor
timestamp: November 29, 2024, 03:44:22 pm
content: There are different frame types in ADSB, such as 17, 18, etc. They mean slightly different things, but handily the first few bits of an ADSB packet identify the frame format.I've got your PM, so will drop you a mail.

author: brucehoult
author_rank: Super Contributor
timestamp: November 29, 2024, 11:11:30 pm
content: Quote from: jc101 on November 29, 2024, 01:20:00 pmDamn. Busy place. This is me for a full 24 hours!I've never played with raw hardware ... just use the RPi3 CM-based box FR24 sent me for free four years ago.But I think my antenna mounting solution is amusing :-)https://www.youtube.com/shorts/7U8KcuK__uo

author: jc101
author_rank: Frequent Contributor
timestamp: November 30, 2024, 09:13:12 am
content: A bit busier I suppose, for the same day...

author: peter-h
author_rank: Super Contributor
timestamp: December 01, 2024, 05:56:04 pm
content: The Mode S Beast looks perfect but I struggle to find a clear reference for the ADS-B packets.AIUI I need to extract latitude, longitude, altitude, SIL number, the 24 bit ID. That's it. I can't see anything else is needed.

author: jc101
author_rank: Frequent Contributor
timestamp: December 01, 2024, 05:59:06 pm
content: Have a look at this site, it gives some examples.https://mode-s.org/decode/misc/preface.html

author: peter-h
author_rank: Super Contributor
timestamp: December 01, 2024, 07:44:35 pm
content: That site is super good - thank you.I have a general Q:"An ADS-B frame is 112 bits long and consists of five main parts, shown as follows:"The above cannot possibly include everything including the 3D position (I saw the bit about the compact/ambiguous encoding) so am I right that a given aircraft will squirt out a series of these 112 bit packets, in rapid succession, each one containing the 24 bit ID (which enables them to be collected together) and somehow the receiver knows when it has got the whole lot.It seems to me that if one is to build a table of ADS-B OUT aircraft within say 10nm radius of one's own aircraft (my objective) I need to be receiving absolutely all ADS-B packets (the doc for the board says you can tell the ADS-B ones from their length), decode the 3D position of each, chuck away all those which are too far away (the vast majority) and maintain a table of the rest, whose contents is purged say every 2 seconds (or perhaps better to have a 2 sec timeout on each table entry).Does this make sense?I need to do all this in C, and I have roughly 500k free FLASH and 100k free RAM to play with. The product already exists (function unrelated to ADS-B) so the basic functionality (interfaces, RTOS, ETH, USB, ARINC429, all kinds of stuff) is already done.Am I also right that there is no time stamp?? That is curious! I know light goes fast

author: jc101
author_rank: Frequent Contributor
timestamp: December 01, 2024, 08:05:18 pm
content: From memory here, but I think a full set of ADSB data from any aircraft is 2 packets, odd and even. It might be an idea to have a look at the likes of dump1090, which is the open source ADSB decoder. Available is multiple variants and versions. There will probably be struts and state machines in there to form the basis of what you want.ADSB is transmitted autonomously, generally at 1 Hz. It can be faster or slower in newer versions, depending on a variety of factors. The "bible" is DO-260B, if you can find a copy of that online that will have everything in it. It costs a lot to buy a copy. I thought I had a copy but it might be filed away on my NAS, I'll set a search going tomorrow.You'd probably want a longer timeout, as if you miss a packet from a packet collision, it's still meaningful. The Beast is very good at sorting out the data, so only verified packets get sent for processing. No time stamps, it's a realtime protocol. You can stamp by your receive time, but the transmit isn't. Then you'd have to synchronise all the clocks in the all the aircraft for it to be useful. Could be fun without a GNSS service.

author: peter-h
author_rank: Super Contributor
timestamp: December 01, 2024, 09:38:11 pm
content: I looked at dump1090 and it is a huge program. I should be able to simplify the task greatly, since I am not after a general packet decoder.I will come back with what I have found, but if anyone knows more, please post itThank you.In the light aircraft (bizjet and below) context, you cannot do ADS-B OUT without a GPS source. And for SIL=2 you need an SBAS GPS (or a source which emulates one). The lower SIL numbers can be done with a non-SBAS GPS.

author: brucehoult
author_rank: Super Contributor
timestamp: December 02, 2024, 12:34:45 am
content: Quote from: jc101 on November 30, 2024, 09:13:12 amSlightly busier, indeed! That's an average of around 10 hits per second  not 20, but I guess you get 20+ at peak times.I'm 175 km NNW from NZAA (Google "Paiaka"), with very little local traffic -- half a dozen Q300 flights a day, and the local Sikorsky S-76 rescue chopper mostly. Most of my hits are NZAA international traffic near extreme range, the flights to Fiji far to the east, to the US west coast briefly far SE, and to Brisbane, Bali, Singapore, KL, Bangkok, Hong Kong far to the west. Only Vanuatu, Noumea, Tokyo, Seoul, Shanghai pass more or less overhead (and I ofter hear them as they climb through 30k, look at my watch "That will be the Shanghai flight", check FR24, and it is). I lose/pick up NZAA traffic at around 11k or 12k ft. I have range maybe 125 km beyond NZAA but only at 20k+ ft, so domestic jets to/from NZWN, NZCC etc are out of range before they are high enough and I only get very rare things like Melbourne-LAX traffic diverted 1500 km off track around weather down there (they usually pass over Fiji). but less than half the positions -- why is that? Mine are usually equal.

author: peter-h
author_rank: Super Contributor
timestamp: December 02, 2024, 05:19:36 pm
content: Maybe I should just buy the Mode S Beast and see what comes out. If I see 2 packets for each aircraft (with same 24 bit ID) and these two are repeated every second, then that confirms it.

author: jc101
author_rank: Frequent Contributor
timestamp: December 02, 2024, 06:43:48 pm
content: I can record a chunk of data from mine if you want the data to play with. Just say how long you’d need.

author: peter-h
author_rank: Super Contributor
timestamp: December 03, 2024, 08:56:41 am
content: I reckon 10 seconds would be enough to see the packets from a particular aircraft, repeating every 1 sec or so.Thanks

author: jc101
author_rank: Frequent Contributor
timestamp: December 03, 2024, 09:13:21 am
content: Attached is around 30s worth of data, there is a time stamp at top and bottom, as I just logged a terminal window to a file. Enjoy.Hmm, doesn't seem to like the .txt or .zip file, I'll ping it over via e-mail.