(A non-pilot here, just a Aviation.SE reader, recently into listening to ATC. I am wondering...)

Why do the transponders use their own codes? (squawk) It seems to me, it would be safer and less of a burden, if each aircraft programmed their own registration number into the transponder and everyone used that?

  • 7
    $\begingroup$ There are other uses for the transponder, such as squawking 1200 when flying VFR, 7500 for a hijacking, 7600 for comms failure, and 7700 for an emergency. Also, there are only 4096 unique transponder codes, and something like 32^5 possible registration codes. Mode-S transponders do send a unqiuely identifying number with the interrogation data though. $\endgroup$
    – Ron Beyer
    Commented Aug 2, 2016 at 21:17
  • 10
    $\begingroup$ Transponder technologies were developed in the 1950s. Technical limitations drove some of the choices made. Now apply compatibility arguments for several decades. $\endgroup$
    – BowlOfRed
    Commented Aug 2, 2016 at 22:01
  • 1
    $\begingroup$ Aircraft are assigned a unique mode S ID when they are registered. That code has to be programmed into the transponder and ADS-B unit during installation. That's how flightradar24 knows the registration. For why the squawk codes are still used see this question $\endgroup$
    – TomMcW
    Commented Aug 3, 2016 at 0:30
  • 1
    $\begingroup$ A transponder code says much more than just the aircraft registration. Knowing the registration really doesn't help the controller - though I guess they could cross reference it and find out the type of aircraft. But a transponder code can tell them about the flight - whether they're VFR, which sector they're working with and so on. For example, I fly next to some very busy airspace - they have a "listening squawk" that aircraft can switch to which tells everyone with RADAR that they're an uncontrolled VFR flight listening on xxxx frequency. All without taking up a single bit of radio time :) $\endgroup$
    – Dan
    Commented Aug 3, 2016 at 10:27
  • $\begingroup$ @mins, I guess the best answer is the comment by BowlOfRed, but voretaq7's answer has also some merit for mentioning some more context. $\endgroup$ Commented Aug 3, 2016 at 17:00

3 Answers 3


To expand upon voretaq7's answer, understanding the history and evolution of transponders can more deeply explain why this is the way it is (for now).

When Allied (US/UK/Others) WWII planes returned from combat missions over Germany and mainland Europe, the (brand new technology) radar controllers had no way of knowing "who" the aircraft were. To solve this problem, aircraft began carrying an electronic box that could transmit a radio signal automatically in order to identify themselves. This system was the original IFF (Identification: Friend or Foe).

This piece of electronic wizardry could be set on the ground by crew members, prior to departure, using an 8-position dial numbered from 0-7. The box would receive a transmission signal from the ground, and then transmit a reply of two bursts of energy per cycle: the first signal was the "I'm beginning my transmission" signal (a slightly louder burst of energy), and the next signal was delayed a specific amount of nano-seconds to match the frequency wavelength (and would be slightly lower in intensity). If the transmitter was set to 0, the delay was nothing. That is, the second burst would be transmitted on the next "instance" following the begin-transmission burst. If set to 1, then there was a 1-step delay after the start-signal... all the way up to 7, which would induce a 7-step delay.

The rudimentary "computers" on the ground, co-located with the radar, would receive these transmissions. Based on the known radio frequency, the timing of these short bursts of energy onto the carrier wavelength could be interpreted back into a number. If the radio on the ground received something like: START-nothing-nothing-SIGNAL-nothing-nothing-nothing-nothing-nothing-START-nothing-nothing-SIGNAL-nothing-nothing-nothing-nothing-nothing.... then it could be calculated that the box onboard the aircraft was transmitting the "number 2". If the secret number for that day (briefed to pilots before they left) was "2", then the plane was identified as a "FRIEND" in the IFF system. This was the very first transponder prototype. (BTW: It is called a "transponder" because it does two things: it TRANSmits a resPONSE to a specific signal on a specific frequency.)

But the obvious first hurdle was the fact that there were only 8 numbers available, and so the transponder boxes were quickly upgraded to two settings (56 possible code combinations) and then 4 settings (4,096 possible "code" combinations).

But there was still a "problem": the codes were set on the ground and could not be changed. Any mid-mission compromise of the number being used that day prevented aircraft already airborne from changing their codes. The next technological leap was to develop a panel-mounted system where the pilot could change each of the four dials manually.

This technology eventually entered the civilian arena. To distinguish between different types of transponders and who was using them (mostly a frequency issues - military freq vs. civilian freq), different categories came about, called "modes". A "Mode 2" transponder was the above described 4-digit, octal, set-on-the-ground-and-leave-it system. A "Mode 3" transponder was the newer, pilot-sets-it-in-the-air version, but still using military frequencies.

When the civilians began using the same technology on approved civilian frequencies, the designation was "Mode 3-A", often just called a "Mode A" transponder. Combined with the advent of civilian air traffic surveillance radar, controllers could now distinguish "who was who" on their screens, by assigning each aircraft its own unique number. This was great for a while, but the only thing controllers could see was the "blip" and its assigned number. The radar computer could also calculate ground speed, but not altitude. So, the controllers relied on the pilot to report their altitude verbally.

This led to the next technological leap forward in transponders. If that same radio could somehow be connected to the aircraft's pressure system (the same one that drives altimeters and vertical speed indicators), then it could probably somehow be configured to transmit that altitude data as well. That technology was thus invented, and the designation "Mode 3-A/C" was applied to the civilian versions... commonly (and still popular today) called a "Mode C Transponder".

This (finally) gets us to the original question: Why don't aircraft program their own registration numbers into the transponder? Since there are only four octal digits available, there are three immediate problems: first, the numbers 8 and 9 are not usable; second, no letters are available; and third, with only 4096 possible combinations, and way more aircraft than that in the world, it is very highly possible that two aircraft in the same vicinity could possibly have the same number.

The advent of "Mode S" transponders, with "current-day" technology, can now transmit (as well as receive) all kinds of information, including the aircraft's specific identity like the question-asker thought should be the way it is. But, backwards compatibility for all of those aircraft still flying around out there with "Mode C" transponders still requires ATC to assign a unique code to an aircraft and the pilot to plug that number in.

Additional trivia, not directly related to the question: Since Mode C transponders are limited to the numbers 0-7, how can they transmit altitude data that might contain the numbers 8 and 9?

The answer is in an aspect of binary coding called a "Gray Code" (or sometimes a "Gillham Code"). The world's avionics people standardized on a set of codes to represent a set of altitudes in 100-foot increments. As a couple of examples, an aircraft at a pressure altitude of 8,500 feet would send the 4-digit code of 6220. Sitting at a pressure altitude of 0 would result in the code 0620. The receiving ground station would evaluate both the pressure altitude received by the aircraft, as well as the current station pressure setting (commonly called the "altimeter setting"), and convert these into the aircraft's actual MSL altitude for display on the radar screen.

I was able to find this list of altitude-code conversions:


  • 5
    $\begingroup$ A number with 8 possible values is 3-bit, not 8 $\endgroup$
    – samgak
    Commented Feb 23, 2017 at 20:24
  • 2
    $\begingroup$ Thanks, @samgak, you're right -- I meant to say a 4-digit "octal" system. These four, 3-bit "digits" is why the altitude de-coder (in the link provided) lists a 12-bit code for each altitude setting. $\endgroup$
    – Jimmy
    Commented Feb 23, 2017 at 22:17
  • 2
    $\begingroup$ Saying altitude data may contain numbers 8 and 9 makes no sense. Altitude datum is just a number and number can be encoded in any numeric base, including 8. After all, computers encode everything in base 2. The reason for Gray Code was to avoid incorrect values if the interrogation happens when the unit is switching—the old systems were electro-mechanical and the switches for each bit could happen out of sync, but in Gray Code, only one bit needs to be flipped between successive values, so it does not matter. $\endgroup$
    – Jan Hudec
    Commented Nov 4, 2017 at 16:39
  • $\begingroup$ @JanHudec while true, the intent was to say that an altitude of 8,900 feet can not be transmitted using the four switches, each of which send a signal that can only be interpreted as 0-7. The Grey Code is what receives the "number" of 6500 and interprets that to be an altitude of 8500 feet. But that interpretation cannot happen if the standard is not pre-determined, so that the aerial transponder knows what to send and the ground based receiver knows what that translates to. $\endgroup$
    – Jimmy
    Commented Nov 4, 2017 at 23:48
  • $\begingroup$ @Jimmy, 6,600 feet can not be transmitted, in feet, using the four switches either, because the maximum value is 4,095. Because interpreting it as number*—0 to 4,095—is different from interpretation as four *digits. $\endgroup$
    – Jan Hudec
    Commented Nov 5, 2017 at 9:51

The short answer is that they often do both.

Mode S transponders (which you'll find on most airliners, and are now becoming common on light aircraft as well) transmit a unique aircraft identifier that the ATC system can interpret and display.

Older transponders only support the Mode A identifier code (the squawk code we're familiar with selecting) - this is an offshoot of military IFF technology (Mode 3) where the transponder is interrogated by a radar station and returns an identifying code which the ATC system then interprets and deals with appropriately.

Both methods are currently used to identify aircraft: A discrete Mode A squawk is associated with your N number by ATC and the system will tag your target appropriately. If a Mode S response is received that can be mapped to a non-discrete code like 1200 to populate the data block.
The Mode A codes will likely remain in use for the foreseeable future because as others mentioned in the comments there are non-discrete codes that have been assigned special meaning to communicate information useful to ATC (in the US 1200 for VFR, 7000 for VFR in some other places, 7500 for hijacking, 7600 for lost comms, and 7700 for general emergency), and combined with a Mode S ID this can allow ATC to know that the aircraft that was squawking 1200 and is now squawking 7700 is N12345.


There are multiple reasons attributed to the transponders using 4-digit octal codes as the aircraft identifier. Here are two of them which are the most essential:

  • Squawk codes are easier to communicate over radio, and are also easier to read. While there are only 4096 possible combinations, the uniqueness of these combinations are relevant only to those ATC whose RADAR covers that specific aircraft. This means that unlike a registration number that is unique for every aircraft throughout the world, *the same squawk code can be used at many places (with a decent separation between them) simultaneously*.
  • Squawk codes not only function as aircraft identifiers, but also supply special information to the ATC (as all the other answers mention). These special squawk codes are used to pass on vital information that isn't normally passed as data (altitude, airspeed, etc.) such as radio failures (7600), emergency (7500), and hijacking (7500).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .