SharpKey Multi-HID Interface

Summary

The SharpKey is an IoT Multi-HID (Human Interface Device) to Multi-Host Interface with on-board web configuration and Over The Air update facilities. It enables more modern keyboard and mice devices to be used with vintage computers where these devices are no longer obtainable or working.
The device is plug and play, it automatically detects connected input and host device types, self-configures and is ready for instant on useability. Bluetooth devices require the SharpKey and HID device to be set to pairing mode for first time use and once paired operate exactly as wired equivalents.
At it's heart, the SharpKey uses a dual-core WiFi/BT enabled SoC from Espressif with C++ based Object Oriented firmware. The on-board IoT web interface, operating in Station or Access Point mode, is based on venerable Javascript/JQuery/Bootstrap technologies and supports most modern web browsers.

The SharpKey currently supports:

Input Devices        Host Computers
PS/2 KeyboardsSharp X1Sharp MZ-56001.
PS/2 MiceSharp X68000Sharp MZ-65001.
PS/2 KVM SwitchSharp MZ-2500NEC PC-98012.
Bluetooth HIDSharp MZ-2800

Overview

Following on from the successful mz25key interface, the SharpKey advances the design in terms of hardware and software to provide an all in one expandable solution to interfacing keyboards and mice to venerable Sharp and NEC computers.

The mz25key supports adding a PS/2 keyboard to a Sharp MZ-2500 or MZ-2800 computer whereas the SharpKey is more versatile in connecting both keyboards and mice, via PS/2 or Bluetooth, to a host console.
PS/2 mode supports one device at a time, device type being determined by the connected host port type using host specific cables. A mouse cable connected to the mouse port of an X68000 will require a PS/2 mouse connected to the SharpKey and a keyboard cable connected to the keyboard port of an X68000 will require a PS/2 keyboard connected to the SharpKey.
In PS/2 mode, it is possible to connect multiple host consoles, each with its own SharpKey device, to one Keyboard, Mouse and Monitor via a PS/2 KVM Switch such as the Apex EL-80DT.
Bluetooth mode supports simultaneous use of keyboard and mouse where the host supports it and the correct host specific cable is used. ie. an X68000 uses a single cable to transmit both keyboard and mouse data allowing simultaneous use of keyboard and mouse via Bluetooth, whereas an MZ-2500 is restricted to keyboard or mouse per SharpKey (ie. to connect both a keyboard and mouse to an MZ-2500 requires 2 SharpKey devices).
This site aims to provide all the information, both technical and user guides for the SharpKey, please click on required link in the left panel. The schematics, layout and firmware are available on GitHub. Please follow or star a project if you download and make use of it, either for creating your own SharpKey or basing another project on it's design. Please note, the GNU license has a restriction that no commercial use can be made without prior writen permission.
For more in depth detail, please click on a sidebar link to view the User Manual or Technical Guide.

1, 2.Waiting on testing, not yet released.


Credits

Espressif IDF development environment and use of the ESP-32S reference material was used in the design of this Multi-HID interface.

Licenses

This design, hardware and software, is licensed under the GNU Public Licence v3.

No commercial use to be made of this design or any hardware/firmware component without express permission from the author. This condition overrides any rights afforded by the GNU GPL 3 license.

The Gnu Pulic License v3

The source and binary files in this project marked as GPL v3 are free software: you can redistribute it and-or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The source files are distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.