BridgeCmdr; Software to Controlling BVMs and Switches

The place for all discussion on gaming hardware
User avatar
6XGate
Posts: 22
Joined: Thu Feb 21, 2019 1:38 am
Location: Ocean Springs, Mississippi
Contact:

BridgeCmdr; Software to Controlling BVMs and Switches

Post by 6XGate »

TL;DR

I've made a professional monitor and switch controller that runs on a touchscreen equipped Raspberry Pi: BridgeCmdr

To stay up-to-date on new released, follow me on Twitter.

You can always download the latest version from GitHub.

Introduction

So, I've been getting more and more intro retro-gaming these years and have purchased some really good hardware for it. The issue with using professional hardware like Sony BVMs and Extron switches is the additional complexity of setting up the ties and getting the channel for the console I want to play. Adding a single audio output to that complicates things even more. None of this equipment was design for such single person use cases.

Now... a positive aspect about this equipment is it being designed for remote and/or computer controllability.

Example Setup

Now, using my setup as an example. I have the following:
  • Sony BVM-D24E1WU, the monitor
  • Extron Crosspoint Plus 128 /w DSVP, the switch with 12 inputs and 8 outputs
  • NES using composite on the Extron
  • SNES and PS2 using RGBS on the Extron
  • N64 and Dreamcast using S-video on the Extron
  • Wii, XBOX360, PS3 using component on the Extron
  • Nintendo Switch "directly" on the monitors HD-SDI.
  • Cheap BlackWeb speakers connect to the first output of the Extron.
Solution

To make life easier using professional equipment, I decided to buy a Raspberry Pi, it's official touchscreen and compatible case, along with a USB-to-RS232 and USB-to-RS485 adapters. The RS-232 is for the Extron and the RS-485 is for the Sony BVM.

After a week of deciphering the BVM's remote protocol; the Extron protocol is in the manual, I've now created a very usable piece of software to control the BVM and Extron to make the process of selecting which console I want to output on screen very easy. It's just one tap of my finger.

The BridgeCmdr.
Last edited by 6XGate on Tue Jan 14, 2020 4:05 am, edited 4 times in total.
User avatar
6XGate
Posts: 22
Joined: Thu Feb 21, 2019 1:38 am
Location: Ocean Springs, Mississippi
Contact:

Release of 0.5.0

Post by 6XGate »

I just released 0.5.0 of this project that greatly improves the installation process for the software. Now the software will handle the basics aspects of its installation after it has been "downloaded".
SamIAm
Posts: 475
Joined: Thu Mar 03, 2005 1:09 am

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by SamIAm »

I don't have your particular equipment, but I just wanted to say: this is really cool of you, both to make and to share.

If I had your skills at reverse engineering, I'd be tempted to pick up this Mitsubishi 16x16 matrix switch. It looks like it needs to be controlled remotely, yet the remote unit is not included and the main unit is extremely obscure.
Last edited by SamIAm on Sun Mar 03, 2019 1:30 pm, edited 1 time in total.
Dochartaigh
Posts: 1520
Joined: Thu Mar 02, 2017 6:53 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by Dochartaigh »

Cool project! Do you have a video of it working? I'm assuming you're turning into different saved channels on the BVM, as well as loading a certain preset on the Extron Crosspoint when you touch a certain button/icon on the Raspberry Pi's touchscreen? So for example if you wanted to play N64 over S-Video on your BVM, and the S-Video card is input card #1 on the BVM using inputs 1 and 2 for S-Video, and that information is saved on the Channel #1 Preset on the BVM; and then on the Crosspoint the N64 is Preset #1 as well; you then have the RP3 load that saved Channel #1 on the BVM, as well as loading Preset #1 on the Crosspoint as well, and you're in business playing N64 on your BVM with the press of a single button.

On a related note, if you want to do the switching wirelessly on your Extron Crosspoint Ultra (don't know if you have the ultra model or what), over wifi, from a touchscreen phone, tablet, or any device with web access, check out this project I did: viewtopic.php?f=6&t=63212

What I'm most interested in with your project is if you are indeed, in essence, having the Raspberry Pi simply enter the code/command for a certain button (that's normally entered from the BKM-10R Controller's panel), which in the case of these Channel Presets would simply be hitting the #1 button, #2 button, etc. (which is how you load Channel Preset #1, or Channel Preset #2). If so, it should be little trouble to have it enter commands like menu, enter, up, and down as well, right? If so, I see great potential in this project fixing one of the biggest annoyances in all of retro gaming (well, for us perfectionists at least - which there's many of ;) – which is how geometry from one system to another can be different, sometimes even drastically so. If you want everything perfect for every system you would have to go into the alignment/geometry menu on the monitor every time and do some tweaks whenever you switched from one console to another, even if they are both 240p consoles for example. With this Raspberry Pi setup you could pretty easily have it enter the commands for you to size and center each console perfectly. It would only have to input commands (in order) like: menu, down, down, down, enter (here you should be in the "Alignment" menu), then up and down to set the H Phase, H Size, V Size, and V Center values and it would automatically adjust the geometry to be perfect for that exact console. This might seem like being a little anal about geometry, but the systems really are different, and unless it's adjusted every time you will ALWAYS get some funky things showing up on screen (like some very annoying flashing dots, objects appearing and disappearing, contrasting color bars on the edges, etc.), or a vital menu on the top or bottom of a game cut off, etc.

^^ Just food for thought and the first thing I thought of after I read your post. Let me know if you have any interest and I would be happy to help out if I can.
Splozion
Posts: 13
Joined: Mon Nov 06, 2017 12:50 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by Splozion »

Which USB RS-485 adapter did you use? In theory this could enable a bridge from BVM to say, a logitech harmony or similar control system over Wifi.
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 »

@SamIAm, I'm not sure if there is any manual, in English, for that switch; but the Extron's using RS-232 actually had the command set documented in their manual. The BVM is where the fun is. It did at least use the same pin-out as the Sony 9Pin Protocol of their video recording equipment. So the part that required a bit of work was decoding the command protocol of the BVM's serial REMOTE lines. If you can find a manual, I, or anyone, can write a driver for that switch.

@Dochartaigh, I'm not using preset on the switch, but it does require channels to be defined on the BVM. The may reason I didn't use presets is I didn't have any setup and didn't want to require that be done. It seemed simpler for a user to just plug stuff up and give the program the tie (in to out) channels. That being said, it might be possible later to set it up to treat ties as single input channel like I do the BVM with more options on the Extron driver. You can check the source if you want more details on how this is abstracted; but, it simply tells the BVM a channel to go to and tells the switch which input should be tied to which video output and audio output. It even signals to BVM to power down when I push a power off button. Though I know how to send those command, I don't simulate any button presses, I actually send SetChannel (as I call them) commands which support the full range of channels.

@Splozion Here is a list of all the extra parts I needed (beyond the Raspberry Pi, it's screen and case)
  • USB to RS-232: Amazon Link.
  • USB to RS-485: Amazon Link.
  • DE-9 Breakout ends for RS-485 cable: Amazon Link.
  • I just used plain old CAT6 cable with the RS-485 breakout ends to convert from the adapter pin-out to the BVM pin-out.
I plan to make a complete write up with video soon.
PAvandal
Posts: 1
Joined: Mon Apr 17, 2017 1:42 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by PAvandal »

This is almost exactly what I've been trying to figure out a way to do. Awesome!

Question: Do you have any resources on writing the driver files for other devices? I have a 16 port HDMI switch in addition to an extron crosspoint. If I could get both going my entire setup could be controlled this way.

the manufacturer is Tesla Smart (http://www.testla-smart.com). I found the following protocol information on their website.https://drive.google.com/open?id=1bQXbh ... mekAeCMg2K
User avatar
6XGate
Posts: 22
Joined: Thu Feb 21, 2019 1:38 am
Location: Ocean Springs, Mississippi
Contact:

0.6.1 Released

Post by 6XGate »

I just released a new version, this one has only minor changes for new users, but existing users will want to update to this version now before I release 0.7.0. Since the next version is going to be packaging the program into a single file (called zipapp in Python), I will need to move where the configuration file is located. By updating to and running this version, you will not need to move the file manually on the next update.

Also, if you want to keep up-to-date on new released, you can follow me on Twitter

Also, I found a bug in 0.6.0 and patched it real quick.
User avatar
6XGate
Posts: 22
Joined: Thu Feb 21, 2019 1:38 am
Location: Ocean Springs, Mississippi
Contact:

Release of 0.6.2: Recommended Update

Post by 6XGate »

Fixed some issues that affected the start-up performance, added logging, and ensured that the shutdown button gave the program a chance to write it's persistent state information, such as the current configuration file path.
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 »

PAvandal wrote:This is almost exactly what I've been trying to figure out a way to do. Awesome!

Question: Do you have any resources on writing the driver files for other devices? I have a 16 port HDMI switch in addition to an extron crosspoint. If I could get both going my entire setup could be controlled this way.

the manufacturer is Tesla Smart (http://www.testla-smart.com). I found the following protocol information on their website.https://drive.google.com/open?id=1bQXbh ... mekAeCMg2K
I've not written anything up yet. It's not too hard though if you know how to open a stream to the device for communication and know the protocol to set ties or channels. The documentation is still a work in progress to the same extend as the program. I'll see what I can do with what you've found, but I've no way to test anything other than what I have. I would need the communities help with that.
Dochartaigh
Posts: 1520
Joined: Thu Mar 02, 2017 6:53 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by Dochartaigh »

6XGate wrote:You can check the source if you want more details on how this is abstracted; but, it simply tells the BVM a channel to go to and tells the switch which input should be tied to which video output and audio output. It even signals to BVM to power down when I push a power off button. Though I know how to send those command, I don't simulate any button presses, I actually send SetChannel (as I call them) commands which support the full range of channels.
Sadly I know absolutely nothing of coding besides simple web type stuff like HTML and CSS - I wouldn't be able to re-write your code to make this do what I want it to do (i.e. adjust the geometry of the BVM automatically on a per-console basis).
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 »

Dochartaigh wrote:
6XGate wrote:You can check the source if you want more details on how this is abstracted; but, it simply tells the BVM a channel to go to and tells the switch which input should be tied to which video output and audio output. It even signals to BVM to power down when I push a power off button. Though I know how to send those command, I don't simulate any button presses, I actually send SetChannel (as I call them) commands which support the full range of channels.
Sadly I know absolutely nothing of coding besides simple web type stuff like HTML and CSS - I wouldn't be able to re-write your code to make this do what I want it to do (i.e. adjust the geometry of the BVM automatically on a per-console basis).
That's not an issue, I'll give coding a driver for it a try. It looks like a simple protocol.
User avatar
6XGate
Posts: 22
Joined: Thu Feb 21, 2019 1:38 am
Location: Ocean Springs, Mississippi
Contact:

Released 0.7.0

Post by 6XGate »

Okay, so I’m going to make the zipapp version 1.0.0. This version adds support for using LAN/network connection to control and Extron switch using SIS. Also, by request, I’ve added experimental Telsa-Smart HDMI (and maybe SDI) switch support through RS-232 and LAN/network connection.

The use of network support requires replacing the tty part of the switch's configuration with host containing the switch's IP address.

The new Tesla-Smart driver is called tesla-smart.

You can checkout the wiki page for Switches and Monitor for more information.
Aquamentus
Posts: 18
Joined: Tue Feb 20, 2018 5:59 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by Aquamentus »

Wow this is awesome. I currently have a 32x16 and a 12x8 chained together (I have a lot of devices connected along with extron VGA->RGBS, kramer S-Video/Composite->RGBS, and Behar Bros Component ->RGBS converters/transcoders in a loop back setup) outputting to a PVM-20L5, OSSC, and a datapath capture card. Wondering if the BVM and PVM use the same remote protocol, any clue? Also would the software be able to handle two daisy chained switches?

Like for PS1 set the 12x8 to input 3 output 1 and the 32x16 to input 32 output 1? Gets even more complicated for the loopback setups - for PC-FX the 12x8 needs input 4 to output 3 and input 12 to output 1 and on the 32x16 input 32 to output 1-3 (or one of the 3 depending on if I want PVM, OSSC, and/or datapath capture). This is because output 3 of the 12x8 is the input of the Kramer fc-4044 s-video/composite to RGBS decoder, input 12 is the output of the Kramer fc-4044, input 4 is the pc-fx s-video output, and output 1 goes to the 32x16’s input 32 which then has the PVM, OSSC, and Datapath capture on outputs 1-3. I have similar setups with the other converters/transcoders and the Xbox, Xbox 360, psp, PS3 (since no 480P over rgbs like ps2 can do ☹️), fm Towns marty, virtual boy, game gear, lynx, and 3DO (which will get RGB soon).

It would be even cooler if when clicking on a system a pop up menu would ask if I wanted to output to the PVM, OSSC, Datapath, or all/combinations of the three based on my defined outputs.
Ikaruga11
Posts: 1454
Joined: Thu Apr 07, 2016 1:32 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by Ikaruga11 »

Great job, 6XGate!
Dochartaigh
Posts: 1520
Joined: Thu Mar 02, 2017 6:53 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by Dochartaigh »

6XGate wrote:That's not an issue, I'll give coding a driver for it a try. It looks like a simple protocol.
Sounds great, thanks! All I would need to know is how to add strings of commands (like the code for "Up", "Down", "Enter", etc.), and how to link them to a button on the control panel I should have no problem editing the code to make it resize the screen on a per-console basis.



Aquamentus wrote:outputting to a PVM-20L5, OSSC, and a datapath capture card. Wondering if the BVM and PVM use the same remote protocol, any clue? Also would the software be able to handle two daisy chained switches?
Your PVM-20L5 (along with the 14L5) are the only monitors which can also be controlled by a BVM's BKM-10R controller. The functionality is a bit limited though and I could never get it to work 100% like the cryptic manual says I should be able to (it's on page 20 of the 20L5's manual if you want to give it a look). That being said, to answer your question, yes, the BVM and PVM share some of the same remote protocols (if those are the ones this program is setup to use or not I can't answer).
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 »

Aquamentus wrote:Wow this is awesome. I currently have a 32x16 and a 12x8 chained together (I have a lot of devices connected along with extron VGA->RGBS, kramer S-Video/Composite->RGBS, and Behar Bros Component ->RGBS converters/transcoders in a loop back setup) outputting to a PVM-20L5, OSSC, and a datapath capture card. Wondering if the BVM and PVM use the same remote protocol, any clue? Also would the software be able to handle two daisy chained switches?

Like for PS1 set the 12x8 to input 3 output 1 and the 32x16 to input 32 output 1? Gets even more complicated for the loopback setups - for PC-FX the 12x8 needs input 4 to output 3 and input 12 to output 1 and on the 32x16 input 32 to output 1-3 (or one of the 3 depending on if I want PVM, OSSC, and/or datapath capture). This is because output 3 of the 12x8 is the input of the Kramer fc-4044 s-video/composite to RGBS decoder, input 12 is the output of the Kramer fc-4044, input 4 is the pc-fx s-video output, and output 1 goes to the 32x16’s input 32 which then has the PVM, OSSC, and Datapath capture on outputs 1-3. I have similar setups with the other converters/transcoders and the Xbox, Xbox 360, psp, PS3 (since no 480P over rgbs like ps2 can do ☹️), fm Towns marty, virtual boy, game gear, lynx, and 3DO (which will get RGB soon).

It would be even cooler if when clicking on a system a pop up menu would ask if I wanted to output to the PVM, OSSC, Datapath, or all/combinations of the three based on my defined outputs.
I've got a PVM-20L5 and PVM-14L5 which I've not tested against yet. But if you want to, you can try the BVM D-series driver with it. I do plan do test this, but I need to add support for switching the 16:9/4:3 and the over/underscan states since those monitors don't support definable channels in the same way as BVMs.

As for as chooseable paths, I don't foresee that right now, but you never know what the future holds. Since each device can use any combination of switches/monitors, you can make a button for those paths. I have a Extron 12x8 Crosspoint Plus and now recently an Extron 8x4 DXP for HDMI consoles to connect to by BVM D-series and some consoles don't switch the DXP only the Crosspoint and monitor.
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 »

Dochartaigh wrote:
6XGate wrote:That's not an issue, I'll give coding a driver for it a try. It looks like a simple protocol.
Sounds great, thanks! All I would need to know is how to add strings of commands (like the code for "Up", "Down", "Enter", etc.), and how to link them to a button on the control panel I should have no problem editing the code to make it resize the screen on a per-console basis.



Aquamentus wrote:outputting to a PVM-20L5, OSSC, and a datapath capture card. Wondering if the BVM and PVM use the same remote protocol, any clue? Also would the software be able to handle two daisy chained switches?
Your PVM-20L5 (along with the 14L5) are the only monitors which can also be controlled by a BVM's BKM-10R controller. The functionality is a bit limited though and I could never get it to work 100% like the cryptic manual says I should be able to (it's on page 20 of the 20L5's manual if you want to give it a look). That being said, to answer your question, yes, the BVM and PVM share some of the same remote protocols (if those are the ones this program is setup to use or not I can't answer).
Now, for the switch itself, you just tell the software which input to use. For the monitor you have. I've not tested whether the driver I have right now work on it (which is the BVM D-series). I do plan to add support soon for the PVM L5 series since I have two of those. On the subject of things like the OSSC, I'm not sure if it has a communication port of any kind as I don't have one of those. Didn't know anyone used those with PVMs or BVMs.
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 »

GeneraLight wrote:Great job, 6XGate!
thanks
fernan1234
Posts: 2175
Joined: Mon Aug 14, 2017 8:34 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by fernan1234 »

This is really cool. I have a question that's kind of off topic but since you've gathered so much knowledge about this BVM's controls you may be able to help me. I use the same BVM as you, and for some reason whenever I turn on the monitor from stand by or power off into channel 1 (my main usage channel) it almost always (though not always) has the Safe Zone marks on and I need to turn it off with the remote, which is a bit annoying. I haven't been able to figure out how to deactivate this. Any ideas?
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 »

fernan1234 wrote:This is really cool. I have a question that's kind of off topic but since you've gathered so much knowledge about this BVM's controls you may be able to help me. I use the same BVM as you, and for some reason whenever I turn on the monitor from stand by or power off into channel 1 (my main usage channel) it almost always (though not always) has the Safe Zone marks on and I need to turn it off with the remote, which is a bit annoying. I haven't been able to figure out how to deactivate this. Any ideas?
Hmm... I don't recall seeing that in the channel settings, but it could be. It may be elsewhere. If I see it, I'll let you know.
Dochartaigh
Posts: 1520
Joined: Thu Mar 02, 2017 6:53 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by Dochartaigh »

Just wanted to let you know I referenced your project on the "Professional & Broadcast CRT Monitors" Facebook group. I'm trying to see if anybody has interest in getting this to automatically adjust the geometry settings of the BVM on a per-console basis.

Thanks again for your work (and feel free to join the group if you want - nice friendly people there with similar interests to ours!).
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 »

Dochartaigh wrote:Just wanted to let you know I referenced your project on the "Professional & Broadcast CRT Monitors" Facebook group. I'm trying to see if anybody has interest in getting this to automatically adjust the geometry settings of the BVM on a per-console basis.

Thanks again for your work (and feel free to join the group if you want - nice friendly people there with similar interests to ours!).
Cool.

Right now, it mainly relies on channel settings as defined on BVMs for that. I do plan to add PVM support with the Over/under and 16:9/4:3 toggling supported. If the need is there, I may also extend that to BVMs too. But, all that will likely not come till after I get a configuration UI for what switch and monitor equipment I support right now. I'm sure folks don't want to edit JSON files to configure this for their equipment.
Dochartaigh
Posts: 1520
Joined: Thu Mar 02, 2017 6:53 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by Dochartaigh »

6XGate wrote:Cool.

Right now, it mainly relies on channel settings as defined on BVMs for that. I do plan to add PVM support with the Over/under and 16:9/4:3 toggling supported. If the need is there, I may also extend that to BVMs too. But, all that will likely not come till after I get a configuration UI for what switch and monitor equipment I support right now. I'm sure folks don't want to edit JSON files to configure this for their equipment.
For this side project I'm trying to see if there's interest for (totally based on your initial super cool work!), right now I think people are hinting at if they have the commands for Menu, Enter, Up, and Down, that they could then start to try to work out something to tweak your code to have the monitor automatically (via a script of the correct commands) size and scale the geometry of the monitor so it's perfect for each and every console (which is SEVERELY lacking right now world-wide on these professional monitors turned to gaming monitors lol).

Do you happen to know what the commands are for those? If not, is it hard for you to figure something like that out? (as a non-programmer I'm totally oblivious to the process truth be told). I know you said you're only using channel settings (and looking into 16:9 and 4:3 over/under toggling), but if it isn't too hard for you to find those out those commands that would be amazing man. That would give those programmers a great big head start I think (or hope at least, I'm just the guy proposing an idea - not the one who is capable of tweaking your code to this end).
Splozion
Posts: 13
Joined: Mon Nov 06, 2017 12:50 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by Splozion »

Dochartaigh wrote:
6XGate wrote:Cool.

Right now, it mainly relies on channel settings as defined on BVMs for that. I do plan to add PVM support with the Over/under and 16:9/4:3 toggling supported. If the need is there, I may also extend that to BVMs too. But, all that will likely not come till after I get a configuration UI for what switch and monitor equipment I support right now. I'm sure folks don't want to edit JSON files to configure this for their equipment.
For this side project I'm trying to see if there's interest for (totally based on your initial super cool work!), right now I think people are hinting at if they have the commands for Menu, Enter, Up, and Down, that they could then start to try to work out something to tweak your code to have the monitor automatically (via a script of the correct commands) size and scale the geometry of the monitor so it's perfect for each and every console (which is SEVERELY lacking right now world-wide on these professional monitors turned to gaming monitors lol).

Do you happen to know what the commands are for those? If not, is it hard for you to figure something like that out? (as a non-programmer I'm totally oblivious to the process truth be told). I know you said you're only using channel settings (and looking into 16:9 and 4:3 over/under toggling), but if it isn't too hard for you to find those out those commands that would be amazing man. That would give those programmers a great big head start I think (or hope at least, I'm just the guy proposing an idea - not the one who is capable of tweaking your code to this end).

I believe this functionality might be a channel setup thing. Have you tried configuring one channel for a console, and then seeing if those geometry settings persist on a different channel? That's probably a far more effective way of changing between geometries, provided that they are saved on a channel basis. Input configuration and Sync is saved, so I would venture geometry is as well. I may try this with my own BVM later today.
Dochartaigh
Posts: 1520
Joined: Thu Mar 02, 2017 6:53 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by Dochartaigh »

Splozion wrote:I believe this functionality might be a channel setup thing. Have you tried configuring one channel for a console, and then seeing if those geometry settings persist on a different channel? That's probably a far more effective way of changing between geometries, provided that they are saved on a channel basis. Input configuration and Sync is saved, so I would venture geometry is as well. I may try this with my own BVM later today.
Channels let you tweak and save H Center (H POS?) but that is it. It will not save V Size, H Size, or V Center. Not even via the memory card.
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 »

I know the basic structure of sending control unit key commands, but didn't keep up with them all. It wouldn't be hard to document them. Please note, I'm not sure if this protocol I see used by the D-series BVMs is universal to other BVM series or any PVM series. I have two L5 series PVMs I want to test it out on at some point though.

I thought you might be referring to just the under/over-scan and aspect-ratio. But if you mean all the other settings such as pinch, skew, etc., that would make such a feature a challenge due to the lack of any known way of getting the current geometry from the method I'm using, needed to make adjustments via the menus.

I may look into interfacing directly into the CONTROL port later which may provide a means to get and pass the settings as if to or from a memory card. Only time will tell.
Dochartaigh wrote:
6XGate wrote:Cool.

Right now, it mainly relies on channel settings as defined on BVMs for that. I do plan to add PVM support with the Over/under and 16:9/4:3 toggling supported. If the need is there, I may also extend that to BVMs too. But, all that will likely not come till after I get a configuration UI for what switch and monitor equipment I support right now. I'm sure folks don't want to edit JSON files to configure this for their equipment.
For this side project I'm trying to see if there's interest for (totally based on your initial super cool work!), right now I think people are hinting at if they have the commands for Menu, Enter, Up, and Down, that they could then start to try to work out something to tweak your code to have the monitor automatically (via a script of the correct commands) size and scale the geometry of the monitor so it's perfect for each and every console (which is SEVERELY lacking right now world-wide on these professional monitors turned to gaming monitors lol).

Do you happen to know what the commands are for those? If not, is it hard for you to figure something like that out? (as a non-programmer I'm totally oblivious to the process truth be told). I know you said you're only using channel settings (and looking into 16:9 and 4:3 over/under toggling), but if it isn't too hard for you to find those out those commands that would be amazing man. That would give those programmers a great big head start I think (or hope at least, I'm just the guy proposing an idea - not the one who is capable of tweaking your code to this end).
Dochartaigh
Posts: 1520
Joined: Thu Mar 02, 2017 6:53 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by Dochartaigh »

6XGate wrote:I know the basic structure of sending control unit key commands, but didn't keep up with them all. It wouldn't be hard to document them. Please note, I'm not sure if this protocol I see used by the D-series BVMs is universal to other BVM series or any PVM series. I have two L5 series PVMs I want to test it out on at some point though.

I thought you might be referring to just the under/over-scan and aspect-ratio. But if you mean all the other settings such as pinch, skew, etc., that would make such a feature a challenge due to the lack of any known way of getting the current geometry from the method I'm using, needed to make adjustments via the menus.

I may look into interfacing directly into the CONTROL port later which may provide a means to get and pass the settings as if to or from a memory card. Only time will tell.
The two most popular BVM series are the BVM-20F1U (and it's variants: 14F5U, etc.), and the multiformat D20 series (D24, D32, etc.). The same controller works all those models (~16x different BVM's total). It also works in a limited way on the 14L5 and 20L5 PVM's. As long as it's not a BVM from the early 90's, or the A-Series, it'll work on it.

The only settings I'm talking about adjusting are the H/V Size, and H/V Centering - those are the ones which will vary from console to console. These are what MANY people have issues with - calibrating a monitor so the 240p test suite grid is perfectly centered (with just the right amount of minute overscan) for each console. They commonly have to go into the alignment menu to tweak that for EVERY single console, every time. A 224p NES for example, outputs a signal quite a bit different than something like a 240p Sega Genesis. Even different games on the same system can have funky stuff going on in the margins you may not want to see (case and point is SMB 3 and that blue bar on the entire left side - other games display just fine with nothing like that on the left).

For your project, this is how I thought of it - please let me know if I'm totally off: You were able to capture the command (like the command for Channel 1, Channel 2, etc.) which the controller sends over the serial cable to the BVM, then emulate that via a Raspberry Pi computer. You can then use that command with the Raspberry Pi and don't even need the BKM-10R controller to switch channels. That being said, one would think that you could likewise capture the command the controller sends for Up, Down, Menu, and Enter too then, correct? Once you have the commands for those 4 button presses, you would be able to tweak ANYTHING on the monitor in terms of H/V Size/Centering and get ALL of your consoles tuned absolutely perfect at the touch of a button.


For a further example using that Super Mario Brothers 3 problem from above (with the blue bar on the left all the time), if I find that's really annoying me I'll go into the Alignment menu and I'll raise the V Size by +10, then shift the image over with H Phase(Centering) by +5. After I do that the blue bar is gone and the image looks perfect. Doing that adjustment via the controller ONLY takes those 4 buttons I mentioned (up/down/left/right). If I'm right that those commands can be emulated with the Raspberry Pi, it seems like it would be pretty easy to run a script which would run them in the proper sequence. I just wrote this down quickly but on my D20 I would press:
Spoiler
Menu (enters the OSD menu)
2x Down (you're now on the Set-Up option)
Enter (selects/enters the Set-Up Menu)
5x Down (you're now selecting the Alignment sub-menu)
Enter
2x Down (you're now on the V Size option of the alignment menu)
Enter
10x Up (raising the V Size value by 10)
Enter
5x Down (you're now on H Phase/Center)
Enter
5x Down (which moves it left)
Enter
3x Menu (to back out of the menus so they're not shown anymore)
When you're done playing that game (or console), you would need to "reset" the alignment to a defined base point. That would essentially be the same commands as above, but you would be swapping Up with Down so it reverses those tweaks you just did. This will get you back to your baseline. After that, if you wanted to switch to another console, you could then use the same method to tweak the geometry for that other console (then after you're done that, reset it back to baseline again, and you're once again ready to have it make those adjustments for yet another console, so on and so forth).

Does that make sense? You can do things exactly like this with the higher-end universal (IR) remote controls. You can record a macro of multiple button presses, in sequence, save it, then have it do that button sequence when you run that saved macro (which BTW, I may try that with my Panasonic multiformat CRT which does use an IR remote - that'll let me tweak that monitor the same way I want to do with my BVM's! ;)



P.S. If you feel like I'm totally derailing your topic since this wasn't the original point of your program please let me know! Just immensely interested in something like this, as are a bunch of other people on the Facebook group.
Ikaruga11
Posts: 1454
Joined: Thu Apr 07, 2016 1:32 pm

Re: Raspberry Pi Software for Controlling BVMs and Switches

Post by Ikaruga11 »

Is it possible to get this working on A-Series BVMs?
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 all I can really say to the situation right now. Via the REMOTE I/O, the channel commands are different from most control signals related to other BKM-10R keys. And some function are different. The main concern is that the geometry does not reset after a power cycle. And while the app could track it's changes, if the user modifies the geometry, the app won't know what the current geometry is anymore. This complicates things and require a more creative solution. Something that does sound very interesting as a feature. And there may be a method of doing it via the CONTROL port that could be utilized, but will require that I determine its protocol, which I think I've read is far different from the one used by REMOTE.
Dochartaigh wrote:
Spoiler
6XGate wrote:I know the basic structure of sending control unit key commands, but didn't keep up with them all. It wouldn't be hard to document them. Please note, I'm not sure if this protocol I see used by the D-series BVMs is universal to other BVM series or any PVM series. I have two L5 series PVMs I want to test it out on at some point though.

I thought you might be referring to just the under/over-scan and aspect-ratio. But if you mean all the other settings such as pinch, skew, etc., that would make such a feature a challenge due to the lack of any known way of getting the current geometry from the method I'm using, needed to make adjustments via the menus.

I may look into interfacing directly into the CONTROL port later which may provide a means to get and pass the settings as if to or from a memory card. Only time will tell.
The two most popular BVM series are the BVM-20F1U (and it's variants: 14F5U, etc.), and the multiformat D20 series (D24, D32, etc.). The same controller works all those models (~16x different BVM's total). It also works in a limited way on the 14L5 and 20L5 PVM's. As long as it's not a BVM from the early 90's, or the A-Series, it'll work on it.

The only settings I'm talking about adjusting are the H/V Size, and H/V Centering - those are the ones which will vary from console to console. These are what MANY people have issues with - calibrating a monitor so the 240p test suite grid is perfectly centered (with just the right amount of minute overscan) for each console. They commonly have to go into the alignment menu to tweak that for EVERY single console, every time. A 224p NES for example, outputs a signal quite a bit different than something like a 240p Sega Genesis. Even different games on the same system can have funky stuff going on in the margins you may not want to see (case and point is SMB 3 and that blue bar on the entire left side - other games display just fine with nothing like that on the left).

For your project, this is how I thought of it - please let me know if I'm totally off: You were able to capture the command (like the command for Channel 1, Channel 2, etc.) which the controller sends over the serial cable to the BVM, then emulate that via a Raspberry Pi computer. You can then use that command with the Raspberry Pi and don't even need the BKM-10R controller to switch channels. That being said, one would think that you could likewise capture the command the controller sends for Up, Down, Menu, and Enter too then, correct? Once you have the commands for those 4 button presses, you would be able to tweak ANYTHING on the monitor in terms of H/V Size/Centering and get ALL of your consoles tuned absolutely perfect at the touch of a button.

For a further example using that Super Mario Brothers 3 problem from above (with the blue bar on the left all the time), if I find that's really annoying me I'll go into the Alignment menu and I'll raise the V Size by +10, then shift the image over with H Phase(Centering) by +5. After I do that the blue bar is gone and the image looks perfect. Doing that adjustment via the controller ONLY takes those 4 buttons I mentioned (up/down/left/right). If I'm right that those commands can be emulated with the Raspberry Pi, it seems like it would be pretty easy to run a script which would run them in the proper sequence. I just wrote this down quickly but on my D20 I would press:

Menu (enters the OSD menu)
2x Down (you're now on the Set-Up option)
Enter (selects/enters the Set-Up Menu)
5x Down (you're now selecting the Alignment sub-menu)
Enter
2x Down (you're now on the V Size option of the alignment menu)
Enter
10x Up (raising the V Size value by 10)
Enter
5x Down (you're now on H Phase/Center)
Enter
5x Down (which moves it left)
Enter
3x Menu (to back out of the menus so they're not shown anymore)

When you're done playing that game (or console), you would need to "reset" the alignment to a defined base point. That would essentially be the same commands as above, but you would be swapping Up with Down so it reverses those tweaks you just did. This will get you back to your baseline. After that, if you wanted to switch to another console, you could then use the same method to tweak the geometry for that other console (then after you're done that, reset it back to baseline again, and you're once again ready to have it make those adjustments for yet another console, so on and so forth).

Does that make sense? You can do things exactly like this with the higher-end universal (IR) remote controls. You can record a macro of multiple button presses, in sequence, save it, then have it do that button sequence when you run that saved macro (which BTW, I may try that with my Panasonic multiformat CRT which does use an IR remote - that'll let me tweak that monitor the same way I want to do with my BVM's! ;)

P.S. If you feel like I'm totally derailing your topic since this wasn't the original point of your program please let me know! Just immensely interested in something like this, as are a bunch of other people on the Facebook group.
GeneraLight wrote:Is it possible to get this working on A-Series BVMs?
It should be possible. But, I would have to have one or someone who does would have to write that driver. I don't think I'll be able to get a hold to an BMV-A-series though. Only time will tell.
Post Reply