ControlAVP - Software for controlling A/V equipment

The place for all discussion on gaming hardware
Post Reply
Beatnik
Posts: 8
Joined: Mon Sep 15, 2014 8:25 pm

ControlAVP - Software for controlling A/V equipment

Post by Beatnik »

TL;DR I've written software to control all my A/V devices from my phone. It's called ControlAVP. You can see a video of it in action here. The code is available on GitHub here but will need customising for your own setup.

Hi!

My name is Andy and I'm a retro gamer and A/V gear enthusiast. As my retro gaming setup grew I found it increasingly difficult to turn on and play a bit of hardware. What needs powering on? Which input should tie to which output on the VGA matrix? What input should the HDMI switcher be on? Which OSSC profile should I be using?

Things came to a head when I purchased a second hand APC AP8959 switchable power distribution unit, the web interface for turning outlets on and off was so cumbersome that I decided to write my own interface to control it.

That was about 3 years ago. Since then I've been refining the software for my own purposes. Whilst it is customised for my particular setup, it is able to talk to A/V devices via RS232, SSH, JSON-RPC and IR. This allows it to control devices like the OSSC, Extron & Aten switchers and scalers, Sony televisions and APC PDUs. As the communication for everything other than IR devices is 2-way, it allows you to read device state as well. In the example of the Extron DSC301HD scaler, this is the type of information it can show. You'll see it's able to show which input the scaler is on, what the incoming resolution from the OSSC is (1280x960). It can even show properties such as temperature if the device supports it.

Image

It also allows you to write your own logic on top of devices. For example on my Extron DSC301HD I can now scale the image from the OSSC to fit the screen but maintain aspect ratio, or I can tell it to stretch to 16:9 or 4:3 (which is useful for getting the the correct ratio on DOS 640x400 games).

The software consists of 2 parts. Firstly a relay called ControlRelay that uses a RaspberryPi 3 running Windows IoT to communicate with the A/V devices. Secondly a website called ControlAVP that's hosted in Azure and sends messages to the relay. The communication uses Azure IoT Hub to communicate with the RaspberryPi, so this works from anywhere in the world and doesn’t require a static IP. Command lists that describe exactly how to turn a console on, including all AV switching, can be built using JSON and then sent as a single batch. The RaspberryPi will then send execution progress back in real-time using Azure Event Hub. You can see this in action in this video.

The software is all written in C# and also has more than 200 tests to ensure what I've written is robust (at least for my own use). As I've mentioned, it's currently heavily customised for my own use and is in now way "productised" yet. However I've found it so useful that I wanted to let others know and allow any software programmers out there to give it a try if they are interested. The source code is all available on GitHub here.

Thanks for reading and I hope at least 1 person might find this useful.
User avatar
SCARTicus
Posts: 189
Joined: Wed Apr 05, 2017 4:51 pm
Location: TX

Re: ControlAVP - Software for controlling A/V equipment

Post by SCARTicus »

This is great! I can't wait to try this. We've been needing just this sort of application. Thank you. It would be nice to have a binary build available, though. I don't know how to compile this and get it running.
Beatnik
Posts: 8
Joined: Mon Sep 15, 2014 8:25 pm

Re: ControlAVP - Software for controlling A/V equipment

Post by Beatnik »

I can definitely work on trying to get a binary build made for the RaspberryPi relay. I could also perhaps make a branch with a default web page that can then be configured. Any use of this software right now will at least require some web development skills though. It will also require an Azure account to host the IoT Hub (used for communication) and the website.

What type of devices do you need to control SCARTicus? Currently it supports:

- Sony KDL60W85 TV
- APC AP8959EU3 PDU
- Extron DSC301HD Scaler
- Extron MVX44VGA VGA Switcher
- OSSC
- Aten VS0801H HDMI Switch

It would be fairly easy to add support for additional devices, and eventually I'd like to make the code able to deal with these types of devices more generically.
User avatar
SCARTicus
Posts: 189
Joined: Wed Apr 05, 2017 4:51 pm
Location: TX

Re: ControlAVP - Software for controlling A/V equipment

Post by SCARTicus »

I am primarily interested in using this to control Extron MVX switches, but I am also interested in trying it out for my OSSC.
Beatnik
Posts: 8
Joined: Mon Sep 15, 2014 8:25 pm

Re: ControlAVP - Software for controlling A/V equipment

Post by Beatnik »

SCARTicus wrote:I am primarily interested in using this to control Extron MVX switches, but I am also interested in trying it out for my OSSC.
Great. If you're able to give me the model numbers of your Extron MVX switches I could perhaps add support for them. And by the way, there is no commitment needed from you here. If you want to try ControlAVP then awesome and I'll try and support you. If not, that's cool as well.
Post Reply