Arduino as brain in a switcher console

Hi all,

I am frequently running video switchers as part of my own business, which is very small but growing slowly. Up until now I have either used the switcher it self for control or I have used a stream deck to control. But i have been drooling over the bigger, nicer control surfaces that exists , but the price is too high for me to invest in those. So, that bring me to this question. I am in a feasibility phase on building a control surface myself , and thinking of having the arduino uno as the brain in the whole setup.
Programatically it should be no big deal for my to setup Ethernet comms to my switcher, I have extensive programming knowledge and have done several software solutions where I control the switcher.
Hardware vise I am novice, I have used a raspberry pi to control fans and leds, i have done some microcontroller stuff, e.g. controlling MOSFETs for a brushless motor, but I don’t know the theory, so this will be a learning curve for me.
BUT, my question right now is the following, my control surface will need LOTS of buttons, I don’t know the exact count but around 50 is no exaggeration , and it will use a T-BAR (which is just a rotary pot with a handle on it, basically). Each button will have a LED in it that I need to light from the uno. The buttons are on-(on) so no latching. My signal flow as I plan it is

User presses button -> uno detects button is pressed, translate to switcher command -> switcher reacts to command and send back state to uno -> uno sees the new state and adresses LEDs on buttons to light them up according to new state

So, given there is not 50+ pins on the uno board, how can I address them individually to light them up and read presses? Previously with my microcontroller projects I have used i2c to communicate with external components, is that a feasible solution for my application or is there a smarter way (really hope so :slight_smile: )

Thanks in advance for any guidance and words of encouragement :slight_smile:

Mega has more code space and 70 IO's

So you want an Arduino to switch video.

The first big question is what sort of video?

These days there are lots of different video formats. I the old days you would just be concerned with composite video but there is more to it nowadays.

Also are all these video signals in sync to each other? If not they will cause a frame role when simply switched.

So we need a lot more information before we can begin to consider the question.

google arduino buttonbox

shift registers

No , not switch video , only for controlling an external video switcher via its udp protocol

Sorry never come across that, have you got a link to that and the switches you want to control?

I have reversed engineered part of the Black magic ATEM protocol and there are several library’s for communicating with ATEM switchers online , e.g. openswitcher.org

Cool, thanks , will read up on them

Nice thanks , but I think even going with a mega with 70 io will not suffice , each button needs two io, one for press and one for light . But found a video for a button box that I will watch tonight

Even 70 might not be enough , I think each button needs two io , one for press and one for light

Multiplexing or grid scanning can significantly reduce the number of IO's needed. Port expanders are also available.

HT16K33 will light up to 128 LEDs and has an i²c interface.

PCF8575 can be used to scan a matrix of 64 buttons and has an i²c interface. The Uno would need to perform the scanning process, although it may be possible to avoid doing that when no button is pressed by using the PCF's interrupt pin.

SX1509 will scan 64 buttons automatically and indicate to the Arduino when a button is pressed. It also has an i2c interface.

With the grid scanning for lighting the buttons , wouldn’t that cause flickering ?

No, as long as the scanning is faster than about 50~60Hz, the flickering will not be noticeable.

Oh dang , those component seem to solve my problem fully. Then just have an i2c module attached to serial pins on the uno and I would be home … awesome . Many thanks

True , but I would need to drive that in the main loop , so would be affected by other things that is happening too . But you are right , given I can update them more often than 50Hz it should work . But much more prefer your suggestion with the i2c circuits , then it’s more fire and forget until new state is needed

1 Like

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