That would be me, I think.
Excellent! You weren't throwing BS into the ether were you? (*)
You sound like you must be my age or thereabouts.
I was going to make a crack about an Age Check for posting to this forum but I won't.
Can you define the problem more clearly? You want multiple slaves running the same software. So far so good. Are you gradually going to add them?
Not really, I was hoping to add them all at once. But I guess the scenario would come up: I run to one Radio Shack, wipe out their store's inventory of Arduino's, add the batch of them to the existing array, run to the next Radio Shack, etc., having the NSA show up at my door asking why I'm buying all the damn Arduinos.
It would be interesting to work out a "hot plug" like scheme though...
In short, I was just balking at the sheer number. Trying to keep a dozen, let alone 32, identical boards straight and having absolutely no address collision when doing that manually, just seems... unlikely.
You could have some sort of "give me an address" button that, when pressed, asks the master for a free address, and then writes that into EEPROM.
That sounds much easier but not as much fun! If a nice software solution doesn't fall out, I'll probably use this and maybe light an LED to indicate the board is missing an address.
The master could do a broadcast (address 0). I'm not too clear about whether multiple slaves of the same address would cause a problem there, but I suspect not (need testing to confirm).
In your testing for your site, did you run any multiple master configurations? I'm very curious on what the Arduino I2C library does in that case.
I bet it would be very difficult to set up a test. There would have to be some other artificial mechanism to get multiple boards to reliably start communicating at exactly the same time.
Remember, you don't have heaps of program memory. You don't want to take half of it up with a smart "address allocation" routine if there are simpler ways.
Good point. But my experience has been that half the fun is dreaming these things up and the other half is, once in a while, an elegant solution just comes out of the conversation that solves everything quite nicely. In the meantime, we're poking at I2C and finding the limits of it's capabilities. Seems win-win to me.
In any case, got to go...
(*) My humour style is deadpan hyperbole. May not translate into ASCII very well; I haven't checked Unicode. Anyone visiting your site knows my comment was tongue-in-cheek.