Low cost superheterodyne receiver and ASK transmitter. The transmitter consists of a single digital input pin that, when pulled high, will cause the transmitter to continuously transmit a signal at 433MHz. Conversely the receiver has a single digital output pin that is high when a signal is received. The simplicity of these modules makes them ideal for applications where low power and low data rate (4Kbps) applications are required. The modules operates on a single channel so multiple transmitters can transmit to a single receiver and vice versa.
For Arduino users we have created an exclusive library (HCWireless) that makes transferring data over these modules as simple as possible.
RECEIVER MODULE PARAMETERS:
Product Code: HCMODU0151
Model: MX-05V
Working voltage: 5V DC quiescent current: 4mA
Receiver Frequency: 433.92MHZ
Receiver sensitivity:-105DB
Size: 30 * 14 * 7mm
TRANSMITTER MODULE PARAMETERS:
Product Code: HCMODU0151
Model: MX-FS-03V
Transmission Distance :20-30m (dependent on supply voltage)
Operating Voltage :3.5-12V
Dimensions: 19 * 19mm
AM transfer rate: 4Kb/s (4000 bits per second)
Transmission power: 10mW
Emission frequency: 433M
PINOUTS:
MX-FS-03V Schematic:
MX-05V Schematic:
Example 'Blink' Tx Sketch:
- /* FILE: HCWireless_Blink_Tx_Example.ino
- DATE: 19/06/19
- VERSION: 1.0
- AUTHOR: Andrew Davies
- 19/06/19 version 1.0: Original version
- This sketch demonstrates how to use the HCWireless library to remotely control the
- state of an LED connected to the Arduino at the receiving end. This sketch should be used
- in conjunction with the HCWireless_Blink_Rx_Example at the receiving end.
- Currently this sketch supports the following products:
- 433MHz wireless transmitter MX-FS-03V & receiver modules MX-05 available via our store
- https://hobbycomponents.com/wired-wireless/168-433mhz-wireless-modules-mx-fs-03v-mx-05
- This library is provided free to support the open source community.
- We spend most of our time creating free content like this because we genuinely
- want to support the open source community. PLEASE SUPPORT US so that we can
- continue to create free content by purchasing products from our store -
- HOBBYCOMPONENTS.COM
- You may copy, alter and reuse this code in any way you like, but please leave
- reference to HobbyComponents.com in your comments if you redistribute this code.
- This software may not be used directly for the purpose of selling products that
- directly compete with Hobby Components Ltd's own range of products.
- THIS SOFTWARE IS PROVIDED "AS IS". HOBBY COMPONENTS MAKES NO WARRANTIES, WHETHER
- EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ACCURACY OR LACK OF NEGLIGENCE.
- HOBBY COMPONENTS SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR ANY DAMAGES,
- INCLUDING, BUT NOT LIMITED TO, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY
- REASON WHATSOEVER.
- */
- #include "HCWireless.h"
- // Digital pin used to connect to the Tx modules data input pin
- #define TX_PIN 8
- // Create an instance of the library
- HCWireless HCWireless;
- boolean ledState = false;
- void setup()
- {
- // Initialise the Tx part of the library
- HCWireless.txInit(TX_PIN);
- }
- void loop()
- {
- // Send the current state of the LED
- HCWireless.send(ledState);
- // Toggle to LED state and wait 1 second before sending the new state
- ledState = !ledState;
- delay(1000);
- }
Example 'Blink' Rx Sketch:
- /* FILE: HCWireless_Blink_Rx_Example.ino
- DATE: 19/06/19
- VERSION: 1.0
- AUTHOR: Andrew Davies
- 19/06/19 version 1.0: Original version
- This sketch demonstrates how to use the HCWireless library to remotely control the
- state of an LED connected to the Arduino at the receiving end. This sketch should be used
- in conjunction with the HCWireless_Blink_Tx_Example at the transmitting end.
- Currently this sketch supports the following products:
- 433MHz wireless transmitter MX-FS-03V & receiver modules MX-05 available via our store
- https://hobbycomponents.com/wired-wireless/168-433mhz-wireless-modules-mx-fs-03v-mx-05
- This library is provided free to support the open source community.
- We spend most of our time creating free content like this because we genuinely
- want to support the open source community. PLEASE SUPPORT US so that we can
- continue to create free content by purchasing products from our store -
- HOBBYCOMPONENTS.COM
- You may copy, alter and reuse this code in any way you like, but please leave
- reference to HobbyComponents.com in your comments if you redistribute this code.
- This software may not be used directly for the purpose of selling products that
- directly compete with Hobby Components Ltd's own range of products.
- THIS SOFTWARE IS PROVIDED "AS IS". HOBBY COMPONENTS MAKES NO WARRANTIES, WHETHER
- EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ACCURACY OR LACK OF NEGLIGENCE.
- HOBBY COMPONENTS SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR ANY DAMAGES,
- INCLUDING, BUT NOT LIMITED TO, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY
- REASON WHATSOEVER.
- */
- #include "HCWireless.h"
- // Digital pin connected to the Rx modules data output pin
- #define RX_PIN 8
- // Digital pin connected to the LED
- #define LED_PIN 13
- // Set the size of the Rx buffer in bytes (max = 255 bytes)
- #define RX_BUFFER_SIZE 20
- // Create an instance of the library
- HCWireless HCWireless;
- void setup()
- {
- Serial.begin(9600);
- // Initialise the Rx part of the library
- boolean result = HCWireless.rxInit(RX_PIN, RX_BUFFER_SIZE);
- if(!result)
- {
- Serial.println("Error: Can't allocate memory for Rx buffer");
- while(1);
- }
- pinMode(LED_PIN, OUTPUT);
- }
- void loop()
- {
- // Check to see if an LED state has been received...
- if(HCWireless.available())
- {
- // ...if so then get the state and write it to the LED pin
- boolean state = HCWireless.readByte();
- digitalWrite(LED_PIN, state);
- }
- }
Example Send Message Tx Sketch:
- /* FILE: HCWireless_Send_Text_Tx_Example.ino
- DATE: 19/06/19
- VERSION: 1.0
- AUTHOR: Andrew Davies
- 19/06/19 version 1.0: Original version
- This sketch demonstrates how to use the HCWireless library to send a string
- of text to the receiver. This sketch should be used in conjunction with the
- HCWireless_Send_Text_Rx_Example at the receiving end.
- Currently this sketch supports the following products:
- 433MHz wireless transmitter MX-FS-03V & receiver modules MX-05 available via our store
- https://hobbycomponents.com/wired-wireless/168-433mhz-wireless-modules-mx-fs-03v-mx-05
- This library is provided free to support the open source community.
- We spend most of our time creating free content like this because we genuinely
- want to support the open source community. PLEASE SUPPORT US so that we can
- continue to create free content by purchasing products from our store -
- HOBBYCOMPONENTS.COM
- You may copy, alter and reuse this code in any way you like, but please leave
- reference to HobbyComponents.com in your comments if you redistribute this code.
- This software may not be used directly for the purpose of selling products that
- directly compete with Hobby Components Ltd's own range of products.
- THIS SOFTWARE IS PROVIDED "AS IS". HOBBY COMPONENTS MAKES NO WARRANTIES, WHETHER
- EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ACCURACY OR LACK OF NEGLIGENCE.
- HOBBY COMPONENTS SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR ANY DAMAGES,
- INCLUDING, BUT NOT LIMITED TO, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY
- REASON WHATSOEVER.
- */
- #include "HCWireless.h"
- // Digital pin used to connect to the Tx modules data input pin
- #define TX_PIN 8
- // Create an instance of the library
- HCWireless HCWireless;
- void setup()
- {
- // Initialise the Tx part of the library
- HCWireless.txInit(TX_PIN);
- }
- void loop()
- {
- // Send some text once a second.
- HCWireless.send("Hello");
- HCWireless.send("World!");
- delay(1000);
- }
Example Send Message Rx Sketch:
- /* FILE: HCWireless_Send_Text_Rx_Example.ino
- DATE: 19/06/19
- VERSION: 1.0
- AUTHOR: Andrew Davies
- 19/06/19 version 1.0: Original version
- This sketch demonstrates how to use the HCWireless library to receive a string
- of text from the transmitter. This sketch should be used in conjunction with the
- HCWireless_Send_Text_Tx_Example at the transmitting end.
- Currently this sketch supports the following products:
- 433MHz wireless transmitter MX-FS-03V & receiver modules MX-05 available via our store
- https://hobbycomponents.com/wired-wireless/168-433mhz-wireless-modules-mx-fs-03v-mx-05
- This library is provided free to support the open source community.
- We spend most of our time creating free content like this because we genuinely
- want to support the open source community. PLEASE SUPPORT US so that we can
- continue to create free content by purchasing products from our store -
- HOBBYCOMPONENTS.COM
- You may copy, alter and reuse this code in any way you like, but please leave
- reference to HobbyComponents.com in your comments if you redistribute this code.
- This software may not be used directly for the purpose of selling products that
- directly compete with Hobby Components Ltd's own range of products.
- THIS SOFTWARE IS PROVIDED "AS IS". HOBBY COMPONENTS MAKES NO WARRANTIES, WHETHER
- EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ACCURACY OR LACK OF NEGLIGENCE.
- HOBBY COMPONENTS SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR ANY DAMAGES,
- INCLUDING, BUT NOT LIMITED TO, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY
- REASON WHATSOEVER.
- */
- #include "HCWireless.h"
- // Digital pin used to connect to the Rx modules data output pin
- #define RX_PIN 8
- // Set the size of the Rx buffer in bytes (max = 255 bytes)
- #define RX_BUFFER_SIZE 20
- // Create an instance of the library
- HCWireless HCWireless;
- // Character array used to store the received string. Note that this array must be big
- // enough to hold the string being received (including 1 byte for the strings null termination)
- char buffer[10];
- void setup()
- {
- Serial.begin(9600);
- // Initialise the Rx part of the library
- boolean result = HCWireless.rxInit(RX_PIN, RX_BUFFER_SIZE);
- if(!result)
- {
- Serial.println("Error: Can't allocate memory for Rx buffer");
- while(1);
- }
- }
- void loop()
- {
- // Check to see if any data has been received...
- byte size = HCWireless.available();
- // ...if so then transfer the data into the buffer and then print it out.
- if(size)
- {
- HCWireless.readBytes(buffer, size);
- Serial.println(buffer);
- }
- }
Example Send Structure Tx Sketch:
- /* FILE: HCWireless_Send_Struct_Tx_Example.ino
- DATE: 19/06/19
- VERSION: 1.0
- AUTHOR: Andrew Davies
- 19/06/19 version 1.0: Original version
- This sketch demonstrates how to use the HCWireless library to transmit the contents of
- a structure. This sketch should be used in conjunction with the HCWireless_Send_Struct_Rx_Example
- at the receiving end.
- Currently this sketch supports the following products:
- 433MHz wireless transmitter MX-FS-03V & receiver modules MX-05 available via our store
- https://hobbycomponents.com/wired-wireless/168-433mhz-wireless-modules-mx-fs-03v-mx-05
- This library is provided free to support the open source community.
- We spend most of our time creating free content like this because we genuinely
- want to support the open source community. PLEASE SUPPORT US so that we can
- continue to create free content by purchasing products from our store -
- HOBBYCOMPONENTS.COM
- You may copy, alter and reuse this code in any way you like, but please leave
- reference to HobbyComponents.com in your comments if you redistribute this code.
- This software may not be used directly for the purpose of selling products that
- directly compete with Hobby Components Ltd's own range of products.
- THIS SOFTWARE IS PROVIDED "AS IS". HOBBY COMPONENTS MAKES NO WARRANTIES, WHETHER
- EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ACCURACY OR LACK OF NEGLIGENCE.
- HOBBY COMPONENTS SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR ANY DAMAGES,
- INCLUDING, BUT NOT LIMITED TO, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY
- REASON WHATSOEVER.
- */
- #include "HCWireless.h"
- // Digital pin used to connect to the Tx modules data input pin
- #define TX_PIN 8
- // Create an instance of the library
- HCWireless HCWireless;
- // Create a structure to send
- typedef struct
- {
- byte testByte;
- int testInt;
- float testFloat;
- boolean testBoolean;
- } teststruct;
- teststruct data;
- void setup()
- {
- // Initialise the Tx part of the library
- HCWireless.txInit(TX_PIN);
- // Put some test data into the structure
- data.testByte = 12;
- data.testInt = -3456;
- data.testFloat = 0.78;
- data.testBoolean = true;
- }
- void loop()
- {
- // Send the contents of the structure once a second.
- HCWireless.send(data);
- delay(1000);
- }
Example Send Structure Rx Sketch:
- /* FILE: HCWireless_Send_Struct_Rx_Example.ino
- DATE: 19/06/19
- VERSION: 1.0
- AUTHOR: Andrew Davies
- 19/06/19 version 1.0: Original version
- This sketch demonstrates how to use the HCWireless library to transmit the contents of
- a structure. This sketch should be used in conjunction with the HCWireless_Send_Struct_Tx_Example
- at the transmitting end.
- Currently this sketch supports the following products:
- 433MHz wireless transmitter MX-FS-03V & receiver modules MX-05 available via our store
- https://hobbycomponents.com/wired-wireless/168-433mhz-wireless-modules-mx-fs-03v-mx-05
- This library is provided free to support the open source community.
- We spend most of our time creating free content like this because we genuinely
- want to support the open source community. PLEASE SUPPORT US so that we can
- continue to create free content by purchasing products from our store -
- HOBBYCOMPONENTS.COM
- You may copy, alter and reuse this code in any way you like, but please leave
- reference to HobbyComponents.com in your comments if you redistribute this code.
- This software may not be used directly for the purpose of selling products that
- directly compete with Hobby Components Ltd's own range of products.
- THIS SOFTWARE IS PROVIDED "AS IS". HOBBY COMPONENTS MAKES NO WARRANTIES, WHETHER
- EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ACCURACY OR LACK OF NEGLIGENCE.
- HOBBY COMPONENTS SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR ANY DAMAGES,
- INCLUDING, BUT NOT LIMITED TO, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY
- REASON WHATSOEVER.
- */
- #include "HCWireless.h"
- // Digital pin connected to the Rx modules data output pin
- #define RX_PIN 8
- // Set the size of the Rx buffer in bytes (max = 255 bytes)
- #define RX_BUFFER_SIZE 20
- // Create an instance of the library
- HCWireless HCWireless;
- // Create a structure to hold the received data
- typedef struct
- {
- byte testByte;
- int testInt;
- float testFloat;
- boolean testBoolean;
- } teststruct;
- teststruct data;
- void setup()
- {
- Serial.begin(9600);
- // Initialise the Rx part of the library
- boolean result = HCWireless.rxInit(RX_PIN, RX_BUFFER_SIZE);
- if(!result)
- {
- Serial.println("Error: Can't allocate memory for Rx buffer");
- while(1);
- }
- }
- void loop()
- {
- // Check to see if any data has been received...
- byte size = HCWireless.available();
- if(size)
- {
- // ...if so then transfer the data out of the Rx buffer and into the structure
- HCWireless.read(data);
- // Print out the contents of the structure
- Serial.println(data.testByte);
- Serial.println(data.testInt);
- Serial.println(data.testFloat);
- Serial.println(data.testBoolean);
- Serial.println();
- }
- }
HCWireless Library:
The HCWireless library for the above sketches can be downloaded from the software section of out support forum here:
http://forum.hobbycomponents.com/viewto ... =58&t=2914
FAQ
Can I transmit to more than one receiver?
Yes, all modules operate on the same channel so any receiver will receive data from any transmitter in range.
Can I receive data from more than one transmitter?
Yes, see above.
What is the fastest data rate I can send using these modules?
You can seen a maximum of 4000 (4Kb/s) bits per second. Please note that the receiver has an auto gain circuit and when not receiving a signal will set its gain to maximum. When this occurs the output pin on the receiver may randomly toggle as it picks up random signals or noise. Therefore when transmitting a signal to the receiver the transmitter must fist send a preamble signal of ~15ms to allow the receiver to adjust it's gain to the correct level.
Disclaimer: Libraries, example code, and diagrams within this forum thread are provided as an additional free service by Hobby Components and are not sold as part of any product. We do not provide any guarantees or warranties as to their accuracy or fitness for purpose.
Descriptions and diagrams on this page are copyright Hobby Components Ltd and may not be reproduced without permission.