iTAK and ATAK
William McKeehan
William McKeehan
April 20, 2024

iTAK and ATAK

iTAK and ATAK

I have played with ATAK on-and-off for a while without much success. I only have a single Android device and I was trying to make it work with a TAK server on a Raspberry Pi.

I was never able to get a server running reliably on a pi - a docker approach was the closest I came to getting this working.

After watching a T.RexLabs video, I was encouraged to try it again - without a server. I still only have the one Android device, but TAK compatible device for iPhones has been released, iTAK, so I had two devices that I thought would talk to each other if they were on the same network without a server, so I dove in.

The first steps were promising; I was able to see the position of each device on the other and I was able to get messages from iTAK on my iPhone to show up on my Android device, but I could not get messages from Android to show up on iPhone.

Well, being on the same wi-fi network would not give me much range, so I wanted to give the VPN approach mentioned by T.RexLabs a try. I already have a WireGuard VPN setup, so I connected both devices to that VPN and suddenly they stopped communicating. After some digging, I learned that ATAK uses multicast and WireGuard does not support multicast, so that’s what I thought was breaking things. So I switched to ZeroTier (as mentioned in the T.RexLabs video)—same problem.

I was rather frustrated - it seemed so close to working, but just wasn’t quite there.

After a good bit of searching, I found that iTAK also does not support multicast. I can’t explain why things worked when the iPhone and Android tablet were on the same ”physical“ network, but this seemed to explain why they would not work over a VPN. I was once again looking at setting up a server. I played with FreeTakServer on my Raspberry Pi, but could not make it work (it may work if I started with a fresh install, but I didn’t have an unused pi laying around that I could use for this). I turned to taky - A simple COT server for ATAK. I had issues with that on my pi also, so I looked around for another computer. Amazon AWS has a lot of EC2 instances available (and some for free), so I setup an account and created an Ubuntu EC2 instance.

I was able to easily install taky on ubuntu - although I ran into issues with their systemd config, but for my testing, I didn’t need that, so I just ignored it and ran the service manually.

I generated a couple of package - one for my Android tablet and another for my iPhone. ATAK connected to the server right away. I went to my iPhone and added the server package and…nothing. No errors, no server in the list, just nothing. More searching….

I finally found some mention of taky issues with iTAK and they guidance was to check the TAK Community Discord - specifically pinned messages in the iTAK channel there. One pinned message shared a sample server package for iTAK for reference. In comparing that reference package with the one that taky generated, I noticed that iTAK wanted the files from the package to all be in the root of the zip (not in folders as taky creates it). I extracted the files to a folder (with unzip -j), then zipped up the files and shared that zip with my iPhone.

Finally, I have iTAK and ATAK able to see each other and chat while being on totally different networks. There is no VPN involved in this solution, but the communication with taky is via ssl, so it’s all encrypted.