In upgrade 1 I described how to add a GPS to the ADSB receiver for a precise clock in the Raspberry Pi. Here is another description how to add a graph in the the ADSB receiver portal for monitoring clock performance.
A simple improvement that I have done to all my RTL-SDR sticks is the hardening against electromagnetic interferences (EMI) or noise using a self made sheet metal housing.
The ADSB receiver OS image that I use provides several performance graphs including the CPU temperature. For receivers installed on a remote location that is maybe not enough to monitor what’s going on inside and outside the box. For that reason I decided to install additional temperature sensors in my ADSB receiver box. My choice was the the Dallas DS1820 1-wire temperature sensor. It’s easy to interface to an Raspberry Pi and the kernel comes already with drivers. Perfect for that purpose.
This upgrade is divided into two steps: 1. Connect the DS1820 to the Raspberry Pi and configure the kernel drivers – 2. Reconfiguring the collectd service and the shell script that is creating the performance graph so that the additional temperatures will be logged and plotted as well.
Here is a first upgrade for my ADSB receiver box – GPS precision time. The MLAT position calculation for aircrafts depends on a precise time. While there is already a time synchronization between MLAT receivers in a specific area it is also possible to add a precise time source to improve the calculation result. A GPS receiver is such source when equipped with a PPS (pulse per second) output. The PPS is a signal with a width of less than one second and a sharply rising or abruptly falling edge that accurately repeats once per second with low jitter. The GPS time and PPS signal are then used to sync the internal ntp time service and keep a low offset and jitter.
In a previous post I described how to control the internal tuner module of a common 1.2GHz FPV receiver by a PC.
Since this setup was only for general tests I put some more efforts and put an AVR tiny44 in control.
On a 4 channel receiver I removed the original micro-controller and replace it by a AVR tiny44, running on internal 8MHz oscillator.
The tiny44 takes inputs from the 4 DIP switches and controls the tuner by I2C and the LED.
Attached to this post is the source code for the tiny44, written for WinAVR compiler.
With this code you have the following functionality:
|ON||OFF||OFF||OFF||Favorite frequency 1, default 1240MHz|
|OFF||ON||OFF||OFF||Favorite frequency 2, default 1280MHz|
|ON||ON||OFF||OFF||Favorite frequency 3, default 1276MHz|
|OFF||OFF||ON short||OFF||Manual tune, 1MHz up|
|OFF||OFF||OFF||ON short||Manual tune, 1MHz down|
|OFF||OFF||ON long||OFF||Auto tune, 1MHz up every 100ms|
|OFF||OFF||OFF||ON long||Auto tune, 1MHz down every 100ms|
For DIP3 and DIP4 a long press will be >1 second.
The frequency set using DIP3 and DIP4 will be stored in EEPROM 5 seconds after last tuning action (DIP switch used).
After power cycle this frequency will be the start for new tuning.
Frequency range for manual/auto tuning is 850MHz to 2200MHz in 1MHz steps.
Wiring is given in the source code, header of main.c.