Arduino Bluetooth Programming Shield (wireless Upload Code)



Introduction: Arduino Bluetooth Programming Shield (wireless Upload Code)

This project will show you how to make a wireless upload Arduino code from your Computer via Bluetooth.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Step #1: Breadboard the Bluetooth Module Setup Circuit.

•The Bluetooth module used in this project is the HC-05. It is inexpensive and one of the most common modules you'll see in a lot of other projects. The HC-05 is sold bare or mounted to a breakout board. You want one on a 6-pin breakout board. You can find them for sale on eBay and Amazon. The datasheet for the module is here. •Using a breadboard, temporarily wire the HC-05 Bluetooth module per the schematic. •With 3.3v on the Key pin, the module will enter 38400 baud command mode and will accept AT commands. The Key pin must be connected to 3.3v when the module is powered on. If it is connected afterwards, the module will enter command mode at the default baud rate (as set by the 'AT+UART=' command or 9600 baud from the factory).

Step 2: Step #2: Upload the Arduino Setup Sketch

Get the sketch from here and upload it to your Arduino.

Step 3: Step #3: Run the Setup Sketch and Enter Serial Commands.

Open the serial console and make sure the baud rate is set to 9600 and line endings is set to be "Both NL & CR"

•Enter the following AT commands into the serial console one by one: AT+ORGL AT+ROLE=0 AT+POLAR=1,0 AT+UART=115200,0,0 AT+INIT In order, these commands tell the module to reset to factory settings, switch to slave role (transparent serial bridge), set pin 32 low on Bluetooth connection, change baud rate to match the Arduino Uno programming rate, and to initialize. •Disconnect 3.3v from the Key pin and cycle the power to the module. It will now be running at 115200 baud and be in pairing mode.

Step 4: Step #4: Setup the Bluetooth Module in Windows.

•From the Control Panel select Add a Device.
•Add the Bluetooth module. •Select enter pairing code option.

Step 5: Step #5: Setup the Bluetooth Module in Windows.

•Enter "1234" for the pairing code.
•At the Add a device success window, click Close. •Device ready to use. The OS will create two serial COM ports associated with the device. Always use the one with the lower number.

Step 6: Step #6: Solder a Jumper Onto the Bluetooth Module.

DIY Arduino Bluetooth Programming Shield•Disassemble the breadboarded circuit. Solder a jumper wire directly to the HC-05's Pin 32.
•Don't forget to use flux. •You may want to use hot glue or tape to protect the joint.

Step 7: Step #7: Build the Programmer Circuit.

•Build the programmer circuit onto the prototyping shield.
•Solder on a female header for the Bluetooth module if you want to be able to easily remove it later.

Step 8: Step #8: Program the Arduino With Bluetooth!

Power on the Arduino from a battery or AC adapter.
•In the Arduino IDE, choose the serial port of the Bluetooth module (the lower valued one of the two(21 and 25) and then upload a sketch like normal.

Arduino All The Things! Contest

Participated in the
Arduino All The Things! Contest

Be the First to Share


    • Raspberry Pi Contest 2020

      Raspberry Pi Contest 2020
    • Wearables Contest

      Wearables Contest
    • Fix It Contest

      Fix It Contest

    2 Discussions


    2 months ago

    do I understand correctly that I have to upload the setup sketch everytime I want to upload over bluetooth? That's not really making things easier.


    Question 3 months ago on Introduction

    I have followed your excellent tutorial, but I cannot get it to download from the Arduino IDE. I am able to connect for the AT command setup just fine. I am able to pair it to my laptop but when uploading, I get avrdude: stk500_rece(): programmer is not responding
    stk500_getsync() attempt 1 0f 10: not in sync: resp=9x9e. I did check the reset with a scope and had to increase C1 to get the low level required to reset the Arduino Uno. I am hoping I am doing something easy to fix.