Let's Make Robots!

miniature Arduino programming plug & other

As some of you may know i'm building miniature swarmrobots. I have finished first version of electronics and I'm in middle of designing second version. Second version will be much smaller and packs more features.

Because I want that my swarmbot would be easy to use for everybody I though of going to Arduino. I have 8Mhz crystal and 3V logic so its similar to LilyPad. The problem at the moment is programming header. LilyPad has 6x 2.54mm pinhead what is a little big for my use. Also I have to but reset button and/or power button.

So the problem is that I need on-off button, reset button and 6xpinheader and I have room for only one-two. The smallest power switch under 1€ that I found was 2x 1.27mm pich DIL switch from farnell. Smallest reset button - ultrasmall button from ebay. Pinheader - 1.27mm but maybe i can use 2.54mm version.


So I want you guys to help me

  1.  find smaller/better power switch/plug/whateva
  2. OR tell me that RESET button is overrated
  3. OR tell me what to do with programming header. can I leave it to 1.27mm or would it be better to have 2.54mm and LilyPad compilable 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

And so, the reset button is not needed when i have normal power button and FTDI cable support?

It is not required to program it if you do the reset the way the FTDI devices do, but sometimes it is convenient to be able to reset without a power cycle or interruption in serial connection (to see diagnostics done in setup or whatever).

Since Weirdo says he wants it to be "easy to use for everybody" I suspect this means the FTDI 6 pin header. The extra 2 pins are used to do a reset for programming - to get the bootloader's attention. I may not have this quite right, but it seems that there is some kind of special signalling on the RTS/CTS pins to do the reset. If they aren't there, you have to do a reset by hand, which can be a power cycle. So while not strictly necessary, if it is to have appeal the masses, they probably need to be there. When I am messing with code for the Pro Mini or Fio, for example, I never have to touch them if I am just changing code. I also have a breakout board where I have to run avrdude from a command prompt to upload a hex file within a small window of time after resetting the board. If you have dealt with the stuff a lot, that is just a minor hassle. For a hobbyist just getting into it, that is asking for a big leap in understanding right off the bat. With the auto reset, you load an example in the IDE and just tell it to run and it does.

EDIT - forgot to explain "kinda"...

The serial does not have to be true FTDI, but that is the pin layout expected by readily available cables and breakout boards. It can be straight serial as long as it plays the game to do the reset.

Be aware that SparkFun sells a bizarre 3.3v/5v FTDI cable that has 3.3v TTL and +5 on the VCC. They say in the description that it was a mistake but since their 3.3v Arduino boards (Fio, Pro and Pro Mini) can handle the 5v they still sell them. I built a little series resistor extension for mine that drops the power down so it won't burn things up if you leave them connected while programming with the cable, as it does put +5v on VCC. 

That's not very nice of them as my robot can handle 3.3V at max. 5V = magic smoke from five places.


When you get it by the "back door" link from buying a Fio or Pro Mini, it is easy to get the perception that you have a 3.3v cable. I am actually happy that I have it. The little adapter I made is small and I don't need yet another cable. Every 5v TTL device I have used it with has been happy with the 3.3v TTL so I don't have to level shift that, but I would if I were going from 5v to 3.3v.

1. Frits had a very interesting switch where the power wire was soldered to a small magnet. The power wire then stuck directly to the battery. You can get neodynium magnets that are only 2mm x 2mm.

2. the reset button is overrated

3. why use a 6 pin ISP socket when you only need 4 pins to program the chip using a USB/serial interface.