Temperature CW slow-code on 1mW 1296 MHz transmitter

The ADF4351 PLL creates ca. 1mW RF output - i.e. a blank carrier. The unit output stage can be keyed ON / OFF by one of the pins on the chip (and available on the development boards). I used this pin to key the output stage so that I could identify my signal against any other signals that might be present on the band. I used a simple 555 astable timer so that it was on for ca. 10 seconds and off briefly for 1/2 second or so. This ment that I could easily identify my signal by the drops in carrier, yet still provided enough ON time for tuning up antennas and other measurements I might like to make.

The 555 worked well but I realised it would be more fun to actually send real data rather than just simply keying transmitter on/off. So, I replaced the 555 circuit with a Pi Pico PIC microcontroller pcb to send out temperature data using a homemade CW slow-code I devised. The Pi Pico is a very economical and versatile micro controller board that can be programmed in Python, C, assembler etc. Dogan Ibrahim (G7SCU) has written a great starter book on the Pi Pico that I recommend.

The current set-up uses the Pi Pico to send my callsign in CW and then send out temperate data in a slow-code format. I used a small temp sensor IC (TMP102) which the Pi Pico reads to measure the temperature in the box. The unit still drops the carrier every 10 seconds, but now each time it does it sends 1 bit of a temperature slow code.

Temperature CW Slow code

The TMP102 sensor uses two 8 bit registers to store the temperature
it's a 'two's Compliment' format - so it can represent negative and positive values of temperatures.
The Pico reads the data and sends the temperature out via CW slow code.

The sensor can read to 1/16 °C resolution, far more than anyone needs,
so I have ditched some of the bits and set the PIC to send out just 9 of the bits which gives 0.5 °C resolution.

In this format the least significant bit (bit 0) represents ½ °C, the second bit, bit 1 = 1 °C, bit 2 = 2 °C, bit 3 = 4 °C, ..... bit 7 (eigth bit) = 64 °C
and bit 9 is 0 for plus °C or 1 for minus °C.

First the Pi Pico sends my callsign in CW, then it creates a 'start bit' (four quick 200ms pulses)
then every 10 seconds it sends out one of the nine bits corresponding to the temperature:
a single 200 ms drop = 0, two 200 ms drops in quick succession = 1
(a bit like how MSF encodes the CW time signal on the 60 kHz carrier).

Including the start bit, the complete temperature code takes 10 x 10 = 100 seconds to send. This data repeats for as long as the transmitter is on. The slow code should provide a very robust and high S/N ratio with narrow bandwidth receivers etc. I had envisaged using a pi Pico to build a decoder, but if you listen to the slow code coming through on the receiver it’s quite easy to hear the difference between a 0 (single dip of the carrier) and a 1 (double dip) jotting them down on a piece of paper and then work out the temperature.

Two examples (you have noted down the following bits after the start bit signal):

Example 1: 000101011
The first most significant bit (MSB) is zero, so this means it’s a positive temperature.
To work out the temperature we simply add up the bits bearing in mind their corresponding °C values,
in this example we get: 16 + 4 + 1 + ½ = + 21.5 °C

Example 2: 111100110
As the first bit is 1 it means we have a negative temperature.
To work out the value we ignore the 1 at the start (MSB) then invert the rest of the bits to give 00011001,
which we add up as before to get: 8 + 4 + ½ = - 12.5 °C

Note: in principle to calculate a negative number using two-compliment, you ignore the MSB, invert the bits and add 1,
but as the least significant bit only represents 1/16th °C its ok to miss out this last step.



1296 MHz mitre jj
3D printed
templates for
folded dipoles
semi-rigid coax
3D printed mitre
(bottom of page)
back to
1296 MHz page
1mW 1296 MHz
transmitter
1296 MHz dipole
& balun
back to G1EXG
radio page




THE CREATIVE SCIENCE CENTRE

Dr Jonathan Hare, The University of Sussex
Brighton, East Sussex. BN1 9QJ.

home | diary | whats on | CSC summary | latest news