Introduction: Build a 500 Metre Radio Data Link for Under $40.

Have a water tank you want to measure or a dam or a gate? Want to detect a car coming down the drive but don't want to string wires through the garden? This instructable shows how to send data 500 metres with 100% reliability using picaxe microcontroller chips and 315Mhz or 433Mhz radio modules.

Step 1: Schematic

The transmitter and receiver circuits are quite simple and use picaxe chips. These single chip microcontrollers can sense analog voltages, turn things on and off and can transmit data. See instructables and for a description of how to program picaxe chips. With a radio link as well as an interface to a PC it is possible to sense data remotely and transmit it anywhere in the world.

Step 2: Transmitter and Antenna

The transmitter prototype was built on a piece of prototype board. There are a myriad of low power 10mW RF modules available which work well up to a range of about 30 metres. However, once the power goes up above half a watt the RF tends to get back into the picaxe chip and cause resets and other strange behaviour. The answer is to remove the module's antenna and take the RF away with 3 metres or more of 50ohm coax and build a proper dipole antenna. This also boosts the range considerably.

Step 3: Build a Dipole Antenna With a Balun

At the antenna is a balun made of coax cable. A balun is needed otherwise the shield of the coax ends up becoming an antenna instead of being the earth and radiates RF down near the picaxe which defeats the purpose of the antenna. There are lots of balun designs but I chose this one because it just uses bits of coax cable. Common wavelengths are 95.24cm for 315Mhz and 69.34cm for 433Mhz. The coax lengths are 1/4 and 3/4 of the wavelength respectively. The dipole wires are 1/4 of the wavelength. So for the modules I used at 315Mhz the coax wires were 23.8cm and 71.4cm and the dipole wires were each 23.8cm.

The coax shield and core are joined together where the coax splits into two. At the dipole note the shields are also connected. If these joins are out in the weather then they need to be weatherproofed in some way - eg with paint or non conductive silicone. Antennas work best when at least 2 metres off the ground.

Acknowledgement and thanks to I0QM for this design.

Step 4: Transmitter Module

The transmitter module is available on ebay for around $US14 at The current consumption is around 100mA when transmitting at 9V, and is virtually nothing when idle. The antenna was removed to build the dipole, though the module might be ok with the antenna attached if it were paired with a different microcontroller. The coax braid is connected to the module earth which is conveniently next to the antenna connection.

Step 5: Receiver Module

The receiver module is a superheterodyne unit available for around $US5 from the same ebay store. There are a number of other modules (including superregenerative) that are not as sensitive and don't give the range.

Step 6: Receiver Circuit and Picaxe Code

The receiver module is connected to a picaxe as shown in the schematic. The antenna is a 23.8cm piece of wire, and to make a dipole and increase the sensitivity another length of 23.8cm wire is soldered to the earth of the module.

The transmitter code is as follows:

main:serout 1,N2400,("UUUUUUUUUUUUUTW",b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13)
' T and W = ascii &H54 and &H57 = 0100 and 0111 = equal 1s and 0s
'b0=random number
'b1=random number
'b2=to device
'b6/b7 = data 1 and reverse
'b8,b9 = data 2
'b10,b11 = data 3
'b12,b13 = data 4
random w0 ' random number used to identify messages when using multiple repeaters
b2=5' to device number...
b4=126' random number for testing
b6=0' random number for testing
b8=1' random number for testing
b10=2' random number for testing
b12=3' checksum - any value
pause 60000' transmit once per minute
goto main

And the receiver code:

main: serin 4,N2400,("TW"),b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13
b13=255-b13' inverse again only need to really test one
if b12=b13 then
for b12=0 to 55
high 2
pause 100' flash led once a second for a minute
low 2
pause 900
goto main

The transmitter sends a packet once per minute - once debugged this ought to be decreased to every 15 mins or 30mins to avoid interference to neighbours. The "œUUUU" at the beginning of the packet is binary for 01010101 which balances the Rx unit. The protocol uses a form of Manchester coding where the number of 1's and 0's is kept as equal as possible, and this is done by sending the inverse of each byte after the byte is sent. Without this the packets sometimes don't get through if they are sending lots of binary zeros. A checksum at the end must be valid before the data is processed. The receiver flashes a led for 55 seconds when a packet is received and once debugged, this could be changed to some other acknowledgement.

Step 7: Lower Power Module and Neighbourly Relations

To keep neighbourly relations happy, especially with digital TV, send the data as far as it needs to go but no further. One can argue about the legalities of higher power transmitters but the best solution is to keep the RF on your property and send data infrequently in brief packets. This lower power module is half the price and goes about 200 metres. The lower power does have the advantage that it can have an antenna mounted directly on the module and can be soldered next to the picaxe, so the coax and balun are not needed.

Range tests were done through trees and over a hill which explains why a module listed as "4000m" only went 500 metres.

Next up will be an instructable on building self contained solar power supplies suitable for the these units, as well as sensors such as temperature, pressure, humidity, soil moisture and tank levels.


paul1212 (author)2013-07-06

is it possible to send data received from a accelerometr through picaxe 08M to picaxe 28X1 through RF.





neel.esh.351 (author)2015-01-19

Hello sir, Hope u r still here. I just recently start practicing electronics, so my questions may seem silly but i really need the help.

After making the design, how to we input the data we want to send? i mean should the picaxe setup be connected the pc where we can input the data? From the schematic diagram, it don't seem there is an input data option?

en2oh (author)2013-05-28

How do you deal with RCVR noise blocking the SERIN and so, freezing the entire PIC.
It looks like you're using the 08M2 chip. Are you using a timeout!

I'm trying to use a number of xtmr's with PICAXE chips providing unique IDs to a single RCVR PICAXE combination. All I need is one XTMR on at a time. Once the ID has been received, the receiver needs to listen for another XTMR's unique ID

I notice your posts on the PICAXE forum. Never knew you were an FP. My wife is a family doc and I'm an anesthesiologist. Small world! ;)


James Moxham (author)en2oh2013-05-28

Good question! I think the newer picaxes get around a serial hang, but the older ones are already hanging when a serin instruction is run. So it is stuck and won't go any further until it gets the header. There will be noise but it doesn't matter so much as the pic doesn't have any other tasks to do until a packet is received. I did find this a bit of a limitation though, and have moved a lot of my projects over to the propeller chip, which has 8 cores running in parallel, so you can have one core dedicated to serial comms and still have lots of other things going on at the same time. Cheers, James

en2oh (author)James Moxham2013-05-28

I'm struggling with size issues. Making "smart" magic effects.
Smaller here is definitely better!
Take care

tzq33tdq (author)2010-10-14

wow. will this work for a weather station?

Dr_Acula (author)tzq33tdq2010-10-15

Yes it probably would. Since I wrote this, other solutions have become available. One of the problems with this design is that it may exceed the legal RF power allowed in your country. Given this is generally limited to 10mW, the other solution is to increase the receiver sensitivity. I've been using this one lately as it has can go to 9600 baud, has a higher Rx sensitivity, has an inbuilt 256 byte buffer, and it seems to be a lot more reliable. If you want to pursue this further please let me know and I'll try to find a supplier.

NXTreme (author)2010-03-16

It seems that the link is broken. For anyone wanting to find the eBay store listed I think it is They have a page that is just about their radios, find it here. The radios do seem pretty cheap, thanks for pointing them out Mr. Moxham!

wee_man (author)2009-04-14

hi I can't seem to find any of these RF modules in my country are their any special names they go by ? and could i connect this like this

Computer ---Serial port ---> RF trasmitter ----------->RF reciver --->Picaxe


Dr_Acula (author)wee_man2009-04-14

The modules are on ebay at

But no you can't connect it like you say, because the computer RS232 goes from -12V to +12V, and the module expects 0V to 5V. You need a max232 chip and then an inverter gate eg 74HC04. At the other end though, yes you can go from the RF receiver straight into a picaxe.

The technology has been racing ahead in the last 12 months with more and more RS232 to wireless modules coming out at very good prices. Hope and Yishi are two companies making them for a very good price - probably less than the cost of bare RF modules and a picaxe. See my post from 3rd April below.

wee_man (author)Dr_Acula2009-04-14

Also (sorry for double posting) from what i understand from stuff like this is that its sending machine code 00111011 threw the rf modules couldn't one just build a Am or/Fm trasmitter and connect it up?

Dr_Acula (author)wee_man2009-04-15

If you want very simple commands, then the e-madeinchn people have boards with relays on them. Push one of 4 buttons, and one of 4 relays closes. This could be the easiest to configure and I've got one and it does have a long range. Or hack a radio control car and use the servo to turn things on and off. How many things do you want to turn on and off and how much data do you want to send?

wee_man (author)Dr_Acula2009-04-15

Well what i had in mine was using this concept and some how controlling it from the computer wirelessly. Just to freak out my technology ill mother "hehe"

wee_man (author)Dr_Acula2009-04-14

Ok thats a bummer i wanted a remotly computer controlled vibrabot. I will have a look at these other wireless module thingys but its a hassel getting one product and then paying large shipping to new zealand

onegizmo01 (author)2009-04-02

Could You Please Add A Complete Parts List for this project? Thanks

Dr_Acula (author)onegizmo012009-04-03

You would need two picaxes and the radio Tx and Rx as described, plus the components in step 1. Having said that, further experiments over the last year have revealed a whole range of better options for sending data with RF modules from companies such as Hope and Yishi. These are true "serial in = serial out", have ranges up to 3Km for a similar price, and are bi-directional. It depends what you want to do - range, baud rate, one direction or two directions, power source, a few bytes or big files. See for an example. If you only want to send a few bytes through over a short range, picaxes with cheap $2 RF modules is still the cheapest option.

Xellers (author)2008-09-06

The radio transmitter in the last step looks relatively easy to make, could you please post some schematics.

Dr_Acula (author)Xellers2008-09-08

They already come pre-built for a very low price - see the link in step 4.

Xellers (author)Dr_Acula2008-09-09

Hmm.... I don't need a receiver, and the transmitter looks like I could make it from supplies that I already have. So can you please post a picture of the underside at least so that I could see how it is wired up? Thank you.

Xellers (author)Xellers2008-09-09

Also, please specify the colors on the resistor in order? THX

Xellers (author)Xellers2008-09-09

And the value of the SMT capacitor...

Xellers (author)Xellers2008-09-09

And if the transistor is PNP or NPN.....

Xellers (author)Xellers2008-09-09

The voltage of the battery as well...

Xellers (author)Xellers2008-09-09


James Moxham (author)Xellers2008-09-09

Just checking you have the supplies. The metal tin is not a battery, it is the actual transmitter sealed in a can. The 'resistor' is actually an inductor. There are no parts on the underside. I don't know the part number of the transistor - they filed it off. If you go to and search for radio module (two words, no quotes), this module comes up fairly high on the list. It is only $2.50 and so there really isn't much point trying to build one from scratch.

bumsugger (author)2008-03-16

Nice,clean,well presented Instructable James, i'd use the adjective "awesome," but someone beat me to it!

GorillazMiko (author)2008-03-15

Awesome! Looks VERY hard to do, but great job, I like how you labeled the images and stuff. You can just edit the image by clicking where you want the tag to be, and drag, it's easier. Nice job! +1 rating.

Sun Gear (author)2008-03-15

looks complicated but very cool

About This Instructable




Bio: Dr James Moxham is a general medical practitioner in Blackwood, Australia. His interests include general family medicine, medical politics, microcontrollers and tending a rose garden ... More »
More by James Moxham:Arduino String Manipulation Using Minimal RamCharlieplex 30 Led BargraphArduino Dual 20x4 Display
Add instructable to: