The intent of this project was to explore the possibility of using the built-in communication modes of various surplus commercial radios as a data transport for SMS messaging and GPS position reporting.

The primary objective was to be able to use an Android cell phone running APRSDroid to generate GPS data and also be able to exchange SMS messages in both directions. The Kenwood radio would be used as a data transport only.

The initial investigation showed the best method to achieve the end goal was to create a TCP connection over a WiFi connection, which would generate APRS-IS messages. The device to implement this portion of the project would be an ESP8266, which has a built-in WiFi transceiver. There is a readily available prototype of this called the NodeMCU, which is easy to program using the Arduino IDE. However, as this device runs on 3.3V, and the transceiver 5V, some buffering was needed.

The software development was done in two phases; the first on a PC to develop the capability of making a TCP connection an APRS-IS message, then formatting that into a serial command for the TK981 radio. It was built in a modular fashion so that the processing routines would be wrapped in a superstructure, which would supply the operating environment. The processing routines would fit into this structure and be device independent. The PC version was developed with Visual C++, which has a good debug environment.

The Arduino IDE, on the other hand, does not have any sophisticated debugging for this particular board. It does have a plethora of built-in libraries and examples to create an access point and be notified when a device makes a connection and sends data. This was adequate enough to build the superstructure, but not easy to debug.

Once the processing routines were working on the ESP8266, I was able to generate NMEA sentences from the APRIS-IS messages, and also acknowledge an SMS message locally and send both to the radio. A second radio was then set up to act as a receiver, which parsed the incoming messages and displayed them on a terminal.