Expanding my Setup: Real TACAN – Day I

A friend I met on Sabre Squadron’s Discord, Ali, spotted on Ebay a bunch on unserviceable old TACANs, previously used on RAF Jaguars. He bought one and of course I followed him promptly.

Less than a week later the delivery arrived, and here’s my TACAN:
tacan-day1-tacan
The goal is interfacing it with DCS, specifically with the F-14, by means of DCS-BIOS.

As you can see it is old and shows clear of usage (and precarious storage). I opened the package, and I was welcomed by a familiar smell of oil and metal (I basically grew up in my grandfather’s garage). I quickly opened the unit, removed the components I don’t need and I left the original wires.

There was a problem with the Units Channel selector but I fixed it quickly with a hex key.

Ali received his TACAN a couple of days earlier than me, and he did a beautiful job mapping the pins of the various components. He sent them to me, and I quickly soldered an Arduino Leonardo board to the TACAN. I started from the Channel selectors.

The Channel selector has 5 pins per plate. It makes sense: in order to represent numbers up to 12 (so, 13 numbers), 4 bits are required. The other one is GND.

0000 → Ch 0
0001 → Ch 1
0010 → Ch 2
0011 → Ch 3
0100 → Ch 4
0101 → Ch 5
0110 → Ch 6
0111 → Ch 7
1000 → Ch 8
1001 → Ch 9
1010 → Ch 10
1011 → Ch 11
1100 → Ch 12

In theory, a single Word is enough to store the complete bitmask; each byte can be retrieved by bit ANDs and bit shifting.

Coding Draft

I wrote a hasty draft for the Channel selectors. I decided to use a “DCSBIOS – HID hybrid“: commands are sent via HID and the status is read by means of DCS-BIOS. The reason is having this unit working with any module with no additional coding required: if both DCS-BIOS and the F-14 module are detected and connected, then updates will be read via DCS-BIOS, otherwise the Channel selectors behave as fancy CW/CCW knobs.
The DCS-BIOS library for the F-14 allows reading the channel selected as a decimal value. Therefore, I simply set up a series of digitalRead and made a bit mask to convert the status of the pins into a value. Then, if the value I read from DCS-BIOS is different from the in-game value, a series of timers send HID Joystick commands until the physical and in-game values match, synchronizing the in-game TACAN automatically.

Quarantino-Philosophic Break

Imagine the people that build this TACAN. They thought they were doing an interesting job I guess, building avionics for fighters and military jets. Now their works is in the hands of video games players..
What they would think? 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.