6

I am looking for some help regarding decoding ARINC 429 data. I have a CSV document that contains sequentially stored ARINC 429 labels.

My overall goal is to be able to scan for 4 specific labels and only decode those frames (data field, label field, and ssm field) and append them to the document.

Does ARINC 429 randomly come in different data formats (i.e. BCD, BNR, Discrete Bits, etc)?

Since I am looking for specific labels, is it okay to only have it set to decode BNR format or do I need to be able to identify and decode all the data formats?

selectstriker2
  • 2,573
  • 1
  • 12
  • 24
woudie
  • 77
  • 1
  • 1
  • 5
  • 2
    This is a bit off topic for this exchange but you may want to check out this project. – Dave Jun 14 '17 at 17:00
  • 1
    Your question seems a bit off topic since it's more related to programming. If you don't find what you are looking for, try asking it on a programming exchange instead. – Jimy Jun 14 '17 at 17:18
  • 5
    I think it's on topic as the actual question is about Aviation data, not the programming, that's just background info. – Notts90 Jun 14 '17 at 17:55
  • 1
    Do you have a specific list of labels you are trying to decode? – selectstriker2 Jun 14 '17 at 18:02
  • 1
    Arinc 429 is not about aviation? Isn't it a data bus found in......aircraft? – Koyovis Jun 15 '17 at 16:07
  • 1
    Even with the edit you propose your question is still unclear. You want help to decode data. You seem to have some knowledge of Arinc 429. What is preventing you to identify in your data flow the labels you're interesting in? We're not going to provide you pseudocode, but we can explain the protocol if you come with a specific problem about the data flow in your CSV sample. Be specific, else no answer can be provided. – mins Jun 15 '17 at 17:18
  • @mins, I proposed the edit to remove references to Python in the question. So far my answer to the question seems to have helped the OP. The question really revolves around understanding the structure of the ARINC 429 word. – selectstriker2 Jun 15 '17 at 17:44
  • 1
    @selectstriker2: I wrote this comment while in the review queue, I didn't see that it was your edit, but voted to reopen as the edit was a great improvement, now that I read your answer and OP's comments, I think this is going to be solved. – mins Jun 15 '17 at 18:28
  • 1
    Avionics systems niche in the world of computer software. I'd guess the average pilot would know more about Arinc encoding than the average programmer. – Sam Apr 25 '19 at 02:13

2 Answers2

6

ARINC 429 is a defined standard that not only describes the packet structure (32 bits) but also the data formats for different labels depending on the equipment ID. To know how to properly decode an ARINC 429 label you need to know the Equipment ID, which can then be used to look up the meaning of a specific label.

The manufacturer of the device that the data came from may also provide the definition of any non-standard/custom labels

If you know which labels you are looking for you don't have to decode the entire label, you just need to inspect the bits 8-1 to determine the label.

In general though, the ARINC 429 specification provides a guideline for labels:

Binary coded decimal (BCD) sub-group 001 to 067, 125, 165, 170, 200, 201,230 to 237.

Binary (BNR) subgroup 070 to 124, 126 to 144, 150 to 154, 162 to 164, 166, 167, 171 to 177, 202 to 227, 240 to 257, 262 to 265, 267, 310 to 347, 360 to 376.

Mixed BCD and BNR subgroup 260, 261

Discretes subgroup 145 to 147, 270 to 276

Maintenance and discrete data subgroup 155, 156

Maintenance data subgroup 157 to 161, 350 to 354

Test word subgroup 266, 277

Application dependent subgroups 300 to 307

Acknowledgement subgroup 355

Maintenance ISO #5 subgroup 356

ISO #5 message subgroup 357

selectstriker2
  • 2,573
  • 1
  • 12
  • 24
  • Ohh, I see now! I currently have 2 of the 4 labels I need (204 & 210), but still looking for the other 2 (Outside Air Temperature & Barometric Pressure). So assuming I get the other two between 202 and 227, I wouldn't need to identify what format it is, I could go straight to translating two's compliment (BNR) to decimal? – woudie Jun 14 '17 at 18:47
  • Also, sorry if this is a silly question, but if I end up getting a label of 376, how would that be transmitted if the bnr representation is 9 bits long? (something like 0010000111) – woudie Jun 14 '17 at 18:54
  • do you know what equipment ID the device you are receiving data from is using? – selectstriker2 Jun 14 '17 at 19:49
  • Yes, the devices for the individual (i think), I managed to find a document with a bunch of labels w/ eqpt ids. The eqpt id I have for 210 is 006 and 204 is 060. another (possibly silly) question, are equipment ids unique to the air data computer?

    edit: nevermind, I think I answered my own question based on what I just read. So yes, the eqpt id is unique to the avionics device. My next step should be to acquire the eqpt id of the air data computer I will be receiving from, correct? how can I go about that? I should note that the air data computer is not exactly accessible to me at this time

    – woudie Jun 14 '17 at 20:11
  • The Equipment ID describes what type of transmitting computer. ID 006 is Air Data System and ID 060 is GNSS Navigation Unit. For ID 006 - label 210 is True Airspeed in Knots, 204 is Baro Corrected Altitude in feet. – selectstriker2 Jun 14 '17 at 20:17
  • Ohh I see, so it is not device specific, but rather it is the type of device. Do you mean something like a serial # that specifically identifies the make and model of the air data computer? – woudie Jun 14 '17 at 20:30
  • Can I get back to you on that? My boss would be the one with that information, but he is out of the office for a while... Would it be possible for me to go any further on figuring out how to decode this arinc429 frames until I can get the make and model of the air data computer? – woudie Jun 14 '17 at 20:38
  • Sure, I would recommend taking a look at this brief overview first, should help identify which bits are assigned to different parts of the ARINC 429 word: https://www.aim-online.com/pdf/OVIEW429.PDF – selectstriker2 Jun 14 '17 at 20:50
  • Your company might also consider buying the ARINC 429 standard document, which defines most of the standard labels used and quite a few examples to help with encoding/decoding - http://www.aeec-amc-fsemc.com/cf/store/catalog_detail.cfm?item_id=1940 – selectstriker2 Jun 14 '17 at 21:04
  • I read through the overview and I will bring up the full standard document with my boss when he returns. Does the full standard document contain everything about ARINC 429 protocol? such as label codes w/ eqpt IDs, methods that can be used to decode and encode frames, etc? – woudie Jun 15 '17 at 12:44
  • Also, I noticed it mentioned about a data type that uses 2-way communication... when I was reading before, I read that ARINC 429 uses simplex communication (unidirectional), so how would it go about 2-way communication?? When trying to acquire data, would an air data computer automatically transmit once powered or would it require a request code? when I found it used simplex communication, I automatically assumed that it would transmit once powered because I can't send a trigger command back... – woudie Jun 15 '17 at 13:06
  • ARINC 429 is one way only, so for 2-way communication it takes two ARINC 429 serial connections - 1 in and 1 out. Think of it as a streaming interface. The transmitter continually sends out data without knowing who is receiving it. – selectstriker2 Jun 15 '17 at 13:25
  • Ohh okay, so then I was correct to assume that once it powers on, it will automatically begin transmitting data, but as you said, it will not know who is receiving it, it is just transmitting? So I re-read the overview and wow did it ever help with my understanding of the protocol. I understand the labels a lot clearer now. For labels, I now know that the label codes are octal values, not decimal and are sent in 3 sets of octals in binary (i.e. Label 210 is sent as 100-001-10). – woudie Jun 15 '17 at 13:42
  • The only parts I still have a little confusion over are the sections discussing Williamsburg/Buckhorn Protocol (WBP) and BNR Data. For BNR Data, can you explain to me the scale factor? I wasn't able to grasp how the bits were decreasing fractions of the scale factor. For WBP, is it only implemented when the data bits exceed 21? does it essentially pack a block of words with words containing the regular Data words with the SOT, GFI, EOT, etc words? Would I need to concern myself with determining how to separate the blocks into their words and identify which is a data word and which is not? – woudie Jun 15 '17 at 13:43
  • I doubt you will need to worry about WBP, as it is used for file transfers rather than typical ARINC 429 data. – selectstriker2 Jun 15 '17 at 13:45
  • For scale factor, take a look at my answer here: https://aviation.stackexchange.com/a/37485/17732 – selectstriker2 Jun 15 '17 at 13:48
  • Sorry, I'm still a bit confused by the explanations of the scale factor in the link you sent. From the documentation you linked and a video I watched, I got the idea that to identify the value in the data field would be decoded by identifying the sig bits in the field (the 1's) and multiplying the associated scale factor of that index (1/2, 1/4, 1/8, etc) by the max possible value of the identified label. In addition, bit 29 is the sign bit. Is that the correct understanding? – woudie Jun 23 '17 at 16:26
1

Out of the 32 bits ARINC 429 word, the label is coded by bits 1 to 8 as follows: bits 1 to 3 for the least weighted octal digit, bits 4 to 6 for the next higher, and bits 7 & 8 for the most weighted octal digits. So the label is decoded in base 8 and not base 10, here an example. For instance given the following binary label: 11100110 The 3 bits 110 are decoded 0+2+4=6 The 3 bits 100 are decoded 0+0+4=4 The two digits 11 are decoded 1+2=3 The label is therefore 346 Note: If all bits are set to 1, the greatest label is therefore 377. Of course you may transmit more than 377 parameters, because similar parameters from different sources or sensors for instance AOA left, AOA right, do have the same label. To distinguish similar parameters having different sources, two additional bits (SDI - Source Destination Identifier) are transmitted to define the source.

user40476
  • 1,772
  • 9
  • 27