aabm01:
I have been looking for some place where they say explicitly the boards compatible, but no luck.
I don't think you will ever see a definitive list like that, as there are so many variations between different Arduino boards and Arduino clones. Fortunately, most of the differences don't matter, it usually comes down to whether it will physically fit, and that narrows it down to the standard Arduino footprint, or the expanded Mega footprint. A majority of the issues with shield compatibility comes down to interactions with other shields because they may use the same pins. When it comes to the processor board, the actual processor chip may cause some incompatibilities if the associated library uses some specific hardware access methods and it doesn't support that particular processor. This is most often an issue with the more sophisticated boards that don't use AVR processors. The Yun uses a '32U4 AVR processor which is compatible with most libraries.
In the Arduino page in this link: https://store.arduino.cc/product/E000024?language=en
They say: "The Mux Shield II adds the capacity for up to 48 inputs or outputs on the Arduino and Arduino Mega". I don't know if when they say "Arduino" include the Yun
That link doesn't work for me, it immediately redirects to store-usa.arduino.cc which doesn't seem to carry that shield. I'm basing the following from the information at the SparkFun link I posted earlier.
Looking at the schematic and user guide, I see no reason why it wouldn't work with the Yun. You basically have a few digital outputs to select which signal to access, and a few analog inputs to read that signal.
I'm not working with sketchs but Johnny-five. To work with Mux Shield II, the library "MuxShield.h" has to be added to the sketch. In my case there are no sketch, there is a Javascript file executed with node, so it's supposed, that I need this library in Javascript, isn't it?
If you are currently reading analog inputs, there MUST be a sketch involved. I'm not familiar with Johhny-five, but it sounds like it is running on the Linux side of the Yun. The processor that runs Linux has no connection to the shield connector pins, and cannot read/write any digital I/O or read analog inputs on its own. Any shield hardware access MUST be going through a sketch. Even if most of the processing is happening on the Linux side, there must still be some sort of sketch running on the AVR processor that is reading the analog inputs and sending the information to the Linux code. That sketch is the one that would be using the library.
Now, if you are using something like Firmata as your sketch, which is a general purpose sketch that lets the Linux side generically read/write digital I/O and analog inputs, then you have a couple choices: implement the functionality of the MuxShield library on the Linux side, or modify the sketch to include the ability. Neither of those options should be a major obstacle.
If you read the user manual for the shield, you can see that there are several cuts/jumps you can make on the board to simplify operation:
- Follow the instructions to free up pin 8: cut SJ1, and add a solder blob to the blue side of SJ5. This forces all I/O rows to be inputs, and eliminates the need to drive pins 8, 10, 11, and 12. Cutting SJ1 isolates pin 8 from the shield and allows it to be used for any purpose.
- Follow the instructions to free up pin 10: cut SJ2, which isolates that pin from the shield, and frees it up for any purpose. There is no need to add a solder blob to SJ6, as the freeing up pin 8 overrides that selection.
- Follow the instructions to free up pin 11: cut SJ3, which isolates that pin from the shield, and frees it up for any purpose. There is no need to add a solder blob to SJ7, as the freeing up pin 8 overrides that selection.
- Follow the instructions to free up pin 12: cut SJ4, which isolates that pin from the shield, and frees it up for any purpose. There is no need to add a solder blob to SJ8, as the freeing up pin 8 overrides that selection.
So now you have simplified the operation of the board, and you don't really need the library to control it. It is now a 48 line input board, set up as three groups of 16. You only need to control the digital pins D2, D4, D6, and D7, and read analog inputs A0, A1, and A2. To read a particular input of the shield, set the digital pins as shown in the table below, and then read the indicated analog input:
MuxInput | D2 | D4 | D6 | D7 | AnalogIn
---------+------+------+------+------+---------
I/O1-0 | LOW | LOW | LOW | LOW | A0
I/O1-1 | LOW | LOW | LOW | HIGH | A0
I/O1-2 | LOW | LOW | HIGH | LOW | A0
I/O1-3 | LOW | LOW | HIGH | HIGH | A0
I/O1-4 | LOW | HIGH | LOW | LOW | A0
I/O1-5 | LOW | HIGH | LOW | HIGH | A0
I/O1-6 | LOW | HIGH | HIGH | LOW | A0
I/O1-7 | LOW | HIGH | HIGH | HIGH | A0
I/O1-8 | HIGH | LOW | LOW | LOW | A0
I/O1-9 | HIGH | LOW | LOW | HIGH | A0
I/O1-10 | HIGH | LOW | HIGH | LOW | A0
I/O1-11 | HIGH | LOW | HIGH | HIGH | A0
I/O1-12 | HIGH | HIGH | LOW | LOW | A0
I/O1-13 | HIGH | HIGH | LOW | HIGH | A0
I/O1-14 | HIGH | HIGH | HIGH | LOW | A0
I/O1-15 | HIGH | HIGH | HIGH | HIGH | A0
---------+------+------+------+------+---------
I/O1-0 | LOW | LOW | LOW | LOW | A1
I/O1-1 | LOW | LOW | LOW | HIGH | A1
I/O1-2 | LOW | LOW | HIGH | LOW | A1
I/O1-3 | LOW | LOW | HIGH | HIGH | A1
I/O1-4 | LOW | HIGH | LOW | LOW | A1
I/O1-5 | LOW | HIGH | LOW | HIGH | A1
I/O1-6 | LOW | HIGH | HIGH | LOW | A1
I/O1-7 | LOW | HIGH | HIGH | HIGH | A1
I/O1-8 | HIGH | LOW | LOW | LOW | A1
I/O1-9 | HIGH | LOW | LOW | HIGH | A1
I/O1-10 | HIGH | LOW | HIGH | LOW | A1
I/O1-11 | HIGH | LOW | HIGH | HIGH | A1
I/O1-12 | HIGH | HIGH | LOW | LOW | A1
I/O1-13 | HIGH | HIGH | LOW | HIGH | A1
I/O1-14 | HIGH | HIGH | HIGH | LOW | A1
I/O1-15 | HIGH | HIGH | HIGH | HIGH | A1
---------+------+------+------+------+---------
I/O2-0 | LOW | LOW | LOW | LOW | A2
I/O2-1 | LOW | LOW | LOW | HIGH | A2
I/O2-2 | LOW | LOW | HIGH | LOW | A2
I/O2-3 | LOW | LOW | HIGH | HIGH | A2
I/O2-4 | LOW | HIGH | LOW | LOW | A2
I/O2-5 | LOW | HIGH | LOW | HIGH | A2
I/O2-6 | LOW | HIGH | HIGH | LOW | A2
I/O2-7 | LOW | HIGH | HIGH | HIGH | A2
I/O2-8 | HIGH | LOW | LOW | LOW | A2
I/O2-9 | HIGH | LOW | LOW | HIGH | A2
I/O2-10 | HIGH | LOW | HIGH | LOW | A2
I/O2-11 | HIGH | LOW | HIGH | HIGH | A2
I/O2-12 | HIGH | HIGH | LOW | LOW | A2
I/O2-13 | HIGH | HIGH | LOW | HIGH | A2
I/O2-14 | HIGH | HIGH | HIGH | LOW | A2
I/O2-15 | HIGH | HIGH | HIGH | HIGH | A2
---------+------+------+------+------+---------
Note that this is all theoretical, I have never used that shield, and have no personal experience with it. However, the schematic looks fairly simple, especially after the jumpers have been modified as I noted above. I see no reason why it shouldn't work.
This shield is actually overkill for your purposes. If you're willing to build some hardware, you could make a 16 analog input version of this on a protoshield using a single 74HC4067. Something like the attached. In this case, you would set D2, D3, D4, and D5 with the binary equivalent of the channel number you wanted to read, and then read the analog input A0 (of course, you could use any four digital outputs, and any analog input.)