1

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.

4
  • thank you for responding, @jsotola. I've edited my question to try and make it a little clearer... The question is specific about programming multiple Arduinos... I would expect the code to go through a number of iterations and the idea to pulling the display down and programming them individually sounds like a nightmare. Commented Jun 25, 2021 at 3:57
  • I would consider a WiFi/BT platform that supports OTA updates--it's unclear how the nodes would be symchronized from the description. Note that such a node can be very cheap, on the order of 5-10 dollars, and in the end, a matrix display like this needs little in the way of smarts. Commented Jun 25, 2021 at 4:24
  • Is is really worth it doing all this work just to reprogram them easier? As I understood the Arduinos will just move the motors to a specific position like commanded by the Pi. Thats a rather easy code. Normally one would do the development with only very few Arduinos (main code with only one, testing communication with maybe 3). Scaling to a full display can be done later, when the Arfuino code doesn't really chamge anymore. Also you didn't specify how exactly the Arduinos are connected to the Pi Commented Jun 25, 2021 at 5:09
  • 1
    If your question is how to address the individual Arduinos from Linux (which is, I guess, what the Raspberry Pi will be running), see this answer. Commented Jun 25, 2021 at 7:26

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.