A little while back I bought an Arduino Pro Mini (5v version) and was planning on using it to make small devices like remotes or human interface devices to control my computer. Everything was going well, I soldered connections to all the pins and was ready to program the device using a USB to Serial converter (which is also rated at 5v to match my Arduino) that you can see here:
So I plugged it in and everything seemed fine, but as soon as I tried to reprogram the Arduino from the default blink project that it came pre-programmed with, I received an error saying that I couldn't synchronise with the board and that Processing couldn't upload my new code. I spent a good day looking up solutions on the internet and nothing helped, there was even two images of the same serial board I had attached to the Arduino forwards and backwards which wouldn't help anyone who was looking for solutions and I was sure I had the boards matching up correctly so that wasn't it, you'll find there's two version with the BLK to GRN switched so just make sure that your particular version is aligned correctly to the serial converter. Eventually I found my own solution utilising a method I use when debugging in C++ / C#; I connected up just the power and ground then slowly introduced each pin until I was able to commit my code to the Arduino. The solution was simply to remove one of the pins that said ground (Since the BLK pin was also a ground pin) on the Arduino Mini Pro which was connecting to a pin called CTS on the Serial board as you can see here:
As soon as I removed the pin everything just worked, no more sync issues with Processing and I could finally begin developing with the Arduino board :)
I recommend that you try connecting wires first before removing the pin; just in
case your mini has a different reason than mine for not syncing, if yours doesn't have the same problem then it would be safer since the small board doesn't cope well with repeated application of heat from a soldering iron.
After solving the problem I read up on what the pin does, it's called CTS (Clear To Send) and was responsible for serial handshaking. Since the pin is omitted from the Arduino Mini Pro, I'm guessing they no longer need that pin and was used with older systems that didn't come with a self reset feature for programming; older Arduino's required you to reset the board just before the serial command to reprogram the board was sent. The USB to Serial Converter must have kept it for backwards compatibility with older boards and other serial devices. For additional information for those who are curious you can read about the flow control system here.
My Arduino Mini Pro seems to have the connections reversed from the one specified on the Arduino website here which may indicate that my Arduino may be outdated or perhaps it's a difference between the 3.3v and 5v versions. This being the case, if your version has the connections similar to the website then I can't guarantee if this solution will fix yours since I've never used that version but if my theory about the CTS pin being pulled to ground is correct which causes interference with the re-programming then I do hope this solution helps you too.
Thanks for reading,
Ashton.
No comments:
Post a Comment