While discussing with a few friendly hams about the coming summer we
came up with the idea of running a fox hunt for the kids, so I set about
looking at how we could do this.
Ultimately we needed a transmitter and receiver that
could be easily constructed and operated by children. Fortunately I came
across these cheap UHF transmitter / receiver pairs whilst browsing Amazon..
The pair labeled XY-FST-RX / MK-RM-TX can be had for only a few pounds
and are available in the 315Mhz, 418Mhz, 433Mhz and 915Mhz frequency
bands, so out of interest I purchased a few of the 433Mhz (70cm)
varients. The modules operate with AM on 433.92Mhz ISM band which is
fortuently license exempt (power limit!) in the UK and are designed for basic data
transmission (The band is popular for car remote locking, wireless
doorbells, etc). The emitter has 3 pins (Vcc, Data, Gnd) and a pad
located in the top right for an antenna, however I have seen the same
module with four pins (Vcc, Data, Gnd, Ant). Likewise the reciever
follows a similar layout and has four pins (Vcc, Data0, Data1, Gnd)
however upon inspection the two data pins are actually bridged.
After breadboarding the emitter and manually pulsing the data pin whilst
monitoring with the HT it became clear that oscillating the pin with an
MCU could be a viable method of producing a crude CW signal. I
eventually came up with this circuit using parts from my junk drawer and
an Arduino Nano MCU.
The circuit is very simple, with power being provided from a 9v PP3
battery and the datasource being provided by a PWM digital pin on the
arduino. I added the LED for visual feedback. Those looking to reduce
costs could probably use an ATiny MCU or PIC instead. The circuit was
built onto a scrap piece of copper veroboard, without any antenna. I
wrote a simple sketch to test my thoery, by interpreting morse: 0 -
pause, 1 - dit and 2 - dah to control the timing of the pulses.
//msg = FOX HUNT M3RKV
int msg[]={0,1,1,2,1,0,2,2,2,0,2,1,1,2,0,0,1,1,1,1,0,1,1,2,0,2,1,0,2,0,0,0,2,2,0,1,1,1,2,2,0,1,2,1,0,2,1,2,0,1,1,1,2,0,0,0};
int i;
int t;
void setup() {
// Setup Pin 3 (PWM) as output
pinMode(3, OUTPUT);
}
void loop() {
for(i=0; i < (sizeof(msg)/sizeof(int)); i++){
delay(200);
if(msg[i] == 0){t=800;} //Pause
if(msg[i] == 1){tone(3,1200,100);t=400;} //Dit
if(msg[i] == 2){tone(3,1200,300);t=600;} //Dah (3x dit)
delay(t);
}
//Pause between Messages
delay(5000);
}
int msg[]={0,1,1,2,1,0,2,2,2,0,2,1,1,2,0,0,1,1,1,1,0,1,1,2,0,2,1,0,2,0,0,0,2,2,0,1,1,1,2,2,0,1,2,1,0,2,1,2,0,1,1,1,2,0,0,0};
int i;
int t;
void setup() {
// Setup Pin 3 (PWM) as output
pinMode(3, OUTPUT);
}
void loop() {
for(i=0; i < (sizeof(msg)/sizeof(int)); i++){
delay(200);
if(msg[i] == 0){t=800;} //Pause
if(msg[i] == 1){tone(3,1200,100);t=400;} //Dit
if(msg[i] == 2){tone(3,1200,300);t=600;} //Dah (3x dit)
delay(t);
}
//Pause between Messages
delay(5000);
}
As you can see I used the tone() function to produce the signal
required, where the first parameter is the Pin used, the second is the
frequency and the third the duration in mS. I will come back here at
soon to revisit the code and improve it but for the purpose of testing
it does suffice.
Sure enough, tuning my HT to 433.920Mhz allowed be to hear the crude
signal being produced and even without an antenna I was able to move
around the house and outside without complete loss of the signal,
however even when placed directly next to the emitter the AF signal was
not strong enough to break through the squelch on my HT dispite it being
on the lowest possible setting.
The enclosure is a standard project box and provides enough space for
the battery, PCB and antenna. The antenna is a simple J-Pole designed
for 70cm and made from 18SWG enameled copper wire. Moving forwards it
would probably be a good idea to terminate with an N-Type connector so
that multiple antenna configuration can be used.