SharpKey Interfaccia Multi-HID Guida al Firmware
Panoramica
Un problema importante con i computer Sharp vintage e la mancanza di tastiere. La maggior parte delle macchine MZ-2500/2800/3500/X1/X68000 viene venduta senza tastiera. Senza tastiera la macchina e inutilizzabile.
Sviluppatori giapponesi (classicpc.org, Youkan) e Martin hanno sviluppato interfacce per convertire tastiere PS/2 o USB. Il MZ-2500 utilizza una matrice tastiera simile al MZ-80B, serializzata su un bus a 4 bit tra unita principale e tastiera.
Protocollo tastiera MZ-2500
L’interfaccia hardware comprende 7 segnali, 5V e GND con connettore mini-DIN a 8 pin schermato.

| Segnale | Direzione | Stato logico | Descrizione |
|---|---|---|---|
| RTSN Row Strobe |
Main Unit -> Keyboard | HIGH (‘1’) | Indirizzo riga trasmesso. |
| LOW (‘0’) | La tastiera trasmette i dati. | ||
| KD4 Type Strobe |
Main Unit -> Keyboard | HIGH (‘1’) | Dati matriciali effettivi. |
| LOW (‘0’) | AND logico di tutti i tasti. | ||
| MPX Nibble MUX Strobe |
Main Unit -> Keyboard | HIGH (‘1’) | Nibble superiore. |
| LOW (‘0’) | Nibble inferiore. | ||
| KD[3:0] Bi-dir bus |
Main Unit -> Keyboard | Numero riga a 4 bit. | |
| Keyboard -> Main Unit | 4 bit dei dati colonna. |
Due modalita: STROBEALL e recupero dati tasto. Protocollo dettagliato nella versione inglese.

Protocollo tastiera MZ-2800
Il MZ-2800 e il successore del MZ-2500 con modalita Z80 8 bit e modalita 80286 16 bit. Protocollo simile ma con timing diversi e aggiunta di una 14a riga.

ESP-32S AI Thinker
Schema elettrico

Circuito stampato

Interfaccia assemblata

Interfaccia MZ-2800 assemblata

Firmware
Il firmware e scritto con il sistema di build Espressif IDF (gcc(++), git, CMake, Ninja) in C/C++.
Setup e build automatizzati (consigliato)
macOS / Linux / WSL — setup_SharpKey.sh
chmod +x setup_SharpKey.sh
./setup_SharpKey.sh
espressif/idf:v4.4 (~3 GB di download una tantum) — nessuna toolchain sull'host, identica ovunque. Se Docker non e disponibile, ripiega su un'installazione ESP-IDF v4.4 nativa (Python 3.8–3.11, CMake, Ninja, ecc. tramite apt/dnf/pacman o Homebrew su macOS). Su Linux/WSL puo installare Docker Engine per voi.
Windows 10 / 11 — setup_SharpKey_windows.ps1 (nativo — senza WSL, senza Docker). Da un prompt PowerShell (va bene un prompt utente normale; winget potrebbe richiedere l’elevazione):
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\setup_SharpKey_windows.ps1
Domande poste dal setup, e cosa fare. Ogni richiesta ha un valore predefinito sicuro tra parentesi — la lettera maiuscola e il valore predefinito, quindi premendo Invio lo si accetta.
macOS / Linux / WSL (setup_SharpKey.sh):
| Richiesta | Predefinito | Cosa fare |
|---|---|---|
Install Docker Engine now? [Y/n] (solo Linux/WSL, se Docker manca) |
Si | Invio per installare Docker (potrebbe servire sudo), oppure n per usare invece la toolchain ESP-IDF nativa. |
Install now? [Y/n] (per pacchetti OS / ESP-IDF mancanti) |
Si | Invio — installa gli strumenti mancanti tramite apt/dnf/pacman o Homebrew; potrebbe richiedere sudo. |
Repo URL [https://git.eaw.app/eaw/SharpKey.git] |
repo pubblico | Invio per il repo pubblico, oppure incollare un URL diverso (ad es. un repo di sviluppo privato). |
Install directory [~/SharpKey] (in fase di clonazione) |
~/SharpKey |
Invio per ~/SharpKey, oppure digitare un percorso. |
Remove <dir> and re-clone? [y/N] (solo se quella directory contiene un repo diverso o incompleto) |
No | y solo se siete sicuri; altrimenti N e scegliere un’altra directory. |
Build the SharpKey firmware now? [Y/n] |
Si | Invio per compilare subito (verifica l’ambiente). |
Windows (setup_SharpKey_windows.ps1):
| Richiesta | Predefinito | Cosa fare |
|---|---|---|
Repo URL [https://git.eaw.app/eaw/SharpKey.git] |
repo pubblico | Invio per il repo pubblico, oppure incollare un URL diverso. |
SharpKey checkout directory [%USERPROFILE%\SharpKey] |
%USERPROFILE%\SharpKey |
Invio per il valore predefinito, oppure digitare un percorso. |
Build the SharpKey firmware now? [Y/n] |
Si | Invio per compilare subito. |
SHARPKEY_REPO_URL per scegliere il repository senza che venga richiesto, e (macOS/Linux/WSL) impostate SHARPKEY_BUILD su docker o native per forzare il metodo di build.
Output e ricompilazione. Una build riuscita scrive il firmware in build/main.bin (con una copia versionata in release/ su macOS/Linux). Per ricompilare in seguito senza rieseguire lo script di setup:
# Docker (macOS / Linux / WSL) docker run --rm -it -v "$PWD":/project -w /project espressif/idf:v4.4 idf.py build # ESP-IDF nativo (macOS / Linux) . "$IDF_PATH/export.sh" && idf.py build # Windows (ESP-IDF nativo, da una nuova PowerShell) & "$HOME\esp\esp-idf-v4.4\export.ps1"; idf.py build
Build con Docker
docker run --rm -v $PWD:/project -w /project espressif/idf:v4.4 idf.py build
Integrazione continua (Jenkins)
Utilizzo

| Hot Key | Modalita |
|---|---|
| ALT+F1 | Mappatura tastiera MZ-2500 |
| ALT+F2 | Mappatura tastiera MZ-2000 |
| ALT+F3 | Mappatura tastiera MZ-80B |
Prezzi
Vedere la versione inglese per le tabelle dei prezzi.