Shift838 Posted January 21 Share Posted January 21 I have been toying around with the idea of making a dual port KVM for use with the Geneve to port video, audio, keyboard and mouse via an Arduino microcontroller. This will allow as most of you know to be able to use one monitor, keyboard, mouse and speakers for 2 different Geneve computers. I wanted to do this because I was tired of switching cables for keyboard, monitor, etc. when going between the 2. I decided to work on it some today to see if I can get the video to port over without any issues switching between my personal Geneve and the Geneve that runs Heatwave. So far, I have it working on a breadboard and using parts I had laying around. I'm using some 5v relays to control the switching and it seems to work pretty well so far. The code for the Arduino was pretty simple. Tomorrow I will be working on Keyboard, Mouse and Audio to do the same, I already have the code for it and it should work so I just need to wire it all up. I'll be posting some pics later this weekend and maybe a video on my Youtube channel. 9 Quote Link to comment Share on other sites More sharing options...
Shift838 Posted Monday at 05:54 AM Author Share Posted Monday at 05:54 AM (edited) I worked a bit on the proof of concept, and I got it working. So i did a quick render, but some of my 3D components did not work. but here is a render of the prototype board. I have ordered a few. The board measures 9.5 inches x 4.65 inches. My plan is to just use an acrylic top and bottom with standoffs mounted to keep it covered but having the button easily accessible. The Geneve KVM features are: Controlled by an Arduino Nano Firmware can be updated if needed. Uses 8 channel relay to control between NO and NC for 2 different Geneve systems Dual KVM + Audio switching 2 Geneve computers can be accessed with one Keyboard, Monitor, Mouse and Speakers Routing for audio can be internal or external speakers built in Sync Separator circuit Enable or Disable switch for providing Power to the SCART to enable RGB mode Also has a Geneve out for hooking up geneves to RGB monitors other than SCART Routes composite signal as well Dual LEDs to show which system is active one button to cycle between each system Edited Monday at 05:55 AM by Shift838 4 Quote Link to comment Share on other sites More sharing options...
+9640News Posted Monday at 01:55 PM Share Posted Monday at 01:55 PM What kind of price? Quote Link to comment Share on other sites More sharing options...
Shift838 Posted Monday at 03:04 PM Author Share Posted Monday at 03:04 PM 1 hour ago, 9640News said: What kind of price? not sure on the price yet. i will have to get the prototype here and make sure all is good then calculate the price of the components. Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted Monday at 03:37 PM Share Posted Monday at 03:37 PM Looks great, there are so many times I could have used one of these! Is the keyboard always powered by the kvm? Are you sensing presence via the Geneve's keyboard 5v output? I'm also curious how the relay will handle isolating all of the inputs/outputs with 'only' 8 channels. Quote Link to comment Share on other sites More sharing options...
+jedimatt42 Posted Monday at 04:29 PM Share Posted Monday at 04:29 PM You could skip the relay board if you want. I've made my own relay driver by having the Arduino signal pin control an npn transistor much like this circuit here: https://www.petervis.com/Raspberry_PI/Driving_LEDs_with_CMOS_and_TTL_Outputs/Driving_an_LED_Using_Transistors.html The 'buffer' in the first schematic on that page would be the Arduino control pin. The relay would go in place of the LED. The resistor inline with the relay would likely need to be increased - you could copy from the example relay board, the relay part number and inline resistor value. Would likely lower cost and make the design more future friendly. 3 Quote Link to comment Share on other sites More sharing options...
Shift838 Posted Monday at 08:38 PM Author Share Posted Monday at 08:38 PM 4 hours ago, InsaneMultitasker said: Looks great, there are so many times I could have used one of these! Is the keyboard always powered by the kvm? Are you sensing presence via the Geneve's keyboard 5v output? I'm also curious how the relay will handle isolating all of the inputs/outputs with 'only' 8 channels. Keyboards power is only powered by the relay. If the keyboard is not powered then of course no data is transmitted to the geneve. I do have the clock and data lines always connected, but it switches between the keyboard +5v for the relay. I control the mouse the same way. For the RGBS, Composite and Audio signal they have their own relays that control between the 2, that is why I can get away with only 8 relays. clear as mud? Quote Link to comment Share on other sites More sharing options...
Shift838 Posted Monday at 08:56 PM Author Share Posted Monday at 08:56 PM (edited) 4 hours ago, jedimatt42 said: You could skip the relay board if you want. I've made my own relay driver by having the Arduino signal pin control an npn transistor much like this circuit here: https://www.petervis.com/Raspberry_PI/Driving_LEDs_with_CMOS_and_TTL_Outputs/Driving_an_LED_Using_Transistors.html The 'buffer' in the first schematic on that page would be the Arduino control pin. The relay would go in place of the LED. The resistor inline with the relay would likely need to be increased - you could copy from the example relay board, the relay part number and inline resistor value. Would likely lower cost and make the design more future friendly. i definitely like this idea. My only thought is figuring out the correct resistor value for being able to use a NPN to engage the 5v for the Keyboard and the mouse. After more thought, maybe since I am routing the 5v lines for the Mouse and Keyboard I might be able to use TIP120 NPN. Edited Monday at 09:14 PM by Shift838 Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted Monday at 10:03 PM Share Posted Monday at 10:03 PM 1 hour ago, Shift838 said: Keyboards power is only powered by the relay. If the keyboard is not powered then of course no data is transmitted to the geneve. I do have the clock and data lines always connected, but it switches between the keyboard +5v for the relay. I control the mouse the same way. For the RGBS, Composite and Audio signal they have their own relays that control between the 2, that is why I can get away with only 8 relays. clear as mud? Maybe, not sure. RGB/composite/audio makes sense to me. Without full isolation, wouldn't the KVM mouse and keyboard try to drive both cards simultaneously? I'm probably overthinking this and now your trailing question has me wanting a slice of mud pie... so I'll re-read this later tonight. Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted Tuesday at 12:36 AM Share Posted Tuesday at 12:36 AM Hi! Cool project. I will definitely be interested in a KVM--I'm sharing my one good monitor for my workbench and Geneve. (SCART Genie there.) I studied a few TI video chips which are designed for KVM and such applications. You might be interested to check this out: TS3V330 is the simplest. For $1, it provides 4 analog switches in a DIP-16. Advertised BW=300 MHz with negligible gain or phase shift measured at 3.579 MHz. Suitable for RGB and composite. I don't see anything about switching speed--this is a KVM type switch--but TI has other $$! switches for pixel-accurate switching (as used in titling for instance.) https://www.ti.com/product/TS3V330 Quote Link to comment Share on other sites More sharing options...
Shift838 Posted Tuesday at 02:01 AM Author Share Posted Tuesday at 02:01 AM 9 hours ago, jedimatt42 said: You could skip the relay board if you want. I've made my own relay driver by having the Arduino signal pin control an npn transistor much like this circuit here: https://www.petervis.com/Raspberry_PI/Driving_LEDs_with_CMOS_and_TTL_Outputs/Driving_an_LED_Using_Transistors.html The 'buffer' in the first schematic on that page would be the Arduino control pin. The relay would go in place of the LED. The resistor inline with the relay would likely need to be increased - you could copy from the example relay board, the relay part number and inline resistor value. Would likely lower cost and make the design more future friendly. one of the reasons I chose the 8 channel relay board, was the price point was $10.00 and it already had all the circuitry, i just need to open and close the relays base done the button press. Has the reverse voltage protection and all. Quote Link to comment Share on other sites More sharing options...
Shift838 Posted Wednesday at 03:07 PM Author Share Posted Wednesday at 03:07 PM I would really like to have all the inputs and outputs on the back side of the KVM but to do so it would create a board almost 14 inches long. What would some users preferences be? all inputs and outputs on the back of the KVM or as long as they are grouped on back and sides? Quote Link to comment Share on other sites More sharing options...
Shift838 Posted Wednesday at 04:39 PM Author Share Posted Wednesday at 04:39 PM Updated Render... 1 Quote Link to comment Share on other sites More sharing options...
Shift838 Posted Thursday at 05:33 AM Author Share Posted Thursday at 05:33 AM On 1/23/2023 at 10:29 AM, jedimatt42 said: You could skip the relay board if you want. I've made my own relay driver by having the Arduino signal pin control an npn transistor much like this circuit here: https://www.petervis.com/Raspberry_PI/Driving_LEDs_with_CMOS_and_TTL_Outputs/Driving_an_LED_Using_Transistors.html The 'buffer' in the first schematic on that page would be the Arduino control pin. The relay would go in place of the LED. The resistor inline with the relay would likely need to be increased - you could copy from the example relay board, the relay part number and inline resistor value. Would likely lower cost and make the design more future friendly. I put together a quick breadboard using a Transistor to switch the lines. Lots of interference, I'm betting it's because of the 1k resistor that has to be there between the arduino pin and the base of the transistor. Unless there is a way to filter it out. I don't see an option to use this method. It works great, when using it to power LEDs, fans, etc. But to just try to pass a signal like Red, Green, Blue and CSYNC it does not appear to work. The picture is wavy and rolls on the monitor, colors are not accurate. I have tried multiple resistor values, but all produce the same issue, or if the resistor is too low then I get nothing on the screen. See a quick diagram of the signals of how they are laid out. I do have another set of 4 for the other Geneve, with 2 buttons that I can select between each of the Geneve PCs. Pressing one button forces the RGBS pins to go low on the other geneve whle bringing the selected Geneve pins to the arduino HIGH to display the picture. The code works as expected but the picture is unusable. Take a look at my diagram and let me know if I have hooked anything up wrong, it's the first time I have tried to use a transistor this way in one of my designs. Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted Thursday at 05:59 AM Share Posted Thursday at 05:59 AM I wonder if these would be any good... TMUX405x 24-V, 8:1, 1-Channel, 4:1, 2-Channel and 2:1, 3-Channel Multiplexers with 1.8-V Logic (Rev. A) Quote Link to comment Share on other sites More sharing options...
+jedimatt42 Posted Thursday at 07:18 AM Share Posted Thursday at 07:18 AM My suggestion was to drive the relays with the transistors. The power from the transistor would hold the relay open or closed, and then the switched signal is on the isolated side of the relay. Quote Link to comment Share on other sites More sharing options...
Shift838 Posted Thursday at 01:53 PM Author Share Posted Thursday at 01:53 PM 6 hours ago, jedimatt42 said: My suggestion was to drive the relays with the transistors. The power from the transistor would hold the relay open or closed, and then the switched signal is on the isolated side of the relay. ahh. that's what I did with my second render I posted. Using this schematic for each relay but changing the signals of course. Quote Link to comment Share on other sites More sharing options...
+jedimatt42 Posted Thursday at 03:33 PM Share Posted Thursday at 03:33 PM So 4 relays switch the rgb-cs signals between 2 geneves. It sounded like the power to the keyboard comes from Geneves 1 or 2, and the keyboard data is always connected to both Geneves. Doesn't that mean that the keyboard will always be powered and the data will interfere? I would expect to let the power to the singular mouse and keyboard come from this device. And the relays switch the data lines from them to the pair of Geneves. You have 4 relays for keyboard and mouse. Are you switching power and ground on them then? Did that work? Or are you switching their data within the microcontroller? Maybe I misread something... Quote Link to comment Share on other sites More sharing options...
Shift838 Posted Thursday at 03:40 PM Author Share Posted Thursday at 03:40 PM 4 minutes ago, jedimatt42 said: So 4 relays switch the rgb-cs signals between 2 geneves. It sounded like the power to the keyboard comes from Geneves 1 or 2, and the keyboard data is always connected to both Geneves. Doesn't that mean that the keyboard will always be powered and the data will interfere? I would expect to let the power to the singular mouse and keyboard come from this device. And the relays switch the data lines from them to the pair of Geneves. You have 4 relays for keyboard and mouse. Are you switching power and ground on them then? Did that work? Or are you switching their data within the microcontroller? Maybe I misread something... so the way I am doing it for the keyboard and mouse, is for the keyboard the all pins are connected from both keyboards except for 5v. The relay controls the 5v line to connect it to the Geneve currently disabled, same for the mouse. The microcontroller is only enableing the relays to complete the 5v connection to the keyboard of the geneve. Quote Link to comment Share on other sites More sharing options...
+jedimatt42 Posted yesterday at 02:54 AM Share Posted yesterday at 02:54 AM 11 hours ago, Shift838 said: so the way I am doing it for the keyboard and mouse, is for the keyboard the all pins are connected from both keyboards except for 5v. The relay controls the 5v line to connect it to the Geneve currently disabled, same for the mouse. The microcontroller is only enableing the relays to complete the 5v connection to the keyboard of the geneve. I would not expect that to be effective. I imagine you will have to have only one Geneve powered on at a time, or both Geneves would receive the data signals from the keyboard ( and mouse ). If that does work, I'd like to understand why... Quote Link to comment Share on other sites More sharing options...
Shift838 Posted 17 hours ago Author Share Posted 17 hours ago (edited) 14 hours ago, jedimatt42 said: I would not expect that to be effective. I imagine you will have to have only one Geneve powered on at a time, or both Geneves would receive the data signals from the keyboard ( and mouse ). If that does work, I'd like to understand why... I maybe it was because I tested with a USB keyboard and my USB Keyboard adapter gets its power from the selected 9640. Let me pull out my original Geneve keyboard and test. If that is the case that they both receive keystrokes even though only one Geneve is selected, then it would require more relays or maybe go to a video IC switch solution completely, which I am currently looking at anyway. Just waiting on parts to proof it out. Edited 17 hours ago by Shift838 1 Quote Link to comment Share on other sites More sharing options...
+jedimatt42 Posted 14 hours ago Share Posted 14 hours ago I would think the +5v on the keyboards could be bound with power diodes between the common keyboard and the 2 geneves. But then you could switch the single XT keyboard CLK signal between the 2 Geneves. If I recall correctly, the XT protocol is unidirectional where the keyboard clocks bits into the XT keyboard host. If only one geneve gets the clock signal, then it should be the only one that consumes the data signals. I don't know the mouse protocol... but if data is clocked out from the mouse itself, the same technique may apply. Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted 14 hours ago Share Posted 14 hours ago You might also be able to use optical isolators to separate the signals. . . Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted 14 hours ago Share Posted 14 hours ago How does using using a relay to switch the audio affect audio output: any pops or surges? 1 Quote Link to comment Share on other sites More sharing options...
+jedimatt42 Posted 10 hours ago Share Posted 10 hours ago I would imagine there is a use case to mix the audio instead of switch it... Aren't most of the people running 2 Geneve's running one as a BBS where you want to still hear the sysop pager while you've got the screen and controls switched over to the developer Geneve? IDK... do Geneve BBS's have a sysop pager? Anyway, my point is it is a super-bespoke device that might as well be opinionated about the use case, whichever it is. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.