jump to navigation

NexGen Flight Simulator: Hacking the Navigation Computer Display June 6, 2013

Posted by phoenixcomm in 16 Segment driver, Aircraft, Arduino, CP-1252/ASN-128, DIY Aircraft Cockpit, Embedded CPU's, Ethernet, Flight Simulation, Hardware, Indicator Lamps, Multi Function Display, ps2 keybaord, Semiconductors.
Tags: , , ,
1 comment so far

CP-1252This is the CP-1252/ASN-128 Navigation Computer Display.  The NCD was originally designed for Doppler  navigation, but will work in my application. I have reprinted the Analysis of this from my WordPress Blog (22Apr2011)

The Analysis:  The NCD is comprised of 4 groups: Display, Keyboard, Rotary Switches, and Thumb Wheel Switches.  The Display is comprised of 4 16-segment and 13 7-segment PinLite lamps, and two LED’s.  The keyboard is comprised of a 10 key number pad and 4 special keys, it also encodes A-Z. There are two rotary switches, and two thumbwheel switches as well. I also found a users guide, TM-1-1520-238-10 pages 3-34 through 3-46 on the web.

In it’s dim past it had been converted to a flight sim, and the only thing left whrere: the display, switches, light plate, and lots of wire. Each component, had each of their connection(s) brought out in to a header.

The Plan: As it is almost impossible to find a 16-segment display driver, but I really found two parts MAX6954 (SPI and QSPI interface), and MAX6955 (I2C interface). Both devices have the same programing model and have a I/O expander which could handle the keyboard. I have chosen to use the I2C interface. I have broken down the NCD into the following sub-units:

  • Two MAX6955AAX+ :
    • one will handle the 4 16-segment displays.
    • one will handle the 13 7-segment displays.
  • The keyboard will be interfaced via a standard Ps2 keyboard encoder that will be harvested from an old ps2 keyboard.
  • I will also need 2 bytes of I/O as well:
    • 1 byte of output to handle the two rotary switches, via two priority encoders (74LS148).
    • 1 byte for both thumbwheel switches (they are encoded to 4 bit BCD).
  • And lastly I need a USB interface to talk back to the IOP (IO Processor)

I also need a embedded microprocessor, the NCD information does not need to be super fast, as in reality it is only a dumb terminal, so an Arduino should be able to keep up with everything, if there are speed issues I will most likely switch to a TI Stellaris Launchpad module.   The NCD is either taking keystrokes from the pilot, or updating the display. In the words of the Outer Limits “There is nothing wrong with your television. Do not attempt to adjust the picture. We are now in control of the transmission. We control the horizontal and the vertical”. In the scheme of things this unit will only be another end point on the IOP which is sending the key strokes or and knob turns to the simulation processor. And in turn the NCD in effect listens to the NavGroup via the IOP for present positiontime to go etc.

 Keep Tuned in More to Come!

NexGen Flight Simulator Blog Index

NexGen, Understanding Synchros April 29, 2013

Posted by phoenixcomm in DIY Aircraft Cockpit, Hardware, Software, Synchro.
Tags: , , , , , , , , , , , ,
add a comment

There are many types of synchros, Rx, Tx, and Resolvers  But what you have to remember that they are all just motors.
Synchro Diagram As you can see this is really just a 3 phase motor, that is the three (3) Stators, are 120 degrees apart. But you ask what is the Rotor winding for? Well if you look at the picture of your cars Alternator Diagramalternator with out the diodes it kind of does the same thing as the Drive winding on the alternator. So if you took the diodes out of the alternator, and you put a 400 Hz sine wave on the Drive winding, remember you have to spin it, you will get 400 Hz 3 phase power, just what I need for my plane.
Duh Now What?? 😕
So now I have you all thoroughly confused. Right?
In a perfect synchro world you will have a Tx (like on a flap), and the Rx (in the cockpit) which is inside a indicator, both Rotors are driven in parallel  So when the flap is moved the changes on the 3 Stator, windings are impressed from the Tx, to the Rx and if by magic the needle in the indicator moves with the flap.
I will not bore you with the math behind this, but this is a question?

What would happen if you put on the 3 Stators, a 400 Hz  3 phase, that is each one of the phase are 120 degrees apart, sine wave???

But wait, what about the rotor?? Ok that’s the key. Remember what we did with that alternator? We do the same thing here. But we don’t have to spin the synchro, we spin it, or move it electrically!

Digital Resolution of Angular Displacement
Bits n2 Degrees BAM
1 2 180 32768
2 4 90 16384
3 8 45 08192
4 16 22.5 04096
5 32 11.25 02048
6 64 5.625 01024
7 128 2.8125 00512
8 256 1.40625 00256
9 512 0.703125 00128
10 1024 0.3515625 00064
11 2048 0.17578125 00032
12 4096 0.087890625 00016
13 8192 0.043945312 00008
14 16348 0.021972656 00004
15 32768 0.010986328 00002
16 65536 00001

Remember those 3 phases that you put on the Stators well if we call the unshifted signal the reference and you apply it also to the Rotor winding. Your indicator should point to 0. Ok so far?
Now if you phase shift the signal 90 degrees on the Rotor winding your indicator should move to 90 degrees.
Wow this is simple shit, right?
Lets get down to business. You can see a with your eyes about a ½ degree movement. Don’t believe me look at your analog watch’s second hand. 1 second is 1/60 of a circle. So you need about 1/10 of a degree so the indicator will float. So by checking the table you will see you only need 12 bits of resolution. I have also indicated a column for 16 bit BAM, as they are much easier to deal with, than degrees. And I don’t have to use the Trig functions. To understand how to calculate the BAM please look at the link below. One more thing about a BAM it only represents part of a circle. I know I hear the question but we only need 12 bits so why use 16 and through away 4 bits? Well remember the is a computer and it likes things in 8 bit chunks, so getting a 16 bits on a 32 bit embedded CPU is no problem.
Here are two 16 bit functions, I wrote them as that is all you will need:

#define TO_BAMS16(x) (((x)/360.0) * 65536)
#define TO_DEGS16(b) (((b)/65536.0) * 360)

**You will notice that I wrote them as a #define as I let the preprocessor take care of it, rather than making them a formal functions, in that way I can avoid the call and return time. You will also notice the 16 at the end of the name, as I also have 32 bit versions of the functions. The 16 bit version is fine for the instruments  but with the 32 bit version, I can resolve down to a postage stamp size any where in the world!

614L-8 ADF Control Head Hacking, Part 2 January 31, 2013

Posted by phoenixcomm in ADF, Collins 614L-8, DIY Aircraft Cockpit, Flight Simulation, Radio Sub System.
Tags: , , , , , , ,
add a comment

The Plan Continued.

  • We need to pick a embedded cpu. The requirements are:
    • It must handle all of the GPIO (see part 1 for the I/O Table), or about 20 pins.
    • It needs a USB interface for a data link to talk to the host.
    • It needs to generate the BFO signal.
    • It needs a PWM output to drive the meter.
  • We need to design a interface card. It should have a relay for the Dial Lamps, and a connection to the Panel Lamp Dimmer. It should have a jack to connect the gain potentiometer to the audio system. It should also have an output for the ADF flags, in various instruments.
  • We also need to replace the syncro with static digital encoder. It must be static as when the system powers up there is no guarantee where the dial will be tuned to. Remember this is just a AM radio.
  • Here is a block diagram of the ADF systemADF-System
  • Now we must get the syncro out of the frame. Here is an abbreviated version, I will post some photos when I do the work.
    (TM 11-5826-255-35 page 3-12):

    1. Loosen two Dxus fasteners located on rear cover, and slide the rear cover off the control unit.
    2. Remove three screws and three lock washers securing retaining (rear) plate to frame.
    3. Remove fixed resistor from retaining (rear) plate by removing the screw.
    4. Remove four screws and nuts securing connector to the retaining (rear) plate.
    5. Remove the retaining (rear)plate.
    6. Loosen two setscrews on collar, and remove spur gear from shaft of helical gear.   Note. If the setscrews cannot be reached, the tuning gear train must be disassembled.
    7. Loosen two setscrews on collar, and remove spur gears from the shaft of transmitter syncro.
    8. Remove collar.
    9. Loosen the three screws located around transmitter synchro at the shaft end.
    10. Orient three rim-clinching clamps to permit removal of transmitter synchro and remove the transmitter synchro.
  • Remember re-assembly is just the reverse order. Make sure that you keep all of the screws, etc. in a nice safe place. What I like to do is to put the screws back where they came from.

614L-8 ADF Control Head Hacking, Part 1 January 30, 2013

Posted by phoenixcomm in ADF, Collins 614L-8, DIY Aircraft Cockpit, Flight Simulation, Radio Sub System.
Tags: , , , , , ,
add a comment
Collins 614L-8

Collins 614L-8

This is the ADF Control Head that I chose form my project.  It is a Collins 614L-8. they are plentiful on Ebay.

The Analysis    The Unit is tuned via a 400hz syncro transmitter. So it looks like I will have to find a replacement for the syncro.  The Loop Switch in the upper left must be rewired and the switch logic for the Band Selector Switch behind the Tuning Knob seams ok, but that will have to be verified. The Gain Control is just a 5k pot,  and the Function Switch behind it just need some pull-up resistors. It looks like I can drive the Tuning Meter with a PWM signal from the controller.  Also there is a BFO Switch which induces 142.5 Khz signal on top of the audio.

The Plan   Well first I need to score a copy of the maintenance manual they are kind of pricey on Ebay so I dug a little more. In the military the Control Unit is part of AN/ARN-83 and I found pdf copies of TM 11-5826-225-12 and TM 11-5826-225-35 with schematic, part diagrams, etc. Also you can score the operators manual here.

Next we have to identify the goes inta and the goes outas, so here goes:

Connections Map
PIN I/O DESCRIPTION CPU PORT CPU PIN
O Loop Ant, Right Step
O Loop Ant, Right Slew
O Loop Ant, Left Step
O Loop Ant, Left Slew
O Function Switch, ADF
O Function Switch, ANT
O Function Switch, LOOP
O Range Switch, 190 – 400
O Range Switch, 400 – 850
O Range Switch, 850 – 1750
O BFO Switch
 O Gain Control, Bottom
O Gain Control, Top
 O Gain Control, Arm
 I Tuning Meter
GROUND
 P Dial Lamps
 P Panel Lamps

The Tuning Meter is a dc micro-ammeter requiring 100 micro-amps for full scale deflection.

Stellaris LM4F120 LaunchPad Evaluation Board or the best 13 bucks you ever spent! December 2, 2012

Posted by phoenixcomm in Arduino, DIY Aircraft Cockpit, Flight Simulation, Linux, ps2 keybaord, Software, TI Cortex™-A8 CPU, TI EK-LM4F120XL LaunchPad, TI Stellaris.
Tags: , , , , , ,
1 comment so far

What in the world do you get for $12.99?? LM4F120_LaunchpadYou get this cool 80Mhz 32 bit ARM Cortex M4F Launchpad Board!

So lets take a look at this thing. Well for openers we get both 16/32 bit instruction, and the F stands for Floating Point. It comes with its own on-board USB In-Circuit Debugger. On-board I/O is USB,  CAN, SPI, PWM,  ADC. 16 MHz main xtal oscillator, 33MHz Real-Time Clock xtal. And plenty of memory: 256KB of 40Mhz Flash, 2KB of EEPROM, 24KB SSRAM, an MPU.

TI has provided a great Student Guide and Lab Manual. I went to TI training it cost me $25.00 and I got my kit plus the Ken Tec QVGA TFT display with a resistive touch overlay. 350px-Kentec With this I can model my CDU with out any of my hardware. I also found a nice App Note on using this board as a I/O processor (shows you how to hook up a PS2 keyboard). I looks like I can put my code that’s in my Linux box into the Stellaris board, but at this time im not shure of my code size as yet.  I have only been messing about with this for a month. But I have been busy moving 😦

Now for what do you use for the IDE? Nope we can use Code Composer 5 (Eclipse) and the licence is forever as long as you have the board plugged in. No you can remove it and put in a different one.

Meet the Arduino Killer!! The BeagleBone! November 5, 2012

Posted by phoenixcomm in Arduino, Beagle Board, BeagleBone, DIY Aircraft Cockpit, Flight Simulation, Linux, ps2 keybaord, TI Cortex™-A8 CPU.
Tags: , , , , , , , ,
add a comment

All I can say is: Holly crap Batman

they got it right!

I plugged in the little board (its size is 3.4″ × 2.1)Image It comes out of the box with the Angstrom Linux distro, an RJ45 (Ethernet) and 2 USB ports, one is to connect to your host and the other is for devices, and then just a shit load of I/O! let me explain: two I²C ports, five UARTs,  a SPI interface, a CAN interface, eight PWM ports for motor control etc, eight Analog-to-Digital Converters, and count them 66 general purpose Digital I/O pins!! There are a mess of Shields but here their called Capes, an no your Arduino Shields will not fit.

Gone is the Arduino  bastard kind of C language! Now instead of their smallish library, you can draw on 35+ years of code. No more add-hock programming. It’s not a new paradigm its Linux.  Now I can write and test my code in Eclipse, move it to the bone, recompile / re-target it, or do that on the desktop and run it!

Ok the Bone has a 720Mhz TI Cortex™-A8 CPU, 256Mb DRAM, + Flash. All of this for just under 90 bucks!

Ok like I said before I plugged it into my Linux Mint desktop via the USB port. The board came up within less than 10 seconds. I located it in the finder told it to ‘exit’ thats to change modes on the USB interface,  and then in Chrome and entered 192.168.7.2 in the URL bar and hit enter and I am in the Cloud9 IDE but more about that later.

Enjoy!!

BTW: My first Challenge is to migrate the PS/2 keyboard code from the Arduino Playground. http://www.arduino.cc/playground/Main/PS2Keyboard to the BeagleBoard.

%d bloggers like this: