Since the introduction of Mac OS X 10.5 (Leopard) some Arduino BT users have had troubles programming and using their board.
I’ve done some testing to try to figure out how those issues could be solved. It is clear Apple has changed its Bluetooth stack in the move between Tiger and Leopard. This new stack seems to be less “forgiving” than the previous one.
In particular one of the most frequent complaints is that it has become very hard to upload programs over the bluetooth connection.
I think one of the main issues here is that Arduino (up to version 10) before uploading a program, connects to the board and removes any characters left in th serial buffer before launching avr-dude (the program used to upload code to the board). This works well with the regular Arduino with USB interface because opening and closing the connection takes next to nothing but the BT connections are a different case. BT connections are slow because of the amount of back and forth messaging that goes on betwen the computer and the BT module. To this we have to add a random amount of latency depending on how many BT and WiFi devices that are present in the area.
I’ve tested uploading from the command line and it works much more reliably than with Arduino 10.
To make along story short, I’ve made a number of test and found a combination of settings that works for me.
First of all you need the release candidate version of Arduino 11 prepared by David Mellis. In this version, the IDE no longer tries to connect to the board before uploading, improving the overall reliability of the upload process. You can download it here
I’ve also noticed that I got better results if I selected the serial ports beginning with /dev/tty. as opposed to the /dev/cu. that seem to work better with the USB board.
Another setting that seemed to improve the reliability of the upload process is to specify “require pairing for security” for the BT device in the bluetooth system preferences dialog.
You can see a screenshot of mine here:

I’ve also tested that the “serial monitor” function on the Arduino IDE doesn’t work very well with Arduino BT, using goSerial (despite the annoying popup dialog) gave much better results.
Well give my suggestions a try and let me know if this works for you.
As a bonus i’m going to add a script I have made called “virginizer”, like the program that fixes your iphone if you’ve done something bad to it.
This Mac OS X shell script uses an STK500V2 compatible programmer to:
- Initialise the BT board with the name ARDUINOBT and pin 12345
- Programs the bootloader and proper fuses
- Uploads a test program using the BT connection
In order to use this you need to change the name of the serial port where you programmer is found and the location of avr-dude.
Download it here: BT virginizer