Question about connecting 6 Attiny85s to one Nano Every via 12C

Hello -- first post, and beginner level Arduino user. Recently retired and have been having fun with this amazing technology. No electronics experience but have found it easy thus far to execute the simple projects in the tutorials and create a few of my own.

For my first "practical" application, I am trying to combine my other retirement hobby (a return to plastic model kit building after 50 years) with the new lighting possibilities provided by the Arduino boards.

These are my requirements -- which include multiple sketches that need to be controlled individually:

  1. Start/Stop sketch that controls a strip of about 20 addressable RGB LEDs
  2. Start/stop and control brightness/dimness of a white 20-LED strip
  3. Start a sketch that controls 1 addressable RGB LED
  4. Start a sketch that controls 1 addressable RGB LED
  5. Toggle on/off with voltage ramp-up effect a small piece of switchable smart film

I have successfully programmed each of the individual sketches (realizing that I will need to alter the code depending on how they will be connected and controlled). So, my question is whether or not it is possible to control each of sketches through Arduino IoT Cloud by using the Nano Every as the "master" sending commands to 5 attiny85s (each running one of the above sketches)? If not, is there another way? Once I know if/how this would be possible, I will tackle code separately.

BTW, the reason the RGB LEDs are broken into multiple strips/sketches instead of controlling as one addressable strip with multiple sequences is that space is limited in the model, and it will be easier to wire each individual strip directly from the PCB to the area being lit rather that interweaving one set of wiring throughout the whole model and back to the PCB.

Apologies in advance for terminology, misunderstanding of basic concepts, etc -- very new to this.

You can always bring back the data line from last led of the strip to the pcb if you want "star" wiring.
For I2C slave approach you could try some library

Topologically, I see little complexity difference between routing 4-wire I2C and routing 3 or 4 wire serially addressable LEDs. In either case you need 2 signal wires and 2 power wires.

Hi 241_stonehenge,
you can control the small controllers by a bigger one.
But I have the feeling, that the tasks could be just managed by the arduino every all together without the use of the tinys. Might be, that I am wrong.

That is also what I was thinking about.
Is it more like a dare you gave to yourself to be able to do it or is it because you think this is the only way to do it?

However, yes the Nano (as long as it has internet connection) can be the master and give the orders to the other MCUs that you have.

Perhaps I should clarify... my intent is to have all of the attiny85s and master all on one board, with the various paths leading off from there. The reason for NOT using one continuous string is that to do so would entail continuing the three wires (data, 5v, ground) from one section of strip to another throughout the model, which in many some cases would require doubling back out of one part to get to another... that's six wires, not three, running through one small opening. I am however using a single strip going to multiple areas where possible. Just need to use the "dead end" method in a few areas.

Also, if I wasn't clear above, my objective is to be able to toggle each of these sketches on and off in different combinations at will. Does that help?

Not at all. I, as @Anthony_P and @fiso42 , can't understand the difference between sending wires from the Every to each ATtiny85 and sending wires from the every to each LED strip, in which case you can use different pins for each one if you want to.

Another problem lies here:

The Nano Every has no wi-fi capabilities. So, it's a no-go with the IoT Cloud.

Ah, thank you. Not sure where I got the impression nano every had wi-fi capabilities. Suppose I could use the IR module and do it that way. I am confused though about using the nana alone to do all that I wanted to do above and having everything run at the same time. Maybe, to my mind, it is easier to wrap my head around many pieces of hardware doing easily coded (to me) things, than multiple layers of millis code in one long complex sketch.

I appreciate the advice and guidance.

This smells like an x-y problem to me. To try and simplify/segregate the software, you're making the hardware overly complex.
Consider the following possible breakdown of your LED arrangement:
LED(s) on each wingtip
LED(s) on tail
LED(s) on nose

Power and GND go to each of the 4.
Data from Nano goes to a wingtip, back to center, out to other wingtip, back to center, out to tail, back to center, and finally out to nose.
Thus, 4 wires to each LED location; 2 serve for power, 2 for data out and back. The Nano sees one "strip" of LEDs.

Now, in software, those 4 logical LED strips just become indices in a single array of data for the LEDs. You must manage the functions, sure, but it's very trivial code. loop() would be something like:

if(it's time for fn PortTip):
for(int i = LEDPortStart; i <= LEDPortEnd; i++)  {do whatever}

if(it's time for fn StarboardTip):
for(int i = LEDStartboardStart; i <= LEDStarboardEnd; i++)  {do whatever}

if(it's time for fn Tail):
for(int i = LEDTailStart; i <= LEDTailEnd; i++) {do whatever}

if(it's time for fn Nose):
for(int i = LEDNoseStart; i <= LEDNoseEnd; i++) {do whatever}

showLEDs();

THAT makes sense. Thanks for breaking it down like that.

It will, of course, not be quite that simple.

When you start to implement, we generally prefer if the poster returns to the thread they started and add a new post with their first attempt at the code, and guidance from there can be provided. Don't start up a new thread, as what's already been discussed in this thread is a great starting point.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.