Open zackdickinson16 opened 3 years ago
@josephdadams and I were looking at building this listener. Our biggest problem is that we don't have the hardware to develop with.
One thing I would say is that I would use the raspberry pi hat before the arduino one. The raspberry pi will give you native Ethernet.
Ill have a look at everything tomorrow and see what I can do though.
Let me know if I can help test anything with the hardware, Black magic Arduino code is pretty simple just high or low for light on or off and true or false four red or green. Of course that's probably not the hard part,
I was having a hard time figuring out how to integrate TallyArbiter I'm guessing it with WebSocketsClient.h, ,SocketIOclient.h and Arduino_JSON.h but I don't know whole lot about "coding". I was going down a rat hole of trying to use OSC messages but didn't think that would be the best idea.
Unfortunately I don't think Black Magic supports raspberry pi or has any hardware for it?
Anything you guys can do is greatly appreciated!!
Thanks
You're right! I thought they had one.
Do you have a picture of your setup that you could send me for reference of your setup?
![IMG_2160](https://user-images.githubusercontent.com/57646814/137610746-3ff3cbeb-8e64-4dc4-be69-9a6461264137.jpg
Arduino Uno Rev3 Blackmagic Studio Camera 4K Pro Blackmagic 3G-SDI Arduino Shield Ethernet Shield W5100
Let me know if you need anything else!!
I actually prototyped the code for this over a year ago. Never had the hardware to test on. I may not have kept it but I’ll dig around and see if I can find it. It will need refreshing anyway in light of our 3.0 architecture. Personally rather than implement a listener client per se I would create a program on the Arduino that subscribed to all tally information, similar to how we implemented VMix clients. @JTF4 we could do this over simple TCP rather than websockets.
@zackdickinson16 a remote computer we can access that is connected to the Arduino and shield, along with a webcam pointed at the monitor with the tally light would be extremely helpful in testing.
@JTF4 if you want to use REST api/UDP/etc let me known and I'll implement this in backend. BTW, can you take a look at #225 since I don't have M5Stackc or M5Atom to test the updated firmware?
@MatteoGheza yep! Do you think we could build a rest based api that allows for device reassigns from the main server? If we could do that, then I think we would have a great protocol for devices that don't play as well with socket.io
@MatteoGheza yep! Do you think we could build a rest based api that allows for device reassigns from the main server? If we could do that, then I think we would have a great protocol for devices that don't play as well with socket.io
I'm working on a new REST API. I think that it's possible.
I'm working on a new REST API. I think that it's possible.
Sweet! Let me know if you run into any issues.
How would we push new tally data to a listener client with REST? Does the Device do polling or are we using something like SSE?
Here's the BMD ino I wrote a while back in case it helps anyone wanting to work on this: https://gist.github.com/josephdadams/11f8cfe63230e69bd0074463411b2756
I've set up a remote computer that somebody can sign into with TeamViewer I have emailed the information to josephdadams@gmail.com, but feel free to share the information.
Let me know if there's anything else you need and thanks for all your help!
@JTF4 I tried to implement a new REST API (documented with Swagger OpenAPI doc extracted from JSdoc using a lib), but I think we don't require it now, and I think that we can use Websockets like for the M5Stackc.
Does anybody know what this compilation error is?
`In file included from /Users/TallyArbiter/Desktop/tallyarbiter_bmd_listener/tallyarbiter_bmd_listener.ino:2:0: /Users/TallyArbiter/Documents/Arduino/libraries/SocketIoClient/SocketIoClient.h:5:10: fatal error: map: No such file or directory
^~~~~
compilation terminated. exit status 1 Error compiling for board Arduino Uno. `
Nope. One of the errors I was getting and never figured out. I didn’t have device access at the time so I never bothered to look into it again.
I doubt the script I posted will work with anything other than an old version of TA. Probably 1.x.
OK sounds good
If I had to guess it's in error in one of the included libraries and not your direct code. I would start by looking at the actual code contents of the Black Magic library and seeing if it includes that.
I'm pretty sure it's the SocketIoClient.h Library?, but I'm not very good at this stuff so I wouldn't have a clue.
@josephdadams do the arduinos share the same problem that the M5s do when it comes to the socketio libraries?
I don’t know. I haven’t used socketio on anything other than esp32 boards whereas this is probably an esp8266.
My recommendation would be to implement the BMD tally support like we do with vmix emulation. In fact we could use the same protocol and just implement the BMD specific stuff at the Arduino end. But that would keep it a simple TCP protocol.
What feature would you like to see added to TallyArbiter?
I'm looking for a way to use TallyArbiter with Arduino And Blackmagic 3G-SDI Arduino Shield to trigger the tally lights on black magic cameras such as the (Blackmagic Studio Camera 4K Pro), I need this because I'm using TriCaster and I'd like the built in tally lights to work on the cameras with TriCaster.
I'm guessing the Arduino would just have to act as a listener and listen to the TallyArbiter server running on the network.
I have all the pieces of software and libraries that I would like to use I just don't know how to program them all together to make them work with TallyArbiter.
Libraries and programs: Arduino Ethernet Shield - Ethernet.h & EthernetUdp ?? Blackmagic 3G-SDI Arduino Shield - BMDSDIControl.h TallyArbiter - pieces of the TallyArbiter-M5StickCListener ??
I just don't know how to put all these together or if there's an easier way?
Thanks, Zack