The wireless programming module (WPM) is designed for wireless upload skectch/codes to Arduino. With up-to 5 meters range, you can bring your laptop and do a wireless programming for your already deployed Arduino based devices which is hard to open. Cut the wire, and try this superb communication module.

This module can also be used as a standard bidirectional wireless communication module with up to 20 meters range and 115200 bps speed(line in sight). When uses as communication modules, it exchanges data as a transparent serial port. Only Tx/Rx will be required to do the transmission.


Pin Out Diagram


Configuration Tools

The configuration tools can be used to configure the Wireless Programming Module(WPM).

Fig1:Step3 to Step5

Fig2:Apply Setting for Arduino UNO

Application with an Arduino board

1.When using WPMs to upload code for your remote Arduino processor,you need a pair of this module.

2.As the Arduino board does not have to connect with PC, so do not forget external power supply, such as some batteries.

Setting for the WPM

Test Code

Upload this code into the UNO board when the configuration and connection have been finished.

const int ledPin =  13;      // the number of the LED pin

// Variables will change:
int ledState = LOW;             // ledState used to set the LED
long previousMillis = 0;        // will store last time LED was updated

long interval = 1000;           // interval at which to blink (milliseconds)

void setup() {
  // set the digital pin as output:
  pinMode(ledPin, OUTPUT);

void loop()
  unsigned long currentMillis = millis();

  if(currentMillis - previousMillis > interval) {
    // save the last time you blinked the LED
    previousMillis = currentMillis;

    // if the LED is off turn it on and vice-versa:
    if (ledState == LOW)
      ledState = HIGH;
      ledState = LOW;

    // set the LED with the ledState of the variable:
    digitalWrite(ledPin, ledState);


NOTE: This module is not compatible with Mega 2560



The WPM has a 11 registers to hold parameters.

Register Address Name
1 Baud Rate
2 Baud Rate
3 Baud Rate
4 Address Register
5 Address Register
6 Address Register
7 Address Register
8 Address Register
9 Frequency Register
10 Air Rate Register
11 Timeout Register

Advanced Settings

To program various Arduino boards, the baud rate need to be set to match the proper Arduino board before wireless programming.

For example, the Arduino UNO has 115200bps programming baud rate while the Arduino Mega 1280 has 57600bps programming baud rate.

Arduino Model Baud Rate Timeout
Arduino Uno 115200 20
Arduino Duemilanove or Nano w/ ATmeg328 57600 20
Arduino Diecimila,Duemilanove,or Nano w/ ATmega168 19200 10
Arduino Mega (ATmega1280) 57600 20
Arduino Mini 19200 10
Arduino Fio 57600 20
Arduino BT w/ ATmega328 19200 10
Arduino BT w/ ATmega168 19200 10
LilyPad Arduino w/ ATmega328 57600 20
LilyPad Arduino w/ ATmega168 19200 10
Arduino Pro or Pro Mini (5V,16MHz) w/ ATmega328 57600 20
Arduino Pro or Pro Mini (5V,16MHz) w/ ATmega168 19200 10
Arduino Pro or Pro Mini (3.3V,8MHz) w/ ATmega328 57600 20
Arduino Pro or Pro Mini (3.3V,8MHz) w/ ATmega168 19200 10
Arduino NG or older w/ ATmega168 19200 10
Arduino NG or older w/ ATmega8 19200 10


Function: Display the module setting


Function:Apply the change and reset the module

Function:Write value to EEPROM

Function:Read value from EEPROM


Q&A Some general Arduino Problems/FAQ/Tips
A For any questions, advice or cool ideas to share, please visit the DFRobot Forum.


DFshopping_car1.png Get Product Name from DFRobot Store or DFRobot Distributor.

Turn to the Top