Arduino Keyboard Mouse IP KVM with Raspberry Pi, servos and an Orange Pi Zero

Arduino Keyboard Mouse circuit

This is the page for a project that I started, because I could not find a reasonably priced IP KVM system, that would also have a good chance of the maker providing continuous updates to the firmware. I have used the IPMI system that comes with Supermicro server boards and I remembered that they have a way of powering the machine on and back off. I noticed that not too many people had tried to use servos to press the buttons on a PC, so I decided to give it a try with a test machine and they have been working quite well without dropping off.
 

Below is a link to the Arduino code for the project and this code is in the form of a Code::Blocks project that can be opened run to build an uploadable HEX file for an Arduino Pro Micro. The Arduino Pro Micro uses an ATMega32U4 chip, which has a built in USB port that can operate in OTG mode, which then allows it to be used as a keyboard or mouse.

https://github.com/macpczone/arduino-keyboard-mouse-kvm

There is a counterpart to this project which is at:

https://github.com/macpczone/keyboard-passthrough

and this other project contains a python file that can be run on another machine, which can then send the keycodes to the Arduino, so that it can pass them onto a machine that is to be controlled with a keyboard or mouse.

Below are the libraries that you will need to build the code:

Arduino HID Project 2.4.4 This is the core HID library that provides the keyboard and mouse support.

LCD Library for Arduino and Chipkit This library supports the 20x4 LCD with an LCM1602 IIC driver chip.

SoftPWM Library This library provides the fading LED, which is just there to show that the code is working.

TimerOne Library This library is just used to provide the interrupt code for the fading LED.

The utils directory also contains some other code that I have written, which are used in the demonstration videos.