Let me just start off by saying that this is the first time I've attempted a project at this scale. I'm not sure that I'm even taking the right approach on this.
I'm attempting a project inspired by Daniel Rozin. This is basically an array of small stepper motors representing display pixels, where it's lighter when pointing towards a reference light and darker as it's points away. Each Arduino controls two steppers through two ULN2003 drivers. These nodes will be given instructions by a raspberry-pi via i2c or spi.
My question is this: One of my goals is to reprogram the ATmega328Ps through the raspberry pi without taking down the entire display and reprogramming each of the nodes individually. I would expect my code to go through a number of iterations, and reprogramming these individually sounds like a nightmare. Is it possible to reprogram these nodes by address from the raspberry-pi? Is this a problem that should be tackled using some standard mechanism?
Here is what I'm currently thinking about. And I'm not an expert here. I could be way off base. I don't know... According to this writeup, when the application starts, the bootloader is looking for a series of byes to kick off the reprogramming process. What I'm thinking about is forking the arduino bootloader project and defining a different expected series of bytes for each node.