The Transmitter
This tiny module serves as the transmitter. It is as simple as it appears. At the core of the module is a SAW resonator tuned to operate at 433.xx MHz. Apart from that, it has a switching transistor and some passive components.
When the DATA input is high, the oscillator generates a constant RF output carrier wave at 433.xx MHz, and when the DATA input is low, the oscillator ceases operation; resulting in an amplitude modulated wave. This technique is known as Amplitude Shift Keying, which we will go over in detail shortly.
The Receiver
This particular module is a receiver. It is as simple as the transmitter module, despite its appearance. It consists of an RF tuned circuit and a couple of operational amplifiers (OP Amps) that amplify the received carrier wave. The amplified signal is then fed into a PLL (Phase Lock Loop), which allows the decoder to “lock” onto a stream of digital bits, resulting in improved decoded output and noise immunity.
ASK – Amplitude Shift Keying
As mentioned previously, these modules use a technique known as Amplitude Shift Keying, or ASK, to transmit digital data over the radio. In amplitude shift keying, the amplitude of the carrier wave (433 MHz signal in our case) is modified in response to an incoming data signal.
It’s a lot like the Amplitude Modulation technique used in AM radio. Because it only has two levels, it is sometimes referred to as Binary Amplitude Shift Keying.
You can think of it as an ON/OFF switch.
- For logic 1 – the carrier wave is transmitted.
- For logic 0 – no signal is transmitted.
Here is an illustration of Amplitude modulation:
The advantage of Amplitude Shift keying is that it is very simple to implement. The decoder circuitry is quite simple to design. Furthermore, ASK requires less bandwidth than other modulation techniques such as FSK (Frequency Shift Keying). This is one of the reasons why it is cost effective.
The disadvantage of ASK is that it is susceptible to interference from other radio equipment and ambient noise. However, as long as you transmit data at a relatively slow rate, it can work reliably in most environments.
433MHz RF Transmitter & Receiver Pinout
Let’s take a look at the pinout of 433MHz RF Transmitter and Receiver Modules.
![](https://cdn.shopify.com/s/files/1/2015/5255/files/20240407224728_480x480.jpg?v=1712501294)
DATA pin accepts digital data to be transmitted.
VCC provides power to the transmitter. Any positive DC voltage between 3.5V and 12V can be used. It should be noted that the RF output is proportional to the supply voltage, so the higher the voltage, the greater the range.
GND is the ground pin.
Antenna is a pin that connects to the external antenna. To improve the range, you should solder a 17.3-centimeter-long solid wire to this pin. It is discussed in detail later.
![](https://cdn.shopify.com/s/files/1/2015/5255/files/20240407224921_480x480.jpg?v=1712501422)
VCC provides power to the receiver. Unlike the transmitter, the receiver requires a 5V supply voltage.
DATA pins output the received digital data. Both pins are internally linked, so you can use either one for data out.
GND is the ground pin.
Antenna is a pin that connects to the external antenna. To improve the range, you should solder a 17.3-centimeter-long solid wire to this pin.
Wiring the 433MHz RF Transmitter and Receiver Modules to the Arduino
Now that we have a complete understanding of these modules, it’s time to put them to use!
Because we’ll be sending data between two Arduino boards, we’ll need two Arduino boards, two breadboards, and a few jumper wires.
Wiring for the Transmitter
It is simple to wire up the transmitter, as it only has three connections.
Connect the module’s VCC pin to the Arduino’s 5V pin and GND to Ground. The Data-in pin should be connected to digital pin #12 on the Arduino. Try to use only digital pin #12 for data input, as the library we are using uses this pin by default.
The following table lists the pin connections:
![](https://cdn.shopify.com/s/files/1/2015/5255/files/20240407225147_480x480.jpg?v=1712501526)
The wiring is shown in the image below.
Wiring for the Receiver
After you’ve wired the transmitter, you can proceed to the receiver. The receiver’s wiring is as simple as the transmitter’s.
Once again, there are only three connections to make. Connect the module’s VCC pin to the Arduino’s 5V pin and GND to Ground. Connect any of the middle two data-out pins to the Arduino’s digital pin #11, as they are internally connected.
The following table lists the pin connections:
The wiring is shown in the image below.
RadioHead Library – a Swiss Army Knife for wireless modules
Unlike advanced RF modules such as the nRF24L01, the 433MHz RF module is a basic RF module with no data transmission error detection built in. Therefore, it is our responsibility to incorporate CRC (Cyclic Redundancy Check) into our code.
This is where the well-known RadioHead library comes in handy. It handles CRC computations, which makes communication more reliable. The library is so versatile that it can be used with any type of RF module, not just 433MHz RF modules.
At the transmitter end, the RadioHead library takes the data, encapsulates it into a data packet (known as a RadioHead Packet) with a CRC checksum, and then sends it to another Arduino with the necessary preamble and header. At the receiver end, if the data is correctly received, the receiving Arduino is notified that data is available.