[SOLVED] Programming empty chips: Best Practices? Guru Recommendations? 2 UNOs?

OBJECTIVE: be able to program empty microcontrollers
in the most efficient and economical way.

Hi... still very green here though relentlessly going for it.
i've probably read or touched on a lot of points about
newer and older Arduinos, programmers, I just can't sum it all up
and get the best items.

This post is about finding out what to purchase so that I can
eventually emulate what could be considered the Guru's way(s).

I appreciate there's several methods though hoping to get way
down the road of understanding and ORDER MY ARDUINO PARTS! :slight_smile:

Here's what I'm stumbling around with. some barely-baked understanding as well.

1- my projects will all be midi based. None has USB to midi so usb will just be used
for programming. only one project needs midi in and that a midi-merger with 2 or 4
midi-INs to one midi out. (mega needed i believe) the other two projects use footswitches
or piezos as inputs and only generate midi-out.

2- I may well, or almost certainly need a programmer and would like to get a workflow
that as quick as logical and future proofed.

there's the Atmel AVRISP mkII, though might that be replaced by something newer
by Atmel? Also, there's the USBtinyISP... it has limitations though might that be meaningless?

Also, there's using an Arduino to program chips that do NOT have the
bootloader on them at all, correct? This way's not fast or necessarily worth the
wiring for someone like me? OR, it needs extra cables etc. that make buying a
programmer just as economical and the programmer's more efficient.

3- the lastest R3 UNO is great though one should have a pre-UNO board as
well as the design lends itself to programming chips etc. or other reasons?

Essentially I'm rambling on here looking for the best Guru approved items,
so that in the months to come i can buy totally blank microprocessors and
as quickly as possible put the bootloader and my code on there.

right?

So, which programmer to get?
Should a get an R3 UNO and at some point a pre-UNO as well?
If I go without a programmer i need a second board to put the blank chip in,
r just a breadboard? Is programming bare chips without a programmer MUCH
more work and best left for later for now?

FIRST PROJECT JUST NEEDS CHIPS AND A FEW PARTS?

I have guessed that as my first project is momentary normally off switches
hooked to the digital pins, that send specific midi data when any pair of them
are pressed in sequence, afterwhich they reset.

That, hey, maybe i just need the correctly programmed chip with code and
bootloaded on it, the switches hooked out to the digital pins, some caps?
to debounce, power, a voltage regulator, some resistors... and DONE??

this is all so truly cool.
thanks greatly for helping with any of the above muddiness.

http://todbot.com/blog/2009/05/26/minimal-arduino-with-atmega8/

Well, since I was grappling with this situation a good part of the weekend
http://arduino.cc/forum/index.php/topic,96359.0.html
I say get that USBtinyISP, note that it's an easy kit, and make certain that the ICs you get are ATmega328P (ATmega328P-PU, not ATmega328-PU).

When I'm playing around I usually just use the Uno (mostly Rev 3 now as the other are being used in projects). And I just program via the USB cable. Nice and simple.

The USBtinyISP costs around $20 and is useful for programming "stand-alone" chips, or fixing up the bootloader. Mind you, the bootloader only usually gets "unfixed" by using the USBtinyISP anyway, so it isn't really required initially.

When I was playing with MIDI a while back I found you absolutely need opt-couplers because of the way they work. Look up "midi electrical interface".

You could use a Mega for the serial ports. Alternatively (and I don't know what you are really trying to achieve) you might have a number of smaller chips handling the serial interface and communicating via, say, I2C.

I would start small, say with a Uno and a single MIDI interface, get the basics working, and then work out a good way of scaling up.

I've got an example of breadboarding here:

The RBBB is nice too, and could be used easily. In fact, if you got a few of those, you could have one each doing the serial (via the Tx/Rx pins) to a MIDI connector, and then connect them all together using I2C.

To program those all you need is an FTDI cable (which does USB to serial conversion in the cable).

WOW, great stuff all-round. Can't say enough for all the good vibe around here.
thank you.
checked out all links, recall a few things as there's a fair blur still going on.
Gonna spend the night reading.

Mind you, the bootloader only usually gets "unfixed" by using the USBtinyISP anyway,

Guessing that you are noting chips that already have a bootloader?
This wouldn't be the case with an empty chip?

you absolutely need opt-couplers

As in opto-isolators that would be used for midi IN. I looked up opto-couplers and a quick peek seemed to suggest that coupler is the same as isolator? Thanks!

You could use a Mega for the serial ports. Alternatively (and I don't know what you are really trying to achieve) you might have a number of smaller chips handling the serial interface and communicating via, say, I2C.

the 2nd or 3rd project will be 4 midi ins merging to one midi out, or 4 separate ins to two in parallel.midi outs. (same out data). very interesting the 2 new ways you mentnioned might be useable.

I've got an example of breadboarding here:

Gammon Forum : Electronics : Microprocessors : Minimal circuit for Atmega328 processor (shows wire-wrapping)

very cool pix and I'll be referring to them. Thanks Nick!

AND WOW Runaway Pancake

i'd seen that post way back i think perhaps, um, maybe.
Anyways: great info.

The AVRISP mkII seems like the one to get first, initially ... though it has just the one cable,
it's been out for a long time, though it works with the Atmel software.

The USBtinyISP's cool with the 2 cables. Though will have to study again to see if it works with all software.
I though i read that it didn't. obviously it's very popular so just knowing will be good.

Would be great to find a cheap serial cable, 20 bucks seems like a gouge for sure.

big reading night.

Ayways, still very unsure of the way to go yet in a few hours that could change.

The USBtinyISP has a 6 pin and a 10 pin cable.
The Atmel AVRISP mkII has just the 6 pin cable.

Why?

Does the 10 pin cable work on earlier non-UNO arduinos?

Are there any downsides to buying the Atmel AVRISP mkII ?
thank you !!!

You reminded me how much fun you could have with MIDI.

I got back into an old project of working out how to hook up MIDI to the Arduino. This is my personal setup:

I had a small test sketch:

#include <NewSoftSerial.h>

NewSoftSerial midi (2, 3);  // Rx, Tx

void setup() {
  midi.begin(31250);

  // for debugging
  Serial.begin(115200);
  Serial.println ("Starting ...");
}

const int maxItems = 201;

unsigned int times [maxItems];
byte data [maxItems];
int pos;

void loop() 
{
  if (!midi.available ())
    return;
   
  byte c = midi.read ();
  if (c == 248)
    return;

  Serial.println ("Reading ...");

  pos = 0;
  unsigned long prevTime = millis ();
  unsigned long now;

 while (true)
    {
    now = millis ();
    
    times [pos] = now - prevTime;
    data [pos++] = c;
    
    Serial.print (c, DEC);
    Serial.print (", delay = ");
    Serial.println (now - prevTime);

    prevTime = now;
    
    // array full?
    if (pos >= maxItems)
      break;
     
    while (!midi.available ())
      {}
      
    c = midi.read ();
    }  // end of reading
    
 delay (1000);
 
 Serial.println ("Sending ...");

 for (int i = 0; i < pos; i++)
   {
   if (times [i])
     delay (times [i]);
     
   Serial.println (data [i], DEC);
     
   midi.print (data [i]);
   }  // end of echoing back
   
}  // end of loop

That reads in 201 values from MIDI (to be divisible by 3), waits a second, and echoes them back. So it's like a record/replay situation. I found I was getting a lot of 248 messages (timing clock) so I just ignored them, waiting for something "interesting".

As in opto-isolators that would be used for midi IN. I looked up opto-couplers and a quick peek seemed to suggest that coupler is the same as isolator

Yeah, isolator, coupler, whatever. It basically translates a current signal into a voltage.

ioflex:
The USBtinyISP has a 6 pin and a 10 pin cable.
The Atmel AVRISP mkII has just the 6 pin cable.

You just need the 6 pins: Gnd, MOSI, MISO, SCK, Reset, +5V.

Are there any downsides to buying the Atmel AVRISP mkII ?

I haven't heard of any, but I use the USBtinyISP when I need to directly program via SPI, which isn't that often. Presumably the one Atmel makes works OK.

hehehe, all fantastic Nick. I'll be studying your schematic for my parts ordering.

I was also wondering as i pondered SPST switches.

if more than one action can take place with each
switch press, and that DPDT isn't needed, nor
would it be helpful for more actions simultaneously
as there's only so many digital inputs.

So, to clarify, that puzzle question: can i have say,
the midi data go out on the 2nd switch hit, yet
have each switch light up with an LED for example
individually when struck?

great! best wishes.

I think momentary SPST is all you need. Debouncing you can do in software easily enough.

I just got into uC stuff around New Year's, so I can sympathize. There's a lot of new info to take in. So many good sources of info, but it can be hard to put it all together. So here's my 2 cents for starting out and wanting to build your own from scratch:

First, get the AVR ISP mkII if the $30 or so isn't too much of a burden. I don't have one (yet), and use existing chips to program via the Arduino as ISP sketch, but due to some bugs, this isn't always as straight-forward as it should be. The mkII is a known-good that just works, and it's nice to have one less thing to troubleshoot when you're first starting out.

Second, I use the FTDI cable (USB to 6-pin header) all the time. I can't imagine not having this now. It's the easiest way to send sketches to a chip on a breadboard. (Assuming that chip is already bootloaded, of course.) Also convenient for power.

Next.. you will never get all the parts you need in one order, so don't stress it too much. IMO, it's worth ordering a bunch of ATmega8As, and some ATmega328Ps. The 8's are nice and cheap, and do 90% of what the 328Ps do. (You lose some interrupts, and it has less RAM and flash space, so it's best for small sketches.) Most of the time, I end up using 8s -- only using the 328Ps when I need the space or the pin-change interrupts, or something fancy like that.

I can check my parts bin tonight and give you exactly the Digikey part numbers I use, if that'll help. I keep a bunch of 8 and 16MHz resonators for the oscillator, plus 20, 27, and 30pF caps (for fine-tuning, but 22pF would do the trick most, if not all, of the time). I also have some 12MHz crystals for when I want to interface with USB. I don't recall what clock speed works the best with MIDI. Maybe it doesn't matter since it's relatively slow serial.

LM7805 regulators for 7v+ sources are a must. When using the FTDI cable, no regulator is necessary.

Get some 10, 47, and 100uF electrolytic caps for power supply filtering. (10uF is good for USB stuff, as it is enough to smooth power without causing a huge start-up surge. 100uF is best when you have a robust power source. 47uF is the compromise with low-power sources.) Also, you need a ton of 0.1uF (100nF) ceramic caps for bypassing / noise filtering, and to use the FTDI DTR pin for reset.

On that note, 10k resistors for pull-up/downs. 470 for LEDs, and some LEDs. 1k because they're handy.

I got a bundle of those male-to-male pin prototyping cables from Adafruit. I could have two more sets and still use them all. A set of male-to-female pin bundles would be handy, too. I also got plenty of .1" male breakaway headers to use on the breadboard. Adafruit sells some that are long on both ends of the plastic. My breadboard requires this for a good seat.

Edit: Almost forgot... some of those Omron tactile switches for reset and input. I like the little Bourns 10K potentiometers for analog inputs or LCD contrast setting. It wouldn't hurt to have some 1K pots too, if you have a few bucks to spend.

That'll get you firmly into experimentation, at which point you'll have a good idea of what your projects need. Then your orders will be more specific to what you're building. Hope this helps.

In just the few days I've had so much incredible assistance. SirNickity, that is one wonderfully timely and thoughtful long post.

First, get the AVR ISP mkII if the $30 or so isn't too much of a burden. I don't have one (yet), and use existing chips to program via the Arduino as ISP sketch

I believe that i'm most flexible and always learn much more and what's needed through minimalism and will very likely splash out for 2 UNO R3's. Program the bootloader WITH the UNOs. Also, I believe I'd love a non-UNO earlier board as well for the balance.

Tonight I got help including an incredible couple of replies from westfw! (optiLoader)

Something just didn't feel covered by getting an UNO R3 and the MkII programmer to have it sit around.
The boom. it appears to have all fallen into place. essentially I'll have two UNOs either of which can program bare chips as I am really into programming the chip, frankensteining a couple or so parts on it and blam!
Most of the links are in my posts over the last day or two.

Second, I use the FTDI cable (USB to 6-pin header) all the time. I can't imagine not having this now. It's the easiest way to send sketches to a chip on a breadboard. (Assuming that chip is already bootloaded, of course.) Also convenient for power.

That's where I'm at now. I've seen the cable one can make from a nokia data cable (that does everything the usb to serial boards do I hope, wonder, guess. Sparkfun and ada have nice ones with leds etc. haven't got the guru gold on that decision yet... though it would be a nicety as then my little bare-bones chips could be RE-programmed quickly instead of plugging into an UNO to modify.

Actually the frankenchips might not easily be able to go into an UNO if they're covered in parts or other.
So if i have this right an FTDI cable would be great. The dual UNO rig is of courtse to have one UNO running the optiLoader sketch that then programs the blank chip in the 2nd UNO. There's cool ways to use a zip socket I think they're called to switch between pass thru (normal uno mode and programming bootload with optiLoader mode. links floating in my last couple of posts. or just searching optiLoader as the first 10 or so hits are great. (getting a bit sleepy here:)

Next.. you will never get all the parts you need in one order, so don't stress it too much. IMO, it's worth ordering a bunch of ATmega8As, and some ATmega328Ps. The 8's are nice and cheap, and do 90% of what the 328Ps do. (You lose some interrupts, and it has less RAM and flash space, so it's best for small sketches.) Most of the time, I end up using 8s -- only using the 328Ps when I need the space or the pin-change interrupts, or something fancy like that.

I am ABSOLUTELY floored by that. looks like the A version of ATmega8A has all 10 bit analog and there's 23 whatcha-macall-its. WOW, I had no idea. So, they are the same just less space. Thing is with optiLoader which is very small AND the midi library I might need to use, and then very small code just ot send midi data I should be Ok. dunno?

I do need 11 or 12 digital pins and 6 analog for the first project. i'll order a 328P or two as well of course.
Really looking to experience atmega 28 pin sized boards/circuits. I've seen lots of them including the Paperino i think it's called.

I can check my parts bin tonight and give you exactly the Digikey part numbers I use, if that'll help. I keep a bunch of 8 and 16MHz resonators for the oscillator, plus 20, 27, and 30pF caps (for fine-tuning, but 22pF would do the trick most, if not all, of the time). I also have some 12MHz crystals for when I want to interface with USB. I don't recall what clock speed works the best with MIDI. Maybe it doesn't matter since it's relatively slow serial.

Why Digikey? I figure they're great and all though perhaps I've missed the beauty of their system. I love oldskool databases yet something hasn't worked for me yet there. Love to know as they're mentioned a lot.
it's the pesky shipping cost that irk me. hehehe, yes, got spoit a bit with mail order and the net.

I wonder if midi out and its weird baud rate is gonna be any issue with the 8As. that's just a finer point I'm thinking on. I think i found the right crytal at mouser. they all are rated for 18pF though ihear that tolerance and what the Arduino wants dictates 22 generally.

LM7805 regulators for 7v+ sources are a must. When using the FTDI cable, no regulator is necessary.

Get some 10, 47, and 100uF electrolytic caps for power supply filtering. (10uF is good for USB stuff, as it is enough to smooth power without causing a huge start-up surge. 100uF is best when you have a robust power source. 47uF is the compromise with low-power sources.) Also, you need a ton of 0.1uF (100nF) ceramic caps for bypassing / noise filtering, and to use the FTDI DTR pin for reset.

yes yes yes! great stuff. now to puzzle later on how to get an FTDI cable sorted. Is it good to get a little board as that may have extra capabilities. ok, getting lazy and sleepy now!

On that note, 10k resistors for pull-up/downs. 470 for LEDs, and some LEDs. 1k because they're handy.

I got a bundle of those male-to-male pin prototyping cables from Adafruit. I could have two more sets and still use them all. A set of male-to-female pin bundles would be handy, too. I also got plenty of .1" male breakaway headers to use on the breadboard. Adafruit sells some that are long on both ends of the plastic. My breadboard requires this for a good seat.

Edit: Almost forgot... some of those Omron tactile switches for reset and input. I like the little Bourns 10K potentiometers for analog inputs or LCD contrast setting. It wouldn't hurt to have some 1K pots too, if you have a few bucks to spend.

hoping to all my first order at one place. mouser seems to trump. except for the 2x3 header which i could only find at sparkfun. that said any size will do, even a 12 or 14 simply orientated correctly at one edge.

i'm doing 3 only midi projects and only one of them uses midi IN and none of them need USB for data when running.

oh, before i forget, I thought 7805's were to be the 5.1V type. what's that about 7V. EDIT, oh i see, it's when the voltage is 7 or above one needs a 5.1 volt 7805!

The parts below are my end of day, groggy attempt to detail some of my list.
i'm going to try to get most everything for the first project in one order.
yep, I'll miss something almost certainly. Your list/notes above really sparks so great thoughts. nice!

Parts - the sleepy attempt:

  • 2 UNO R3s
  • 2x3 shrouded header with 6 wire/ribbon coming of of it (so i can go from UNO1 to UNO2s ICSP header for bootloadering) only found this on sparkfun, couldn't find on mouser.

ok, falling over tired. woohoo! what a few great days it's been.

to be continued!

Hope this helps.
[/quote]

I'm knocked out grateful for today! JOY. thank you. and thanks to everyone. obviously-ness smiles here !!

Digikey vs. Mouser is a Coke or Pepsi debate. Pick whichever you like. :slight_smile: I order from both, as, for example, I like Wima caps for audio circuits and Digikey doesn't stock those. I have everything shipped via USPS Priority because I live in Alaska and FedUps costs an arm and a leg for even the smallest box. Both Digikey and Mouser ship a box full of stuff for usually well under $10. As my orders are often between $50 - $200 worth of parts, that's fantastic.

You sound a lot like me.. I haven't bought the AVR ISP yet because the Uno does the job and I don't mind taking the long route. You do tend to learn quite a bit when things don't always "just work". In this case, the oft-cited bugs with Arduino release 1.0, the Uno, and the small serial buffer do occasionally sneak up and bite me. I went a long time without seeing it, and never understood why everyone was so against using this combo for bootloading. Then I tried to write a big HEX file with AVRdude and it failed every time with a setup that worked fine before. Adafruit has an Arduino as ISP sketch that does work well on the Uno with v1.0, or there are various mods you can make to the configuration to solve the problem. This is well-documented, so I'll leave that alone. Just be aware.

Regarding the Uno vs. older board, I think you can just upload the Due bootloader to the Uno chip and it's essentially a Due with a different USB-to-serial chip, which doesn't make much difference. Not entirely sure about this, as I've never bothered.

I've seen that Nokia hack, and yes, essentially it's the same. You're looking for a source of +5V (even that is negotiable), a usable reset line of some sort (DTR in the case of the FTDI cable), and TTL-level TX and RX. That's all the FTDI cable is, and it's not terribly expensive. (About $20.) If you find something equivalent, by all means, go for it. Just to be clear, this differs from ICSP in that the FTDI cable connects to the Arduino TX and RX pins, and ICSP connects to the SPI (MISO, MOSI, SCLK) pins. You can't write a bootloader from serial, but you can upload a sketch to a bootloaded chip. (This is how the Uno works via USB.) With ICSP, you have complete flash access, so you can write bootloaders and/or sketches.

The I/O between the 8A and 328P is pretty much identical. As I said, the 8A isn't equipped with all the interrupts (to detect pin changes and execute code automatically), and it has 8K of flash vs. 32K, and 1K of RAM vs 2K. So it's ideal for smaller, less complicated projects. But it's no slouch. Digital 1-13 and Analog 0-5 still exist. I keep both on-hand, and again, most of the time, I use the 8A to save a couple bucks. This is useful to me based on the number of projects I come up with.

BTW, the 8A or 328P will both be equally acceptable to MIDI applications. The only possible determining factor is whether 8MHz or 16MHz crystals lend themselves better to the particular divisors to achieve the serial clock suited to MIDI. This is where I'm unsure. It may not matter at all. Other crystal values can be used, but deviating from the two standard choices causes problems with other timing algorithms (like delay() for example). Using 12MHz for USB is important because the USB spec tolerances are tight enough to warrant the complications of messing with some Arduino clock speed assumptions. I kinda doubt MIDI is that picky.

The crystal load capacitance isn't the value of cap you should choose. It's part of a formula. (C1=C2=2 * LoadCapacitance - ParasiticCapacitance) Assume 5-8pF for parasitic capacitance in most cases. So, ~23pF is spot-on in the middle. 22pF is the closest standard value. Remember, these caps are typically 5% tolerance, so being exact is unnecessary. Changes in value affect the exact oscillation frequency a little. Unless your project requires uber-critical timing, as long as the crystal still oscillates, you're fine.

Incidentally, you can make life easy and pick a crystal or ceramic resonator that has three pins (X1, X2, and GND). These have the necessary caps built-in. One less thing to worry about.

A year+ ago, I designed, programmed, and built 14 boxes that I use at my fencing club.
Development & test was done using a Duemilanove. That was my first Arduino "tool".

Early on I looked at all the Arduino variants out there, and based on my needs went with ProMini's. I didn't need USB interface on any device.
The TTL serial was sufficient for 2 promini's to talk to each other (well, for 1 to send and 1 or two to receive, no back & forth).

I bought a bunch of them, and used an FTDI Basic to program them. That was my second Arduiono "tool".

When I ran out of Promini's, I built up standalone equivalents. I modified the Duemilanove by adding some pins to the X3 connector allowing the FTDI chip to bit-bang bootloaders into blank chips.

This was kind of slow, but worked. I eventually got an AVR ISP, which runs quicker. That was my 3rd tool.
http://www.mdfly.com/index.php?main_page=product_info&cPath=5&products_id=415

Accumulate a few tools, will prove to make your life easier down the road.

Another tool I obtained was a USB scope.
http://www.pdamusician.com/dpscope/

This proved handy in debugging a serial port problem, showing that I needed an inverter on the output of a box that was supposed to have TTL level serial out.

Most recently, I obtained an Atmel AVR ISP MKii programmer, this proved really effective for programming '1284 chips when I was pulling my hair out over what turned out to be a messed IDE environment (bit too much experimenting!) and getting fuses set correctly for downloading bootloader and then a sketch. I used that to program 50 cards, worked really well, and much faster than the MDFLY, likely because the IDE/MDFLY programmed the entire 128K of memory to put the bootloader in, while the MKii appeared to only do the bootload area when programming Atmel's AVR Studio 5.1.

So get yourself some tools.
(Sorry about the rambling)

Your replies all read like mini-novels relative to any other forum i use,
that i can recall. Thought that last night and hoped to write something futher
to the tips and techniques and parts mentioned.

The scope's fantasic CrossRoads and I'm guessing the less cost AVR ISP only works
with, or something specific to USBasp. Have to look into that yet I do believe
that were I needing a programmer proper I'd get the Atmel AVR ISP MKii as you did.

1284 chips!?!?!?? boggling!

I'll only ever be doing a few here and there though who knows!

SirNickity, after extolling Mouser (just a guess/IMO based on slick site, price and availablity)
it stuck with me that I really have no experiences yet. After having that stick in my mind
I was happy to read your coke and pepsi likeness as i was going to amend my trump comment.
Shortly after writing that I went again to DigiKey and did find very much to like.

I'm hoping to now have a study on :

whether the 8A will do the midi baudrate 31250 same as 328P. There's a bit of jiggery there
though I'm not yet in the thick of it so I don't know quite what I'm talking about yet.

creating an exact parts list so i can finish up my first project which is simply a bunch
of momentary switches in a box that send out midi data. plus I'll use the 6 analog pins
fo continous controllers using resistor pots.

as i have soldering tools i'm thinking I should get a breadboard though not sure what's ideal.

I am very interested in an FTDI cable though as long as I have two UNOs I guess i can
program bootloaders with optiLoader as long as I can get the 6 pins needed onto the ICSP
of the receiving board OR to the optional pins, (as i understand it) I've just been told the pinouts
fantastically. (in another thread I wrote in) sorry for lack of link. likely I'll come back to add.

Unless my brains tired I'm right that i can program code with just USB on an uno with the u2?
new UNO usb2serial chip. I like the 6 pin FTDI way though as I bet I have a bunch of 'chips
and a just few parts' sans-UNO needing reprogramming on the fly soon enough.

Thats the way to roll I guess. If there's just a powered up 8A with a crystal and a few other parts
and the code/sktch needs a change I'd wanna just plug in the FTDI and go upping the amendedc ode.
i guess.

the whole crysal/midi/baudrate/8A questions is the biggie right now, and getting the
purchases order right enough without a gottcha.

this is so practical and cool
many thanks to everyone for the best time.

I think you get it, but just to be clear -- both the 8A and 328P can run on an 8MHz or 16MHz crystal, so there's no reason to choose one over the other based on serial baudrate. It looks like I was paranoid over nothing, as I see no particular mention that either 8 or 16MHz is any more compatible with MIDI speed than the other, so it should Just Work either way. That's good.

Here's how I use "naked" chips on a breadboard:

I have an Uno that I use as a programmer. I put an 8A on a breadboard with power, 10K resistor on the reset pin to +5, and the 16MHz ceramic resonator with caps. Then, I use some hookup wire to go from the breadboard holes to the female headers on the Uno as per the Arduino on a Breadboard tutorials. (No ICSP cable needed here.) Then, I upload the bootloader to the bare chip.

From there on out, I just use the FTDI cable, since I only need to upload sketches -- not entire flash images.

I actually designed my own PCB shield with a ZIF socket for quickly programming naked chips, so now I just snap it on, put in a chip, and all the wiring and support parts are already there. Of course, this means that my Uno has to be available as the ISP programmer -- but that's OK, because I usually build my dev projects on breadboards with bare chips and leave the Uno alone. My ability to do this is pretty much thanks to the FTDI cable, since the big advantage of the Uno is the onboard USB-to-serial chip, and that's exactly what the FTDI cable provides. I never have used a real 6-pin ICSP cable.

It'll be more clear once you get your hands on it, but you technically only need ICSP once -- just to get the bootloader on there.

Exceptions to this: There will be times when you want a chip that boots directly to your program code without the bootloader, and then your only way to reprogram it is via ICSP. Or, similarly, if all you have is a pre-compiled .HEX file and you want to send that direct to flash. The FTDI cable can't do these things. Nor can it change fuse settings and all that, but that's for another time...

WONDERFUL.
thank you all!