Friday, April 15, 2016

Deriving The Transponder’s Hexadecimal Code

When using SkyView version 13 or older, one of the items that requires an entry into the SkyView by the builder is the Hexadecimal code for the transponder. This code is unique to the N number and needs to be installed in mode S transponders. The code is called ICAO and is a 24 bit code. To avoid a long string of ones and zeros, the code is converted to an Octal or Hexadecimal number. The FAA has an algorithm that generates the code based on the N number … so each N number is assigned a unique eight digit Octal mode S code (which, for American aircraft, begins with 5).

Apparently, one of the nice features that comes with SkyView version 14 is that the algorithm is now built into the software. When the user inputs the aircraft’s N number (which is the first thing that needs to be done before the configuration menus can be accessed) SkyView version 14 software will automatically calculate the proper transponder code based on the N number and populate that field in the transponder’s setup menu with the hexadecimal equivalent of the FAA’s octal code. Unfortunately, Van’s has not released SkyView version 14 yet … so will need to enter the mode S code manually.

(Return from the future ... About a week after this was posted Van's released version 14 and the associated configuration files).

Here is how the code can be obtained prior to registration of the aircraft. Most builders, myself included, have been to the FAA’s web site and have done searches on the available registration N numbers for their airplanes. Although not necessary, the builder can reserve an available N number by paying a $10 fee which reserves the number for a year… upon which time it can be renewed for another year for another $10.( More than one number can be reserved … there was a point when I had four numbers reserved but now that has dwindled to two). Most builders reserve an N number for their aircraft prior to completion and the transponder code can be found by looking at your reservation on the FAA’s web site.

For those who have reserved an N number for their aircraft and know they will use it when registering the airplane, the unique transponder code assigned to the N number can be obtained by doing an N number inquiry at the FAA’s web site. The inquiry will return your name and address and show that the N number is reserved in your name. There is also a field listed for Mode S Code followed by an eight digit number. This number is the transponder code and is represented as an Octal value and NOT Hexadecimal as is required for the SkyView transponder!

Unfortunately, the transponder menu in the SkyView requires the Mode S code to be entered as a HEXADECIMAL value NOT the Octal value shown on the FAA’s web site. So the Octal number shown on the FAA’s web site needs to be converted to Hexadecimal before it can be entered into the SkyView set up menu for the transponder. Making the conversion is easy … and I’ll make an effort to make the seemingly complex simple and show you how …  after a brief discussion on computer numbering systems to help those who don’t understanding the difference between Octal, Hexadecimal and Binary numbers. Of course in a couple of weeks version 14 will be mainstream and the following will be moot … although it may be useful as a double check.

Computers and digital devices store numbers and data internally by semiconductor devices being in one of two states … on or off … which is represented as a 1 or 0 and is called a binary “Bit”. To store numbers or data, the semiconductor “Bits” are grouped together to form “Nibbles”, “Bites” and “Words”. Computers and digital devices predominately use two numbering system standards to represent digits… Octal and Hexadecimal. Octal digits are represented by grouping three binary bits and Hexadecimal digits are represented by grouping four binary bits. The Octal numbering system was a mainstay in the 70’s and has, for the most part, been retired by the Hexadecimal numbering system. This may explain why Octal is used on the FAA web site …. Years of tradition unhampered by progress.

Computer numbering systems made easy ... or not. In any numbering system the highest digit in any one column is one less than the base of the numbering system. The familiar Decimal base 10 numbering system we are all accustomed to is represented by digits ranging from 0 to 9 with 9 being the largest digit in any column. Binary is base 2, so it is represented by digits ranging from 0 to 1 with 1 being the largest digit in any column. Octal is base 8, so it is represented by 0 to 7 with 7 being the largest digit in any column.

Think of it as an odometer in a car … as an example, in Octal 7 +1 is 10 because there is only 0-7 in any one column so 7 +1 trips the odometer to the next digit of 10. Here is where it gets a little dicey … Hexadecimal is base 16, so one less than the base would be 15 but that is two digits …. not to worry 15 is “represented” as the letter F, 10 is A, 11 is B, ect. … so in Hexadecimal, F+1 is 10.

So why do computers use Octal and Hexadecimal numbering systems? Because it makes it easy to convert the hardware level binary ones and zeros into numbers easier for us to deal with without having very long strings of ones and zeros for each number. Octal and Hex numbering systems are “convenient” because three binary “bits” grouped together represents an Octal digit and four binary bits grouped together represents a Hexadecimal digit.

Binary examples of Octal digits: 1 in Octal is 001 in Binary.    2 in Octal is 010 in Binary.    4 in Octal would be 100 in Binary.    7 in Octal is 111 in Binary.

Binary equivalents of Hex digits are identical to the Binary numbers above from 0 to 7 with the exception there is a leading 0 added.  7 in Hex is 0111 in Binary.    8 in Hex is 1000 in Binary.    F (or 15) in Hex is 1111 in binary.    B (or11) in Hex is 1011 in Binary.

Rule of thumb, ANY Octal value can be easily converted to a Hexadecimal value by converting each digit of the Octal value into groups of three binary bits. The resulting binary string can then be converted into a Hexadecimal value by counting off groups of four binary bits ( moving from right to left) instead of the three used for Octal. (Conversely, any Hexadecimal value can easily be converted to Octal by changing each digit to a four bit binary, then moving from right to left create groups of three binary bits, then convert them to the corresponding Octal digit for the binary value of the three bit grouping).

Below is a graphic showing how to convert an Octal value to a Hexadecimal value. As a hypothetical example, if the FAA showed the mode S code of 52072351 on their web site for an aircraft’s mode S code, it would need to be converted from Octal to Hexadecimal so it could be entered into the SkyView’s transponder setup menu… the conversion results in a Hexadecimal value of A874E9.
As can be seen in the above graphic, converting an Octal value to Hexadecimal is not that difficult … it just requires a piece of paper, a writing utensil, a little patience, and some practice.

Using the above method, I was able to convert the Octal mode S code shown on the FAA’s web site to Hexadecimal and install the Hexadecimal code into the DOG Aviation RV-12’s  SkyView setup menu for the transponder.

1 comment:

  1. Appreciate the use of "first principles" to compute go between octal and hexadecimal. But it is much easier to use one of many online calculators to do the conversion.