- Attitude Director/Indicator (ADI)
- Horizontal Situation Indicator (HSI)
- Altimeter (ALT)
- Vertical Speed Indicator (VSI)
- Inertial Navigation Unit Display (INU CDU)
- Datalink Display Unit (DU)
- Performance Management Unit (PMU)
- Communication Radio Faces (COM1/COM2/COM3)
- ATC Transponder (ATC)
This blog documents a project to build a functional Lockheed L-1011 cockpit replica using real flight hardware, NI labVIEW and the x-Plane software platform.
Saturday, October 5, 2013
L-1011 Trainer Installation: SFENA HSI Installation Preparation and ARINC 429 Bus Integration
Monday, November 26, 2012
L-1011 Avionics Bending: SFENA HSI and ARINC 429 - Part 15 (Final)
Sunday, November 25, 2012
L-1011 Avionics Bending: SFENA HSI and ARINC 429 - Part 14
| SFENA HSI - Dual Setup - ARINC 429 |
Below is a short video the shows both HSIs receiving the same ARINC 429 test data. The data labels sent to the instruments for the test are:
- Label 320 .. Magnetic Heading as a full 360º circle
- Label 100 .. Selected Radial as a full 360º rotation
- Label 222 .. Omnibearing from a VOR in a full 360º circle
During the roll of the Radial and the Omnibearing the TO/FROM pointers are changing directions as the simulated VOR moves from the front to the back of the simulated aircraft.
Monday, November 19, 2012
L-1011 Avionics Bending: SFENA HSI and ARINC 429 - Part 13
The video below shows the integration of ARINC Label 162 which is encoded as a BNR and uses the same 32bit word encoding I showed you in my blog posting a few days ago that explained BNR as a data payload in the ARINC 429 word.
NDB navigation is fun but can be a bit tricky. I promise that once the simulator is all put together we will fly some non precision approaches using an NDB! By the way, the airport code for San Francisco International is of course KSFO not KFSO as i wrongly stated in the video :)
Thursday, November 15, 2012
L-1011 Avionics Bending: SFENA HSI and ARINC 429 - Part 12
- Magnetic Heading and/or True Heading (BNR)
- NAV Course (BNR)
- NAV Horizontal Deviation (BNR)
- NAV Vertical Deviation (BNR)
- Ground Speed (BCD)
- Distance-To-Go in Nautical Miles (BCD)
The video below demonstrates a takeoff from Seattle-Tacoma International Airport (KSEA) on a direct course to San Francisco International Airport (KSFO).
Tuesday, November 13, 2012
L-1011 Avionics Bending: SFENA HSI and ARINC 429 - Part 11
- Magnetic Heading
- VOR OBS Setting
- VOR Omnibearing
- Autopilot Heading Select
- Ground Speed
Sunday, November 11, 2012
L-1011 Avionics Bending: SFENA HSI and ARINC 429 - Part 10
![]() |
| HSI Software Integration |
While today's posting does not integrate all of the ARINC 429 labels required to run the entire instrument, it uses Label 320 which describes "Magnetic Heading from AHARS". For the magnetic heading data to arrive at the HSI the following steps have to be taken:
- The magnetic heading data is extracted from the x-plane flight simulator and stored in a shared memory segment by the TAP process as a floating point number.
- The ARINC 429 to UDP subsystem picks up the float and converts it to an ARINC 429 encoded BNR. The parity for the ARINC 429 data is computed and the data together with the label sent on via UDP to the HSI driver
- The HSI driver takes the label and the already ARINC 429 converted data from the UDP packet and queues it to the ARINC 429 adapters high-speed (100Kb/sec) transmit channel
- The HSI logic translates the data into motor movements and rotates the heading hard to the correct position
All of the above happens once every 50ms to create a smooth movement of the HSI instrument.
The video below is a short demonstration of the end-to-end integration of the SFENA HSI:
Over the next few days I will work on the complete integration of all the data needed to operate all the features of the SFENA HSI.
Saturday, November 10, 2012
L-1011 Avionics Bending: SFENA HSI and ARINC 429 - Part 9
In the video below you can see a sequence of Label 320 (Magnetic heading from AHARS) test data being sent via UDP from the ARINC 429 Subsystem to the HSI Driver.
The next step will be to connect X-Plane itself to the shared memory segment. This work will start tomorrow. Again, I will post the code (and a link to github) for all this at the end once the HSI is fully integrated.
Friday, November 9, 2012
L-1011 Avionics Bending: SFENA HSI and ARINC 429 - Part 8
The systems design for the SFENA HSI integration calls for a number of discrete I/O pins to be handled via a National Instruments DAQ card. The card that I use for this setup is an older PCI-DIO-96 card. The TTL level I/O on the card controls a set of relays supplying 24VDC to the discrete pins on the SFENA HSI.
![]() |
| HSI Integration of 24V Discrete Channels |
![]() |
| SFENA HSI Discrete Input |
Thursday, November 8, 2012
L-1011 Avionics Bending: SFENA HSI and ARINC 429 - Part 7
1. The Avionics Plugin (TAP)
![]() |
| Simplified TAP Flowchart |
The TAP plugin, as describe above, is meant to be very light weight on the simulator and should show a minimal impact on the frame rate produced by the simulator software. The code, in essence, extracts data and stores it away in a shared memory segment, upon update, the code also pulls a shared semaphore to indicate to the downstream process that the shared memory segment has been updated and processing is required. X-Plane has a really neat plugin facility that allows for dynamic loading and un-loading of the plugin.
Getting the data out of the simulator frequently and quickly will be essential to creating a smooth presentation of the data on the physical device. Therefore, I plan to offload the data from the flight simulator at a rate of 20 times per second or an update refresh time of 50ms. Of course this will not result in a 50ms refresh cycle all the way on the hardware device, since there are two more downstream programs and network latency to be considered. (More on computing, or pre-computing, the latency in my blog post tomorrow)
2. ARINC 429 Subsystem with UDP
![]() |
| Simplified ARINC 429 with UDP Flowchart |
The ARINC 429 Subsystem runs on the same system together with the core flight simulator software. The subsystem attaches itself to the same memory segment as TAP and waits for data from TAP. The X-Plane and Microsoft Flight Simulator FSX data is not in the correct format for ARINC 429 words. For example, angular data (such as heading) is described as a "float" number by X-Plane, however, the ARINC standard describes angular data in twos complement fractional binary notation (BNR). Once the data has been converted to the correct format it is made available on the Ethernet network via a UDP data stream. Clients, such as the HSI Device driver described below, will be able to connect to a specific UDP socket and receive the necessary data already in a format to be handed of to the local ARINC 429 hardware adapter.
The ARINC 429 conversion happens as soon as the TAP application raises the shared semaphore. So, at best new data is loaded into the shared memory segment every 50ms and has to be processed and put on the Ethernet in less than 50ms in order to be ready for the next data element to be worked on.
3. HSI Device Driver
![]() |
| Simplified HSI Driver Flowchart |
The HSI drivers response time is really driven by a number of variables: a) the time it takes for the device driver to receive and assemble the UDP packets into a complete dataset, b) the time to schedule and/or update the ARINC 429 word on the hardware adapter and c) the time it takes for the driver to set the necessary digital I/O channels. Here, again, it will be critical to hold latency down to a minimum.
Wednesday, November 7, 2012
L-1011 Avionics Bending: SFENA HSI and ARINC 429 - Part 6
![]() |
| Proposed Integration of the SFENA HSI with Laminar Research X-Plane 10 |
The schematic above shows my initial approach to integrating the HSI with the X-Plane software platform. There are several shared code pieces that I also use for other hardware integration efforts. The following code elements are shared:
- The Avionics Plugin (TAP) - that is my data extraction tool for pulling X-Plane datarefs out of the simulator and storing them in a shared memory segment
- ARINC 429 Subsystem - takes information out of the shared memory segment, does data transformation from the X-Plane data format to the ARINC 429 compatible data format (e.g. BNR and BCD) and sends it on to the receiver via UDP
On the receiver side there is a need for data being sent in the ARINC 429 Fast and Slow standard as well as a number of 24VDC discrete switches to control the HSI states. For that I will use the DDC DD-42924i5 device driver and SDK kit as well as the National Instruments DAQmx device driver SDK.
Tuesday, November 6, 2012
L-1011 Avionics Bending: SFENA HSI and ARINC 429 - Part 5
So now that we have walked through the major function blocks of the SFENA HSI it is time to think about integrating it with a flight simulator. For this device I will use X-Plane 10 by Laminar Research. As you probably know, the X-Plane platform can output data in a number of ways. Perhaps the easiest way is to simply let the software stream some data via UDP to another computer that the HSI is attached to. However, I will use a different method that will use a X-Plane plugin written in C that will offload the work of sending the data to the HSI to an external device driver ... therefor, keeping the computational demand on X-Plane as minimal as possible while preserving the maximum frame rate.
In particular we will be using at the following data points:
![]() |
| X-Plane 10 Screen Shot of Data Sources |
ARINC 429 Label: 320
Function: Magnetic Heading
Dataref: sim/cockpit2/gauges/indicators/heading_electric_deg_mag_pilot
ARINC 429 Label: 321
Function: Drift
Dataref: sim/cockpit/gyros/dg_drift_ele_deg
ARINC 429 Label: 012
Function: Ground Speed IRS/AHRS
Dataref: sim/flightmodel/position/groundspeed
ARINC 429 Label: 101
Function: Heading Select
Dataref: sim/cockpit2/autopilot/heading_dial_deg_mag_pilot
ARINC 429 Label: 162
Function: ADF 1 Bearing
Dataref: sim/cockpit2/radios/indicators/adf1_relative_bearing_deg
and/or
Dataref: sim/cockpit2/radios/indicators/adf2_relative_bearing_deg
ARINC 429 Label: 222
Function: Omnibearing
Dataref: sim/cockpit2/radios/actuators/nav1_obs_deg_mag_pilot
ARINC 429 Label: 100
Function: Selected Radial
Dataref: sim/cockpit2/radios/actuators/nav1_course_deg_mag_pilot
ARINC 429 Label: 173
Function: Localizer
Dataref: sim/cockpit2/radios/actuators/nav1_course_deg_mag_pilot
Sunday, November 4, 2012
L-1011 Avionics Bending: SFENA HSI Power Up and ARINC 429 Test - Part 4
The magnetic wheels used in the SFENA HSI are in itself a pretty neat thing. Prior to the use of magnetic wheels digit drums had been driven by gear linkages and motors. Magnetic wheels work by rotating a drum with a magnet and digits printed on the outside around 10 positions that can be individually energized. By doing the former, the display can show single digits ... one at a time and, they are perfectly silent.
The magnetic wheel allowed for a much more simplified way of showing digital data without the need to create complex motor mechanisms. Below is a video that shows the 10 position magnetic wheels in the SFENA HSI instrument in more detail. Each digit in the 5 digit distance-to-go is a unique magnetic wheel:
Both ground speed as well as distance-to-go use magnetic wheel technology. Of course, later on magnetic wheels got replaced with 7 segment LED displays.
Friday, November 2, 2012
L-1011 Avionics Bending: SFENA HSI Power Up and ARINC 429 Test - Part 3
- Label 162 - ADF Bearing Data (BNR)
Thursday, November 1, 2012
L-1011 Avionics Bending: SFENA HSI Power Up and ARINC 429 Test - Part 2
The video clip in this posting shows the HSI displaying FMS data. The FMS data labels are transmitted as ARINC 429 words from the computer to the HSI. As in the previous post, the instrument is powered from a 115V 400Hz source. The labels transmitted for this example are both in BCD format as compared to the angular information transmitted yesterday, which was in BNR format. Below is an example for BCD encoded data in an ARINC 429 word for DME Distance.
The ARINC 429 labels used in this posting are:
- Label 001 - Distance to Go
- Label 012 - Ground Speed (FMS)
Wednesday, October 31, 2012
L-1011 Avionics Bending: SFENA HSI Power Up and ARINC 429 Test - Part 1
Over the last few days I have been working on power-up tests of the SFENA HSI that I have had in storage for quite some time. The instrument is completely ARINC 429 based and you might have seen some postings of the SFENA ADI that Javier Pérez-Mato has been able to power up and use for his paper on an Experimental Optical Wireless bus system.
The focus for the next few days and/or weeks will be the SFENA HSI and controlling all its functions via ARINC 429 driven out of XPlane. First, I have to make sure that the device actually powers up and that the majority of the mechanics are in good shape. The instrument takes 115V 400Hz input power at about 0.25A.
What you see in the clip above it he SFENA device first powering up from the power source and then receiving a number or ARINC 429 words. The test labels sent to the HSI are:
- Label 320 - Magnetic Heading
VOR Test (watch the VOR flag in the upper left hand side)
- Label 222 - Omnibearing
- Label 100 - Selected Radial
Course Test (rotating, with NAV flag visible in upper left hand side)
- Label 114 - FMS Course
- Label 116 - Lateral Deviation or cross-track
The ARINC 429 messages are sent by a DDC-42924i5 card and the program driving it is written in C. As this gets more sophisticated I will post the C code or post a reference to it on GitHUB.
Wednesday, June 13, 2012
Avionics Bending: S.F.E.N.A. ADIs - Working
Sunday, August 28, 2011
Avionics Bending: SFENA ADIs are Going on a Trip

Saturday, May 14, 2011
Avionics Bending: Attitude Director Indicator - ADI (Analysis and Pinout)

First power up of the two pilot side instruments. Without the ARINC 429 data the flags will not clear, however, the measurements on the power supplies show that they are intact. I am really curious to see if the instruments will work after being on the line for over 6800 hours, having been parked in the Arizona desert for 10+ years and being rough handled during de-install ... we will see over the next few weeks. The next step here will be to write the ARINC bridge between xPlane and the avionics buses.
So, just like the HSI from yesterday's post, the SFENA (Thales Group) ADI is a truly awesome instrument and shows some very clever mechanical engineering. Both the N32 and the N33 are very much a complete computer in a box that does both the ARINC 429 handling as well as all of the servo channel handling.
The main subsystems of the ADI are:
- Input Processor
- Central Processing Unit
- A/D Converter
- Attitude Servo Channels
- Pointer and Command Bar Servomechanism
- Failure Warning Indicators
- Output Processor
- Power Supply / Lighting

The ADI actually ingests fewer ARING 429 labels than the HSI does. The N33 HSI receives data on 8 ARINC buses, while the N32 ADI only receives data on 5 of the ARINC avionics buses. Here is a list of the buses and the respective ARINC lablels:
Bus 1 - FAST/SLOW (Label 142)
Bus 2 - Not used
Bus 3 - Localizer (Label 173), Glideslope (Label 174)
Bus 4 - Reciprocal ADI - Sin/Cos Recopy (Label 325), Sin/Cos Recopy (Label 324)
Bus 5 - Roll Angle (Label 325) and Pitch Angel (Label 324)
Bus 6 - Flight Director Commands - Roll Command (Label 141), Pitch Command (Label 140) and Yaw Command (Label 143)
All of the buses above run either at 12 Kb/s or 100 Kb/s ... Bus1 and Bus4 are 100 Kb/s buses.
Here is the pin-out for the SFENA N32 ADI J1 connector:
| q | Remote Test | Switch Input |
| A | 115V 400 Hz | Power |
| B | 115V 400 Hz | Power |
| P | BUS 1 | ARINC 429 |
| R | BUS 1 | ARINC 429 |
| y | BUS 3 | ARINC 429 |
| w | BUS 3 | ARINC 429 |
| a | BUS 4 | ARINC 429 |
| b | BUS 4 | ARINC 429 |
| T | BUS 5 Primary | ARINC 429 |
| U | BUS 5 Primary | ARINC 429 |
| X | BUS 5 Alternate | ARINC 429 |
| Y | BUS 5 Alternate | ARINC 429 |
| V | Bus 5 Alternate and Primary Switch | Switch Input |
| K | BUS 6 - Flight Director Channel 1 | ARINC 429 |
| L | BUS 6 - Flight Director Channel 1 | ARINC 429 |
| G | BUS 6 - Flight Director Channel 2 | ARINC 429 |
| H | BUS 6 - Flight Director Channel 2 | ARINC 429 |
| FF | Pin Program CPT/FO | Logic |
| M | FD/A Flag | Logic |
| HH | F/S Flag | Logic |
| AA | G/S Flag | Logic |
| GG | LOC Flag | Logic |
| EE | FD Flag | Logic |
| z | Monitor Bus - Reciproacl ADI | ARINC 429 |
| y | Monitor Bus - Reciproacl ADI | ARINC 429 |
| e | Decision Height Warning Light | |
| f | Decision Height Warning Light | |
| D | Integral Ligthing | 5V |
| E | Integral Ligthing | 5V |
| g | Validity Output Glideslope | |
| h | Validity Output Flight Director | |
| m | Validity Output Fast/Slow |
To see the ADI in check this blog posting: SFENA ADI Working with XPlane
Friday, May 13, 2011
Avionics Bending: Horizontal Situation Indicator - HSI (Analysis and Pinout)

Thanks to some very kind people at Thales (the company that acquired Sextant which acquired SFENA a long time ago) I have been able to do a lot more research around the SFENA ADIs and HSIs that I intend on using for the project.
The instruments I have are from the early 1980s. The design of the ADI and HSI is truly amazing and shows just how much attention to detail and quality went into the engineering of them. The ADI and the HSI are based on ARINC 429 which is by far the most common avionics bus standard in use today (however, it is slowly being replaced by more modern standards).
Both the SFENA N33 (HSI) and N32 (ADI) instruments are based on a rather simple 8bit microprocessor made by RCA … namely the 1802RCA. The instruments are actually somewhat multi-processor systems because they are split into an input processors, handling the ARINC 429 communications, and a central processor handling all of the data transformations and the servo motor control. In order to reduce space needed by the electronics and to reduce the need for expensive resources, many of the functions in the instruments are multiplexed and use the same subsystems.
Specifically on the HSI, there are a number of subsystems that make up the entire electronics complex:
1. Input Processors
2. Central Processing Unit
3. A/D Converter
4. Servo Channels and Controller
5. Pointer Servomechanism Channels
6. Flags and Annunciator Subsystem
7. Magnetic Wheel Drivers
8. Data Output Processor
9. Power Supply and Lighting
The data used by the HSI would have been produced by a number of systems on-board and delivered to the instrument of several ARINC 429 buses. To be exact, the instrument receives data from a total of 8 data buses.
Bus 1 – Primary Attitude and Heading Reference System (AHRS)
Bus 2 – Automatic Flight Control System (AFCS)
Bus 3 – Instrument Landing System (ILS)
Bus 4 – ADF 1
Bus 5 – Flight Management Computer or GPS
Bus 6 – ADF 2
Bus 7 – Reciprocal HSI
Bus 8 – VOR
The above listed buses all feed a number of ARINC 429 labels to the HSI. Here is a list of labels on each of the buses:
Bus 1 – Magnetic Heading (Label 320), Drift (Label 321) and Ground Speed (Label 012)
Bus 2 – Heading Select (Label 101)
Bus 3 – Localizer (Label 173), Glide Slope (Label 174) and QFU (Label 105)
Bus 4 – ADF 1 (Label 162)
Bus 5 – True Heading (Label 314), Drift (Label 321), NAV Course (Label 114), Cross Track Distance (Label 116), NAV Vertical Deviation (Label 117), Ground Speed (Label 012), Distance-To-Go (Label 001), Alert (Label 270) and TO-FROM (also Label 270 but different bit)
Bus 6 – ADF 2 (Label 162)
Bus 7 – MAG (sin, cos recopy) (Label 320) and TRU (sin, cos recopy) (Label 314)
Most of the busses above run ARINC 429 Low Speed (12Kb/s) … however Bus 1 and Bus 7 require the faster 100 Kb/s ARINC 429 bus speed. Besides the ARINC 429 data,. The instrument also has a number of logic inputs that control the flags and other elements. The discrete inputs are:
· Normal / Alernate Switching for AHRS ….. 0V Normal, 28V Alternate
· True-Mag Selection …. 0V MAG, 28V TRUE
· HDG Select/Drift Selection … 0V HDG SEL, 28V DRIFT
· Sensor Number …. 0V … 1, 28V … 2
· Mode Selection … has two ports (pins) to encode the mode
- 0V 0V ….. VOR
- 28V 0V …. ILS
- 28V 28V …. NAV/FMC
- 0V 28V …. NAV/GPS
· HDG SEL / Drift Flag …. 0V Normal, 28V Pointer to 180 degree
· Vertical Deviation Flag …. 0V Normal, 28V Flag Retracted
· Selection of Bus for Drift Angle …. 0V AHRS/IRS, 28V FMC/OMEGA
· Selection of Bus giving Ground Speed …. 0V AHRS, 28V FMC/OMEGA
Here is the J1 connector pin-out for the SFENA N33 HSI:
| Pin | SFENA Description | Notes |
| A | 115V 400HZ | POWER INPUT |
| B | 115V 400HZ | POWER INPUT |
| T | AHRS IRS Normal | ARINC 429 Input |
| U | AHRS IRS Normal | ARINC 429 Input |
| X | AHRS IRS Alternate | ARINC 429 Input |
| Y | AHRS IRS Alternate | ARINC 429 Input |
| a | Reciprocal HSI | ARINC 429 Input |
| b | Reciproacl HSI | ARINC 429 Input |
| M | ILS | ARINC 429 Input |
| N | ILS | ARINC 429 Input |
| J | VOR | ARINC 429 Input |
| K | VOR | ARINC 429 Input |
| L | ILS/VOR | Switch Input |
| P | AFCS Controller | ARINC 429 Input |
| R | AFCS Controller | ARINC 429 Input |
| DD | True/Magnetic Heading Switch | Switch Input |
| G | FMC or OMEGA | ARINC 429 Input |
| H | FMC or OMEGA | ARINC 429 Input |
| EE | NAV Source Switching | Switch Input |
| t | ADF 1 | ARINC 429 Input |
| u | ADF 1 | ARINC 429 Input |
| V | ADF 2 | ARINC 429 Input |
| W | ADF 2 | ARINC 429 Input |
| BB | Vertical Deviation | Logic Signal |
| AA | Heading Select | Logic Signal |
| FF | Sensor Identifier | Logic Signal |
| m | Ground Speed Source | Logic Signal |
| k | Drift Source | Logic Signal |
| CC | HDG SEL/DRIFT | Logic Signal |
| z | Reciproacl HSI | ARINC 429 Output |
| y | Reciproacl HSI | ARINC 429 Output |
| D | 5V Integral Lighting | POWER INPUT |
| E | 5V Integral Lighting | POWER INPUT |
| g | Validity Output | |
| n | Validity Output | |
| f | Validity Output | |
| p | Comparison Warning Output |


.png)
.png)



.png)
.png)