Giter Club home page Giter Club logo

kvm's Introduction

kvm

This is still a work in progress! There are some known issues.

The base The keypad

An open-source HDMI Keyboard/Video/Mouse (KVM) switch, which lets you switch two monitors and four USB devices between up to three computers.

Theoretically, it should support HDMI 1.3a and up to 1920 x 1200 resolution. Anecdotally, it has been tested up to 2560 x 1440 at 75 Hz and it seems to work. I currently don't have the equipment to measure the signal quality or anything like that, and don't have a monitor with a higher resolution, so I don't know how far it can be pushed.

The base has a total of six HDMI inputs (three computers with two monitors each) and two HDMI outputs (for the two monitors). It also has four mini-USB ports (three computers and one for power), four USB host ports (to connect a mouse, keyboard, and anything else), and a connector that goes to the keypad.

The keypad has a 3x3 grid of buttons. Pressing the buttons lets you switch monitor 1, monitor 2, and the USB ports between the three computers. It connects to the base via a cable, and receives power over that connection.

A PS/2 connector and cable is used between the base and keypad. Importantly, neither device actually speaks the PS/2 protocol! PS/2 was just chosen because connectors and cables are readily available. You should not connect either device to anything else with a PS/2 port, or any sort of PS/2 adapter. (you most likely won't break anything, but it definitely won't work)

The source code/files are split up over several different repositories:

  • kvm-base - The main switch, with all input/output ports, and a connector that goes to the keypad.
  • kvm-keypad - The keypad, used to select the state of the various switches. Connected to the base.
  • kvm-fw - The firmware that runs on both the base and the keypad.

Building one

(still a work in progress)

Note that the current board revision has some known issues.

  • Order and assemble PCBs for the base and keypad. The respective repositories have manufacturing files that you can use. For the base in particular, it's very important to use the correct impedance-controlled stackup. See the base's README for details.
  • Follow the instructions in the kvm-fw respository to program the base and the keypad. You will need at least one ST-LINK adapter.
    • If you want to debug the firmware, it will be helpful to have one or two USB to UART adapters and a second ST-LINK.
  • You will also need a PS/2 cable to connect the base and keypad together, and HDMI and mini-USB cables to connect to the various ports on the base.
  • For the base, it's also recommended to get five M2 standoffs, which you can place in the mounting holes.

kvm's People

Contributors

thatoddmailbox avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

5l1v3r1

kvm's Issues

Collection of resources and idea

I'm interested in something similar.
My idea is to have "a stack" that can be used with separate boards for video & USB.

To replace your setup it that stack would be

  • 2x hdmi switch boards
  • 1x USB switch
  • 1x CPU

or something similar.
My goal would be to have this compatible with the pikvm project, if possible with a modular approach.

Maybe this is this something that is interesting to track here?

(will try to get back with some resources I have found so far)

Still working on this?

Finding myself in need of a simple KVM, and would of course prefer open source firmware.

Do you plan to address the known issues?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.