Hacked BIG 256 LED Matrix advice please!

Hi all,

Total beginner when it comes to electronics so apologies for any bad descriptions in advance! I need advice on a project I would like to attempt, what I would need hardware wise, and if its even possible!

I want to build a BIG 16x16 (256) matrix sequencer using meridian style tap lights, similar to these possibly:

I want to use the hardware to control a max/msp music sequencer patch loosely based on the Yamaha Tenori-on.

Can you tell me what issues I should expect to encounter with this idea?

The example lights are battery powered but I would want to adapt them to be power hardwired and as a switch that could be used with an Arduino and Max, Im guessing for the large amount I require (256) that they need to be a digital communication with the Arduino? How should I approach this? I have read some articles about shift registers but I don't really understand to be honest. I would also like to be able to control the brightness of the LED, and potentially have all 256 on at the same time. Is this going to cause power/CPU issues do you think? Can I power them from the Arduino?

Are there many other glaring issues Im missing?! All advice gratefully received.

Thanks in advance

Can you tell me what issues I should expect to encounter with this idea?

  1. The issue of controlling a light that was not designed to be controlled externally.
  2. The cost of all the lights
  3. The fact that not only do you want to light up these lights but you probably need to detect they have been touched or tapped. They might not be hacakable to have both those controls accessible.
  4. The fact that this is quite an advanced project and you are a beginner.

I have read some articles about shift registers but I don't really understand to be honest.

That to me says forget this project for the moment, it is way too advanced for you, even though shift registers are probably not required.

If you must do this as a display only I would use WS2812b white LED strips, but when you start adding a switch you get mainly mechanical problems.

Get one of those buttons first and see if you can hack it, but as you are a beginner with probably no oscilloscope the odds are against you.

Ok. Thanks for the input. I don't want to give up! Maybe I need to find some suitable pre-made large button switches.

They need to be mechanical switches as they will be turning on/off musical steps of the sequencer in Max. But I want them to be over-sized, so the installation is big. Large 'pad' style buttons would be ideal but im yet to find any made to the dimensions i want.

Oversize and illuminated do not come cheap. I would get one of those original lights to see but what you need is both a switch matrix and an LED matrix. This project is only 8x8 but shows you the sort of thing you need to do.

Thanks for the link, that does look/sound more complicated than I was expecting!

Picking up one of the lights tomorrow so I will take it apart and let you know the results.

Thinking of alternatives, I could make my own large 'buttons' by using piezo sensors maybe. I think I would cut it down to an 8x8 matrix if that is the case though.

could make my own large 'buttons' by using piezo sensors maybe.

No sorry.

I think those buttons would be easy to hack, honestly. Buy one and take it apart and take some pictures. You will probably need to replace the led. I would get 5mm ws2812b leds to replace them, then you could attach your own wires to the switch back to your arduino.

I looked them up on the equivalent UK site and they were £336. But yes looking at what they are you should be able to hack them and read them with a switch matrix. I also agree with the 2812b suggestion you can get them in white as well.

Attached is a photo of the inside of the light.

Im currently in Barcelona, I am moving back to the UK next week, so the details of the components are in Spanish, but from what I can work out it contains 1 surface mount LED 5630, white light 4000K.

The light is designed to power from 4 AA batteries.

So... Do we think I can make this an Arduino friendly button light?! Can I control the brightness of this LED? How do I power a hole bunch of these without batteries? Would that be possible with the 5V from the Arduino?

Essentially... I just want to use the button mechanism and redesign the the rest i'm assuming!

All advice is gratefully received.

Use a 3rd party host to ipload the pic and post a link

Can you suggest a 3rd party host please...

i would get some of these


Then, you can hook up all the leds in a series, using only one pin. you can just remove the existing board and hot glue these in its place. The FastLED library lets you control the color and fade of the leds. A they can be any color you want, including white.

for the button, it seems like it is a latching button, which isn't a big deal, you just have to adjust for it in the code.

I would use an arduino mega just because it will have plenty of inputs for all the buttons. There are other ways to read all the buttons, but i think it would be the simplest way for a beginner.

I would start by getting an arduino mega and a led breakout board. Then figure out how to control the led. For one led, you might be able to get them faster by googling "ws2812b breakout" from your favorite supplier, alexpress is slow sometimes

These look great, thank you very much.

With these RGB LED's (my imagination runs away instantly) I am thinking if I also changed the button from a latch to a push, I could potentially have multiple sequencers layers showing in different colours. Epic.

I will get prototyping. Thanks for the help!!

you can do that without changing the switch.

This Econo Monome
Or this Hexome
will show you how to handle the switches as a matrix.

The LEDs are also handled as a matrix but these days I would use the WS2812b strips.

Thanks for the continued advice.

I have ordered some of the WS2812 boards and will start prototyping when they arrive. Back with it then.


  • Interested to know how I can make it control multiple step layers using latch switches? Won't that confuse things if the switch is in a contradictory position to the intended output? ie: if a switch is latched 'high' and then the layer is changed to one where that step in intended to be low, it will work opposite. Or can I make the layer just have a starting state of all low no matter the position of the switch maybe? Guessing.

All you need to do is keep track of the changes.

If you have an arduino and the switch you can get started on that now. Hook one side of switch to ground, and the other to the arduino digital pin. Then see if you can ge put it to detect the button pushed.

Without writing code, let's say you had three options you wanted the button to cycle through.

declare three variables optionCountr, oldState, and newState, set both to 0
read the current state of the switch and set it equal to a variable, called newState
~if the variable newState is different than oldState and a very small amount of time has passed (debounce)
    > set oldState equal to newState
    > add one to the option counter, unless the counter is higher than your number of options, if it    
          is higher, reset the option counter to the first option.
~else, if the variables are the same, do nothing, since the button wasn't pressed.

then, do something depending on what option is selected