Electronic – Arduino BT upload problem

arduinobluetooth

I have an Arduino BT V06 that I could connect to my Mandriva 2010 linux laptop: "rfcomm connect" is working, /dev/rfcomm0 virtual serial port is created, "hcitool con" shows the connection and "hcidump" displays my upload attempts.
However when I try to upload the BlinkWithoutDelay example I got the following error message (upload.verbose set to true in .arduino/preferences.txt):

/usr/local/arduino-0021/hardware/tools/avrdude -C/usr/local/arduino-0021/hardware/tools/avrdude.conf -v -v -v -v -patmega168 -cstk500v1 -P/dev/rfcomm0 -b19200 -D -Uflash:w:/tmp/build8547029001705996442.tmp/BlinkWithoutDelay.cpp.hex:i

avrdude: Version 5.4-arduino, compiled on Oct 22 2007 at 13:15:12
        Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

        System wide configuration file is "/usr/local/arduino-0021/hardware/tools/avrdude.conf"
        User configuration file is "/root/.avrduderc"
        User configuration file does not exist or is not a regular file, skipping

        Using Port            : /dev/rfcomm0
        Using Programmer      : stk500v1
        Overriding Baud Rate  : 19200
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: Send: Q [51]   [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding

I was struggling for several hours to solve the problem.

I am using Arduino-0021 but I have also tried it in 0018 and 0015 without luck. I have also tried with board type BT Atmega 168 and BT Atmega 328. My Arduino Duemilanove works fine with the same computer, Arduino 0021, and settings.
I have seen several question with the same topic http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1290646119/1 or http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1247005623. They mention differing error messages and anyway I cannot see how can I press the reset button on the Arduino during the upload when I have to type the PIN in a different window.

What could be the solution to the problem?

What I could imagine is to buy a BlueGiga WT11 chip extension to my Duemilanove and do the upload via USB. But how could I be sure that the connection for the communication will work?
Moreover I still would like to use the not-so-cheap Arduino BT board.

Update:

Based on Nick T's answer I have tried again but the BT still does not work.
I have tried to press the reset button
– 3 seconds before,
– just before,
– at the same time of the upload button hit
and
– when the first two/three avrdude lines appeared
– after the first two programmer is not responding lines appeared.

Altogether 20 times without success.

Even when the arduino environment has not been started and I press the reset button on the board the connection is lost (checked by hcitool con) after 1-4 presses.

Are there any other ways to solve the problem?

Do I have to buy a BlueGiga WT11 and hope that the bluetooth connection will work while the USB connection stays OK?

Best Answer

To be able to bootload code on the Arduino, the programmer must attempt to connect within about 3 seconds of the AVR coming out of reset. I the ArduinoBT I have lacks a connection that the traditional USB versions have, which allows the programming software to reset the Arduino by itself. In lieu of that, you must physically hit the button to do it yourself.

I cannot see how can I press the reset button on the Arduino during the upload when I have to type the PIN in a different window.

You should only have to type the Bluetooth passkey once, so after the BT module is paired with your computer, the computer should be able to freely connect, so long as it is powered.

The Bluetooth module and AVR are very separate; you can hold the AVR in reset, and the Bluetooth module will happily run along. If you're cutting power to the entire board to reset it, it may indeed be difficult to have the BT module come online, connect to it, and initiate programming all within 3 seconds.