Depending on Streamstar version, the maximum number of managed cameras can be 2 or 4 or 6 or 8. The following presents two variants of a GPI tally interface for Streamstar, right from the start for up to 8 cameras:
Assuming you would like to build a hardware interface by yourself, you have to:
Each relay coil from the relay shield is typically a 0,2W / 5V version and each relay LED is in series with a 1kΩ resistor, therefore the relay shield(s) overall current consumption will never exceed the 0,5A maximum limit permitted on USB 2.0 ports, even assuming a maximum of 8 on-air cameras at once. Due to this, combined with the fact that a typical Arduino UNO board equipped with an ATMEGA328P single-chip microcontroller requires less than 0,02A power supply, it turns out that the whole ensemble can be powered exclusively via the USB connection.
“Standard” Arduino UNO boards have a 10,9mm high Type B USB connector, which may pose a real problem when combined with these relay shields: when placing the first relay shield on top of the Arduino board, depending on the actual purchased shield, the through-hole pins of the J1 terminal connector on the relay shield may protrude way too much under the rear PCB surface and so those pins may touch the metallic case of the Arduino Type B USB connector.
If a “standard” Arduino UNO board is used and if the actual purchased shield(s) happens to have the terminal connector pins as described above, then the pins of the J1 terminal connector must be trimmed. In order to do that, the best option is desolder that terminal connector, trim its pins and then solder it back as flat as possible. To be on the safe side, a thin isolated material should also be glued somehow on top of the Arduino Type B USB connector.
Note: depending on the actual purchased shield, two pins (the outermost) of the J3 terminal connector on the relay shield may also require a little trimming – although not that critical – as they may touch the plastic body of the Arduino external power supply connector. However, in this case there is no need to desolder the connector. This trimming can be seen in the third image below.
Illustration of the Arduino Type B USB connector problem (if so the case) and the recommended solution to solve it:
Note: SparkFun RedBoard has a smaller mini-B USB connector and therefore it does not suffer from this problem, but take note that this one may present another disadvantage, in that the mini-B USB connector is not that reliable – when compared to the Type B USB connector – in terms of mechanical cable lock.
As already mentioned, the relay shield for camera tally 5 to 8 (if required) has to be modified, because the relays command must be moved from default digital pins 7, 6, 5 and 4 to digital pins 3, 2, 9 and 8 respectively. For this to happen, four copper tracks from the relay shield must be hacked and the command circuit must be redirected with the help of four additional wires. This hack can be seen in the image below.
Circuit redirection on relay shield for camera tally 5 to 8:
Note: the actual correspondence between the redirected tracks and the “new” digital pins is of no importance, as long as the software makes the proper association between camera numbers and the corresponding digital pins. The image above reflects the correspondence as currently set by parameter BOARD_OUT_PINS in the provided software. Feel free to consider it otherwise, both hardware and software.
The stacked ensemble can simply stay “as is”, i.e. each board inserted into the other one with their pins & headers, and that's it. However, in order to have a more robust ensemble, a few standoffs are to be mounted between the mounting holes of the boards. In this regard, on latest Arduino UNO revisions – and on SparkFun RedBoard as well – the mounting hole near the SCL pin does not allow any large diameter mounting hardware, so, just for that particular mounting hole, the standoff must be mechanically hacked with a help of a cutter or something. This hack can be seen in the image below, as well as the final ensemble.
Stiffening the whole ensemble using nylon/polyamide standoffs:
The stacked order of the boards is of no importance. To be noted that, on these relay shields, each terminal connector provides both contact closure and contact opening, while a camera tally needs only the contact closure section.
If all those steps have been followed so far, then the correspondence of each terminal connector with the respective camera is as follows:
The effective relay contact closure on each terminal connector is between COMx and NOx, where x is the respective J number.
The required software is available below for download. It can be directly compiled and uploaded by using the Arduino IDE PC software. The software is licensed under the LGPLv3 or later license.
Note: current software version is 1.6 (click here for versions history)
The software includes an optional I²C LCD display routine, disabled by default, originally created during the testing period. Although in normal use it has no practical purpose, it can be easily activated – and used – by changing the LCD_INSTALLED parameter to true. However, the actual code is customized for LCD2S-162 interface from Modtronix (Serial LCD 16x2 Daughter Board); therefore, in order to use it with another I²C LCD display, the code has to be altered accordingly.
The details regarding the exact steps for compiling and uploading the above software by using the Arduino IDE exceed the purpose of the present page.
To connect the interface to Streamstar, a suitable virtual COM port driver for USB is required to be installed on PC. Different Arduino UNO boards may have different USB-to-serial converters, so the actual driver depends on the existing chip from the given board. A few known variants are as follows:
Note: the details regarding the exact steps for installing these drivers exceed the purpose of the present page.
Finally, the tally port has to be set up in the Streamstar own interface. This should be done via→ GENERAL icon → TALLY PORT tab → STREAMSTAR TALLY item → select the corresponding COM port of the interface → click APPLY → that's it. However, please note that right after connecting the DIY tally interface to Streamstar, the very first camera switching will not trigger any tally relay at all – see the Important note under the next paragraph.
The interface functionality – and also its responsivity – can be tested without connecting it to Streamstar, just by using the small Python utility below. It should run under Python 3 and the SERIAL_PORT parameter must be set in accordance to the actual COM port as allocated by PC's OS. The easiest way to find that port is to look under the Arduino IDE menu > Tools > Port after connecting/disconnecting the Arduino board to PC's USB port.
Important: all Arduino UNO boards, regardless the variant or version, have the serial DTR signal connected to the nRESET line. This is required when programming the board via USB, in that the board gets reset first and only afterwards the compiled software gets uploaded. However, for the present case, this behaviour has also an undesired effect: upon connecting to Streamstar, the interface will react only after a few camera switchings, because at the very first switching the board will reset first and only then will do the right thing. This behaviour can be put in evidence also with the above small Python utility. In theory, the DTR circuit can be disabled (cut its trace or something), but in practice this is not feasible: the physical circuit is not that obvious and without it the board will no longer be programmable via USB (but it will continue to be programmable via ICSP header, though). The dedicated hardware tally interface presented in next chapter is not affected by this inconvenience.
This GPI tally interface for Streamstar is currently under development. Planned availability
is Q4 2020 has been postponed for an unspecified date.
Here are some of its features:
This is a commercial product. The price is estimated to be 380 € (ex-VAT).
Disclaimer: product availability, features, design, specifications and price are subject to change without notice.