guido-visser / vMix-M5Stick-Tally-Light

A script to run on a M5Stick-C to use the device as a Tally Light for vMix
74 stars 18 forks source link

vMix M5Stick-C Tally Light

Features


FAQ

Q: Does this work with ATEM, TriCaster, OBS Studio and others? A: Yes, however Tally Arbiter is required for this functionality. The plan is to integrate seemless with TA. Stay tuned for updates.

Getting started: Uploading the code to the stick

Video tutorial

Video Tutoral

Step 1

1.1 Follow the tutorial on the M5Stack website.

1.2 Copy the libraries that are used by this project (found in the libs folder) to your system. The default path is: %userprofile%\Documents\Arduino\libraries

Step 2

Upload to your device.

When using the original M5Stick-C

You don't have to change the code! πŸŽ‰

When using M5Stick-C PLUS

Change the very first line in a_GLOBAL.ino to #define C_PLUS 1 (change the 0 to a 1) That's it!

Step 3

Follow the instructions on the LCD.

Step 4

Enjoy πŸ˜„


Configuring the stick

  1. Once the code is uploaded to the stick, wait until it's in AP (Access Point) mode.
  2. Grab a phone and connect to the vMix-M5Stick-Tally wifi network, the password is: 12345678.
  3. Open your browser and go to: http://192.168.4.1, this will open up the Web UI.
    1. Enter the SSID of the wifi network you want to connect to.
    2. Enter the password that corresponds to the SSID.
    3. Enter the IP Address of the PC that's running vMix.
    4. Specify the input number that the stick must listen to. (This is the little number in the top left corner of every input)
  4. Hit the save button.
  5. The stick will restart with the given information.

Fields explained

SSID

A select dropdown which shows a list all the wifi networks found.

Hidden SSID Name

This field only shows when you select Hidden network in the SSID list. Type in the SSID that you want to connect to.

Password

The password that corresponds to the selected wifi network.

vMix IP Address

Fill in the IP Address of the computer where vMix is running.

How to find the IP of the vMix PC:

  1. Press Win + R
  2. Type in cmd and hit enter. A commandprompt will appear
  3. In the commandprompt type ipconfig and press enter
  4. Your IP Address can be found behind the IPv4 Address. . . . . . . . . . . : line

Main Tally Number

This field corresponds to the input number in vMix. Every input has a number in the top left corner of the video tile. Enter the input number you want the tally to respond to.

Multi Input

It's possible to have more inputs hooked into 1 tally light, you can provide a comma separated string to set this up.

Example:

When the Main Tally Number is set to 1 and Multi Input is set to 2,5, this will be the behavior:

SAFE:

None of the inputs are in Preview or in the Program feed.

PRE:

One of the inputs is in Preview, none are on Program.

LIVE:

One of the inputs is on the Program feed. Live always has the highest priority.

Reconnect interval

Input is in seconds. This will try to reconnect to vMix every x seconds after the interval has passed when it's disconnected. This will loop if the connection cannot be established.

WARNING: Since the stick is single threaded, when the stick tries to reconnect to vMix, the Web UI is not accessible!

Example: When set to 10 it will try to reconnect to vMix every 10 seconds after connection was unsuccessful.

Brightness

Set the brightness of the LCD. Option to choose from:

NOTE: Obviously, the battery will drain faster when the brightness is set to a high value. I recommend setting it at 60%.

Just Live

true: The stick only lights up when the configured input(s) is/are live.

false: The stick shows when the configured input(s) is/are safe, are in preview or when it is live.

Mode

Text (SAFE, PRE, LIVE): Show the textual representation of the status of the configured input(s).

Tally Number: Show the configured main tally number and only update the background color when the status changes.


Static IP Address

WARNING: This is only for users that know what they're doing. If you are not familiar with ip addresses, gateways or subnets, stay away.

It is possible to have a static IP Address, however it's not possible (yet) to do this via the Web UI. You need to hard-code this. A template is provided, but you'll have to change some code:

Plugins

Officially supported plugin:

For more information see Plugins.md


Forks

Since M5Stack has a lot of different products, some wonderful people forked my code to use it on those different products. Below is a list of products supported by the community:

M5Stack ATOM by Mark Garetz
M5Stack CORE by Peter Tellep

TODO

Good to know

This is my very first C-project, if you have any suggestions on how to improve the code, please let me know.

Thanks

A massive thanks to Thomas Mout for creating Arduino vMix Tally. This project is based on his.

Support the project

This project is completely free to use in any environment (commerically or non-commerically). However, if you like it and use it regularly, please consider buying me a coffee πŸ˜„

Buy Me A Coffee