Arduino program / sketch upload speeds

I am working on circuit that will allow me to program my Arduino boards (I have an Arduino Uno and a couple of Arduino Pro Minis) over a wireless Bluetooth connection. I am planning to use my cheap and easy to find HC-06 Bluetooth module for this. One of the first thing to figure out is the baud rate that the Arduino IDE uses, when uploading the sketches to the various Arduino boards. I need to make sure that my HC-06 Bluetooth module is configured to communicate at the same rate, so the avrdude stays happy.
I bit of research online revealed the following:
- On the computer side the baud rate is specified in the Arduino IDE configuration files, and more specifically in boards.txt.
- On the micro-controller side, the baud rate is coded in the specific bootloader, used by the board.
A looked through the boards.txt file and here is what I found:
Board | IC | Upload Speed |
Arduino Yun | ATmega32u4 | 57600 |
Arduino Uno | ATmega328p | 115200 |
Arduino Duemilanove | ATmega328 | 57600 |
Arduino Duemilanove | ATmega168 | 19200 |
Arduino Nano | ATmega328p | 57600 |
Arduino Nano | ATmega168 | 19200 |
Arduino Mega | ATmega2560 | 115200 |
Arduino Mega | ATmega1280 | 57600 |
Arduino Leonardo | ATmega32u4 | 57600 |
Arduino Micro | ATmega32u4 | 57600 |
Arduino Esplora | ATmega32u4 | 57600 |
Arduino Mini | ATmega328p | 115200 |
Arduino Mini | ATmega168 | 19200 |
Arduino Pro Mini (5V, 16 MHz) | ATmega328p | 57600 |
Arduino Pro or Pro Mini (3.3V, 8 MHz) | ATmega328p | 57600 |
Arduino BT | ATmega328p | 19200 |
Arduino BT | ATmega168 | 19200 |
Arduino NG | ATmega168 | 19200 |
Arduino NG | ATmega8 | 19200 |
Arduino Robot | ATmega32u4 | 57600 |
LilyPad Arduino | ATmega328p | 57600 |
LilyPad Arduino | ATmega168 | 19200 |
It seems that I need to use 115200 for my Uno and 57600 for the Arduino Pro Mini.
Beware using these modules, as they don’t even check for flipped bits over the communication. I’ve used hc-06 and I do get sometimes a bit flipped. I fixed my project by resending the data over and over again. Your program might get corrupted and will need to upload once again.