jump to navigation

ARINC-410 Radio Subsystem – Putting it all together March 6, 2012

Posted by phoenixcomm in Arduino, ARINC 410, Audio, DIY Aircraft Cockpit, Ethernet, G-4390, Gables Engineering, Linux, Software.

All right we got most of the design out of the way now. So now we just need a plan to bring all the pieces  together.

The Plan:  I figure every body needs a few radios and the guys with the heavy tin needs a lot more. So I need to be expandable, and flexible. So here are the parts of the system:

  • Linux Pc with ALSA, and multiple pci audio cards
  • arduino
  • Radio Heads that are ARINC-410 compliant
  • Master Interface Card – which holds the arduio, and does board decoding. With space for 2 74LS138 decoders
  • Radio Head interface cards one per card.
  • Audio Interface card. This card has 3mm jacks on it to hook to your pc’s sound card.
  • Your audio panel & audio sub-system mixer, etc.
  • Your cables from the Radio Head to the Interface card.
  • Your cables to chain the audio panels together.

Now what form factor are we going to use? I think that the STD Bus (28/56) will fill the bill perfectly. Not only are they still making racks for them (Vector Electronics), but it has been around for almost 30 years and has not died off yet. So there are some surplus parts around. I’m going to keep the mechanics simple. Each card will be plugged into a slot. So the board addressing will be a jumper on the board. KISS. At the other end of the card there will be a standard 40 pin idc right angle header, and a pin header for the audio.


  • The Master Interface Card and the Audio Interface Card have the same address. When you READ you are reading the switch positions. And During a WRITE you are turning on or off  the Digital Switches on the Audio Interface.
  • The Master Interface Card and the Audio Interface Card, may end up as simply the Control Card.

ARINC 410 Subsystem – Audio Routing March 4, 2012

Posted by phoenixcomm in Arduino, ARINC 410, Audio, DIY Aircraft Cockpit, Ethernet, G-4390, Gables Engineering, Linux, Radio Sub System, Semiconductors, Software.
add a comment

These are just some thoughts its not all here yet.

The Analysis: Well we need multiple audio sources, from things like VATSIM, NAV Morse code, co-pilot, weapons officer, and if you are flying formation a plane to plane chatter. For VATSIM, and for the inter-plane chatter we will need internet.

So, we need a computer that will have multiple audio cards, well that is going to eliminate a windows box. So I guess I need a Linux box, and we need a distribution that supports ALSA, the Advanced Linux Sound Architecture. So far so good. This box will also handle the radio ARINC-410 interface(s), the Morse Code generator, do the slant range (figures out if you are in range of the station), and drive my DME display. 

So here are all the components:

  • Radio Heads
  • ARINC-410 Interface Card
  • Audio subsystem
  • arduino
  • Linux pc with ALSA

. Since each ARINC-410 Interfaces have 3 bits for addressing the heads you can have 8 heads per interface. I could add a board select to each board so two boards gives you 16 radios..

Now you will notice that the lower arrow allows you to chain crew stations, so that means you need one audio adapter per crew station. Each of the Isolation Amplifiers use the radio heads volume control.  With all of this we still have not taken care of the mic.


  • the audio wiring between the head and the interface has to shielded.
  • I have just use 3 audio sources for an example.
  • Remember that you have to dedicate one channel for an intercom (if you have multiple crew stations).

ARINC 410 Interface subsystem, Continued March 2, 2012

Posted by phoenixcomm in Arduino, ARINC 410, Audio, DIY Aircraft Cockpit, Ethernet, G-4390, Gables Engineering, Linux, Radio Sub System, Relay, Semiconductors, Software.

More information and gotchas:  

Interface Specification:  Remember I said that that the ARINC-410 has 5 bits?  That means our Bus_0 through Bus_4 is the ARINC-410 A throgh E.  Now I can use Bus_5 for Read/Write (the write is Low Active). Ok that only leaves one more,  Bus_6 and I’m going to use it for a strobe. I can do that with a Schmitt Trigger.  Now I did say that was all, but hey what about a reset line?? I don’t know if I need one but we can use Bus_7, and that gives us all 8 bits in the interface.

Outputs:  Well what are our outputs?  The table below shows the standard outputs, that is what the interface has to drive.

Function Voltage Notes
Panel Lights 28v
Dial Lights 28v
DME Lamp 28v Only on NAV

We read the position of the power switch in the status register. But it would be nice to drive all those fault flags.  So how do you drive 28vdc from TTL? There are really 4 ways:

  1. High Voltage Inverter Buffer/Drivers; such as 5406, 5416, 7406, 7416. But have no voltage immunity.
  2. Relays; You still need to drive them, that is the coil.
  3. Optoisolator;  such as TIL111. My personal choice for driving HV loads, and there good for 70volts..
  4. Solid State Relays; SSR’s are robust, and can handle both large currents and high voltages.. You can find used ones on ebay.

Audio:  The Gables Radio’s have Volume IN-HI, IN-LOW, OUT-HI and OUT-LOW. This will be a headache  that I don’t want to deal with in this post. But we still need to handle the audio some how. This leaves two choices:

  1. Do what Microsoft Flight Simulator and others do. Just ignore it.
  2. Lets build an audio sub-system.  The benefits really starts to shine when you have more that one position to fill.. ie. pilot, co-pilot, navigator, weapons officer
    • If you fly VATSIM their audio is now on a channel, on the COMM head.
    • We now can simulate Morse Code signals & DME milage station on the NAV head. More later as this will dictate other changes, like outputs to drive from-to flags, etc.
    • You can chain the audio outputs.
    • You can have the same audio at the instructors console.
    • You can record the audio for play back.

Looks like we need a part 3 later..

ARINC 410 Interface subsystem February 21, 2012

Posted by phoenixcomm in Arduino, ARINC 410, Audio, DIY Aircraft Cockpit, Ethernet, Flight Simulation, G-4390, Gables Engineering, Linux, Radio Sub System, Semiconductors, Software.
Tags: , , , , , , , , ,

Well it’s about time I posted this interface. I’m not going to show you the whole thing because it goes on for pages and pages. Instead I’m going walk you through one channel in and one channel out.  I’m going to assume that you have a older radio head you know the ones with out the fancy LED displays.  Most (here I go assuming again) use the ARINC 410 interface which is a 2 of 5 code. I described it here in an older blog.


Gables G-3717 Dual Nav Head

Nav Pinout

The Analysis: Well the first thing we found out about ARINC 410 that the signals are low active which means they must be ‘pulled up’  if the radio head does not have pull up resistors installed. As you see from the NAV-1 table we need the following information:

Signal Name ARINC410
Whole MC TENS A, B, E
Whole MC UNITS A, B, C, D, E
DME Indicator 2
ILS Energize

The Plan and a little more Analysis:  I need to get the 4 connectors for the Gables G-4390 (five heads in one panel).   So the one connector is a PTO2A-22-55P so I need my connector guy to give me the mate to this number. It looks like I only have to worry about the fields labeled DME and that a max of 5 bits. So I’m just going to throw away the other 3 bits. There is no off the shelf  2 0f 5  to ASCII decoder, so lets not worry well do that in the driver..

I picked a Arduino  Duemilanove to run the driver and talk to the flight simulator. It only has 14 digital I/O, so could use the Mega 2560 as it has a bunch of digital I/O.

The Plan:  Ok. So we have to talk to the different heads in the plane. And you could have a bunch. So we need a protocol to talk bi-directional to the heads.. here we go.

  1. Write to the interface the head & channel you want to talk to.
  2. Read the response from the head.

Bi-directional communication must use two ports one out and one in.. but its easy to combine them and use tri-state drivers.  First I want to use the 74LS125 or 126. This is an quad package, with each of the buffers having separate controls.   So I can get away with 8 bits..  first since the max we need is to count 0 – 5 thats 3 bits. So lets use the first 3, that give us 5 more to select a max of 32 heads. So lets take a pair of 74LS138 3 to 8 decoder one of them has to be hooked up to the D0, D1, D3 to decode which of the words you want A to E. The second 138 is hooked up to the D4, D5, D6 this will give us 8 radios, really 7, because I’m going to use 0 for power status & LED controls..  Next you have to AND the Radio + Chanel to drive the 5 74LS125 Tri-State Control signals..   So if you use my signals you end up with this: EN_Chan1 + EN_Radio1 = EN_R1Ch1.

The Software:  Ok here goes I’m not going to write the code.. but here is what you need to do.

  1. Initialize the registers.. #int radio = 0; int channel = 0; odd = 0; max_radio = (you radio count + 1(status)); freq [radio][chan]; freq2[radio][chan];
  2. Start Odd / Even loop.. #for(odd = 0; odd < 2; odd++)
  3. Start Radio loop.. # for(radio = 0; channel < max_radio;  radio++)
  4. Start Channel loop.. # for(channel = 0; channel < 5; channel++)
  5. write to the control register with radio, channel.
  6. read the control register and store the results..
  7. if ( odd = 0){ freq[radio][chan] = result from reg}
  8.  if (odd = 1){ freq2[radio][chan] = result from reg}
  9. if (odd > 1) write ERROR.
  10. End of Channel Loop
  11. End of Radio Loop
  12. if(odd = 1){  now check for changes.. you want to do this with some loops..
  13. if( freq[radio][chan] != freq2[radio][chan])  its changed.. now send to the simulator..
  14. odd = 0;}
  15. End of Odd /Even loop

FINS & FYI:  You will need a bunch of the 125’s and lots of pull up resistors. Just for doing my Gables G-4390 with out any more radios lets do some math.. 5 heads * 5 channels per * 5 bits = 5 cubed or 125 buffers (32 packages)  & 125 resistors this is not including status or light drivers..  I wire wrap (power tools), but that a lot of buffers. I am working on putting the whole thing into a Xilinx part. This is a product that I am going sell at Flite-Tronics.com. This still leaves the problem with audio, or driving other indicators, like ILS flags, etc.   If you attempt this I really recommend that you check out Avnet they have the best prices for semiconductors period.

I wish to thank Gables Engineering for the pin-outs and outline dimensions.

Driving those pesky indicators. December 30, 2011

Posted by phoenixcomm in Arduino, Boeing 707, Boeing 727, DIY Aircraft Cockpit, F-18, Flight Simulation, Indicator Lamps, Power Systems, Relay.
add a comment

Well here we are again, and I am having to drive multiple of voltages for my indicator lamps…. This can be a pain in the rear… Let me see I have  5 volts, 12 volts, 28 volts. Take your pick..

You have several choices:

  1. Do nothing, just buy lots of power supplies.
  2. Change out all the lights to one voltage. (big bucks)
  3. Something else maybe?

Me I’m out there anyway so I’m going with you guessed it: ‘C’.

The Analysis: First a little background…
Rule #1:  Computers Logic (TTL) does not like voltages over 5 volts dc.
So how do you drive a 28 volt lamp from a computer?  There are several ways..

  1. Relays..(ADVANTECH PCLD-785B with 24 relays) This card retails for $240.00. Or you can find them used for about $50.00 on ebay. This tends to be some what costly as you have to buy the boards and then a driver for them. It’s more than little kludgy with tons of wire screwed down, on barrier strips. But it does work and its bullet prof. But remember all those power supplies.
  2. HEX INVERTER BUFFERS/DRIVERS WITH OPEN-COLLECTOR HIGH-VOLTAGE OUTPUTS SN5406 and SN7406 have minimum breakdown voltages of 30 Volts DC. But when they fail it could put raw 28 volts on your computer! Ouch!
  3. Optoisolator I like a little 6 pin dip a TIL111 will handle 0 to 30volts DC with TTL inputs.  If  you want you can buy them at Digi-Key for about 18 cents each, and if you look around you can buy them cheaper else where.   Add a few parts for decoding and latch, you can drive all of your lamps.

So lets see 18 cents x 64 optoisolators is less then $12.00. This means that with just 16 cards you could drive 1024 lamps…  But wait a minute I said DC right? (Who said we had to drive the lamps with AC). Now that we have DC you can easily create a divider or regulator for you lamps from one 28 volt power supply.

How You Get There From Here or Great Circle Navigation December 7, 2011

Posted by phoenixcomm in Flight Simulation, Great Circle Navigation, Physics, Software.
1 comment so far

Have you ever wondered how you navigate on a round world? Remember Columbus thought was flat. So if the world was flat you could stick two pins in the map, and follow the angle from North. But as we know today the world is round so, sadly that will not work…  So we came up with Great Circle Navigation. Apparently, the first reference to great circle navigation was by John Davis in his book, The Seaman’s Secrets (1594).  The theory was understood, but in practice it could hardly be applied without accurate computation of longitude. With Harrison’s chronometer, this was then possible.   The theoretical proof was given by Bernhard Riemann around 1900.    The following is Great Circle that outputs distance.. Hey this is good for the DME calculation…
BTW I convert all angles into 32 bit BAMs, which means that we get about a size of a postage stamp on the surface of the earth.

Distance = acos(cos(Lat1-Lat2) – (1-cos(Lon1-Lon2)) * cos(Lat1)*cos(Lat2)) 

So here is a program that I use to calculate my DME.

L1 = Original Lat; L2 = Destination Lat;
Lon1 = Original Lon; Lon2 = Destination Lon
D = Distance in Nautical Miles
Lon1 = -Lon1;
Lon2 = -Lon2;
if((L1 == L2)&&(Lon1 == Lon2)){
temp = (cos(L1)*cos(L2)*cos(Lon1 – Lon2))+(sin(L1)*sin(L2));
if (temp == 1){
temp = 0;}
elsif (temp == -1){
temp = pi/2;}
else {
temp = 0 – atan(temp / sqrt(1 – (temp * temp))) + pi / 2;}
temp = ((sin(L2) – sin(L1) * cos(temp)) / (sin(temp) * cos(L1)))
if (1 – temp < .00000001){
elsif (1 + temp < .000000001){
else {
temp = rad2d(-atan(temp / sqrt(1 – (temp * temp))) + pi / 2;)
if (sin(Lon2 – Lon1) > 0){
temp = 360 – temp;}

Note: This was the test program demo.html/demo.pl was written in Perl. It did not use BAMs. The program has been re-written in C.
if you wish to see the complete program running  click here
if you wish to use the source please click here … Please be sure to email me first here.

What you can get away with on TV – Pam Am: Unscheduled Departure November 14, 2011

Posted by phoenixcomm in Boeing 707, Pan Am, TV.

I really watch too much TV, and this evening, in this episode of Pan Am, they have to land at Haiti to seek medical help. They decide to take off and restart the engines…..
Whoops! Good TV just hit reality! Most of the Boeing 707 didn’t have a APU installed (Saudi Arabian Airlines did). So the only way to start the engines was to have high pressure air, from a ground cart.
So how did they get the engines started after they landed and shut down???

Also while the plane was parked on the ramp they had cabin lights on. This comes from the generators on the engines, or from a ground cart (there is that pesky ground cart again).

Hey its only Television….

A Physics Lesson: or what you can get away with on television commercials. – part 2 November 6, 2011

Posted by phoenixcomm in Boeing 727, Flight Simulation, Nissan Frontier Commercial.
1 comment so far

Well here we go again….. I found another link to this on Yahoo Answers Is it possible to land a plane like this?

They got most of it wrong… First it’s NOT a DC-9, if you look under the wing there are no engines, and there is one engine in the rear under the rudder, this can only be one, plane the Boeing 727. The best answer was a U2, which has nothing to do with this problem. And then there was the answer about the other Internet video that is amusing but the poor driver should be dead.  And more there was another answer about a CH-53,  also nothing to do with it.  None of them got it right!

FYI… 727s are parked with their rear ramp down, to prevent the nose from rising into the air.

Newsgroups: sci.aeronautics.airliners
From: David L
Subject:A320, MD-80, 727
Date: 01 Dec 93 03:16:29 PSTIn a reply to the question as to why MD-80’s and 727s have their ventral stairs down on the ground: it keeps them from tipping over (tail down) should someone goof in loading them! In the AIAA “Cases Study in Aircraft Design: The Boeing 727”, Mark Gregoire relates a story about when the first 727-200 was delivered to National Airlines. “As it rolled to a stop near the National hanger, amid the expectant dignitaries, the pilot touched the brakes and the airplanes nose went down and then recoiled up and lifted the nose gear off the concrete approximately 6 to 8 inches.
The gasps in the crowd where hear 3,000 miles away in Seattle. Bill Clay put a team together and, armed with weight and balance data, toured the airlines outlining the entire spectrum of configuration control, ground handling, ballasting, and precautionary measures from sloping ramps to heavy snow loads on the tail. As far as we know, no 727-200 has ever sat on its tail and maybe we over reacted the National incident, but that’s why, you will nearly always see a 727 with with its rear airstairs down when parked.”
Newsgroups: sci.aeronautics.airliners
From: Terrell D (bcstec.ca.boeing.com)
Subject:Re: A320, MD-80, 727
Date: 28 Nov 93 16:39:03 PSTTypically it is to keep the airplane from tipping back on its tail. Rear engined airplanes have chronic problems with CG location empty. They have other chronic problems, but I won’t go into that. 🙂
The CG problem stems from having the CG of the empty airplane well aft of the CG of the payload (the passengers and baggage). When summed
together, the CG of the airplane system must be within a relatively small range defined by the stability and control requirements and tail power
available. The landing gear like to be pretty close to the CG of the loaded airplane in order to allow easy rotation at takeoff. So, when the
airplane is NOT loaded, the CG moves aft – very close to the main gear – and someone walking around in the back, or loading cargo into the aft
cargo compartment, can easily cause the airplane to tip back.

Multi-Function Display (MFD) System – Part 1 November 5, 2011

Posted by phoenixcomm in DIY Aircraft Cockpit, F-18, Flight Simulation, Multi Function Display, Video Interface.
Ok well I got my MFD, a few years back, and has been laying around collecting dust. It was a prototype made by Precision Imaging, which is now Precision Display Technologies. There part number is MPCDX-PROTO, which is for the F/A-18C/D.

The Analysis (1) The MFD is a 5″ x 5″ color, raster-scanned display, it has a RS170 video interface (BNC connectors) with sync on GREEN or separate/composite video sync.
(2) The MFD has 20 switches which looks like it goes to the DB-37 on the rear of the unit. That will be in another post.

The Plan Well first I need to build a new cable. Lucky I have extra cables, so I had a old Sun Monitor, DB13W3 to BNC, cable, and a VGA Cable. So I cut the DB13W3 connector off, and one of the VGA Connectors on the other cable. I hooked it up according to chart below.

2 X
3 X
X = Connection

Here is the first try with the MFD needing to be adjusted.

A Physics Lesson: or what you can get away with on television commercials. – part 1 October 22, 2011

Posted by phoenixcomm in Boeing 727, Flight Simulation, Nissan Frontier Commercial.
add a comment

I just saw a commercial the other day where this a Nissan Frontier pickup truck puts a Boeing 727 nose wheel in the bed. Ok. So ask first, what is the truck’s MAXIMUM PAYLOAD? The MVW is only 1500lbs.

So you ask; how is this possible?

Using weigh tables, a light Boeing 727 could land as low as 104 knots (119.5mph)[we think the truck would have problems getting up to speed, not to mention intercepting the jet and  then getting the nose gear and bed lined up], with no load, and flaps out.  A Boeing 727 has pair of 32×11.5, 12 ply tires weighing 61 lbs each plus the wheel axle, front steering gear for a not so small weight of 327lb .

Well you could ‘rig’ this by rear-loading the aircraft so you have one to several hundred pounds on the nose gear.
You will notice that the dust the truck kicks up after the truck and not in line with the truck tires.
Keep checking back where not done with this horse yet…..
%d bloggers like this: