Page 1 of 1

Connection FAQ

Posted: Fri Nov 20, 2009 10:28 am
by paul
Connecting to BBB's and RBBB's FAQ.

Since early January we have been shipping Optiboot as the default option on all our boards and chips.
There were some early issues with Optiboot, using FTDI chips and Windows, but I'm happy to say the bugs have been killed and it works great across the board now.

You still have to install FTDI drivers to work with the BUB, JeeLink, JeeUSB and Freeduino Host Board since they all use FTDI chips for USB communication.
You can find the latest drivers here:

For the board setting in the Arduino IDE (if you're using the Arduino IDE) use the "UNO" setting.

Other problems:

Q: My P4 board won't upload to my BBB.
A: Here's the problem. Unlike USB cables and the BUB, the P4 has no source for 5 volts, as there is no power available from the COM port. Therefore there needs to be 5V present at the pin header of the BBB for the P4 to work. The RBBB has a simpler power system, so there is always 5V's at the header when the board is powered up, and the P4 should work fine.

The easiest solution for this is to solder a wire onto the P4 in the 5V row of the header. Then insert the wire in the middle column of the BBB analog header (5 volt column). Voila - you have power to the P4 and it will work fine. It's a bit provisional looking but is a fine workaround, and is also the solution with no caveats.

Another simple workaround is to make a custom shunt for the USB - Ext power selector shunt. This is easily fabricated from a bit of female header with 3 pins, just short them all together, pop them onto power select (USB/EXT) headers and you're good to go - with ONE CAVEAT.

With Rev E BBB boards the power header shunt is After the regulator so 5 volts always appears at the header, when the board is powered from an external power jack. For these boards, the triple shunt idea will work fine. In Rev D BBB's and earlier, the shunt header (USB/EXT) is before the voltage regulator. This means that the voltage at into the external power jack appears at the (USB/EXT) headers. If you use a voltage higher than six volts you'll damage the P4, so if you want to use the three pin header/shunt idea - just keep the voltage down to 5-6 volts and everything will work fine.

We like the "triggerfish" style wire on the P4 though - that seems like the least fuss to us.

Q: I'm using the BUB to connect. Do I need to set "RTS On Close".
A: No. The BUB (and the P4) use the DTR line, so the schematic is the same as the Arduiono boards and should work fine with no software mods, except chosing the correct board in the Tools menu (Duemilanove/Deicimila with Atmega328p) [or 168 if you have an older board with that chip]

Q: I'm using Windows and I can seem to download once, but only once, using the FTDI cable?
A: Change this serial port setting: Device Manager -> Com Ports -> USB Serial Port -> Port Settings -> Advanced button -> Set RTS On Close

Q: Which bootloader is on my chip?
A: Connect an LED and series resistor to pin 13. Press the reset button. If the LED only flashes once, or not at all before going to the program on the chip, you have the Diecimila bootloader.
If the LED flashes 4 times and then once again, you have Adaboot bootloader.
If the LED flashes quickly three times, you have the NG bootloader.
Modern Device has been shipping only Diecimila bootloaders (as the default) since about April 2008.

Q: Why can't I use manual reset to upload with the Diecimila bootloader?
A: The Diecimila bootloader is optimized to eliminate wait states, so wants to see download data coming in around 100 mS or so after the reset. You would have to be lucky to get this timing right by hand, as you can't really tell when the upload data will start, if you reset manually. If you do this enough though, you will eventually succeed.

Q: I have a sketch sending lots of serial data back to the [PC] monitor, now I can't upload.
A: Lots of activity on the PC's RX line can interfere with upload for some reason. In theory the reset signal on the DTR line should halt the sketch and this should halt the serial onslaught to the host computer, but for some reason this does not always seem to work. The workaround is to just hit the reset button before uploading. Since it takes a second or two after resetting for the sketch to begin, this should allow uploading successfully.

Q: Doesn't the answer to the last question tend to contradict the second last question?
A: Yes, but we've decided that the mystery isn't compelling enough for us to investigate.

Q: Arduino program gives this error message:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

A: This is the classic no-connect signature.
Software solutions:
Check to see if the FTDI drivers are installed correctly.
Update FTDI drivers
Check serial port and board setting in Arduino IDE
If using the FTDI RS232RL cable check: Device Manager -> Com Ports -> USB Serial Port -> Port Settings -> Advanced button -> Set RTS On Close
Hardware solutions:
Check that board is powered up (pilot light) and voltages are correct.
Check that external (wires) are not connected to RX, & TX pins
Look for signals on RX, TX and DTR pins with multimeter or small loudspeaker in series with a 100 ufd capacitor
Check that pullup resistor on the reset pin is 10K
Check that USB/EXT shunt is in proper position for powering option.

email me please if you find other things I should add to this list