Back to main menu


As you probably know  energy is becoming more and more scarce and expansive and the only way to cope with this is to use as less energy as possible .For  ham radio operators this means to use less power for their transmitter .This is a new challenge .It is quite easy using your standard rig to contact anybody around the world with 100 watt of input power either in SSB or digital mode but this is a different story with transmitter below the 1 watt mark .There is many awards around the globe to promote such  operations  (for example the MILLIWATT PER KM AWARD ) .With your Atlas it is not easy to make it working under the 1 watt level , and that why it is better to build a new transmitter using the ATLAS just for receiving as in the receive position the ATLAS is very efficient , consuming much less power than new rig .

qrp cw transmitter atlas210

The scheme of the rig is outlined nearby .It is very simple and use junk parts recovered from old computer and tv set .It need 2 transistors (2N2222) .The frequency is defined by a quartz crystal (FT243 or other) The output power depends on the voltage which can be anywhere from 5 volts up to 14 volts . In order to reduce the input power at the lowest level possible CW is use to modulate the carrier .The output is send to a standard antenna  tuner and the antenna .Needles to say that the antenna as to be a good one that means at least a full size dipole located  1/4Lambda above the groundschematic of ultra qrp transmitter
  get bigger display of schematic

tx output power versus feeding voltageThere is no tuning circuit and the tx works anywhere between 3 to 21 mhz depending on the quartz crystal used .The output is directly related to the power voltage from 5 to 14 volts  .

The transmitter as described enable me to break the 1 milliwatt/km barrier on 7 mhz band .Ok this is not a big deal  but not so esay to achieve especially in early 2008 at the lowest part of solar cycle 23 .It is also used to transmit routinely once per day various data over a  600 km link , the transmitter being fed with solar cells and controled with a microcontroller (Basic Stamp from Parallax Inc)
transmitter view

As of the mid  of 2010 the Basic stamp set up used  to control the transmitter was revisited to take advantage of newer microcontrollers .The objective was to follow the variation of propagation on the 3.5 mhz band over a 600 km path  using the transmitter shown above on a 24 hour a day basis.The power supply of the  transmitter was no longer a solar panel + a Li  Ion battery  but a phone line feeding the battery .Unfortunatly the phone company does not supply for free an unlimited current .The maximum amperage which can be taken without disrupting the normal use of the phone line is limited to 4 mA (if you try to draw more , the phone line is no longer available for incoming calls !  ) .This amount is fixed  by simply using a resistor between the phone line and the battery . In order to match the energy available and the power needed by the transmitter the transmitter operate automaticly from time to time  .The basic stamp controller was change an a picaxe 08M was selected to do the job .There was several adavantage in doing so .The price of picaxe 08M is cheap (around 2 US$ in single quantity) , It can be programmed using a very simple  IDE using  BASIC language  On top the electric consumption of the picaxe 08M  can be very low thanks to its SLEEP mode .By putting on high state all the unused ouput and bridging to ground the unused input   the electric consumption reach the 5 microamps level in sleep mode .The  schematic is shown here .The transmitter is keyed through a power mosfet (IRF530) ./The picaxe 08 which  is able to operate with a power suply from 3 volts up to 5.5 volts  is fed from the general power supply (13 volt) with a 9 volts zener diode in serie .It can be programmed directly in place using a standard RS232 linked to a PC

picaxe 08  schematic

Get a bigger schematic

The program to control the transmitter :
    'beacon control using Picaxe 08M
      ' consumption in sleep mode 3 microamp
      high 4
      high 2
      ; in3 linked to gnd through 4.7 k to reduce current in sleep
    sleep 20
      gosub beacon
    goto main
     high 1
    pause 1000
    low 1
    pause 2000
    high 1
    pause 500
    low 1
    pause 2000

Smart radio beacon

A little more sophisticated radio beacon was later designed  using the same PICAXE 08M with the addition of an external timer according to the following schematic .The goal was to be able to send short pulse 24  hours a day  to study propagation on a path of 800 km and  at  given time to send  temperature of  the place wher the transmitter was located  and voltage of the battery .Picaxe 08M has also to take care of the battery of the transmitter , not transmitting in case of not enough voltage was available .Thanks to  the open litterature on Picaxe programming it did not take that long to get  a programm to do the job .The temperature sensor is a DS18B20  which is very easily decoded by the picaxe and the voltage is read thanks to the internal ADC of the picaxe 08M .The transmiter is keyed using a field effect transistor IRF530 .The determination of the voltage limit was a little bit tricky due to the fact that the picaxe was not operated at a constant voltage .By a priminary calibration using  an ajustable power supply it did not take that long to find the value  which  coded in the program
smart beacon

The listing is shown below

' revision 30/1/2011
' read adc OK,read temp OK , envoi au Tx OK Pin_timer Ok
' rev 31/1/2011
' rev 2/2/2011  check timer command ok to cw transmission
 ' rev 25/2/2011
symbol Temp_sensor     = 1
symbol Bat_voltage        = 4
symbol Pin_tx           = 2
Symbol  Horloge         = Input3

Symbol Tone = 100 'sets the tone frequency ( range 20 -127 )
Symbol Quiet = 0 'set quiet tone
'Symbol Dit_length = 7 'set length of a dot (7 milliseconds)- yields 10wpm
'Symbol Dah_length = 21 'set length of a dash (21 mS = 3 dots long)
'Symbol Wrd_Length = 43 'set space between words (43 mS = 2 dashes, 6 dots)

Symbol Dit_length = 7 ' test pour 10 fois plus lent
Symbol Dah_length = 21 '
Symbol Wrd_Length = 43 '

Symbol Character = b0 'set register for ch.
Symbol Index1 = b7 'loaded with number of chs. in message
Symbol Index2 = b8 'counts the number of elements
Symbol Elements = b4 'set register for number of elements in ch.
Symbol Delay_record =3000  ' cw delay(ms) between temp and voltage

goto test      'pour test envoi a enlever par la suite
gosub balise
pause 3000     ' arret emission
gosub lire_temp_volt
if b6>230 then goto niveau1  'battery not ok
' batterie is ok

if Horloge >0 then cw_transmit  ' timer is On
; jump to here when Horloge = 0
goto main

high Pin_tx
pause 1000
low Pin_tx
pause 2000
high Pin_tx
pause 1000
low Pin_tx
pause 30000

readtemp Temp_sensor,b5;
'sertxd("temp :",#b5)
readadc Bat_voltage,b6
'sertxd("lecture :val de b5 ",#b5," val de b6= ",#b6,13,10)
'sertxd("temp :",#b1)
gosub codage_cw
pause Delay_record
gosub codage_cw
pause Delay_record
pause Delay_record
goto battery_ok

'routin e codage 
' valeur a transmette dans b1
'utilise b1 et b2
if b2>0 then gosub send_cw
b2=b1//100   ' reste de divistion  b2=52
b1=b2   ' stocke
gosub send_cw
b2=b1//10   ' rest de division  2
gosub send_cw

'sertxd(" ",#b2,13,10)
gosub Morse

lookup Index1,(253,125,61,29,13,5,133,197,229,245),Character
'code for 0,1,2,3,4,5,6,7,8,9)
let Elements = Character & %00000111 'look at 3 LS digits and load into Elements register
if Elements = 0 then Word_sp ' % means binary

for Index2 = 1 to elements 'loop through correct no. of times for number of elements
if Character >= 128 then Dah 'test MS digit of ch. If it is 1 goto the Dah sub routine
goto Dit 'if it is 0 goto the Dit sub routine

let Character = Character * 2 'do a left shift on all the bits in ch.
next 'loop back to get the next element
gosub Char_sp 'go to sub routine to put in inter-ch. space
return 'return to Identify routine to get next ch. to send

sound 2,(Tone,Dit_Length) 'sound tone for dit length
sound 2,(Quiet,Dit_Length) 'silence for dit length
'high Pin_tx
'pause Dit_Length
'low Pin_tx
'pause Dit_Length
goto Reenter 'return to look at next element of ch.

sound 2,(Tone,Dah_Length) 'sound tone for dah length
sound 2,(Quiet,Dit_Length) 'silence for dit length
'High Pin_tx
'pause Dah_Length
'low Pin_tx
'pause Dit_Length
goto Reenter 'return to look at next element of ch.

sound 2,(Quiet,Dah_Length) 'send silence for dah length after ch.completely sent
'pause Dah_Length
return 'return to get next character

'sound 2,(Quiet,wrd_length) 'send silence for break between words
pause wrd_length
return 'return to get next ch.

Back to main menu
Locations of visitors to this page