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 )
Thanks in advance for any guidance and words of encouragement
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.
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
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
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.
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