Last year a police department purchased a digital trunked PSPC system with blue force tracking. What does that mean? A digital trunked PSPC system is a secure radio communications system for Public Safety and Professional Communications organizations (non-military), where all of the transceivers communicate with each other via a central digital “trunk” antenna. All radios in range of the central antenna can communicate with each other and home base. The key to the sale was the promise of a blue force tracking capability, a way for each radio to know the whereabouts of each other radio, and for central control personnel to know the location of each mobile and portable radio in the field (blue dots on the map are good guys, red are bad guys, hence “blue force tracking”). The capability was promised, the system was purchased and installed, but blue force tracking was never implemented. At the hand-off from the vendor to the police department, it was claimed that the capability was promised as a possibility but never promised as an implemented feature.
This police department had a relationship with the Naval Postgraduate School (NPS), which had a relationship with my company, and NPS staff brought us together. We knew enough about the system to know that the components necessary for blue force tracking were designed in, but the dots had just never been connected. I was tapped in to figure out how to connect those dots. We knew the radios had GPS built in. We knew the digital trunk protocol was capable of sending and receiving positional information. We had implemented blue force tracking with these same radios in an analog mesh mode before. All I needed was information about the messaging format for the digital protocol. It took me a couple weeks of personal networking but I finally got my hands on a white paper from the vendor. My chief software architect and I analyzed that white paper and in less than a week he had built us a radio emulator (at least to mimic the positional messaging I/O). I tested this system… confident that I could act as home base, turn on a remote radio’s position reporting function, and see it on a map as a blue dot, I packed up my laptop with the emulator installed and traveled to the police department’s 911 center to test it.
I walked in to that 911 center like a cowboy hero with the guy from the wanted poster slung over my shoulder. I was ready to plug in, fire up the system, show blue dots, and ride away sitting on cops’ shoulders in a ticker tape parade. But nothing happened. NOTHING HAPPENED. Our system told me we were sending activation messages, the radio in my hand said it was receiving activation messages and sending position data SOMEWHERE, but I got no blue dots on my map – the data wasn’t coming all the way back. I fired up Wireshark and after a series of trial and error filters, I was able to find where the messages were being sent. We were listening on the wrong port.
We were listening on the wrong port because the vendor’s white paper described port assignments using an algorithm different from that which was actually implemented. A little more reverse engineering and we had our emulator behaving the same way as the installed system. I took a trip back to the PD, plugged in (a little less cocky this time), and it worked. I sent a command to the radio in my hand to start reporting position and the radio in my hand showed up as a blue dot on the map – and the position was accurate. At this point I called the Chief to let him know it was working. “Try my radio,” he said, and gave me its address. “I see you I said, and now I know where you live,” I replied. “That’s AWESOME… and creepy,” he said.
It was a painful but rewarding experience. Getting the information we needed was like pulling teeth from a hungry, unsedated tiger and the information we got was inaccurate. We built the best model possible from that information and designed and implemented a system that got us close enough to troubleshoot our way to the true solution. I impressed and creeped out a police chief. Most importantly, we never gave up.