BridgeCmdr; Software to Controlling BVMs and Switches

The place for all discussion on gaming hardware
nmur
Posts: 11
Joined: Thu Aug 22, 2019 12:35 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by nmur »

Joined just to say how awesome this project is, nice work.

I was looking around for something like this, after I obtained a BVM-D14H1 without the BKM-10R control unit. There don't seem to be any for sale where I live (Australia), so was looking to see if people have made any efforts with a BKM-10R alternative.

It looks like your BVM driver interfaces with the Serial protocol, rather than the Control protocol that the BKM-10R uses. Someone on Reddit linked me this which looks like a pretty good writeup on the Control protocol, though I don't know who wrote it, nor can I vouch for its accuracy.

If I were creating something for myself from scratch, I'd probably take that documentation and create a standalone program with the aim of completely simulating a BKM-10R (it would be awesome to have physical buttons/encoders and a 3D printed case, but I know a touch screen is more realistic), but it would probably make more sense to leverage some of the stuff that you've already got going here.

If you were adding Control protocol support, how would you think of going about it?
User avatar
6XGate
Posts: 22
Joined: Thu Feb 21, 2019 1:38 am
Location: Ocean Springs, Mississippi
Contact:

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by 6XGate »

TL;DR; Dealing with the CONTROL module is possible with Python that comes on the Raspberry Pi or any language if you control it via a PC. The USB to CONTROL port (can't recall the RS standard) is what will require the most research now.

The main thing to know is what codes relate to what keys on the BKM-10R. I have one, but it's protocol wasn't as much use in how the REMOTE interface works with other monitors. You really need the control unit to decode it's protocol.

As far as an interface, that's up to what language you would be comfortable with. I'm in the process of redoing this project under JavaScript/Electron/Node since I prefer it over Python. But, Python comes with the Raspberry Pi and it does provide most of what you will need to decode and test and eventually write a tool for controlling the BVM.

But the biggest part of this whole thing is interfacing with the BVM physically and requires a different serial interface than what the REMOTE uses and each USB adapter can have its own wiring means or pinout if they use a DE9.
nmur wrote:Joined just to say how awesome this project is, nice work.

I was looking around for something like this, after I obtained a BVM-D14H1 without the BKM-10R control unit. There don't seem to be any for sale where I live (Australia), so was looking to see if people have made any efforts with a BKM-10R alternative.

It looks like your BVM driver interfaces with the Serial protocol, rather than the Control protocol that the BKM-10R uses. Someone on Reddit linked me this which looks like a pretty good writeup on the Control protocol, though I don't know who wrote it, nor can I vouch for its accuracy.

If I were creating something for myself from scratch, I'd probably take that documentation and create a standalone program with the aim of completely simulating a BKM-10R (it would be awesome to have physical buttons/encoders and a 3D printed case, but I know a touch screen is more realistic), but it would probably make more sense to leverage some of the stuff that you've already got going here.

If you were adding Control protocol support, how would you think of going about it?
nmur
Posts: 11
Joined: Thu Aug 22, 2019 12:35 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by nmur »

6XGate wrote:TL;DR; Dealing with the CONTROL module is possible with Python that comes on the Raspberry Pi or any language if you control it via a PC. The USB to CONTROL port (can't recall the RS standard) is what will require the most research now.

The main thing to know is what codes relate to what keys on the BKM-10R. I have one, but it's protocol wasn't as much use in how the REMOTE interface works with other monitors. You really need the control unit to decode it's protocol.

As far as an interface, that's up to what language you would be comfortable with. I'm in the process of redoing this project under JavaScript/Electron/Node since I prefer it over Python. But, Python comes with the Raspberry Pi and it does provide most of what you will need to decode and test and eventually write a tool for controlling the BVM.

But the biggest part of this whole thing is interfacing with the BVM physically and requires a different serial interface than what the REMOTE uses and each USB adapter can have its own wiring means or pinout if they use a DE9.
nmur wrote:Joined just to say how awesome this project is, nice work.

I was looking around for something like this, after I obtained a BVM-D14H1 without the BKM-10R control unit. There don't seem to be any for sale where I live (Australia), so was looking to see if people have made any efforts with a BKM-10R alternative.

It looks like your BVM driver interfaces with the Serial protocol, rather than the Control protocol that the BKM-10R uses. Someone on Reddit linked me this which looks like a pretty good writeup on the Control protocol, though I don't know who wrote it, nor can I vouch for its accuracy.

If I were creating something for myself from scratch, I'd probably take that documentation and create a standalone program with the aim of completely simulating a BKM-10R (it would be awesome to have physical buttons/encoders and a 3D printed case, but I know a touch screen is more realistic), but it would probably make more sense to leverage some of the stuff that you've already got going here.

If you were adding Control protocol support, how would you think of going about it?
Did you check out that pastebin link? It looks like that person has already decoded most of the protocol already (unless I'm misunderstanding your reply).
Dochartaigh
Posts: 1520
Joined: Thu Mar 02, 2017 6:53 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by Dochartaigh »

nmur wrote: Did you check out that pastebin link? It looks like that person has already decoded most of the protocol already (unless I'm misunderstanding your reply).
Just sayin' that with these mere four commands you can literally resize the screen, perfectly, to fit ANY console out there (with an interface of some sort, and a small program written to string these commands together...). This has been the bane of MANY CRT gamers - how the screen is too small, too large, too much shifted up, down, left, or right for each console they want to run:

0x02 0x40 - UP
0x02 0x80 - DOWN
0x02 0x10 - MENU
0x02 0x20 - ENTER

If there is anybody who just can't stand geometry being off, please do this then let us know exactly how you did it so I can copy and use on my own BVM's ;)

I'm literally going to try something like this at some point on a universal remote (which has the ability to use batches) for my pro monitors which can use a remote so it resizes to each system perfectly at the press of a button ;)
User avatar
6XGate
Posts: 22
Joined: Thu Feb 21, 2019 1:38 am
Location: Ocean Springs, Mississippi
Contact:

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by 6XGate »

This is a little out of scope for my project. I've seen the doc, but it seems the serial protocol uses slightly different codes for the keys it seems.

It would be great, but as far as geometry control from something like this, to the best I can determine. There would be some reliability issues if the software and the monitor aren't in sync with what the current geometry, which is very likely. I've also heard pushing geometry to any extremes can damage a monitor, which would likely be required to be 100% reliable (think Apple II disk drives always pulling the head to start by being issued the maximum possible number of back commands, and clacking the head, so the software knows for sure). I don't know if that would be safe.

Now... if someone wants to decode what happens with the CONTROL's CF card drive and how, if, geometry is savable. That would be the way to go.

This is way outside the scope of my project at the moment and depends on the BVMs ability to have "channels" with defined properties about the input card and settings. I don't know if geometry is one of them, other than over/underscan. But the for my project I needed to send channels and nothing more to keep things simple and easy. This may change as time goes, but at best I suspect I'll add support for over/underscan and RGB/Comp switching when I add PVM support in the future.
Dochartaigh wrote:
nmur wrote: Did you check out that pastebin link? It looks like that person has already decoded most of the protocol already (unless I'm misunderstanding your reply).
Just sayin' that with these mere four commands you can literally resize the screen, perfectly, to fit ANY console out there (with an interface of some sort, and a small program written to string these commands together...). This has been the bane of MANY CRT gamers - how the screen is too small, too large, too much shifted up, down, left, or right for each console they want to run:

0x02 0x40 - UP
0x02 0x80 - DOWN
0x02 0x10 - MENU
0x02 0x20 - ENTER

If there is anybody who just can't stand geometry being off, please do this then let us know exactly how you did it so I can copy and use on my own BVM's ;)

I'm literally going to try something like this at some point on a universal remote (which has the ability to use batches) for my pro monitors which can use a remote so it resizes to each system perfectly at the press of a button ;)
User avatar
6XGate
Posts: 22
Joined: Thu Feb 21, 2019 1:38 am
Location: Ocean Springs, Mississippi
Contact:

Re: BridgeCmdr; Software to Controlling BVMs and Switches

Post by 6XGate »

I've just release version 1.0.0 of BridgeCmdr, which replaces the PiAvSwitchController. This version can be installed via a Raspbian DEB package, and can be fully configured on screen. Hope y'all enjoy this major update.

BridgeCmdr v1.0.0

Image Image Image
22point8
Posts: 261
Joined: Wed Nov 14, 2012 5:59 pm
Location: London, England, UK

Re: BridgeCmdr; Software to Controlling BVMs and Switches

Post by 22point8 »

Any idea how 's-control' 3.5mm headphone jack works for older PVMs?
User avatar
6XGate
Posts: 22
Joined: Thu Feb 21, 2019 1:38 am
Location: Ocean Springs, Mississippi
Contact:

Re: BridgeCmdr; Software to Controlling BVMs and Switches

Post by 6XGate »

Quick bug-fix release today. Had to port over a behavior from the Python based predecessor, PiAvSwitchController, for handling network switches and monitors. Now I remember this issue. Should make it stable.

BridgeCmdr v1.0.1
User avatar
6XGate
Posts: 22
Joined: Thu Feb 21, 2019 1:38 am
Location: Ocean Springs, Mississippi
Contact:

Re: BridgeCmdr; Software to Controlling BVMs and Switches

Post by 6XGate »

22point8 wrote:Any idea how 's-control' 3.5mm headphone jack works for older PVMs?
Not a clue as of yet. So far I've only tested this thing with D-series BVMs. I plan to do L-series PVMs next since I have two of those. I would require some outside help on other devices that I don't have or really good documentation on those devices.
User avatar
6XGate
Posts: 22
Joined: Thu Feb 21, 2019 1:38 am
Location: Ocean Springs, Mississippi
Contact:

Re: BridgeCmdr; Software to Controlling BVMs and Switches

Post by 6XGate »

New release of BridgeCmdr, v1.1.0. This release brings less aggressive validation in the editors. They should not complain about required fields until you attempt to save your sources, switches, or ties.

I've also created a list of switches I'm going to attempt to create drivers for in upcoming releases. So keep an eye out for new device support.
User avatar
6XGate
Posts: 22
Joined: Thu Feb 21, 2019 1:38 am
Location: Ocean Springs, Mississippi
Contact:

Re: BridgeCmdr; Software to Controlling BVMs and Switches

Post by 6XGate »

Damn... an issue after updating one of the third-party components borkered styling in the app. This new version will fix it.

Download BridgeCmdr v1.1.1
Post Reply