I’ve had a mobilinkd for a couple of years now and I like the small form factor and the mobility of the device. I’ve always wanted it to have some additional features such as a connected mode ( either USB or serial ) and the ability to track without the need for a cell phone. Wifi would also be a preferred wireless interface.
I tried using the AP510 to fill some of these features but it’s under powered and prone to burning out it’s LDO.
At the urging of a friend, Herb, I sat down and designed one that fit our needs.
The hardware feature set we decided on
- Arm SOC module running Linux for TNC
- Audio/PTT interface for Yaesu and Kenwood/BaoFeng
- 1W RF module ( could be VHF or UHF )
- GPS expansion port
- XBee header
For the ARM module we chose the C.H.I.P. by Next Thing Co. I has a nice small form factor and the site claims you can order 1 – 1 million with very little lead time ( it turns out they are limiting you to 5 at a time right now ). A couple of other nice features of the module are WiFi, bluetooth, Lipo charger and 2 USB ports.
I used the same audio/PTT interface as the mobilinkd so I could reuse the audio cables.
We chose the SR FRS 1W for the on board RF interface. It’s got a nice small form factor but there are some issues with it’s PTT that we are still debugging.
The GPS expansion port is just a slot in the board with serial RX/TX, i2c, 3V3, 5V and GND. I’ve looked at a few GPS modules but haven’t started designing anything yet. Part of the reason I’m holding off is that the side of the board I wanted to put the expansion on would interfere with the USB ports from the CHIP. Until I design a GPS interface module I’m just using a small ND-105 MicroUSB adapter.
I chose the XBee header because there are a number of boards that are already designed for that form factor that support a large number of RF protocols. Now, because of the issues with the GPS expansion slot I might just design a GPS module to plug in there.
Running the audio interface and the GPS dongle from a 2500mAH battery the board can run for about 4 hours. I need to do some optimisation to try and get that into the 8 hours range.
Software features
- Debian – standard CHIP install
- Direwolf – so the device can function as a TNC/digipeater/X25 modem
- Lighttpd webserver for configuration and UI
- Host AP and wifi client simultaneously
- APRX for viscous digipeating
I had to make some modifications to Direwolf to get it to handle multiple TCPIP clients, as APRX, the web ui and a message daemon all share Direwolf.
The UI is written in python using the web.py framework and currently supports these features.
- List of recent APRS beacons
- Settings for APRX, Direwolf and PTT
- Send and receive APRS messages
- Maps for to show beacon locations
- Display Direwolf logs for debugging
These all need cleaning up but for the most part are functional.
For the message interface a message daemon is needed to store messages for the interface and handle message ACKs. It attempts to re-transmit the message 3 times or until it is properly ACKed. The UI can also re-send failed messages.
I want to add a feature that failed messages will be re-transmitted when the messaged receives a beacon from the intended recipient.
Moving forward
The boards arrived a week ago and apart from a few minor difficulties ( wrong parts, reversed RF module foot prints , you know the usual ) are working working well. So a second rev will be required. But a new rev means new features , right ?
REV2 features
- Concurrent RF module and audio interface. The unit could be across band digipeater or repeater
- LED TX/RX indicator
- Squelch tied to an interrupt for low power modes
- CHIPPro – adapter to mitigate CHIP supply issues
The code is all hosted on gitlab right now in a private repo but I’ll probably open that up if there are any others interested in helping out.