FTDI-board

From Nottinghack Wiki
Jump to: navigation, search
FTDI-board
Primary Contact Michael Erskine



QR code


Whilst working with the Xino, Paperduino, stripboarduino, breaduino, etc. I find that I need to keep swapping my microprocessor chips in and out of my Duemilanove to program them. Now, this isn't because I haven't tried programming them in-situ - I have and I have failed miserably!

Now I have one of these bad boys: a UM232R development module: -

Which is great, but I still haven't dedicated enough time to making it do all the Arduino programming tasks I require. So here I intend to detail my thoughts and document what I find out.

OK, most people have a cool FTDI cable with 5 or 6 pins. I don't have one and I feel less of a hacker because of it! I want to make the UM232R act like one of those.

OK, so what magic do I need to perform to get my Xino programmed?

With help from Dr Matt, who held the magic formula of having a 10nF capacitor between #CTS and the Reset pin, I was able to get my breadboard version working, and the following evening I had my stripboard version working (dodgy soldering!)

flickr set: http://www.flickr.com/photos/21085792@N00/sets/72157626929358874/


Next step is to add a 6 pin header for programming the Nanode.

Nanode and FTDI Board

The FTDI connector pins on the Nanode, left to right when looking at the edge with the USB socket, with the usual FTDI cable colours:-

  • GND (Black)
  • CTS# (Brown)
  • VCC (Red)
  • TXD (Orange)
  • RXD (Yellow)
  • RTS# (Green)

These are as labelled on the FTDI cable although the RX and TX need to be swapped (I think!)

So we just need a single extra connection for the 6th pin - keeping it disconnected for now.

14:52, 14 June 2011 (BST) Hooray! The Nanode programming connector now works! The problem was my reading of the pinouts of the FTDI cables which is seemingly different to the Nanode header. I can't imagine how everyone else's FTDI cable works. Never mind!

Here's a blinky for the Nanode using D6 instead of D13...

void setup() {                
  pinMode(6, OUTPUT);     
}

void loop() {
  digitalWrite(6, HIGH);
  delay(100);           
  digitalWrite(6, LOW); 
  delay(100);           
  digitalWrite(6, HIGH);
  delay(100);           
  digitalWrite(6, LOW); 
  delay(100);           
  digitalWrite(6, HIGH);
  delay(100);           
  digitalWrite(6, LOW); 
  delay(600);           
}