Download PDF Parts List View on YouTube Download Code


There is no doubt that this is the age of wireless.  From mice to doorbells, cameras to computers everything seems to connect without the hassle of hooking up cables or tripping over wires.

Today we will examine a low-cost method of sending wireless data between two Arduinos without using wifi or bluetooth. Learn how inexpensive 433MHz modules may be all you need to cut the cord on your next Arduino design.


Wireless World

There are many methods a designer can employ to add wireless capability to their creations. Each of them has its own advantage and disadvantage and as adding wireless communications will add to the cost of your product you need to think carefully before implementing anything.

Bluetooth is often the first choice that comes to mind. It is popular and will allow your Arduino project to be controlled with the aid of your phone, tablet or computer. You can create a custom app to give your project a real professional look, equivalent to anything you can buy commercially.

But Bluetooth can also be an overkill if you just want to send a bit of data from a sensor or keypad. It also requires you to build an app which may be more than you want to take upon yourself.  You’ll also need to pair it with your device, although that isn’t particularly difficult.

WiFi is another good choice, using WiFi will allow your project to interact with all of the devices on your existing network. For an IoT (Internet of Things) device it is the perfect choice.

But WiFi can be an overkill if you only have basic requirements, it can cost a bit of money and also needs to be authenticated onto your network properly or it can become a security risk.  And of course it will only work if you actually have an existing WiFi network.

The nRF24L01 modules are popular choices, they don’t cost a lot and can provide reliable 2-way communications between two Arduinos.  In many ways they are the ideal solution to many wireless design problems.  And they can communicate over a considerable distance with the right antennas.

But the nRF24L01 can be a bit tricky to implement and if you don’t need 2-way communications they are a bit excessive. They can also cause interference with routers and cordless phones if you aren’t careful. Still they are an excellent choice and we will indeed visit this option – but that’s for another article.

The solution we will discuss here involves the use of super inexpensive (i.e cheap) wireless modules that can provide one-way communications capabilities over a reasonable distance. They are easy to use and won’t break the budget.

433 MHz Modules

These modules are available on eBay, Amazon and a myriad of other places. They can often be obtained for less than two dollars for the pair, making them one of the most inexpensive data communication options that you can get.

One of the reason for their low cost is that these modules are used in many electronic toys, games and also in key fobs for automobiles. They are manufactured by the millions and this keeps their cost to an absolute minimum.

The modules are extremely easy to use, each module has only three connections (the receiver has 4 pins but two are internally tied together) and two of those connections are for power.  The remaining connection is for data in on the transmitter and data out on the receiver.

The modules are also very tiny, allowing you to incorporate a wireless interface into virtually any project.

The modules both have a connection for an external antenna. We’ll discuss antennas in a moment but before we do it’s vital that we talk about the legalities of using these (and other ) radio modules in our projects.

Staying Legal

Because we are experimenting with devices that transmit radio waves we need to be aware of the regulations regarding unlicensed radio transmitters. These regulations will differ depending upon what area of the world you live in.

It is imperative that you are aware of the laws concerning using these modules in your country!  Failing to abide by these rules can land you in a lot of trouble.

Every country has a regulatory body responsible for radio communications.

The Federal Communications Commision or FCC is the governing body in the United States and its possessions.

The CRTC or Canadian Radio and Television Commision sets the laws in Canada.

In the UK the Office of Communications or OFCOM takes care of the allocation of radio bandwidth.

You can check out this Wikipedia list to find the regulatory body in your country.

In most countries these modules are legal for use providing the following conditions are met:

  • They are operated at low power.
  • They don’t transmit continuously (digital data is intermittent so it satisfies this requirement).
  • They do not transmit voice (digitized voice or sound is OK).

Again you should check with your local authority if there is any doubt BEFORE embarking upon these experiments.

ASK – Amplitude Shift Keying

There are many methods of sending digital data over radio:

  • Frequency Shift Keying or FSK. In this method the digital signal modifies the frequency of the carrier wave. This is similar to Frequency Modulation or FM radio.
  • Phase Shift Keying or PSK.  This works by modifying the phase of the carrier in response to the input signal. Many modems work this way.
  • Amplitude Shift Keying or ASK. This is a simpler method, similar to Amplitude Modulation or AM radio.

Because these modules are very simple we will use ASK.

In Amplitude Shift Modulation the amplitude (i.e. the level) of the carrier wave is changed in response to the incoming data signal.  This is sometimes called Binary Amplitude Shift Modulation as there really are only two levels to be concerned with:

  • Digital 1 – This drives the carrier at full strength.
  • Digital 0 – This cuts the carrier off completely.

This is shown in the following illustration:

Amplitude Shift keying has the advantage of being very simple so the resulting circuitry is simple and inexpensive.

It does have its disadvantages however. ASK is susceptible to interference from other radio devices and background noise.  But as long as you keep your data transmission to a relatively slow speed it can work reliably in most environments.

It also helps to have a good antenna.

Antenna Design

The antenna that you use for both the transmitter and receiver can really affect the range you’ll be able to obtain with these RF modules. In fact without an antenna you’d be lucky to communicate over a distance of more than a meter.

Some users have reported being able to communicate over a distance of 50 meters with the proper antenna design. Of course that is outdoors in an open space. Your range indoors, especially through walls, will be significantly diminished.

The antenna need not be anything fancy. A simple piece of 22 or 24 gauge solid wire can make an excellent antenna for both the transmitter and receiver.

The length of the wire does matter however, as it does for all radio devices. Rather than using a random length of wire you should use one that is an even fraction (i.e .one half or one quarter) of the wavelength of the signal you’re sending.

We are using a frequency of 433MHz in our modules. One wavelength at 433MHz is 69.24 cm. As this is a pretty long antenna (about 27.25 inches) it is more practical to use a half or quarter wave antenna.

Most experimenters use a quarter wave antenna which works out to about 17.3 cm or 6.8 inches.

If you are experimenting with other radio transmitters that use different frequencies you will need to calculate the required antenna length using their wavelength. This online wavelength calculator will assist you in determining how long to make your antenna.

Even a 17.3 cm antenna can seem unwieldy in your tiny Arduino project. It is common to coil the wire on one or both antennas to reduce the size, this sometimes can have the added bonus of increasing efficiency. You can experiment with antenna coils by wrapping the wire around a pencil or pen.

Demo 1 – Sending Data

Now that we have discussed our modules it is time to put them to use!

In our first experiment we will just send a canned message from the transmitter to the receiver. While this isn’t extremely useful it does serve to illustrate how to use the modules and can serve as the basis for more practical experiments and projects. It’s also a great way to see if our antenna design is sound.

As we will be sending data between two Arduinos we will (of course) need two Arduinos. I have shown these experiments using an Arduino Uno but any Arduino will work.

Hooking up the Transmitter

The hookup for the transmitter is very simple, as shown in the following illustration:

The module only has three connection, they are as follows:

  • VCC – This can be any positive DC voltage from 3 to 12 volts. In this experiment we will get 5 volts from our Arduino.
  • GND – The ground connection, connected to one of the Arduino ground terminals.
  • DATA IN – This is connected to pin 12 of the Arduino. You should try and use pin 12 as by default the library we’ll be using in our sketch uses this pin for data output.

You will also want to solder a 17.3 cm piece of solid hookup wire to the antenna terminal on the module.

Once you have the transmitter wired you can move on to the receiver.

Hooking up the Receiver

The receiver is just as easy to hookup as the transmitter was.

Once again there are only three connections to make. Although the receiver module has four pins the two center pins are tied together, so you can use either one for data out.

The connections are as follows:

  • VCC – Unlike the transmitter this needs to be 5 volts. We will use the 5 volt output from the Arduino.
  • GND – Again a ground that is connected to any Arduino ground pin.
  • DATA OUT – This needs to be connected to digital pin 11 on the Arduino.

The antenna connection on the receiver is often unmarked. It is the pad in the lower left of the module, right next to the small coil.

Now that both the transmitter and receiver are wired up we will need to write some code and send it to the respective Arduino boards.  Since you probably have only one computer we will start with the transmitter. Once the code has been loaded there we’ll move on to the receiver. The transmitter can then be powered using a power supply or battery.

But before we start coding there is a library we will need to install into our Arduino IDE that will make writing the code a lot simpler.

RadioHead Library

Radiohead are an English rock band that formed in 1985. This is required knowledge for every Arduino experimenter as they titled one of their most popular albums OK Computer and you have to love that.  This has nothing whatsoever to do with RF modules but I thought I would mention it!

The RadioHead that we are going to talk about is a code library that can be used to drive all sorts of radio communications devices, including our 433MHz modules. It was written by Mike McCauley for Airspayce and is in the public domain.

This is a very complex library, we will only be using the Amplitude Shift Keying code from it.

You will need to download the library from the Airspayce website.

Look for a link to the library at the top of the page and download the ZIP file to a location on your computer that you will remember – your downloads folder is probably as good a place as any.

Now open your Arduino IDE. Go to the Sketch pulldown menu and open the Include Library submenu. Choose Add ZIP library

A dialog box will open, allowing you to navigate to the location you put your RadioHead ZIP file.  Find the file and select it.

The library will be installed into your Arduino IDE. You may need to restart the IDE after doing this.

Now that RadioHead is part of your Arduino IDE you are ready to code.

Demo 1 Transmitter Code

Here is the sketch we will be using for our transmitter:



It’s a pretty short sketch but it’s all you need to get a signal transmitted.

We begin by loading the RadioHead ASK library. We also include the Arduino SPI Library as the ASK library is dependant upon it. If you think about it that makes some sense as we are working with serial data.

Next we create an ASK object to work with, I called mine “rf_driver”.

In the setup we need to initialize the ASK object.

Now the loop. We begin by encoding a message. This needs to be a char data type. This is stored in a variable named “msg”.

The message itself is a text string. You can use any string but keep it fairly short and be sure to count the number of characters in it – you will need that count for the receiver code. In my case my message has 24 characters.

We then send our message and wait for it to be sent. After that we apply a delay to give our receiver time to digest everything – I used one second but in retrospect I wish I had made it a bit longer due to my message length. You can experiment to get the optimum value.

After that the loop repeats and our message is sent over and over.

Now disconnect your computer from the Arduino, find another power supply for the Arduino and power it back up. It will transmit continuously while we code our receiver.

Demo 1 Receiver Code

Hook up the computer to the receiver Arduino and load the following code (remember, all of the code is in a handy ZIP file at the end of the article).


The receive code is also very simple. It starts out exactly the same as the transmit code, loading both the RadioHead and SPI libraries and creating an ASK object.

In the setup routine we initialize the ASK object and we also set up the serial monitor as this is how we will view our received message.

In the loop we set a buffer to match the size of the transmitted message. As my message (“Welcome to the Workshop”) is 24 characters I used a value of 24. You will need to adjust this to match your message length. Be sure to include any spaces and punctuation as they all count as characters.

We then check to see if we received a valid packet. If we do we print it to the serial monitor. Then we go back to the start of the loop and do it all over again.

After loading the code open your serial monitor. If all is working you should see your message.

Although this demo is not particularly useful it can be used to adjust your antenna length and the orientation of the transmitting and receiving antennas.  If you use a battery for the transmitter you can try moving it to different locations to see what sort of range you can obtain.

Demo 2 – Sending Sensor Data

Our first demonstration showed how we can send and receive data using our small modules. Now let’s do something a bit more practical.

In our second demonstration we will use a temperature and humidity sensor with our transmitter. We’ll take readings from the sensor and transmit these to our receiver where we will display them on the serial monitor.

There are a couple of great things about this demonstration:

  • It is a practical application. You can use it to measure the temperature in a remote location like your basement or attic. With the right enclosure you could even use it outdoors.
  • It shows you one method of sending more than one piece of information over the radio link. In this demo we send both temperature and humidity values.

In order to use our temperature and humidity sensor we will need to install some more libraries in our Arduino IDE.

Installing Adafruit Libraries

Our temperature sensor requires a couple of libraries from Adafruit.

If you followed the experiments in the Using the HC-SR04 Ultrasonic Distance Sensor with Arduino article you already have installed these libraries as we used the same temperature and humidity sensor in those experiments.

If you haven’t already installed these libraries you can install them using the Arduino Library Manager.  Just open the Library Manager and search for each library. You need both as the AM2315 library is dependent upon the Unified Sensor library.

Once you have the libraries installed you can wire up your transmitter.

Transmitter Wiring

Wiring the transmitter is very easy as most of it is exactly the same as the first demonstration. The only addition is a DHT22 temperature and humidity sensor. Here is the wiring diagram:

The DHT22 has four pins, one which is unused. It is hooked up as follows:

  • VCC – This is a 5 volt DC input which is taken from the same 5 volt Arduino output as the transmitter power supply.
  • GND – A ground, connected to any Arduino ground pin.
  • DATA OUT – This is the output pin which can be run to any unused Arduino digital I/O pin. I used pin 7.

Once you have wired in your DHT22 you are done with wiring. There are no changes to the receiver wiring, it remains exactly the same as it was in the first demonstration.

Demo 2 Transmitter Code

As we will be sending two data values (temperature and humidity) we need to figure out a way of placing all of that data into one character string. There are many ways of accomplishing this task.

I chose to put both data values in a comma delimited string. This is a common way of sending a line of data. Although this example only uses two data values you could actually add more using the same technique. Keep in mind that you’ll eventually run out of space in the data packets we are sending.

Here is the sketch I came up with to accomplish this:


The sketch begins in the same way as the first demonstration, including both the RadioHead library and the Arduino SPI library.  We also include the DHT library for the DHT22 sensor.

After that we define some constants for the DHT sensor, specifically the pin we have it connected to and the sensor type (the Adafruit library supports several sensors, including the less accurate DHT11).

Next we define some variables. A couple of floats are defined for the temperature and humidity data. As well we define some strings, we’ll need to convert the temperature and humidity floats to strings and assemble them into a comma delimited string so we can send it.

As with the other sketches an ASK object is defined. We also initialize the DHT22 sensor.

In the setup routine we initialize the ASK object and start the DHT sensor. We then move on to the loop.

We start the loop with a delay, this gives the DHT22 sensor some time to stabilize.  After it has stabilized we read the temperature and humidity values from the sensor and assign them to their respective floats.

We then convert both of those floats to strings, which we then use to construct our comma delimited string.

The string is converted into a char named “msg”, the same as we did in the earlier transmitter sketch.  The rest of the sketch is identical to the first transmitter sketch, we send the char and wait until it has been transmitted. Then we start at the top of the loop again.

Once again we will load the sketch into our transmitter Arduino and then disconnect it from the computer. We will power it with a battery or power supply and connect our computer to the receiver Arduino to work on that.

Demo 2 Receiver Code

If you still have the receiver Arduino loaded with the code from the first demonstration you can run it and observe the output on the serial monitor. You should see the temperature and humidity data displayed in a comma delimited string, along with a bit of “junk” after it. That “junk” is actually a null character.

Our receiver code for this demonstration is actually very similar to that of the first demo, all we need to do is change the size of the expected data packet and extract the values from the comma delimited string.

Here is the sketch we  will use to accomplish this:


The sketch starts in what is now a pretty familiar fashion, loading the RadioHead ASK and Arduino SPI libraries.  We then define the same strings we used in the transmitter sketch, one each for temperature and humidity and one for the comma delimited string that we will be receiving.

Again we create an ASK object named “rf_driver”.

In the setup we do exactly what we did in the original receiver sketch, initialize the ASK object and setup the serial monitor parameters.

The loop also starts off the same as the last receiver sketch, the only difference being that our packet size is 11 characters.

If a valid packet is received we convert the received data into a string. This will be our comma delimited text.

The Arduino has no command to extract elements from a delimited string like other higher level programming languages do. So we run a small routine to do that for us. It measures the string length and the position of the comma then uses that information to divide the string into two substrings. We assign each of these substrings to the string variables we created to hold humidity and temperature.

Finally we format the output text and display it on the serial monitor. Then we end the loop and start it all over again.

Load the sketch into the Arduino and then start your serial monitor. If all is working you will see the temperature and humidity displayed on the serial monitor.

Experiment by moving the transmitter to various locations and see how the temperature and humidity differs around your home.


As you can see adding a wireless link to your Arduino projects does not need to be complex or expensive. If all you need to do is send a small bit of data one way these small RF modules are ideal for the job, and the price is easy on the wallet.

You can use the technique for transmitting multiple chunks of data for other applications and sensors. Keep in mind that you could also use this technique to transmit the value of the analog inputs as well, so if you want to build a wireless joystick it shouldn’t be hard to modify the sketch to do exactly that.

So what will you build with your wireless link? Have you discovered any methods of (legally) increasing the range, perhaps a “super antenna”? Let us know in the comments.

Thanks for tuning in!


Parts List

Here are some components that you might need to complete the experiments in this article. Please note that some of these links may be affiliate links, and the DroneBot Workshop may receive a commission on your purchases. This does not increase the cost to you and is a method of supporting this ad-free website.




Code for this Article – All of the sketches used in this article in one ZIP file.

US Frequency Allocation Chart – The allocation of the radio spectrum in the United States

Canadian Frequency Allocation List – A list of the radio frequencies allocated by the CRTC

UK Frequency Allocation Chart – Allocation of radio frequencies in the United Kingdom.

RadioHead Library – The RadioHead Arduino Library for RF modules.

Adafruit Unified Sensor Library – The latest versions of the Adafruit Unified Sensor Library.

Adafruit AM2315 Library – The Adafruit library for temperature and humidity sensors.


Using Inexpensive 433MHz Transmit and Receive Modules with Arduino
Using Inexpensive 433MHz Transmit and Receive Modules with Arduino
Article Name
Using Inexpensive 433MHz Transmit and Receive Modules with Arduino
Learn to use 433 MHz radio modules with the Arduino for inexpensive one-way data communication.
Publisher Name
DroneBot Workshop
Publisher Logo
Tagged on:     
Notify of

Inline Feedbacks
View all comments
6 years ago

Can we check the amount of power the receiver is receiving using arduino? If yes, then how?

6 years ago

Hi, thanks for your good tutorial. It’s great! I would like to send three variables, temperature, humedity and light sensor. Could you help me about this sketch? Thank you very much

Tony B
6 years ago

Thanks for the thorough, informative video and web page. They’re consistently high quality, useful, and interesting.

5 years ago

Hallo, I would like to ask, if is possible to send data integer with 433 mHz, or how to convert them in the reciever.
I would like to control a servo with 433 mHz, but the servo needs data integer (if I know), but I am still able to get the data just char or array.

5 years ago

I have followed everything but the humidity & temperature is not displaying on the serial monitor.
I keep having
Humidity: NAN temperature: NANO

I need help.

Joe Harney
3 years ago
Reply to  David

Did you find a fix for this, I’m having the same issue

Mike Blatz
5 years ago

Trying to understand whether the “libraries” are loaded into the IDE only?
I’d like to see a brief discussion clarifying the relationship between the various coding elements and what ends up where, e.g. is the code that’s uploaded to the Arduino purely compiled output code (a product of the written and “library” code), or does the upload contain the “libraries” or parts thereof, that are called into action when required?

David Wreski
5 years ago

It is really great that you do so much with the Arduino. But, how about doing the same or more projects with the PIC processor and Great Cow Basic or the PICAXE series of PIC processors ? This would open your great instructional videos to many more of us , me too ! I am sure you could give great instructions to the Great Cow Basic users.
Thanks for your great videos.

5 years ago

Good evening dear sir,
i studied your article above, it is very helpful my project. i’m new to the RF module can please provide guide for how to compare the received data.i got the output with the above code to check the RF module with arduino. but for my project i have to compare the integer data received by RF receiver and transmitted from RF transmitter. please help me sir.
Thanking you sir,

5 years ago

Hi, Thanks for the tutorial. Hoping you could answer this question. If I wanted to check the variable str_out, to compare to a fixed string (verification step), could I do this?
if (str_out == “secret text”){
Do this….

Thank you

Alnoor Ratansi
5 years ago

It would be great if you could modify the tutorial a bit, to do for example on the transmit side push a button and it would send a signal to turn on led on receiver side, and stay on until you the button push again and it would turn it off (Toggle).

Jack Riley
5 years ago

Hello there,

When I try to run this sketch I always get this error message? Is this supposed to happen?

Error message:
warning: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]

static char *msg = str_out.c_str();

Many thanks

5 years ago
Reply to  Jack Riley

I got the same error but I updated the Arduino IDE and everything is working just fine.

5 years ago

can i use the same code for FSK modulation? with SRX822 i can work in FSK?

Vinit Bilwan
5 years ago

Kitna Deti hai??
I mean, maximum range the setup?

5 years ago

hello that is great, would you help me make a wireless finger print sensor project using the reciver and trensmiter?longing to hear from you

5 years ago

Hi, Thanks for the tutorial, i am building a similar Project for college but instead of 2 sensors, i am trying to send 4 temperature sensors separated by the “coma”. It is posibile to use str_out = sensor1 +”,”+ sensor 2 +”,”+ sensor3 +”,”+ sensor4; And the same “if” statement for the RX?

Ben Page
5 years ago

Hi thanks for this article, it’s great.

I’m using a similar receiver to you, but I couldn’t find any data about what the middle two pins are for.

In my circuit I was using the pin adjacent to VCC for data out but i see you are using the pin next to GND

I wonder if you had any ideas what the two pins are supposed to be for?

5 years ago

You are a genius! The knowledge that you posses is one thing but how you can put together all these tutorials is something else! The quality of your job is outstanding. Thank you very much for this.

4 years ago

Dear sir,

I am working on similar project. I have successfully installed the RH_ASK.h file. But when I tried to upload the same example codes, I got this error msg:

Invalid library found in C:\Program Files (x86)\Arduino\libraries\RH_ASK: C:\Program Files (x86)\Arduino\libraries\RH_ASK

Appreciate your comments on what’s wrong with my setting.

Thank you.

4 years ago

I followed exactly your steps. But I kept getting invalid library found C:\Program……\….\RH_ASK
Any idea what’s wrong ?

Thank you.

4 years ago

Hello, I am a hobbylist trying to make a better antenna
and I was confused about the schematics of the module,
is one of the dipole antenna grounded, and the other connected to the IC?
while the nordic company gives schematic with a short antenna connect to IC without grounded,
the nRF24 module in the photo (looks same with mine) has antenna grounded
Can somebody give or find explaination of it?

4 years ago

This is really cool. How do you add a THIRD parameter, eg volts, to the part where the receiver creates the substring. I created the string on the Tx side, but when I get down to the substrings, I’m hooped. (see commented out line:)
// Split string into two values
for (int i = 0; i < str_out.length(); i++) {
if (str_out.substring(i, i + 1) == ",") {
str_humid = str_out.substring(0, i);
str_temp = str_out.substring(i + 1);
//str_volts= str_out.substring (

4 years ago

I went through execution of the project, the output on serial monitor is not displayed correctly, like
“Humidity: NAN ; Temperature: NAN?*” ,. Can you help me with it please.

Joe Harney
3 years ago
Reply to  Narendar

Did you find a fix for this, I’m having the same issue

4 years ago

Hello, I have tried using the transmitter and receiver on one Arduino board (UNO) and messages are transmitted but there is no reception. I tried a different iibrary, RCSwitch, and there both transmission and reception worked. No such luck with radiohead. I am curious why and grateful for any help.

Gavin Reece
4 years ago

I ca not upload the library to Arduino editor.

4 years ago


Eric Fizer
4 years ago

Thanks for this amazing video!

Is there anyway you could show/help me setup the same RF transmitter and receiver using 2 ESP8266’s?

WolfgangW / Germany
3 years ago

if just everyone would share knowledge in such kind of quality, i.e. video, web site and so on, I think we would have a better world of learning. Remembering back to the time I went to school, I wish we have had such teachers and well of course these possibilities.

Thanks a lot for this.

Sylvain Caron
3 years ago

Great video, I am trying to mixed the 433mhz quith the wireless robot and I am not able to received data sent from a joystick. This is part of my code: Sender (Joystick) RH_ASK rf_driver; Loop …  // Read the Joystick X and Y positions  joyposVert = analogRead(joyVert);  joyposHorz = analogRead(joyHorz);  str_joyposVert = String(joyposVert);  str_joyposHorz = String(joyposHorz);  // String component   str_out = str_joyposVert + “,” + str_joyposHorz;  static char *msg = str_out.c_str();  rf_driver.send((uint8_t *)msg, sizeof(msg));  rf_driver.waitPacketSent(); Receiver prog. setup:  rf_driver.init();  delay (1000);  if (!rf_driver.init())   Serial.println(“non init”);  else Serial.println(“OK”); I get “OK” loop:  if (rf_driver.available())   Serial.println(“Driver available”);  else Serial.println(“not available”); I… Read more »

3 years ago

I have tried to follow
“how to make a connectin with arduino tx and rx
After various efforts it was still the same. no connection
suddenly was the solution
That module tx was 315 Mhz and the rx 433.
Perhaps can you write this in your very good help on internet, youtube and so on

john costisick
3 years ago

I was having distance problems with the ulta cheap modules. I upgraded to a TX/RX pair with a superhetrodyne receiver. it’s $9 on amazon but the range is much better. They operate at the same frequency but the receiver quality is much better. I am currently teaching myself Arduino/C programming and your examples are a wonderful tool. Thank you very much.

Gary Hutton
3 years ago

I am planning to use the 433 MHz modules to transmit signals from a joystick to run a robot car. I also have a ham license (ke7uia) and perhaps could implement the feature of more power. I suppose to do this is just to include my call sign with each message sent, then removing it at the receive station.

Bob Wareham
3 years ago

Hi Bill thank you for another good video this will help a lot as I want to make a door sensor with a PIR sensor to detect the presents of someone entering my porch and send me an alarm in my workshop can I ask you to do a video on decoding 433Mhz signals with Arduino as I am going to make my transmitters with PT2262 and switch the TX on with a mosfet from a PIR the TX will then send a code to the RX and Arduino

Larry Agawin
3 years ago

Been an avid viewer for some time. Really enjoying your posts and learning. thank you!

Rodolfo Rocha
3 years ago

como que faço para incluir mais uma string? tentei de todas as formas delimitar a virgula para caber mais caracteres mas não consegui. Quero os dados de temperatura, Umidade (DHT11) e Luminosidade(LDR). Alguém por gentileza pode me ajudar a organizar as strings ?

3 years ago

Making 2-5 chat terminals for my kids?

Ron Mason
3 years ago

how can i make it display in Fahrenheit?


3 years ago

hello. I made a project with this RF module and I put a stepper motor and it works fine. but i need some help with the sketch.
how can i define 1 button of remote control to turn the motor shaft CW and CCW ?
i mean when i pressed the button the motor turned 45 degree CW then the button didn’t accept the same command and turn the shaft that way again but when I hit the button again its turn the shaft in upposit direction.
is that possible to answer me

3 years ago

#include “Stepper.h”

#define STEPS 200
int Steps2Take;

Stepper small_stepper(STEPS, 2, 3);

void setup()

void loop()

 while (digitalRead (9) == HIGH)
  Steps2Take = 2200;
  small_stepper.step(Steps2Take) ;
  delay (10000);

 while (digitalRead (10) == HIGH)
  Steps2Take = -2200;
  small_stepper.step(Steps2Take) ;
  delay (10000);


Yogeshkumar Patel
3 years ago

can we use this rf link for drones?

Daniel Cotterell
2 years ago

Hi Bill,
I liked your video on RF 433 mHz so much that I purchased a few from Universal Solder (the next best thing to Aliexpress, without the 3 month wait).
I have had a problem getting the ASK library, Radio head shows it as a text file, but I can’t find the zip file, I will try doing some more searching.

Your website is the best, and your videos are super informative, thanks for doing such a great job!


André Koller
2 years ago


Clean proceedings. Thorough understanding. Clear explanations. Well done!

2 years ago

I love the videos from Dronebotworkshop. Pity the RF project complicates matters by measuring two variables when I have only one!


2 years ago

Amazing project – thank you so much. How would you extend this to broadcast a pre-recorded voice message that could be heard by a handie monitoring the right frequency?

2 years ago

Thanks for such detailed explanation. I was wondering whether this 433MHz module can be used for voice communication.

2 years ago

Very extensive explanation. Impressive! Just a small tip, the regulator list on wiki needs updating (missing countries, dead links and links to commercial organisation instead of government agencies). We have created and cure our own list. Hope this helps.

2 years ago

The radiohead library doesn’t work with EVERY Arduino (as it says above). It does not work with Arduino UNO wifi2, because of some problem with the timers. Regular UNO works fine, but doesn’t have as good specs and speed as the wifi2

1 year ago

can you use multiple transmitters

1 year ago

great help thanx

Neff, Stephen Andrew
1 year ago

Great setup information on using the 433 rf module.
I’m using 1/4 wave antennas I made from buss wire.
Transmitter and receiver work as expected. Now
I’m going to integrate a Ultrasonic sensor for use
in a water tank gauge. Great Website!

Quang Nguyen
1 year ago

Hi, thank you for sharing your wealth of knowledge with us. Could you advise on how I can have a PIR sensor in one room and trigger a passive buzzer in another room? All I have on hand is a PIR, a Nodemcu ESP8266, a HC-06, a Pico W, a Pi Zero 2 W, an Arduino Mega, and a buzzer. I just don’t know the best way to approach this. I’m using Arduino IDE. Could you point me in the right direction, any resources I can read? Thank you in advance.