Client from Serial Data Stream

Hi everyone!

I am totally new to the CasparCG world, but have had a search around the forums and cannot find something to help me out.

I work in the livestream/broadcast market and was looking for assistance, or contract someone to look at a specific client for me. I interface with a timing system which can send out serial data which I have the protocols and string makeup for. Coding is not my strong point! I am looking to build a client front end that can accept the data in the constant string (we are talking about data every 10th/second), and then use it to feed several templates.

Is there anyone out there who might be able to help me out or point me in the direction I need to be looking?



I am also planning to do this. Please share the data structures and protocol. I will code a sample client.

1 Like

what do you require specifically?

I’m sharing protocol description of some scoreboard systems. I also planning to work on it, but coding is not my strong point too.

I quickly looked trough the data that you shared. Looks like a lot of work to support all these different brands of scoreboards. If I were you, I would look at ScoreboadOCR a tool that can read the scoreboard data from a camera and therefor supports all brands of scoreboards. I tested it myself and it works very well. It also supports sending data directly to a template in Caspar. You would only need for instance the official client to load the template. ScoreboardOCR will then update the data.


I appreciate what you are saying, but the protocols provided were not actually for the system I had requested a client for. I am sourcing the protocol document just now, but in the timing console in question there are 14 lines with each line containing 1 line of data so 14 lines to code in essence. The problem with Scoreboard OCR is on each venue being able to have a clear line of sight of scoreboard and mapping each required area. If I had a client which reads the direct data feed there is not a need to set up for every different venue as the serial feed is uniform across venues.

which one is the protocol you need?

That is correct. It plays nicely when you have a lot of different venues and don’t know in advance what scoreboard they use.

Protocol is Omega (Swiss Timing) ERTD Protocol

Yes, I know that one, I analyzed it once for a project, that was not realized. It’s that weird protocol that add a character to it for every line. Do you have any budget to build something?

I may have money to put to a working solution yes

Any progress on this project? I am also interested in potential solutions

AFAIK no, at least I did not get the contract to do a programming for him. The problem was, that the data is coming from an RS 485 interface and so one needs to have physical access to such a system to do the programming. So the budget was not sufficient to go there.


I have build exactly such client for this protocol, for siwi data timing softaware.
It is easy to make it.

Basically i used my client for different timing softwares … vola, siwidata … I work for timing company for many years one of them is also swisstiming … I can help you to realize this project…

Interesting. Sorry I’ve been absent for so long! What sort of cost would be involved in the client?

There are couple of questions here.
What kind of sport will you be using it for?
Is the data always same?
What are you planning to do with this data?
Protocol it self is not a problem, but what kind of data is inside.
For example I set SCB to work like this.
Characters: 1-3 bib 4-16 name … you need to parse the data out of Serial data, so it always need to have same format, or you put some kind of prefix, suffix in fron of data …

I would be using it from Swiss Timing Ares and Quantum systems for aquatics.

Using for graphic overlay of timing data, so:

Start Lists
Running clock
Splits data
Results screens

However, do you know of any general resources or guides that detail inserting serial data (232/422/485) into either flash or html templates?

In my experience the lowest latency option to get any external data to output is with HTML templates and feeding the data in via websockets. Going through Caspar with AMCP will always be considerably slower.

Getting serial data is simple, but what will you do with this data? how you plan to send it to graphic, caspar …?
In my cases i used caspar html templates, i am calling this templates from my client …