Unlike any other Bluetooth module, you can use the EZ-Link to program an Arduino. The reason this is possible is because EZ-Link can dynamically change the baud rate and has the ability to send the DTR signal from the Arduino IDE wirelessly through the module. Both are required if you want to be able to quickly change to the 115.2K signal required for upload and toggle the DTR lines.
This techique can be used for Arduino Uno, Duemilanove, Mega and any other ATmega328/168/1280/2560 based Arduinos that use a USB->Serial converter. It won't work with "USB" Arduinos such as the Leonardo/Micro/Flora since they need a direct USB connection
This technique has been tested on Mac OS X and Windows 7, but should work identically on any other OS.

You can use any version of the Arduino IDE with this technique, the Bluetooth part is completely transparent to the software

Before you start

You will need to first be paired to the module, and ideally go through the loopback test so you know that's all working!


Wire up the EZ-Link to the Arduino as follows, we'll be using an Uno but the wiring is the same for another kind of Arduino/Compatible.

  • EZ-Link GND to Arduino GND
  • EZ-Link DSR to GND (or no connect)
  • EZ-Link Vin to Arduino 5V (or any other 3-16V power input, 5V is ideal)
  • EZ-Link TX to Arduino #0 (RX)
  • EZ-Link RX to Arduino #1 (TX)
  • EZ-Link DTR to a 1uF capacitor in series with Arduino Reset (The cap is in series, so Reset goes to the capacitor +, and capacitor - goes to DTR)
If you're using an Arduino compatible such as a Mini or Boarduino (or any of the other hundreds of Arduino-compat's), chances are it has an FTDI connector on it. You can plug the EZ-Link directly in, the GND pin lines up with the Black wire, and the DTR pin lines up with the Green wire. No other components are required


That's it! Now you can open up the Arduino IDE and select the COM/Serial port that you identified as the EZ-Link. If you open and close the Serial Monitor you should see the Arduino reset (the L pin #13 LED will blink)

If you're using Windows, the Arduino IDE might be a little sluggish while selecting the Bluetooth COM port, this is due to a bug in the underlying Java RX/TX library. You can fix it by following the instructions in this Arduino forum post

Now make sure you have the right Arduino board select and upload as usual.
Since opening and closing a bluetooth connection takes a few seconds, there will be an extra 10 second delay when starting the upload process. This is due to the Bluetooth wireless protocol and how the Arduino IDE opens and closes the connection a few times to reset the Arduino. Please be patient!

This guide was first published on Nov 18, 2013. It was last updated on Sep 20, 2016.

This page (Arduino Programming) was last updated on Nov 14, 2013.

Text editor powered by tinymce.