josephdadams / TallyArbiter

The flexible and customizable camera tally light system
http://www.tallyarbiter.com
MIT License
283 stars 101 forks source link

[Discussion] Custom TallyArbiter Hardware #213

Closed hrueger closed 2 years ago

hrueger commented 3 years ago

[Disclaimer: This is not something we're gonna do in like the next few days. I don't even know if you interested in something like that. This issue should only be seen as the start of a discussion around that topic.]

I was recently looking into the different available listener clients for TallyArbiter. The available hardware listeners (M5, TTGO, ...) are all a little small to see from a distance.

Then, I was able to use the Cerevo FlexTally System on one of our Livestreams. I really liked it, although there are a couple of disadvantages:

  1. The price. It is $600 for the base station and 4 lamps. Although this might be cheap for a company, I don't feel like speding $600 for that.
  2. Lamp and Base configuration: The five devices have very little DIP switches at the bottom. They are not only difficult to set, because they are so tiny (I had to get an extra little screwdriver in order to set them) but you also need to consult the documentation every time you change them because they are just labeled 1 - 8.
  3. Base station configuration: This is probably the biggest problem we stumbled upon: To connect the base station to a switcher, you need to install a config software. This is only available for Windows. We wanted to use the Tally set for another stream, too, but we couldn't: Someone changed the ATEM's IP and there were only MacBooks at the location. That means we could not use the tally lights....
  4. No battery loading indicator. You don't have a way of knowing whether the Tally Lights are charged or not.

That got me thinking: Can I make my own Tally Lights which fulfill all of the following points:

I was thinking that we could put everything in 3d-printed cases.

The cool thing would be that if we put a Raspberry Pi in the base station, we can run TallyArbiter directly in the base station. An ESP8266 or ESP32 could be used in the Lamps togehter the the LED, the battery, some charging circuit and a wireless communication circuit. Maybe a little OLED, too.

What do you think? Are you interested in trying something like this? Do you know anyone who has some hardware knowledge and who could help us?

For the first prototype I would just put the parts together on breadboards using wires, but some custom PCBs would be cool, too. They are not that expensive anymore these days.

josephdadams commented 3 years ago

I have a friend who has been developing a solution like this. Would you like me to put you in contact with him? Perhaps you guys can collaborate.

I personally do not have time to manage sales and shipping to offer a product, but if you are interested, you are certainly more than welcome.

josephdadams commented 3 years ago

@mattv8

mg-1999 commented 3 years ago

This is something I've got cooking in my brain for multiple months. But the only problem I couldn't solve was connections.

How do we connect the basestation to the tally clients reliable and with low latency?

I thought about it, but would love to hear your thoughts on a solution. Because my mind couldn't solve it :)

hrueger commented 3 years ago

I personally do not have time to manage sales and shipping to offer a product, but if you are interested, you are certainly more than welcome.

Maybe I did not express myself correctly. I don't wont to develop a perfect product, produce it and sell it (perhaps in a year when I have finished school) but instead build one for my own and maybe one for a friend. As I'm more of a software and not a hardware guy, I wanted to ask the community for opinions as well as share my build process here.

hrueger commented 3 years ago

@mattv8 Your https://github.com/mattv8/obs-wired-tally projects looks really cool. I'd like to create basically the same think, just with bigger tally lights which work wirelessly.

hrueger commented 3 years ago

How do we connect the basestation to the tally clients reliable and with low latency?

The Cerevo offers two different methods to connect the base and the lamps: you can either use cabled connections or they work wirelessly. According to their product page they use 433 MHz.

I've only used them wirelessly and that worked pretty good. There was no noticable latency at all, although one lamp was about 250 ft away from the base. The base was even behind the stage in a second tent, so the signal had to travel through the stage as well as the tent wall.

I think wifi is not a good idea as we won't get a long range. I'd like to get at least 200 ft.

However, I would like the base to be able to connect to the network using wifi or ethernet which the Pi could manage without problems.

hrueger commented 3 years ago

Just found this: https://forum.livevideotech.today/t/2-mile-3200-m-wireless-diy-atem-tally-light-system/825 Apparently they're using 2.4 GHz and get up to 2 km (6000 ft) range?

josephdadams commented 3 years ago

We could make a listener client that receives all the tally data and uses lora or something to send it to the respective lights. I've seen some things like this out in the wild.

hrueger commented 3 years ago

Yeah, sounds good. I'd like to have TallyArbiter running on the same Pi the wireless transmitter is connected to. This way, the listener client could be an additional module which you activate in the settings. Maybe it can automatically discover those Tally Lights and add them as well as their devices?

This would make it super easy to setup.

mattv8 commented 3 years ago

Hey all! So, yeah, like Joseph said I've been working on developing some custom hardware for TallyArbiter, it's been in the works now for almost a year. Coincidentally today I have two of the first prototypes in hand, I'll attach some images below!

I'm short on time at the moment so can't give much more details, however my plan is to open-source, open-hardware my project, while keeping a stock of pre-made hardware should people want to simply purchase pre-made units to help cover my mfg and programming costs. Similar to @hrueger's suggestion and my old https://github.com/mattv8/obs-wired-tally project, I'm going to design a housing with a translucent dome to be 3D printable.

My project that @hrueger mentioned earlier https://github.com/mattv8/obs-wired-tally is kind of defunct, I've been quietly working on new software to bring in functionality for both wireless and wired tally systems that can either use a Wi-Fi base-station (ad-hoc) or a networked mode where it connects to existing Wi-Fi. My super top secret repos can be found at the following links, but I plan on moving them to GitHub when I'm ready to open everything up.

15712 15689

hrueger commented 3 years ago

Wow, this looks really professional! If I read your comment correctly, you're using wifi. That means, the range depends on the signal strength of the router that people use, correct? Do you have experience using 433 MHz or those 2.4 GHz modules?

hrueger commented 3 years ago

@mattv8 may I ask what chip you use? It would be cool if users could reprogram the listener (wifi credentials, firmware update, etc) from within Tally Arbiter šŸ˜€

mattv8 commented 3 years ago

Thanks!! It's been a long time coming... It's using the ESP32 Pico chip, and a cactus ceramic antennae. šŸ™‚ That's right, it uses WiFi. The range with 2.4Ghz wifi is actually quite good, and from my experiences most venues I've needed tally for have reliable WiFi mesh networks I just tap into.

I agree having functionality within TA to program it would be really awesome! Right now my C# app uses serial to program it. ESP32 can do OTA firmware updates, that's next on my programming to-dos...

MatteoGheza commented 3 years ago

@mattv8 may I ask what chip you use? It would be cool if users could reprogram the listener (wifi credentials, firmware update, etc) from within Tally Arbiter šŸ˜€

I'm working on two reprogramming methods for ESP32/ESP8266:

josephdadams commented 3 years ago

@mattv8 make sure you check out PR #204 because we are implementing a new listener client API and all the old ones will be deprecated. The plan is to coordinate this launch so that all of the clients can be updated to support this new API at that time.

mattv8 commented 3 years ago

Thanks @josephdadams, I'll be sure to check out that PR. By the looks of it I'll only need to make minor modifications to my code for it to continue functioning.

@MatteoGheza that's awesome, the links you posted for updating UI are the same exact ones I was looking at when researching ESP32 OTA updates. Let's definitely collaborate on making the OTA update functionality happen. It would be great to have a version check when the listener client connects to TA-- I could see text saying something like "listener client has outdated firmware, click to update" or something like that.

mattv8 commented 3 years ago

Next question I have for everyone, if I may ask, is once I have the prototypes debugged and a stock of units for sale, I'm genuinely interested in how much folks would be willing to pay for one? I was thinking about keeping the cost per unit super low, perhaps around $60 per unit, including the 3D printed housing. This by far beats out pricing of any competing tally hardware, the closest competitor is arguably the Cuebi which starts at around $412.75 USD for a set of two.

mattv8 commented 3 years ago

The cool thing would be that if we put a Raspberry Pi in the base station, we can run TallyArbiter directly in the base station. An ESP8266 or ESP32 could be used in the Lamps togehter the the LED, the battery, some charging circuit and a wireless communication circuit. Maybe a little OLED, too.

@hrueger, I have successfully tested a Raspberry Pi Zero W as a base-station for TallyArbiter and it works great.

I was thinking to take it a step further, the Orange Pi Zero 2 is tiny, cheap, has external WiFi antennae for extra range, AND a LAN port so you could connect it to LAN and connected devices could have internet pass through.

hrueger commented 3 years ago

I don't know if it is helpful, but I've recently created a an firmware updater for STM32 chips using DFU which is a website running in Chrome or Edge. I can't share it because it is proprietary. However, it was based on WebDFU (https://github.com/devanlai/webdfu). It works great, and is an easy way to reprogram the STM32 when there's no or a broken firmware on the chip.

But I think the hardware needs to have a jumper to activate the DFU mode?

It's just an idea.