logo

Live Production Software Forums


Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Options
Go to last post Go to first unread
davidmgdr  
#1 Posted : Wednesday, November 10, 2021 9:07:08 PM(UTC)
davidmgdr

Rank: Newbie

Groups: Registered
Joined: 11/10/2021(UTC)
Posts: 2
Man
Spain
Location: Barcelona

Thanks: 1 times
Hi everyone!

I need to create a digital scoreboard who's taking the data from a Mondo scoreboard. This company can provide me a conversor from 485 to RS232 data with usb plug. Anyone knows if Vmix can read this data and convert it to create a virtual scoreboard source? Another option is use an external software to create the scoreboard and capture it. Any suggestion?

All my apologies if I can give more details, but it's something new for me...

Thank a lot!
doggy  
#2 Posted : Thursday, November 11, 2021 12:37:58 AM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,246
Belgium
Location: Belgium

Thanks: 294 times
Was thanked: 961 time(s) in 795 post(s)
Best is to read the serial port through a small external application (if you know the protocol details of the scoreboard but is not that hard especially if they can provide it to you) and send the received data directly to a vMix title with httprequests or feed the received data to some data file (CSV,XML,JSON) for vMix to read (datasource) and be linked to a title for diplay
thanks 1 user thanked doggy for this useful post.
davidmgdr on 11/11/2021(UTC)
davidmgdr  
#3 Posted : Thursday, November 11, 2021 1:45:57 AM(UTC)
davidmgdr

Rank: Newbie

Groups: Registered
Joined: 11/10/2021(UTC)
Posts: 2
Man
Spain
Location: Barcelona

Thanks: 1 times
Originally Posted by: doggy Go to Quoted Post
Best is to read the serial port through a small external application (if you know the protocol details of the scoreboard but is not that hard especially if they can provide it to you) and send the received data directly to a vMix title with httprequests or feed the received data to some data file (CSV,XML,JSON) for vMix to read (datasource) and be linked to a title for diplay


Thanks Doggy! I've seen severals software to read the rs232 data. Anyone you could recommend?

Any experience with this? Wich protocol is better for vmix? Json or csv?

Thanks again to light up my way!
doggy  
#4 Posted : Thursday, November 11, 2021 2:57:31 AM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,246
Belgium
Location: Belgium

Thanks: 294 times
Was thanked: 961 time(s) in 795 post(s)
Originally Posted by: davidmgdr Go to Quoted Post


Thanks Doggy! I've seen severals software to read the rs232 data. Anyone you could recommend?

Any experience with this? Wich protocol is better for vmix? Json or csv?

Thanks again to light up my way!



There are a few little apps floating around on the net that read serial ports as it comes in but is easy to program too .

By protocol (the most important part) i mean the serial ( rs232) data structure, the baud rate, bit rate etc in order to read incoming signal that is been transmitted in the first place before extracting the bits useful to you.

what you do with the information extracted from what the protocol sends to you is up to you , send the data to a title or first to a file (csv is the most basic = a text file)
MartLeib  
#5 Posted : Thursday, November 11, 2021 6:00:11 AM(UTC)
MartLeib

Rank: Advanced Member

Groups: Registered
Joined: 2/23/2017(UTC)
Posts: 189
Estonia

Thanks: 1 times
Was thanked: 52 time(s) in 42 post(s)
I've written multiple such (i call them as) agents, that convert external info to CSV that vMix can easily read. Single .exe file and you are ready to rock. If you are interested in turn key solution, shoot me an email Mart@voogle.ee
markleman  
#6 Posted : Thursday, December 2, 2021 12:24:27 AM(UTC)
markleman

Rank: Advanced Member

Groups: Registered
Joined: 8/7/2015(UTC)
Posts: 31

Thanks: 12 times
Was thanked: 3 time(s) in 3 post(s)
Bit of a late reply to this question......

I have recently done this for swimming live streaming: graphics overlays showing lists of competitors before the race and then the results at the end of the race.

I created the graphics in GT and made sure the text boxes had nice consistent names.

The python program listened to a RS485->USB adaptor and decoded the incoming updates, it then sent HTTP requests to vMix to update the text boxes in the graphics.

The python code can run on the same PC as vMix is on or a remote device (laptop or even a small computer like a raspberry pi) and talk to vMix machine over a network.

If you want to go this route let me know and I will post some code.

Regards,
Mark Leman
AlbertoBCN  
#7 Posted : Tuesday, December 28, 2021 5:44:16 AM(UTC)
AlbertoBCN

Rank: Newbie

Groups: Registered
Joined: 1/28/2017(UTC)
Posts: 8

Was thanked: 4 time(s) in 2 post(s)
Originally Posted by: davidmgdr Go to Quoted Post
Originally Posted by: doggy Go to Quoted Post
Best is to read the serial port through a small external application (if you know the protocol details of the scoreboard but is not that hard especially if they can provide it to you) and send the received data directly to a vMix title with httprequests or feed the received data to some data file (CSV,XML,JSON) for vMix to read (datasource) and be linked to a title for diplay


Thanks Doggy! I've seen severals software to read the rs232 data. Anyone you could recommend?

Any experience with this? Wich protocol is better for vmix? Json or csv?

Thanks again to light up my way!


We are already doing this for basketball games. You have to build your own solution though. We do it using a raspberry pi and python. For rs232, if you know how to do it, you can do it in an afternoon. You need to decode the mondo fiba protocol and publish a json using any web server installed in the pi. Then, reading it in vmix is straight forward.

We have worked out how to read the mondo protocol and also bodet, baybor, stb and odecco (the most common scoreboard brands in Spain). Some are rs232, some rs485 and some use only radiofrequency.
mrhaiem  
#8 Posted : Wednesday, March 16, 2022 12:47:24 AM(UTC)
mrhaiem

Rank: Newbie

Groups: Registered
Joined: 3/16/2022(UTC)
Posts: 1
France
Location: Paris

Hello Mark,

Well done!

I have the same project to manage.I am trying to develop more value on the swimming live I do as volonteer.

Is it possible to share some advice about the python script code and the vmix integration ?

The rs232 data is coming from omega are 21 system.

Thanks in advance for any support you can provide

Best Regards

Mehdi RHAIEM





Originally Posted by: markleman Go to Quoted Post
Bit of a late reply to this question......

I have recently done this for swimming live streaming: graphics overlays showing lists of competitors before the race and then the results at the end of the race.

I created the graphics in GT and made sure the text boxes had nice consistent names.

The python program listened to a RS485->USB adaptor and decoded the incoming updates, it then sent HTTP requests to vMix to update the text boxes in the graphics.

The python code can run on the same PC as vMix is on or a remote device (laptop or even a small computer like a raspberry pi) and talk to vMix machine over a network.

If you want to go this route let me know and I will post some code.

Regards,
Mark Leman


Justine park  
#9 Posted : Monday, May 23, 2022 7:58:55 PM(UTC)
Justine park

Rank: Newbie

Groups: Registered
Joined: 5/23/2022(UTC)
Posts: 4
Korea, Republic Of
Location: Seoul

Thanks: 1 times
Hi.

I tried similar project for freestyle skiing.
(player info, timing result, point result, ranking)

In my case, the result data is received by rs232 protocol and mysql database also.

I programmed the basic software by using VB.net (receive data from rs232 and keyboard inputs of judge , and query for various data on remote DB server), and call the data to excel(refresh every 1 second or less / http request / VB script).

(data => rs232/Keyboard input and remote database => excel (query and refresh) => vMix)

But i'm not sure the dynamic refresh such as real timing ticker from timing machine(Omega, ALGE, TagHeuer..) to vimix directly refreshing 1/100 seconds.
doggy  
#10 Posted : Monday, May 23, 2022 11:19:03 PM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,246
Belgium
Location: Belgium

Thanks: 294 times
Was thanked: 961 time(s) in 795 post(s)
Originally Posted by: Justine park Go to Quoted Post


But i'm not sure the dynamic refresh such as real timing ticker from timing machine(Omega, ALGE, TagHeuer..) to vimix directly refreshing 1/100 seconds.


Question: does the timer actually stransmits per 1/100 of a second ?

VMix titles do not cope well with fast updates

what you can is when you receive a "start" , start an internal pc clock , display per 1/10 ( even that is hard for vMix titles to cope with but give a desired visual effect , and when a "stop" is received we imidiatly replace the "stopwatch" with the real end time from the timers to 1/1000. WHo can read those fast updates anyway ?

tvjay  
#11 Posted : Saturday, September 3, 2022 9:34:50 AM(UTC)
tvjay

Rank: Newbie

Groups: Registered
Joined: 9/3/2022(UTC)
Posts: 1
United States

Originally Posted by: markleman Go to Quoted Post

If you want to go this route let me know and I will post some code.

Regards,
Mark Leman


I would love to see some real code.

Jay
markleman  
#12 Posted : Saturday, April 1, 2023 4:51:21 AM(UTC)
markleman

Rank: Advanced Member

Groups: Registered
Joined: 8/7/2015(UTC)
Posts: 31

Thanks: 12 times
Was thanked: 3 time(s) in 3 post(s)
Hi all,
Previously I mentioned that I had used python to take data from timing systems and control vmix.
The code was very messy and I started to tidy it up several times, but always got dragged away to something more important.
This week I had direct message here asking about it, and that prodded me to spend a couple of evenings making a proper example.

RS232_to_vmix_example.zip (2,539kb) downloaded 98 time(s). (You need to be logged it to download)

I hope you find it useful, and fingers crossed it works for you :-)

Here is the comment block from the top of the code:

Code:
#==================================================================
# A python example of receiving data over RS232 and using it to update Vmix using HTTP
# I hope this example is a good start for you create your own code.
#
# If you find any bugs or errors please feed them back so I can correct,
# I'm not a long time python programmer and am much more at home with low
# level C on a micro-controller, so many have occasionally done things in a
# non-pythonic way.
#
# This python example code is intended to be used with the accompanying vmix
# project which includes a title with items with the correct names

# The code is split in to 4 main parts:
#
# 1) The main() loop that calls the other parts.
#    All the functions called by the main loop are fall through (non-blocking) so
#    main() loops continuously, this is intentional so other things can be done here.
#    There is a short sleep() in the main loop to reduce CPU load.
#
# 2) serialreader() that takes chars from the serial port, looks for start 
#    and end of message bytes and builds up the incoming message. When a full
#    message is received it is passed back to the main loop. 
#    This function is fall through, in a larger project it would probably be better
#    to use asyncio or a thread here, but the aim of this example is to keep it simple.
#    This function could be modified to handle different protocols and do additional
#    checks like verifying message checksums if present.
#
# 3) decodemessage() that tries to decode the received message and depending on the
#    contents do things to update vmix. You could modify this for any protocol you
#    are using, and what you want to with the data received.
#
# 4) A group of functions to update Vmix. send_vmix_command() actually sends the
#    update to Vmix and the other functions like update_vmix_text() generate the
#    specific commands to send. I normally add a new update_vmix_xxxx() function
#    each time I use a new function in the list here:
#    https://www.vmix.com/help26/ShortcutFunctionReference.html
#
# For this example lets invent a simple protocol to send commands over serial:
#    All commands start with a '*' and end with a '!'.
#       Note. Many protocols end in a LF or CR char but I have deliberately chosen
#       not to here, to demonstrate 'Start' and 'End' of message markers.
#    Parts/fields of the command are separated by comma.
#    The first field is the command.
#    Remaining fields are dependent on the command.
#    Text values are in contained in "" to allow commas in text.
# Eg *command,field2,field3,"This is, field4"!
#
# This simple protocol has the obvious flaw that you can't include  * or !
# in the fields, but it will do for this example code. Often the protocols
# I decode use 'unprintable' values as start & end of message markers eg: b'\x01
# (SOH) and b'\x04 (EOT). But here for ease of demonstration I wanted the 
# protocol and commands to be possible to type in a terminal.
#
# And now lets invent some commands to use over this protocol:
#
# *NA,"England"!        NA: Set the name of Team A to the value in field 2
# *NB,"Scotland"!       NB: Set the name of Team B to the value in field 2
# *SA,1!                SA: set the score of team A to the value in field 2
# *SB,2!                SB: set the score of team B to the value in field 2
# *OE,1,1!              OE: enable/disable the score overlay, field2: 0=disable, 
#                           1=enable overlay, field3: the Vmix overlay number
# *OE,0,1!                  example of turning off overlay 1
# HINT:, try the exact commands above on the supplied vmix project
#
# You will need to set the serial port and vmix ip address below.
#
# I have left commented out debug print() calls that you can re-enable
# if you desire to see what is going on at various points.
#
# This code has been tested on Windows, I'll try it on Linux soon and update
# these instructions.
#
# V1.0 MCL 31/3/2023
#   - initial release
# 
#==================================================================


We use this technique for the overlays when we live stream swimming events like this:


Regards,
Mark Leman
thanks 1 user thanked markleman for this useful post.
Quick on 6/17/2023(UTC)
MrVirus  
#13 Posted : Monday, February 12, 2024 4:44:44 AM(UTC)
MrVirus

Rank: Newbie

Groups: Registered
Joined: 2/12/2024(UTC)
Posts: 1
Croatia
Location: Zagreb

Greeting. Do you have a picture of the physical connection of the device you are using for live swim results? Thank you
markleman  
#14 Posted : Tuesday, February 13, 2024 9:32:45 AM(UTC)
markleman

Rank: Advanced Member

Groups: Registered
Joined: 8/7/2015(UTC)
Posts: 31

Thanks: 12 times
Was thanked: 3 time(s) in 3 post(s)
Originally Posted by: MrVirus Go to Quoted Post
Greeting. Do you have a picture of the physical connection of the device you are using for live swim results? Thank you


I just had a quick look through my photo albums and can't find and good ones of the actual timing system, I'm back at the London Aquatics Centre live streaming again in 4 weeks so will try to remember to grab some pictures then. However you can find pictures online easily enough, all the pools we live stream from use "Swiss timing Quantum" timing equipment. In the UK this is the equipment used at most big competition pools, there are other makes of timing systems from companies like Daktronics and Colorado Time Systems but I've not been asked to live stream from a pool using them for quite a while.

For the Quantum, it has two RS485 serial ports (9 pin D connectors) for interfacing to scoreboards, we use a RS485 serial to USB cable ( https://ftdichip.com/pro...ts/usb-rs485-we-5000-bt/ ) wired to the correct pinout of a 9 pin D connector to connect the quantum to our Vmix PC, and run a python program using the techniques in the code above to update Vmix in real time.

Here are a few pictures of the setup we take to swimming events https://photos.app.goo.gl/ziQyiQ9uy41X2VDo8 (you can just see the red timing equipment box in the first picture)

Hope that helps and let us know what you are doing :-)

Regards,
Mark Leman
Users browsing this topic
Guest
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.