Code Monkey home page Code Monkey logo

atem_tally_light_with_esp8266's Introduction

ATEM-tally-light

GitHub release License

Buy Me A Coffee

Wireless tally light and 'On Air' sign for use with ATEM switchers. Connects over WiFi using only a D1 mini board (ESP8266 WiFi module) and a RGB LED or LED strip. This solution is not limited by the ATEM switchers' connection limit, making it possible to connect as many as you need.

ESP32 is also supported. Depending on your board, you might need to change the pin numbers.

It should easily be convertable to use with regular Arduino boards and a WiFi module, by changeing the include statements and a few other things (however, this is not tested).

DIY guide is available in the wiki. No coding required!

Video tutorial available by Josh from @Budget Church Livestreaming

What does it do?

Once set up, it will automatically connect to an ATEM switcher over WiFi and function as a tally light or 'On Air' sign.

When the program is uploaded to the ESP8266 the setup is done with a webpage it serves over WiFi where you are able to see status details, and perform the basic setup. Depending on if it's connecting to a known network or not it will serve the webpage on it's IP address, or on 192.168.4.1 (default) over a softAP (access point) named "Tally light setup". For more details, see the guide int the wiki.

As Atem swithcers only allow for 5-8 simultanious clients (dependant on the model) v2.0 introduced Tally Server functionality. This makes the system only require one connection from the switcher, as the tally lights can retransmit data to other tallys. An example setup is shown in the diagram below, where arrows indicate the direction of tally data from swtcher/tally unit to client tally unit.

asdf

NOTE: As this brings a lot of flexibility with how to connect the units, bear in mind that the ESP8266 isn't that powerful, and is limited to 5 clients each. (In some cases 5 might even be too many).

Connection and tally state indication

The different states of connection is signalled with LED colors.

Color Description
BLUE Connecting to WiFi
WHITE Unable to connect to WiFi - serves softAP "Tally light setup", while still trying to connect.
PINK Connecting to ATEM Swithcher (Connected to WiFi).
RED Tally program
GREEN Tally preview
OFF Tally neither live or preview (or no power. Blue LED on the D1 mini is on when not in program).
ORANGE Connected and running (Only shown by status LED on addressable LED strip).

Modes of operation

By default the tally light works as a normal tally light would in a professional enviroment, but other modes are available as described.

Mode Description
Normal As describen in the above table.
Preview stay on Tally will be green whenever not in program
Program only Tally will be off whenever not in program
On Air Red when switcher is streaming, off otherwise.

Note: only some Atem models support streaming, so On Air mode only works with those models. On Air mode also needs a direct connection to switcher, not another tally unit. However, it still retransmits tally data to other units if needed.

Use Arduino IDE with ESP8266 module

See details at ESP8266 on how to setup and use ESP8266 modules like a regular Arduino board. They have links for further documentation as well.

Credits

Based on ATEM libraries for Arduino by SKAARHOJ, available at Git repo: SKAARHOJ-Open-Engineering

Inspired by ATEM_Wireless_Tally_Light (However, this works completely different)

atem_tally_light_with_esp8266's People

Contributors

aronhetlam avatar dependabot[bot] avatar paulkilroy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

atem_tally_light_with_esp8266's Issues

10mm RGB LED brightness not enough

Hello,
i use the Tally Light with a 10mm RGB-LED, but outside i cant see the Colour of the LED.
Can i use a other LED (more Power, brightness) or a 0.96 OLED I2C Display with background Colour and a Text in the Display?
for example
"Ready and OnAir"?

Greets
Andreas

LED2

Hello, in Wiki on the screenshot of the settings you can read as described in readme for LED2, but only in Wiki there is LED2 mentioned as later implemented in project.
Can you tell what this LED2 does?
I only found in .ino that it might be something atem tellys have.

i am confused: my Red and Green is reversed

#Hi there

after setup my wlan (the other issue) am am working on a new case.

Something wicked happen:
my green and RED LED is reversed.
The Code is the latest (incl Ws2812 support), Here is the define section

#define PIN_RED1 D0
#define PIN_GREEN1 D2
#define PIN_BLUE1 D1

//Define LED2 color pins
#define PIN_RED2 D4
#define PIN_GREEN2 D5
#define PIN_BLUE2 D6

But: At my Wemos D1 from AZ Delivery this happen:
Red LED is D2, Green LED is D0.

First i think i solder the wrong LED, but when i use 5V directly everything ist OK (the green LED is Green)
Then i checked if the ATEM Tally number is wrong, but it is OK. Preview is Green

D4 (2nd LED Red) is very low and always on. This happen to every Wemos D1 in my setup (different settings, breadboard...)

WS2812b is working fine! Thanks :-)

I didnt understand that :-(

its no problem, because i can change the code or the Hardware, but... i didnt understand that

Using ATEM_tally_light_with_ESP8266 within obs

Hey,
I'm currently working on the tally lights for my ATEM mini pro ant its very straight forward and simple to assemble.
Is it possible with this setup to get the OBS Tally information via web sockets implemented? Maybe that one LED in the Neo-Strip change to red when OBS ist streaming?

kind regards
Stephan

Latest Atem firmware support?

Hi,

This looks great -I'm currently looking to move from vmix to using an Atem Mini Pro - and am building a tally system...

https://www.skaarhoj.com/fileadmin/BMDPROTOCOL.html says that their libs only support Atem firmware befreo 7.5.0 - the current version looks to be 8.4 according to Blackmagic...

Does the tally s/w (and libs) still work with the current firmware versions? Thanks!

How to connect more Tally

Hello, the author. First of all, thank you for your contribution to good teaching. Now I have made 10 tallies according to your tutorial. After setting tally, only 4 can be connected to ATEM and the other 6 can't (LED is pink). You said that version 2.0 has added the "tally server" function, which enables more tallies to join ATEM. But I can't find this function. Where can I set this function or how can I connect it?
I'm looking forward to your reply. Thank you very much!

Won't compile

This is the message I get from the IDE:

ATEM_tally_light:261:22: error: 'class WiFiClass' has no member named 'mode'

             WiFi.mode(WIFI_STA); // Disable softAP if connection is successful

Any idea what went wrong?
Thanks for your help.
I am not sure what the rest of the stuff below here is.

Arduino: 1.8.13 (Windows Store 1.8.42.0) (Windows 10), Board: "LOLIN(WEMOS) D1 R2 & mini, 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), 4MB (FS:2MB OTA:~1019KB), v2 Lower Memory, Disabled, WIFI, Only Sketch, 921600"

In file included from C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino:50:0:

C:\Users\HPz800\Documents\Arduino\libraries\FastLED\src/FastLED.h:14:21: note: #pragma message: FastLED version 3.004.000

 #    pragma message "FastLED version 3.004.000"

                     ^

In file included from C:\Users\HPz800\Documents\Arduino\libraries\FastLED\src/FastLED.h:65:0,

                 from C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino:50:

C:\Users\HPz800\Documents\Arduino\libraries\FastLED\src/fastspi.h:135:23: note: #pragma message: No hardware SPI pins defined.  All SPI access will default to bitbanged output

 #      pragma message "No hardware SPI pins defined.  All SPI access will default to bitbanged output"

                       ^

In file included from C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino:43:0:

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer.h: In instantiation of 'class esp8266webserver::ESP8266WebServerTemplate<WiFiServer>':

C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino:126:24:   required from here

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer.h:80:53: error: no type named 'ClientType' in 'class WiFiServer'

   using ClientType = typename ServerType::ClientType;

                                                     ^

C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino: In function 'void setup()':

ATEM_tally_light:228:10: error: 'class WiFiClass' has no member named 'mode'

     WiFi.mode(WIFI_STA);

          ^

ATEM_tally_light:228:15: error: 'WIFI_STA' was not declared in this scope

     WiFi.mode(WIFI_STA);

               ^

ATEM_tally_light:229:16: error: no matching function for call to 'WiFiClass::begin()'

     WiFi.begin();

                ^

C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino:229:16: note: candidates are:

In file included from C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino:5:0:

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\WiFi\src/WiFi.h:60:9: note: int WiFiClass::begin(char*)

     int begin(char* ssid);

         ^

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\WiFi\src/WiFi.h:60:9: note:   candidate expects 1 argument, 0 provided

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\WiFi\src/WiFi.h:70:9: note: int WiFiClass::begin(char*, uint8_t, const char*)

     int begin(char* ssid, uint8_t key_idx, const char* key);

         ^

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\WiFi\src/WiFi.h:70:9: note:   candidate expects 3 arguments, 0 provided

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\WiFi\src/WiFi.h:79:9: note: int WiFiClass::begin(char*, const char*)

     int begin(char* ssid, const char *passphrase);

         ^

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\WiFi\src/WiFi.h:79:9: note:   candidate expects 2 arguments, 0 provided

ATEM_tally_light:233:10: error: 'class WiFiClass' has no member named 'hostname'

     WiFi.hostname(settings.tallyName);

          ^

ATEM_tally_light:235:10: error: 'class WiFiClass' has no member named 'setAutoReconnect'

     WiFi.setAutoReconnect(true);

          ^

ATEM_tally_light:251:10: error: 'class WiFiClass' has no member named 'waitForConnectResult'

     WiFi.waitForConnectResult();

          ^

C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino: In function 'void loop()':

ATEM_tally_light:261:22: error: 'class WiFiClass' has no member named 'mode'

                 WiFi.mode(WIFI_STA); // Disable softAP if connection is successful

                      ^

ATEM_tally_light:261:27: error: 'WIFI_STA' was not declared in this scope

                 WiFi.mode(WIFI_STA); // Disable softAP if connection is successful

                           ^

ATEM_tally_light:271:22: error: 'class WiFiClass' has no member named 'mode'

                 WiFi.mode(WIFI_AP_STA); // Enable softAP to access web interface in case of no WiFi

                      ^

ATEM_tally_light:271:27: error: 'WIFI_AP_STA' was not declared in this scope

                 WiFi.mode(WIFI_AP_STA); // Enable softAP to access web interface in case of no WiFi

                           ^

ATEM_tally_light:272:22: error: 'class WiFiClass' has no member named 'softAP'

                 WiFi.softAP("Tally Light setup");

                      ^

C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino: In function 'void handleRoot()':

ATEM_tally_light:554:18: error: 'class WiFiClass' has no member named 'hostname'

     html += WiFi.hostname();

                  ^

ATEM_tally_light:609:14: error: 'class WiFiClass' has no member named 'isConnected'

     if (WiFi.isConnected()) //As a minimum security meassure, to only send the wifi password if it's currently connected to the given network.

              ^

ATEM_tally_light:610:22: error: 'class WiFiClass' has no member named 'psk'

         html += WiFi.psk();

                      ^

C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino: In function 'void handleSave()':

ATEM_tally_light:727:66: error: 'class WiFiClass' has no member named 'psk'

             if (ssid && pwd && (ssid != getSSID() || pwd != WiFi.psk())) {

                                                                  ^

ATEM_tally_light:728:39: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]

                 WiFi.begin(ssid.c_str(), pwd.c_str());

                                       ^

In file included from C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino:5:0:

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\WiFi\src/WiFi.h:79:9: error:   initializing argument 1 of 'int WiFiClass::begin(char*, const char*)' [-fpermissive]

     int begin(char* ssid, const char *passphrase);

         ^

In file included from C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer.h:259:0,

                 from C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino:43:

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h: In instantiation of 'void esp8266webserver::ESP8266WebServerTemplate<ServerType>::handleClient() [with ServerType = WiFiServer]':

C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino:349:25:   required from here

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:319:20: error: using invalid field 'esp8266webserver::ESP8266WebServerTemplate<ServerType>::_currentClient'

     _currentClient = client;

                    ^

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:327:34: error: using invalid field 'esp8266webserver::ESP8266WebServerTemplate<ServerType>::_currentClient'

   if (_currentClient.connected() || _currentClient.available()) {

                                  ^

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:327:34: error: using invalid field 'esp8266webserver::ESP8266WebServerTemplate<ServerType>::_currentClient'

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:334:7: error: using invalid field 'esp8266webserver::ESP8266WebServerTemplate<ServerType>::_currentClient'

       if (_currentClient.available()) {

       ^

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:335:41: error: using invalid field 'esp8266webserver::ESP8266WebServerTemplate<ServerType>::_currentClient'

         if (_parseRequest(_currentClient)) {

                                         ^

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:335:41: error: '_parseRequest' was not declared in this scope

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:336:11: error: using invalid field 'esp8266webserver::ESP8266WebServerTemplate<ServerType>::_currentClient'

           _currentClient.setTimeout(HTTP_MAX_SEND_WAIT);

           ^

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:340:11: error: using invalid field 'esp8266webserver::ESP8266WebServerTemplate<ServerType>::_currentClient'

           if (_currentClient.connected()) {

           ^

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:363:20: error: using invalid field 'esp8266webserver::ESP8266WebServerTemplate<ServerType>::_currentClient'

     _currentClient = ClientType();

                    ^

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h: In instantiation of 'void esp8266webserver::ESP8266WebServerTemplate<ServerType>::send(int, const char*, const String&) [with ServerType = WiFiServer]':

C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino:647:39:   required from here

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:446:5: error: using invalid field 'esp8266webserver::ESP8266WebServerTemplate<ServerType>::_currentClient'

     _currentClient.write((const uint8_t *)header.c_str(), header.length());

     ^

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h: In instantiation of 'void esp8266webserver::ESP8266WebServerTemplate<ServerType>::close() [with ServerType = WiFiServer]':

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:108:9:   required from 'void esp8266webserver::ESP8266WebServerTemplate<ServerType>::begin() [with ServerType = WiFiServer]'

C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino:245:18:   required from here

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:375:3: error: 'class WiFiServer' has no member named 'close'

   _server.close();

   ^

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h: In instantiation of 'void esp8266webserver::ESP8266WebServerTemplate<ServerType>::send_P(int, const char*, const char*) [with ServerType = WiFiServer]':

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer.h:134:39:   required from 'void esp8266webserver::ESP8266WebServerTemplate<ServerType>::send(int, const char*, const char*) [with ServerType = WiFiServer]'

C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino:653:489:   required from here

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:463:5: error: using invalid field 'esp8266webserver::ESP8266WebServerTemplate<ServerType>::_currentClient'

     _currentClient.write((const uint8_t *)header.c_str(), header.length());

     ^

In file included from C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer.h:259:0,

                 from C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino:43:

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h: In instantiation of 'esp8266webserver::ESP8266WebServerTemplate<ServerType>::~ESP8266WebServerTemplate() [with ServerType = WiFiServer]':

C:\Users\HPz800\Documents\Arduino\ATEM_tally_light_with_ESP8266-3.1\ATEM_tally_light\ATEM_tally_light.ino:126:18:   required from here

C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:91:3: error: 'class WiFiServer' has no member named 'close'

   _server.close();

   ^

Multiple libraries were found for "EthernetUdp.h"

 Used: C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\Ethernet

 Not used: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\Ethernet

Multiple libraries were found for "WiFiClient.h"

 Used: C:\Users\HPz800\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi

 Not used: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\WiFi

exit status 1

'class WiFiClass' has no member named 'mode'



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

V3.1 can not compile code

Hy
I get this error when I try to compile the code.
Do I miss an library?

Bildschirmfoto 2021-03-13 um 20 07 55

I hope you can help me to solve this problem
And many thanks for your support and Work!!!

Tally Server Problems setting up the

Hello author, I have a question about the connection between the tally lamps
My ATEM can add no more than 4 TALLY
You can't add more than 4
Then I remember you saying that version 2.0 has added the "Tally Server" feature
I set the newly added Tally, switcher IP to one of the normally working Tally static IPs
The newly added Tally still shows that pink lights are not connected and not working properly
Below is my setting, please help me to have a look
Thank you very much for taking the time to help me out

————————————————

Using the development board:D1 MINI -ESP8266

————————————————

Main information:
ATEM IP :192.168.10.240
gateway:192.168.10.250
subnet mask:255.255.255.0

————————————————

1.tally3(Use in normal connection)

Number:3
TALLY IP:192.168.100.30
subnet mask:255.255.255.0
gateway:192.168.10.250
ATEM IP:192.168.10.240

————————————————

2.tally4(Use in normal connection)

Number:4
TALLY IP:192.168.100.40
subnet mask:255.255.255.0
gateway:192.168.10.250
ATEM IP:192.168.10.240

————————————————

3.tally5(Use in normal connection)

Number:5
TALLY IP:192.168.100.50
subnet mask:255.255.255.0
gateway:192.168.10.250
ATEM IP:192.168.10.240

————————————————

4.tally6(Use in normal connection)

Number:6
TALLY IP:192.168.100.60
subnet mask:255.255.255.0
gateway:192.168.10.250
ATEM IP:192.168.10.240

————————————————

5.tally2(New) Unable to connect

Number:2
TALLY IP:192.168.100.20
subnet mask:255.255.255.0
gateway:192.168.10.250
ATEM IP:192.168.100.30

LED Colors

Is it possible to change the assigned colors for events?

RED | Tally program & GREEN | Tally preview isn't very good for camera operators who are Red/Green colorblind. :)

Max amount of Tally’s

Seems to be an issue that if more than 5 Tally's are connected other tally's won't connect to the ATEM

Add "On Air" mode

Functionality is already added to the repo's ATEMmin lib, and just needs to be implemented in ATEM_tally_light.ino and the settings webpage.

  • Add Steaming data parsing to ATEMmin lib
  • Document new functionality in ATEMmin lib README and/or in the WIKI
  • Add "On Air" option to settings.html
  • Add "On Air" mode to ATEM_tally_light.ino
  • Add documentation to README and WIKI

Case for neopixel

Hy @AronHetLam,

I have created a case with the LED Stripe inside.
please have a look to this link and open the .pdf file

IMG_2032

I hope you like it and you will put it to your project page.
Right now I have two of them running in a house of worship - but I´m looking to install more - but 3D printing takes time

Program mode not working.

When I go to enter the program mode the lights turn off. When I put the camera in the preview they turn red.
I've re-uploaded the sketch multiple times.

Anything I'm missing?

Error while uploading: no headers files (.h) found in C:\Users\Gert\Documents\Arduino\libraries\ATEM

Who can help? I'm an complete 'newbee' to this and just made my first steps... ;-)

During upload i got this error message, what can i do ?

Regards Gert

Arduino:1.8.15 (Windows 10), Board:"LOLIN(WEMOS) D1 R2 & mini, 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 4MB (FS:2MB OTA:~1019KB), v2 Higher Bandwidth, Disabled, None, Only Sketch, 921600"

ATEM_tally_light:35:10: fatal error: ATEMmin.h: No such file or directory

35 | #include <ATEMmin.h>

  |          ^~~~~~~~~~~

compilation terminated.

exit status 1

ATEMmin.h: No such file or directory

Ongeldige bibliotheek gevonden in C:\Users\Gert\Documents\Arduino\libraries\ATEM: no headers files (.h) found in C:\Users\Gert\Documents\Arduino\libraries\ATEM

Ongeldige bibliotheek gevonden in C:\Users\Gert\Documents\Arduino\libraries\ATEM_tally_light: no headers files (.h) found in C:\Users\Gert\Documents\Arduino\libraries\ATEM_tally_light

Ongeldige bibliotheek gevonden in C:\Users\Gert\Documents\Arduino\libraries\ATEM_tally_test_server: no headers files (.h) found in C:\Users\Gert\Documents\Arduino\libraries\ATEM_tally_test_server

Ongeldige bibliotheek gevonden in C:\Users\Gert\Documents\Arduino\libraries\libraries: no headers files (.h) found in C:\Users\Gert\Documents\Arduino\libraries\libraries

Ongeldige bibliotheek gevonden in C:\Users\Gert\Documents\Arduino\libraries\Wiki: no headers files (.h) found in C:\Users\Gert\Documents\Arduino\libraries\Wiki

other systems support

Hi!
Can you give some directions on how to implemet other systems support besides BlackMagic?
First, Vmix! Can you tell what parts of the code should be altered to add support for vmix? And if that works, how to further add support for more systems?

FastLED support

I see you added a 2nd LED - that's great. I'm looking at using an Adafruit NeoPixel and using the FastLED library to drive it - all easy to add into your code - except I'll probably be adding it in a way that won't be up to your coding standards :-)

It would be great if you added support as a third LED using the FastLED library - but understand you may not want to - that's fine :-)

I'm hoping to use these at our live streaming services starting next week.

Andrew

It will not connect to my switch

Atem tally Light Problem

Atem I have connected to the wifi router, I have it connected to the PC.

After reading the code, it connects to wifi but does not want to connect to the switcher, even if the ip address matches the atem setup.

Connecting to switcher...
Switcher IP: 192.168.10.240

Sending connect packet to ATEM switcher on IP 192.168.10.240 from port 51822
Connection to ATEM Switcher has timed out - reconnecting!

Any advice on where the problem might be?

What Access Point are you using? Because i cannot reach my ATEM

Hi There

I wonder why "Disconnected - No response from switcher" is in the Status

i am not allone with that "wireless problem to ATEM or Blackmagic Products"
https://forum.blackmagicdesign.com/viewtopic.php?f=4&t=28383

So i am asking those who use this ESP Tally:
What Access Point is ok?

i use the TP-Link WR841N. Everything works (Cable), but no wireless ATEM Controll (doublecheck IPs, Subnet, Gateway, Ping, Software...)

Thanks for Help :-)

V3.1 several problems found

Yesterday I have tried to do the setup in reality...
I found out that V3.1 does not load the whole webpage using "tally light setup" WLAN connection. It also does not recognize settings after pressing the "save" button at all. It stored half of the settings sometimes.

When it was connected to the network, it shows "white" status but then directly shows the ATEM status??? I guess it should stay blue if it does not find the ATEM?

Then I decided to flash down to Version "3.0" and some things changed:
Webside was always loaded properly and much quicker! in "tally light setup" Wlan as well in operational Wlan connection. It also recognized the "save" button correctly.

Problem with the white LED status was still there

It was problematic to get connection to ATEM Mixer for sometimes all connected Tally lights (3pcs) directly but most times one or two lights get connection and then it stopped. (There were no other connection opened and ATEM was fresh booted) I have also setup all IP Adresses fixed and close to each other. Interesting point was also when it was connected, it stays connected. Sometimes it needed several reboot of the tally light to get connection to the ATEM but the Tally was connected to the operating WLAN showing "white" status light. It didn't find the ATEM Mixer in that mode if it didn't recognize it directly after reboot.

I hope this all helps to find the Problem(s).
BR

WI-fi connection

Hi, thanks for this very usefull tally system. I bought a Nodemcu D1 Mini Esp8266 Wifi arduino and did the steps in tutorial. Connected in a Tally Light Setup network and configured all items in question. But the connection with my wireless network is not working. Have any conditions to a SSID network name or a security protocol like WEP, WPA etc? How can i see the logs or debug to know where is the problem?

Thank very much!

Won't compile NodeMCU 1.0

Hi,

I'm trying to load the code into NodeMCU 1.0, which still shows me an error, I know that you have already solved this problem, but you have not solved it, so I am also sending a detailed statement from the console.

You will find a statement in this file: eror.txt

Thanks

Possibility to Adress Tally with Hardware

For a changing Enviroment it would be nice to address the Tally by Hardware.
For example with 5 Dipswitches in the Style that DMX Lighting Fixtures were addressed.
That would give the Possibility to Change 31 Inputs verx Quickly.

First Project with Tally Light

Hello,
last week I had my first project with the tally light added to my setup and I can say it worked perfect. I have build three of them for a live stream event, added a small 5V wifi-router which I connected directly to the ATEM. This time we had no problem with the anchorman to choose the right camera.

Thanks allot :)

Tally_1
Tally_2
Tally_3

Neopixel support

im requesting this because most of the people uses ws2818b leds or ws2811

(and i only have ws2812b leds so Thanks)

Alex Cruz

ATEM Connected but waiting

I have the application up and running but do have an issue. Once I have the network all configured and working, My status indicates "Connected - Wating for initialization - Connection might have been rejected" I see it is checking atemSwitcher.isConnected(). what could cause this condition?

Side info, I am running on ESP8266 NodeMCU

Is it posible using esp01 board?

Thank's sir...great job,,your project it's worl for me,it's help alot..I'm curious is it posible using esp01,reason for lowering cost

Cannot change tally light name and set static IP

If tally light name have space ,cannt change it.

static ip I chanage the code ,it's OK now

Serial.println(settings.tallyName);
//Serial.println(settings.tallyIP[0]); //Check size of settings struct
IPAddress local_IP(settings.tallyIP[0], settings.tallyIP[1], settings.tallyIP[2], settings.tallyIP[3]);
IPAddress gateway(settings.tallyGateway[0], settings.tallyGateway[1], settings.tallyGateway[2], settings.tallyGateway[3]);
IPAddress subnet(settings.tallySubnetMask[0], settings.tallySubnetMask[1], settings.tallySubnetMask[2], settings.tallySubnetMask[3]);
//Serial.println(local_IP); 
if (settings.staticIP) {
    WiFi.config(local_IP, gateway,subnet);
}

Support for ATEMs with more than 2 M/Es

So I've been running the tally program for the last couple weeks on an ATEM TV Studio Pro and it works perfectly.

I wanted to show it to a friend, who works in production, on their ATEM at work but they have a 4 M/E switcher and the SKAARHOJ libraries only support up to 2 M/Es (identified cases from line 84-108 in the ATEMmin.cpp file). I'm assuming that was done because the 4 M/E didn't exist when the libraries were made.

Even though you didn't create those libraries, do you think you could have a look to see if a mod could be made to support up to the 4 M/Es?

Neopixel code

Hi, I'm posting the original issue

when I cut Neopixel code ,they works very well. no longer loss connection. THANKS!!

Originally posted by @fareign in #35 (comment)

Could you please send me exactly which part should be cut out?

Thanks

LED bar status error

How do I use the Ws2812 5050 led bar working the same as LED1?

When I select none for the LED bar in the settings, the first LED plays the status role and the others show the Atem program or preview.

Regardless of choosing first or last LED for status, the led bar always shows the first one as status. How to solve this? I really appreciate your attention and help.

01
02
03

card not working

hi, I followed the instructions on mounting the card and after regularly programming the card I tried to see if everything worked. After about an hour of switching on the red LED, the card broke. I thought I had badly powered the card with the 5 volts pin, so I redid the whole sequence on a new one by feeding it with the micro USB. after an hour the new one broke. Do you have any suggestions?

D1 Mini pro (with external antenna) won't set camera other than #1

Just received a new D1 mini pro (in order to increase the wifi reception)

Downloaded the CP210x USB driver

Choose LOLIN (WEMOS)D1 mini pro in boards

Upload the sketch as usual, flawlessly

Set the tally as usual, flawlessly

Here the odd things begin..

No matter which camera I selected, at the end, always the #1 is set.

I re-do the set more than 10 times, and no changes.

BUT, If the LOLIN (WEMOS) R1&R2 is selected in the board menu, the set-up finally can be done

So, be advice, if the Mini pro is used, select LOLIN (WEMOS) R1&R2

Customize Light #2 independently from Light #1 Request

More of a request rather than an issue. Would be nice to be able to customize the program function of Light #1 separate from Light #2. Light#1 for camera person and Light #2 for stage. Light #2 (Stage light) to be only red when camera is live, otherwise off. Light #1 (in our case) to be green at all times unless live (red). This is a great project!!

Neopixel Control

I'm wanting to use two 8mm PTH Neopixel LEDs for my tally, one facing forward to the speaker and one facing backwards towards the camera operator. I know it would be possible to send the data signal to both LEDs and just have them mimic each other, however, I want to have a lower brightness for the camera operator since the LEDs are quite bright and the operator is much closer than the speaker.

EDIT: I realised there were already implementations for what I was asking

I've looked through the other closed issues and haven't found others that address my questions specifically so I made this one. Let me know if it's been covered before.

TL;DR: Is there a way to control the brightness of the two LEDs independently?

LED 2 for second ATEM input

Could LED2 be set to another ATEM input?
I would like to show the speaker which of two cameras is currently in the programme and would then only need a D1 mini.

Firmware ATEM

Dear friend,
I am now testing this setup as you described. However Im getting no connection to the switcher. Before I dig deeper, I found that Skaarhoi librarys only support models firmware below 7.5. Current one is 8.5.
https://www.skaarhoj.com/fileadmin/BMDPROTOCOL.html (red part)
DO you have any comment on that?

Thanks!

No Initial Setup

Hello, where can i enter my Wifi ingredients?
Tried diffrent Moduls, only one i managed to get in AccessPoint, but it had SSID long long time ago. So i erased Flash + Sketch&Wifi an uploaded diffrent times no one brings me up AP Mode.
Even i am unable to tell where the magic happens in the sketch :(

I added:
#include <TallyServer.h> const char* ssid = "YourWifiName"; // The SSID (name) of the Wi-Fi network you want to connect to const char* password = "Password";

then i commended out:

// WiFi.config(settings.tallyIP, settings.tallyGateway, settings.tallySubnetMask);
and added:
WiFi.begin(ssid, password);

Then i got IP looked up in Monitor and get access to webside so edit for my settings

Neopixel brightness setting

Hy
could you please add a setup of the brightness of the neopixel?

I have done some changes in the code but I couldn´t arrange a needed setup in the .html part.
In my code I have added these lines to setup the brightness and it works:
Line 70: int LEDBrightness = 100; //Value between 0-255
Line 164: FastLED.setBrightness(LEDBrightness);

It would be nice to have a setting line in the .html page for the lightness.
I have checked v3.0 yesterday with a Blackmagic 1/me and a 4k mixer and it worked perfekt! Thanks alot!

[Question] Is ATEM v8.6 supported?

Hello Aron,

do you know if the ATEM Library from Skaarhoj can receive tally information from the actual version 8.6? I know that Skaarhoj says that the free version of his lib only supports up to 7.5.0 but is this true for all aspects of the lib?

We have an updated mixer and before i build the whole system up i want to know if this can word.

Thanks for your reply,
Cedric

Line endings

Aron, great project. In the process of setting up six tally lights, and making some customizations along the way, possibly with some future PRs (support common Anode LEDs, have LED2 indicate status of a different camera than LED1).
I've forked your repo and started to make my changes, but I see that the .ino files comes with CRLF line endings, which automatically get removed by the Arduino IDE when I save files on my Mac; this leads to the entire file showing up as changing on checkin.
Somewhat of a novice on github -- my understanding is that github stores text files internally with LF and converts as needed on fetch, but this file (at least) seems to be stored with CRLF. Do you have any suggestions? I'm holding off on any changes until I sort this out...

only say thanks

Aron, I just wanna says THANK YOU VERY MUCH!!

I only sign in here, just for express my deepest thanks!!

You have no idea what I've been through to get this!
I tried Raspberry (I build successfully a wired one), tried to integrate it RF relays (success, but only one at time, with 2 they interfere) then tried Xbee integration (very complicated, my brain almost blow, I failed miserably), and at the end, the answer was so easy, simple and elegant!

You are the man!! cheers!!

ESP32 support

@AronHetLam Yeah okay, that makes sense. I initially followed another project that implemented the libraries for the ESP32 so I thought that would work but I guess not. Hopefully you'll have more success.
I'll keep an eye on your project for any future support for he ESP32.

Originally posted by @MarnitzRoux in #24 (comment)

WiFi settings seem not to be soring on ESP Board

Hi Aron:
I made a few of these tally modules and am having troubles. It seems that the WiFi settings (SSID and password) are not being stored on the ESP8266 board. I am using version 3.1.1 of your software. I see that others are having this problem as well. Do you have any suggestions to correct this? Or, perhaps, you are working on a new version to fix this? Thank you so much for your help.

Tally light no red LED

Hi,
I'll try out your tally light (great job!).
I flash a D1mini (with RGB-LED) with the ATEM_tally_light.ino, open the config page (192.168.4.1) and set the SSID. PASS, tally light number (1) and the IP of my ATEM (is an ATEM Mini Extreme ISO).
The LED turns green, but when I go online with ATEM Channel 1, the LED does not turn red.
Any idea what I'm doing wrong?

Greets and thanks for help
Andreas

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.