Project Overview
Arduino + 433MHz RF transmitter and receiver modules: In this tutorial, you will use a simple 433MHz RF link kit to send text wirelessly from one Arduino to another. The transmitter Arduino reads text from the Serial Monitor and sends it over RF, while the receiver Arduino displays the incoming message on a 16x2 LCD.
This is a fun beginner wireless project that introduces basic RF communication between microcontrollers using low-cost modules.
- Time: 30 to 60 minutes
- Skill level: Beginner to intermediate
- What you will build: A simple Arduino-to-Arduino 433MHz wireless text messaging demo with an LCD receiver
Note: These basic 433MHz ASK/AM modules are affordable and easy to test, but they are not as robust as more advanced radio modules. Good wiring and a proper antenna can make a big difference.
Parts List
From ShillehTek
- 433MHz RF Wireless Transmitter & Receiver Link Kit for Arduino - used to send and receive the wireless text messages
- LCD1602 16x2 LCD Display Module for Arduino & Raspberry Pi - used on the receiver side to show the incoming message
- 120pcs 10cm Jumper Wire Set M-F, M-M, F-F for Arduino & Raspberry Pi - useful for connecting the modules, LCD, and boards during the build
- 830 Point Solderless Breadboard for Arduino, Raspberry Pi & ESP32 - used to prototype both the receiver and transmitter circuits
External
- Arduino Uno
- Arduino Pro Mini or a second Arduino Uno
- 10k potentiometer for LCD contrast
- 3.7V battery if powering the remote side separately
- Arduino IDE
- USB cable for programming
Note: If you do not have an Arduino Pro Mini, you can use another Uno instead.
Step-by-Step Guide
Step 1 - Understand what the project does
Goal: Learn the basic idea before wiring everything together.
What happens: One Arduino acts as the transmitter. You type text into the Serial Monitor, and the Arduino sends that message through the 433MHz RF transmitter module. A second Arduino receives the message through the RF receiver module and prints it on a 16x2 LCD.
Expected result: You understand that this is a simple one-way wireless text link between two Arduino setups.
Step 2 - Review the RF module specifications
Goal: Know the basics of the transmitter and receiver modules.
Receiver module details:
- Model: MX-05V
- Operating voltage: 5V DC
- Quiescent current: 4mA
- Receiving frequency: 433MHz
- Receiver sensitivity: -105dB
- Size: 30 × 14 × 7mm
Transmitter module details:
- Model: MX-FS-03V
- Operating voltage: 3.5V to 12V
- Range: about 20 to 200 meters depending on voltage and setup
- Operating mode: AM
- Transfer rate: 4KB/s
- Transmitting power: 10mW
- Transmitting frequency: 433MHz
- Pinout from left to right: DATA, VCC, GND
- Size: 19 × 19mm
Expected result: You know the modules are simple low-cost RF parts that need correct voltage and clean wiring.
Step 3 - Prepare the hardware you need
Goal: Gather all materials before building.
You will need:
- Arduino Uno
- Arduino Pro Mini or another Uno
- WH1602 or HD44780 16x2 LCD display
- 433MHz or 315MHz RF transmitter and receiver module link kit
- 830 tie-point breadboard
- Male-to-male jumper wires
- Male-to-female jumper wires
- 10k potentiometer
- 3.7V battery
Expected result: All project parts are ready to assemble.
Step 4 - Upload code to the Arduino Pro Mini if you are using one
Goal: Program the Pro Mini using an Arduino Uno as a USB-to-serial bridge.
What to do:
- Remove the ATmega328 chip from the Arduino Uno if needed for this method
- Connect the Pro Mini to the Uno using jumper wires
- Wire RX to RX, TX to TX, RST to RST, GND to GND, and VCC to 5V
- In the Arduino IDE, go to Tools > Board and select Arduino Pro or Pro Mini
- Upload the sketch
Expected result: The Pro Mini is programmed successfully and ready to use in the RF circuit.
Step 5 - Wire the receiver circuit
Goal: Build the Arduino receiver side that listens for RF messages and shows them on the LCD.
What to do: Connect the 433MHz receiver module to the Arduino and wire the 16x2 LCD using the pin mapping used in the example sketch.
Receiver code uses this LCD pin setup:
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
This means the LCD is connected to Arduino digital pins 7, 6, 5, 4, 3, and 2 in the order used by the LiquidCrystal constructor.
Expected result: The receiver Arduino, LCD, and RF receiver are wired and ready for testing.
Step 6 - Upload the receiver code
Goal: Load the sketch that receives RF messages and prints them to the LCD.
Code:
#include <VirtualWire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
char cad[100];
int pos = 0;
void setup()
{
lcd.begin(16, 2);
lcd.setCursor(1, 0);
vw_setup(2000);
vw_rx_start();
}
void loop()
{
byte buf[VW_MAX_MESSAGE_LEN];
byte buflen = VW_MAX_MESSAGE_LEN;
int i;
if (vw_get_message(buf, &buflen))
{
if (pos < 2)
lcd.setCursor(0, pos);
else
{
pos = 0;
lcd.clear();
}
for (i = 1; i < buflen; i++)
{
lcd.print((char)buf[i]);
pos++;
}
}
}
Expected result: The receiver Arduino listens for incoming messages and displays them on the LCD.
Step 7 - Wire the transmitter circuit
Goal: Build the sender side that takes text from the Serial Monitor and transmits it wirelessly.
What to do: Connect the RF transmitter module to your Arduino according to your wiring diagram. Be sure to follow the transmitter pin order from left to right:
- DATA
- VCC
- GND
Expected result: The transmitter Arduino and RF transmitter module are ready for code upload.
Step 8 - Upload the transmitter code
Goal: Load the sketch that reads from the Serial Monitor and sends the message over RF.
Code:
#include <VirtualWire.h>
char cad[100];
int i = 0;
void setup()
{
Serial.begin(9600);
vw_setup(2000);
Serial.print("End with \".\" each data");
}
void loop()
{
if (Serial.available() > 0)
{
cad[i] = Serial.read();
i++;
}
if (cad[i - 1] == '.')
{
cad[i] = '\0';
i = 0;
vw_send((byte *)cad, strlen(cad));
delay(400);
}
}
Expected result: The transmitter Arduino waits for serial input and sends the text once it sees a period at the end.
Step 9 - Test the wireless link
Goal: Send a message from one Arduino and see it appear on the receiver LCD.
What to do:
- Power both Arduino circuits
- Open the Serial Monitor on the transmitter side
- Type a short message and end it with a period
. - Watch the receiver LCD for the incoming text
For example, if you type:
Hello world.
The receiver should display that text on the LCD.
Expected result: The receiver LCD shows the transmitted text sent from the transmitter Arduino.
Step 10 - Improve range and reliability
Goal: Get better results from the RF modules.
What to know: These modules often work better when you add a simple antenna. The original module notes mention using a quarter-wavelength 50Ω spiral antenna for the receiver.
- Keep wires short and neat
- Use stable power
- Add a suitable antenna
- Start with short messages during testing
- Keep the transmitter and receiver reasonably close for initial setup
Expected result: More stable message reception and better wireless performance.
Conclusion
You built a simple wireless Arduino communication project using low-cost 433MHz RF modules. The transmitter sends text from the Serial Monitor, and the receiver displays it on a 16x2 LCD. This is a great beginner project for learning about RF communication, Arduino messaging, and basic wireless prototyping.
Want the exact parts used in this build? Grab them from ShillehTek.com. If you want help customizing this project or building something for your product, check out our IoT consulting services.


