After reading several posts from our community describing the issues involved with the ArduPilot confiq. Tool, I guess I’ve spotted (with your help) all the possible problems. Is not just one issue, is a combination between hardware, drivers, settings and software problems. You may experience more than one issue, but only one is enough to make the “Confiq. Tool” not usable.
The mistake number one is not enabling the “Set RTS On Close” option located on device manager. One way to know if this option is disabled is when you are able to upload something the first time but the second time will not work!! There’s an explanation for that. This situation may confuse a lot of people, just keep it in mind because happens all the time. Detailed instructions to find this option can be located here
The second mistake is not using the correct drivers. I always install the drivers located inside the Arduino IDE folder (\\arduino-0016\drivers\FTDI USB Drivers), works great and never gave me problems.
The third and fourth problem, one of them is Sparkfun mistake(I guess), I do believe this because the first company that used a separated FTDI device to program an Arduino compatible system was Adafruit Industries (Even before DIYdrones was created and Arduino PRO/mini and FTDI Breakout basic exist). They do this because is a lot cheaper to use only one FTDI system to program several Arduino compatible boards, is better than using one +-$15 chips in every board that you may burn!! (I have burned like 10 ardupilots so I have saved more than $100 bucks!).
Well this is the big deal; is obvious that SparkFun tried to imitate the FTDI cable because is using exactly the same pin order and labels like “BLK” and “GRN” to indicate the polarity, but wait! There are no black and green lines in their FTDI board, only the original FTDI has the Black and Green cables! If you check the original FTDI cable schematic you will see that they are using the pin “RTS#” to reset Arduino, they have no choice; FTDI will not change this just to satisfy a small group of microcontroller amateurs.
Now Sparkfun (that came’s later) uses the pin “DTR#” instead the “RTS#”, but why? So maybe I’m wrong and they don’t tried to copy the FTDI cable (but I still not understand the wrong labels (BLK and GRN) in their arduino boards).
Anyway I did 30 seconds of research and look for the mother of all the little ducks, the original Arduino board! And I’ve discovered this:
Italians are smart! They use both pins!!! If you see the schematic they are using “DTR#” and “RTS#” connected to reset! Now, I already mention it, FTDI corp. will not change the FTDI cable but… would be nice if SparkFun adds a jumper or something to make it more “universal”. But they don’t have too and is not really necessary, because this issue can be solved by software which means a fixed version of the Confiq. Tool.
Now we are imitating 100% by software what Arduino IDE does, and I’m talking about pulling down both signals: “DTR#” and “RTS#”. Thanks to Damon Pipenberg
, he was able to change the code and test it in his hardware (Claps Please!). The new fixed utility can be downloaded from here
and your problem should be gone. Or you can buy the heavy duty, official and original FTDI cable.
Thanks for reading!
[UPDATE from Chris: 7/11/2009]:
Nathan from Sparkfun wrote in with some more explanation, which I'll copy here:
"The pro was designed very closely with the Arduino Team. From the beginning, the team wanted to support the DTR reset trick of the Arduino USB boards.
Background: Two lines on the Arduino USB board are wired from FTDI to Atmega Reset: DTR and RTS. However, only one of the capacitors is populated - the DTR line. So all the Arudino software (IDE) has been written to wiggle the DTR line to get the ATmega to reset.
To retroactively support this feature, and to attempt to support the (then) growing use of the FTDI cable, team Arduino decided to abandon flow control on the FTDI pinout (CTS/RTS) for the backwards compatible support of the DTR reset trick.
Does all that make sense? All of this is noted in the product descriptions of the Pros:
Point: We specifically designed the FTDI Basic to work with Arduino IDE out of the box. You do not have to meddle with windows to use the Arduino USB, Arduino MEGA, or Arduino Pro series. The FTDI cable is a hack. You have to change windows settings to get the FTDI cable to work with Arduino.
Jordi - I am not entirely sure what problems you are still running up against. The FTDI Basic works fabulously with all the Pro hardware, and a lot of my own side projects. Do you just need to build in a DTR toggle when your config tool? This would coincide with the way the Arduino IDE resets the ATmega.
One solution from the SparkFun side, may be to attach both DTR and RTS to the same pin on the connector through 100ohm resistors. That way if either line goes low, it will pull the 'reset' line low."