In the fourth round it was decided to make another version of the VHF tracker, but without the PA module. A smaller (Hammond) enclosure with 3D printed top and bottom. The whole thing got simpler, but we also decided to design a 4-layer PCB and let the factory in China assemble most of it. Exceptions were the radio module, the antenna plug, the connector on the back and (in the first test-version) also the ESP32 module.
Power management
Inspired by the LilyGo radio, an AXP2101 PMU (power management unit) was selected for managing power and charging of the battery. It controls the charging of the battery with power from a USB-C and can deliver several voltages to different units on the board. The chip can be controlled by software through the I2C bus and the XPowersLib software driver could be used. It gives rather good control over charging, etc. A small heatsink can be attached to the chip (optional). When charging, it produces some heat but actually it is not too bad; the PCB also works well in leading the heat away from the chip. The charging current can be controlled from software.
A USB-C socket was mounted directly on the PCB and is used for charging and external power-supply in addition to communication. After experiencing some issues when feeding it from the PMU it was modified to get the input directly from the battery. The current drawn when transmitting caused the PMU to shut down. After this modification there were still some cases where the voltage drop during transmission could cause a shutdown. This happened with a couple of old batteries and when not fully charged. Fresh batteries work well.
VHF radio module
The radio module is a G-NiceRF SA868 which is open in the sense that alternative (open source) firmware can be flashed to it using contacts on its back-side. Currently we use it with the stock firmware but a hole is made in the PCB that gives access to the contacts in case it is needed later. With a 5V power supply, the transmitter yields up to 3 watts output. The TX power can be turned down to about 1 watt from the software.
There may be an issue with the squelch of the SA868 where it seems to need a very strong signal to open, but with the use of a software-squelch (for decoding packets) and the RSSI command for deciding if the channel is clear for transmission, it works reasonably well. After using the continous mode ADC and tweaking and hacking it seems to receive packets reasonably well though there may be some room for improvement of the software squelch. Also, the sampling frequency is 9600 Hz and the samples are converted to 8 bit signed numbers before decoded. The samples of a received packet is stored in memory and up to 3 attempts is made decoding, using pre-emphasis and de-emphasis filters. The audio level and the software squelch can be adjusted manually to optimize the reception.
Enclosure
A nice little blue box from Hammond is used as an enclosure. The top and the bottom covers were 3D-printed with slots for the PCB and designed such that the ESP32 antenna would partly be outside the metal box. A green/red indicator LED is mounted on the end of the PCB besides the antenna plug and a hole is made to let its light be seen from the outside. The end-covers contains slots for mounting pushbuttons (one in the front and one in the back) as well as a GNSS module. This means that some wiring must be made to the PCB. A pin-header socket can be mounted on the back of the PCB to accommodate external connections, including the battery which is attached to the back of the PCB.
The display is put onto the metal box and with help of a 3D-printed cover and some double sided tape it could be attached to the box. A proper tape should be selected that lets us take it off and put it on again if needed, but still keep it there.
If the wiring and mounting is done carefully and precisely, the PCB could easily be slid into the slots in the enclosure and the display could be attached to the enclousre. It looks nice with a blue box and and black plastic parts.
UHF (LoRa) version
It was also the plan from the start to make a version of the tracker with a LoRa module to work LoRa APRS. As soon as LoRa APRS recently became legal in Norway, i.e. the telecomms authorities opened up for up to 200 kHz bandwidth in the lower part of the 70 cm band, the PCB design was ready to be sent to production. It is based on the VHF version where the SA868 is replaced with a LoRa1268F30-Mini. The 5V regulator is also replaced since the module requires 4V for the transmitter.
When the PCB prototypes arrived, the next step was to take some open source driver code (written by Aichi Nagoya) and adapt it to the Arctic Tracker project. It was also necessary to make some adjustments to the APRS code in general to make it work with both modes. After some testing and adjustments it works well. The module can transmit up to 1 watt and has added a LNA to the receiver. Currently it runs LoRa APRS but it should also be possible to work it with narrowband FSK modes with some additions to the software. Maybe we can come back to that if there is interest 🙂
The infrastructure for LoRa APRS in my home town in Norway is somewhat limited at the moment, but in the cristmas holidays I was in Stockholm and was able to verify that the tracker indeed worked well when walking around in the streets of the city.
Software development
Whats really defines this tracker and what is it main strength, is the software. It is developed in C, using ESP-IDF. The code is free/open source and is on Github. Some work was also done in this last phase.
- Port to the LilyGo radio.
- Further work on the Web UI for configuration which now included in the firmware as well as a REST API on the tracker side. A strong authentication scheme is used (based on SHA256 HMAC), but still, to allow accessing more than one tracker and loading the webapp from alternative sources we had to support HTTPS. A self-signed SSL certificate is therefore included in the firmware. A smartphone app (Android) has also been made based on this Web UI.
- Use continous ADC for decoding AFSK packets as discussed above
- Some adjustments to the display-screen setup. It can now show a clock, the RSSI level for example. Timezones is supported.
- Get auto-uploading (to Polaric Server) up-to-date and functional. Polaric Server and aprs.no is also updated to support this and all this is tested.
Further work
The obvious need now is probably documentation (user manual). This in progress and will soon be made available. More prototypes of the tracker-hardware may be made to interested HAMs for self-cost. If enough interest we may consider making more batches of trackers.
Stay tuned!