Gillham code is a digital code using an eleven-wire interface that is used to transmit uncorrected barometric altitude between an encoding altimeter or analog air data computer and a transponder. It is a modified form of a Gray code and is sometimes referred to as a "Gray code" in avionics literature.
An altitude encoder takes the form of a small metal box containing a pressure sensor and signal conditioning electronics. The pressure sensor is often heated, which requires a warm-up time during which height information is either unavailable or inaccurate. Older style units can have a warm-up time of up to 10 minutes; more modern units warm up in less than 2 minutes. Some of the very latest encoders incorporate unheated 'instant on' type sensors. During the warm-up of older style units the height information may gradually increase until it settles at its final value. This is not normally a problem as the power would typically be applied before the aircraft enters the runway and so it would be transmitting correct height information soon after take-off.
Light aircraft electrical systems are typically 14 V or 28 V. To allow seamless integration with either, the encoder uses a number of open-collector (open-drain) transistors to interface to the transponder. The height information is represented as 11 binary digits in a parallel form using 11 separate lines designated D2 D4 A1 A2 A4 B1 B2 B4 C1 C2 C4. The Gillham code contains a D1 bit but this is unused in practical applications.
Different classes of altitude encoder do not use all of the available bits. All use the A, B and C bits; increasing altitude limits require more of the D bits. Up to and including 30700 ft does not require any of the D bits. This is suitable for most light general aviation aircraft. Up to and including 62700 ft requires D4. Up to and including 126700 ft requires D4 and D2. Note that D1 is never used.
Bits D2 (msbit) through B4 (lsbit) encode the pressure altitude in 500 ft increments (above a base altitude of −1000±250 ft) in a standard 8-bit reflected binary code (Gray code). The specification stops at code 1000000 (126500±250 ft), above which D1 would be needed as a most significant bit.
Bits C1, C2 and C4 use a 5-state 3-bit Gray code to encode the offset from the 500 ft altitude in 100-ft increments. Specifically, if the parity of the 500-ft code is even then codes 001, 011, 010, 110 and 100 encode −200, −100, 0, +100 and +200 ft relative to the 500-ft altitude. If the parity is odd, the assignments are reversed. Codes 000, 101 and 111 are not used.