433 mhz rf module experiments

I had these 433 mhz rf modules in my parts inventory for a copule of years and finally have gotten around to hooking them up to arduinos to experiment with them. 433 mhz is in the 70cm ham band making it legal for ham radio license holders to operate these devices.

transmitter: tx       receiver: receiver

The transmitter puts out it’s maximum signal at 433.85 mhz.  The power level is a question and I’ve seen figures from 1 mw to 15 mw.  To measure would require a voltage reading on a dummy load.


Theory of op: Receiver: The receiver antenna feeds a tank circuit which tunes the received signal.  This signal is mixed with the output of an oscillator, apparently  down to baseband.   This baseband signal goes to an opamp circuit to generate the digital signal.  What is it? – a variant of a superhet but without an IF, the output goes to baseband.  This resembles the front end of an SDR without the quadrature detector.

The receiver s/n can be subject to noise – a training preamble in the packet data train greatly increases the range of the system.

Even at this low power the signal can be heard on my mobile radio (FT7900) from a point 400m away.  In an open field I expect further than that.  The modules are designed for Amplitude Shift keying (ASK).

By using this kind of modulation,  digital signals transmitted at 9600 baud are possible over short distances.  In my testing short ranges of 10m are quite reliable.  In the open field, 100 meters and more are possible.

The first experiments directly applied digital serial pulses of 0’s and 1’s to transmit byte streams over an RF link layer.  Raw signalling produced ranges of no more than about 10m.  Use of the ‘RadioHead’ library which employed a packet frame structure and the transmission of a ‘training preamble’ preceeding the digital data transmission, and a CRC field greatly improved the link level signaling.  Depending on baud rate,  range over 100m may be practical with clear line of site.

Trees, the body, rain, walls all reduce 433 mhz signal strength greatly.  Clear line of site is optimal for signal strength.

1/4 wave antennas produce good short distance performance.  High gain antennas have yet to e tried.

Programming technique is also challenging.   I have just succeeded in using memset() to copy the received data frame buffer from it’s raw form as a uint8_t  byte array, to a C struct of floating point numbers, long and short integer data types, and even raw ascii.


They are primitive devices, extremely low power,  to see if I there are possible applications, including entertainment or education.  , e.g. for the weather station and a remote sensor… something like that where running data cables is a huge problem.  The Radiohead library http://www.airspayce.com/mikem/arduino/RadioHead/  for the arduino that can be leveraged for data, and a good deal of basic code is available online so it’s easy to get started.

At this point, I’ve breadboarded a test project, and assembled a receiving breadboard with an 8×2 LCD screen to function as a receiver data display.

Range. Range between the transmitter and receiver with simple whip antennas is disappointing,  less than 10m in the vicinity of the house.  ( Others report ranges of 15 to 30m).

But the guy in the open field near Berlin got 300+ m.  Now I think he probably used the RadioHead library to get that range.  Without the library on raw IO on the TX/RX  pins, 10m is about the limit.

Testing on 6/5/2020 with the RadioHead library, and using my car to receive the pulses
I could hear the signals on Iho Pl near the turnaround – 415m or .26miles.  Did not bring the arduino receiver… that next time.  As far as an audible signal, I’m sure it can go farther.

The ham radio tranceiver can tune 433.85 as it is in the middle of the 70cm ham band. The Yaesu FT-7900 has a good receiver.

The RX led on the arduino pulses with the signal from the receiver.  Data detection however requires that the arduino digital pins detect the  This limitation is likely due to limits of the receiver design.  The receiver seems is a simple superheterodyne  design with a tank circuit tuner that renders it susceptible to noise and other interference.  This greatly reduces it’s ability to detect a useable signal using amplitude shift keying (ASK).   The UHF ham radio receiver is vastly superior and with it I have been able to hear the transmitter long after the digital receiver stops picking up data packets from it – even though the RX led still pulses weakly along with the transmitted signal.

The Radiohead library employs technique of sending a training sequence 36 bits called a “training preamble” that allows the receiver AGC to settle down, before hitting it with the data package of bits.  The RH library employs a packet format, with a 16 bit CRC to enable the receiver to determine if the packet was received intact.  I

There is surely a way to process the AFK signal from the FT-857, say with a raspberry pi.  The USB signal


How 433MHz RF Tx-Rx Modules Work & Interface with Arduino

This is a good starting place using the RadioHead library.

markfickett kb3icy, github arduino-morse from kb3jcy


~ by marksun on June 10, 2020.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: