Last Updated on 1. November 2026 by SuffocationLink status: OK
Mit dem BT2PS2-Adapter läuft eine moderne Bluetooth- oder BLE-Tastatur an einem alten PC mit PS/2- oder AT-Anschluss. Das Herz ist ein ESP32 mit der Firmware esp32-bt2ps2 von HamberthmLink status: OK; dazu habe ich zwei Trägerplatinen entworfen, eine SMD- und eine THT-Version. Beide sind aufgebaut und laufen am PC, getestet mit einer RK-M75 am Micro 8088.
Version 1: Dieser Beitrag beschreibt die erste Version der Platinen. Die SMD- und die THT-Platine sind aufgebaut und laufen. Version 2 ist in Arbeit (SMD überarbeitet mit Auto-Reset, THT getrennt in eine Platine für den D1 mini und eine mit aufgelötetem WROOM) und ersetzt Version 1, sobald sie getestet ist. Den aktuellen Stand gibt es im RepositoryLink status: OK.
Link to the project
Nur zur Klarstellung: Das Projekt ist nicht mein geistiges Eigentum, sondern wurde vom Entwickler mit hohem zeitlichen Aufwand realisiert und der Allgemeinheit zur Verfügung gestellt. Sollte das Projekt gefallen, zollt dem Entwickler doch mal euren Respekt mit einem Like oder vielleicht sogar mit einer (Kaffee-)Spende.
GitHub – Original-Firmware esp32-bt2ps2 (Hamberthm)Link status: OK
GitHub – mein Fork mit den Platinen (hardware/)Link status: OK
Views










Facts
- ESP32 mit Bluetooth Classic und BLE, zwei Kerne (kein ESP32-C3/S3, kein ESP8266)
- Version 1: nur Tastatur; IO25/IO26 sind für die Maus (Version 2) frei gehalten
- Anschluss am PC über J1 (JST-XH 4-polig) und ein Kabel auf PS/2 (Mini-DIN-6) oder AT (DIN-5)
- Pegelwandler 5 V ↔ 3,3 V für CLK (IO22) und DATA (IO23), Standardpins der Firmware
- Versorgung aus dem PC (Jumper JP1) oder über USB
- Variante A: D1 mini ESP32 gesteckt, Variante B: ESP32-WROOM-32E aufgelötet
- 2 Lagen, für JLCPCB-Standardprozess ausgelegt, KiCad 10
| SMD | THT | |
|---|---|---|
| ESP32 | A: D1 mini ESP32 / B: ESP32-WROOM-32E | gleich |
| Pegelwandler | 2 × BSS138 (SOT-23) + 10 kΩ | 2 × 2N7000 (TO-92) + 10 kΩ |
| 3,3-V-Regler (nur B) | AP2112K-3.3 | LD1117V33 (TO-220) |
| Passive Bauteile | 0805 | bedrahtet |
| Size | 61,0 × 34,1 mm | 83,0 × 34,1 mm |
Assembly
Variations
Entweder A oder B, nie beides. Ich habe Variante A aufgebaut.
- A – D1 mini ESP32 gesteckt: U2, U3, D1, R5–R7, C4, SW1, SW2 weglassen. Der D1 mini hat einen eigenen 3,3-V-Regler, mit U3 liefen zwei Regler parallel. Programmiert wird über die USB-Buchse des D1 mini. Achtung: Es muss der D1 mini ESP32Link status: OK sein (4 Stiftreihen), nicht der D1 mini mit ESP8266.
- B – ESP32-WROOM-32E aufgelötet: alles außer den Buchsenleisten U1. Programmiert wird über J3 mit einem USB-Seriell-Adapter (3,3-V-Pegel).
THT-Platine
Schematic
Record
| Description | Worth |
|---|---|
| Gerber available | Yes |
| Gerber file | Release v0.1 im ForkLink status: OK |
| Ordered where | JLCPCB, zusammen mit der SMD-Platine in einer Bestellung (21.09.2026) |
| Piece | 5 |
| Price + Tax and Delivery | 22,29 USD für beide Platinen zusammen (je 5 Stück), also etwa 2,20 USD pro Platine |
| Special features | Aufdruck „bt2ps2 V1 THT 2026-09“ |
Hier konserviert die Gerber- und KiCad-Dateien, bitte im RepositoryLink status: OK schauen, ob es etwas Neueres gibt.
Components
Nach Wert gruppiert und in Lötreihenfolge. Spalte „Beschreibung“ sagt, ob das Teil für Variante A, B oder beide gebraucht wird. Preise trage ich nach.
| Component | Size | Number | Description | Price € | Stock |
|---|---|---|---|---|---|
| Resistance | 10 kΩ | 4 | R1–R4, A+B | ||
| Resistance | 10 kΩ | 2 | R5, R6, nur B | ||
| Resistance | 1 kΩ | 1 | R7, nur B | ||
| Kondensator Keramik | 100 nF | 2 | C3, C5, A+B (bei A optional) | ||
| Kondensator Keramik | 1 µF | 1 | C4, nur B | ||
| Elko | 10 µF | 2 | C1, C2, A+B (C2 bei A optional), Polung beachten | ||
| MOSFET | 2N7000 (TO-92) | 2 | Q1, Q2, A+B | ||
| ESP32-WROOM-32E-N4 | SMD-Modul | 1 | U2, nur B | ||
| LED blau | 3 mm | 1 | D1, nur B, Polung beachten | ||
| Taster | 6 mm | 2 | SW1 BOOT, SW2 RESET, nur B | ||
| Stiftleiste + Jumper | 2-polig | 1 | JP1, A+B | ||
| Pen holder | 4-polig | 1 | J3 Programmer, B (bei A optional) | ||
| JST-XH Buchse | 4-polig | 1 | J1, A+B | ||
| Spannungsregler | LD1117V33 (TO-220) | 1 | U3, nur B | ||
| Buchsenleisten | für D1 mini ESP32 | 1 Satz | U1, nur A | ||
| D1 mini ESP32 | Modul | 1 | nur A (MH-ET LIVE MiniKit, 4 Stiftreihen) | ||
| Gesamt Teile | Summer | € |
Dazu die interaktive Stückliste (iBOM) und der Bestückungsplan:
Order
- Widerstände (R1–R4, bei B auch R5–R7)
- Keramik-Kondensatoren (C3, C5, bei B C4)
- Elkos C1, C2 (Polung)
- Transistoren Q1, Q2 (flache Seite laut Bestückungsdruck)
- Rest: bei B U2 (SMD, solange die Elkos nicht im Weg sind), D1, SW1, SW2, U3; dann JP1, J3, J1; bei A die Buchsenleisten – am besten mit gestecktem D1 mini löten, damit sie gerade sitzen
Gibt es keine 2N7000: Ein BS170 geht auch, hat aber die Pinbelegung D-G-S statt S-G-D und muss deshalb um 180° gedreht eingesetzt werden. Bipolartransistoren (BC547 o. ä.) gehen nicht.
So sieht die fertig aufgebaute THT-Platine V1 mit aufgelötetem ESP-32D (Variante B) aus.



SMD-Platine
Schematic
Die Schaltung ist dieselbe wie bei der THT-Platine, nur die Bauteile sind andere: BSS138 statt 2N7000 als Pegelwandler, AP2112K-3.3 statt LD1117V33 als Regler.
Record
| Description | Worth |
|---|---|
| Gerber available | Yes |
| Gerber file | Release v0.1 im ForkLink status: OK |
| Ordered where | JLCPCB, zusammen mit der THT-Platine in einer Bestellung (21.09.2026) |
| Piece | 5 |
| Price + Tax and Delivery | 22,29 USD für beide Platinen zusammen (je 5 Stück), also etwa 2,20 USD pro Platine |
| Special features | Aufdruck „bt2ps2 V1 2026-09“ |
Hier konserviert die Gerber- und KiCad-Dateien, bitte im RepositoryLink status: OK schauen, ob es etwas Neueres gibt.
Components
Bis auf die Taster, die Stift- und Buchsenleisten und J1 sind alle Teile SMD in 0805 bzw. SOT-23; die 10-µF-Kondensatoren sind hier Keramik, also ohne Polung.
| Component | Size | Number | Description | Price € | Stock |
|---|---|---|---|---|---|
| Resistance | 10 kΩ · 0805 | 4 | R1–R4, A+B | ||
| Resistance | 10 kΩ · 0805 | 2 | R5, R6, nur B | ||
| Resistance | 1 kΩ · 0805 | 1 | R7, nur B | ||
| Kondensator Keramik | 100 nF · 0805 | 2 | C3, C5, A+B (bei A optional) | ||
| Kondensator Keramik | 1 µF · 0805 | 1 | C4, nur B | ||
| Kondensator Keramik | 10 µF · 0805 | 2 | C1, C2, A+B (C2 bei A optional) | ||
| MOSFET | BSS138 (SOT-23) | 2 | Q1, Q2, A+B | ||
| ESP32-WROOM-32E-N4 | SMD-Modul | 1 | U2, nur B | ||
| Spannungsregler | AP2112K-3.3 (SOT-23-5) | 1 | U3, nur B | ||
| LED blau | 0805 | 1 | D1, nur B, Polung beachten | ||
| Taster | 6 mm, bedrahtet | 2 | SW1 BOOT, SW2 RESET, nur B | ||
| Stiftleiste + Jumper | 2-polig | 1 | JP1, A+B | ||
| Pen holder | 4-polig | 1 | J3 Programmer, B (bei A optional) | ||
| JST-XH Buchse | 4-polig, B4B-XH-A | 1 | J1, A+B | ||
| Buchsenleisten | für D1 mini ESP32 | 1 Satz | U1, nur A | ||
| D1 mini ESP32 | Modul | 1 | nur A (MH-ET LIVE MiniKit, 4 Stiftreihen) | ||
| Gesamt Teile | Summer | € |
Bestückungspläne der Ober- und Unterseite:
Order
- SMD-Widerstände R1–R4, bei B auch R5–R7
- SMD-Kondensatoren C1–C5 (C4 nur bei B; alle Keramik, ohne Polung)
- Transistoren Q1, Q2 (SOT-23)
- Bei B: U3 (SOT-23-5), LED D1 (Polung laut Bestückungsdruck), dann U2 (WROOM)
- Bedrahtet zum Schluss: bei B SW1, SW2; dann JP1, J3, J1; bei A die Buchsenleisten – am besten mit gestecktem D1 mini löten, damit sie gerade sitzen
0805 lässt sich gut mit dem Lötkolben löten: ein Pad vorverzinnen, Bauteil mit der Pinzette anlegen, anheften, dann die zweite Seite.
So sieht die fertig bestückte SMD-Platine V1 mit dem ESP-32D aus. Bei V1 liegen R5, R6, C4 und C5 noch auf der Rückseite, die Sockelreihen für den D1 mini bleiben leer.


Cable
J1 ist mit 5V G D C bedruckt. Meine Adern: 5V rot, G (GND) schwarz, D (DATA) lila, C (CLK) grau.
| J1 | PS/2 Mini-DIN-6 | AT DIN-5 | Ader |
|---|---|---|---|
| 1 +5V | 4 | 5 | rot |
| 2 GND | 3 | 4 | schwarz |
| 3 DATA | 1 | 2 | lila |
| 4 CLK | 5 | 1 | grau |

Tipp: Beim Löten schaut man auf die Rückseite des Steckers. Die Lötseite ist das Spiegelbild der Kontaktseite und sieht damit genauso aus wie die Buchse am PC von vorn – also nach dem Bild „Buchse (am PC)“ verdrahten. Die Pinnummern stehen meist klein im Isolierkörper; nach dem Löten mit dem Durchgangsprüfer gegenchecken.
Krimpen wollte ich mir sparen. Ich hab mir deshalb fertige Kabel besorgt, die an beiden Enden schon gekrimpte JST-XH-Kontakte haben, und sie einfach in der Mitte geteilt. Das offene Ende kommt an den PS/2- oder DIN-Stecker, die Kontakte schiebt ihr nur noch ins vierpolige XH-Gehäuse. Spart Krimpzange und Nerven.


Case
Für beide Platinen gibt es ein 3D-Druck-Gehäuse (OpenSCAD und STL) im Ordner hardware/caseLink status: OK. Gedruckt habe ich es noch nicht.
Commissioning
Prüfen vor dem ersten Einschalten
- Sichtprüfung: Lötbrücken, Polung C1/C2/D1, Q1/Q2
- Ohne Modul messen: +5 V ↔ GND und +3,3 V ↔ GND kein Kurzschluss, J1 Pin 1 ↔ Pin 2 kein Kurzschluss
- J1 Pin 3 und 4 gegen +5 V je ca. 10 kΩ (R3/R1)
Erste Spannung
Mit Labornetzteil 5 V und Strombegrenzung ~100 mA, JP1 offen. 5 V an J3 Pin 4 (+) und Pin 1 (GND), bei A auch einfach per USB am D1 mini.
- A ohne Modul: J1 Pin 3/4 ≈ 5 V, +3,3 V ≈ 0 V (kommt erst vom Modul).
- A mit Modul: +3,3 V ≈ 3,3 V, CLK (IO22) und DATA (IO23) ≈ 3,3 V.
- B: Ausgang U3 ≈ 3,3 V, Leerlaufstrom grob 30–80 mA.
- Pegelwandler: J1 Pin 4 kurz auf GND → IO22 ≈ 0 V, J1 Pin 3 auf GND → IO23 ≈ 0 V.
- Geht der Pegel nicht sauber runter: Die Schaltschwelle des 2N7000 kann bis 3 V liegen, dann den Transistor tauschen.
Firmware
Firmware selbst bauen (VS Code und ESP-IDF)
So hab ich es zuletzt gemacht: Firmware mit ESP-IDF 6.1 bauen und direkt mit idf.py flash aufspielen. Wer nur flashen will, nimmt die fertige Datei weiter unten und esptool. Die Grundlagen habe ich in eigenen Beiträgen beschrieben: VS Code InstallationLink status: OK, VS-Code Espressif IDFLink status: OK and Espressif IDF – Projekt erstellenLink status: OK.
- In VS Code die Erweiterung ESP-IDFLink status: Broken installieren.
- „ESP-IDF: Configure ESP-IDF Extension“ → Express → Version v6.1.0 oder v5.3.0 (beide getestet; 5.3.3 bis 5.x laufen laut Original-Projekt nicht).
- RepositoryLink status: OK klonen und den Ordner öffnen, die mitgelieferte sdkconfig nicht ersetzen (1000-Hz-Tick ist wichtig).
- Bauen mit Strg+E B, flashen mit Strg+E F, serieller Monitor mit Strg+E M.
Auf der Kommandozeile geht es genauso:
git clone -b v6.1.0 --recursive https://github.com/espressif/esp-idf.git
cd esp-idf && ./install.sh esp32 && . ./export.sh
git clone https://github.com/sfambach/esp32-bt2ps2.git
cd esp32-bt2ps2 && idf.py build
idf.py -p /dev/ttyUSB0 -b 115200 flash monitor
Die fertige Datei im ZIP ist noch der erste Stand vom 08.10.2026 (ESP-IDF v5.3.0, FreeRTOS 1000 Hz, Bluetooth Classic + BLE, CLK IO22, DATA IO23). Die Korrekturen für ISO-Tasten, AltGr am Micro 8088 und das schnelle Wiederverbinden fehlen darin, für den aktuellen Stand also selbst bauen. Das ZIP enthält eine zusammengefasste Datei für Adresse 0x0, die Einzeldateien, Prüfsummen und die Lizenz. Alternativ gibt es fertige Dateien bei den Releases des OriginalsLink status: OK; die Pins sind Standard, eine Änderung ist nicht nötig.
Fertige Datei flashen mit esptool (Browser)
- Chrome oder Edge öffnen: esptool-jsLink status: OK
- JP1 offen, kein PS/2-Kabel. Board per USB anschließen (A: USB am D1 mini, B: USB-Seriell-Adapter an J3, beim Verbinden BOOT halten und RESET tippen).
- Baudrate 115200 wählen (höhere Werte machten bei mir Verbindungsprobleme), „Connect“ und den Port freigeben.
- Prüfen: „Connected to device: ESP32…“ – steht dort ESP8266, ist das falsche Modul angesteckt.
- Flash Address von der Voreinstellung 0x1000 auf 0x0 ändern, Datei bt2ps2-merged-0x0.bin wählen, „Program“.
- Nach „Hash of data verified“ RESET drücken.
Bei der SMD-Platine und THT-Variante B kommt der USB-Seriell-Adapter (3,3-V-Pegel) an J3: Pin 1 GND, Pin 2 TXD des ESP → RX am Adapter, Pin 3 RXD des ESP → TX am Adapter, Pin 4 +5 V. BOOT halten, RESET tippen, BOOT loslassen, flashen, danach RESET.
Tipp: Ein nacktes Modul (ESP-WROOM-32/-32E, ESP-32S) lässt sich schon vor dem Auflöten flashen, mit einem Programmieradapter: einer Klemmfassung mit Federkontakten, USB-C und USB-Seriell-Wandler CH9102. Der Adapter schaltet Reset und Boot-Modus selbst, die Taster BOOT/RESET und der Stecker J3 werden dann nur noch für spätere Updates gebraucht. Die Fassung muss zur Modulgröße passen (18 × 25,5 mm bei WROOM-32 und ESP-32S). Unter Linux erscheint der Adapter meist als /dev/ttyACM0:
python -m esptool --chip esp32 -p /dev/ttyACM0 -b 460800 write-flash 0x0 bt2ps2-merged-0x0.bin




Und die Arduino IDE?
Die Firmware ist ein ESP-IDF-Projekt und kein Arduino-Sketch, in der Arduino IDE lässt sie sich deshalb nicht kompilieren. Nützlich ist die IDE trotzdem (Grundlagen: Arduino IDELink status: OK, ESP32/ESP8266 in der Arduino GUI einrichtenLink status: OK):
- Der serielle Monitor auf 115200 Baud zeigt Startmeldungen, BT-Scan und den Pairing-Code.
- Wer den ESP32-Core installiert hat, hat esptool schon auf dem Rechner und kann die fertige Datei damit flashen – unter Windows in
%LOCALAPPDATA%\Arduino15\packages\esp32\tools\esptool_py\<Version>, unter Linux in~/.arduino15/packages/esp32/tools/esptool_py/<Version>.
esptool --chip esp32 -p COM5 -b 115200 write_flash 0x0 bt2ps2-merged-0x0.bin
Am PC
Am PC ist kein Treiber nötig, der Adapter meldet sich wie eine normale PS/2- bzw. AT-Tastatur. Wichtig: PS/2 ist nicht hot-plug-fähig, also nur bei ausgeschaltetem PC anstecken.
- PC aus, USB abziehen, JP1 stecken (5 V kommen dann aus dem PC).
- Kabel an den PC, PC einschalten.
- Im BIOS testen (z. B. Num-Lock-LED, Setup aufrufen).
- Zum Debuggen: JP1 offen, USB dran – GND über das Kabel bleibt verbunden.
Configuration
Die Tastatur am besten vor dem Anschluss an den PC koppeln, mit Versorgung über USB und offenem JP1.
- BLE-Tastatur: Tastatur in den Pairing-Modus, Board einschalten, verbindet ohne Code.
- Bluetooth Classic: Der Code wird per LED geblinkt (Anzahl Blinks = Ziffer, Dauerlicht = 0) oder steht im seriellen Monitor; Ziffern tippen, Enter.
- Alte Tastaturen (Legacy): Wenn im Monitor „Waiting pairing code entry…“ steht, 1234 und Enter tippen.
- LED an = Normalbetrieb, LED aus = Pairing-Modus. BOOT startet ein neues Pairing.
- Test: Die LED blinkt bei jedem Tastendruck.
Miscellaneous
Documentation
Die PS/2-Schnittstelle im Überblick:
Data sheets
ESP32: ESP32-Datenblatt (Espressif)Link status: OK
ESP32-WROOM-32E: ESP32-WROOM-32E-Datenblatt (Espressif)Link status: OK
Licence
Firmware und Platinen stehen unter der MIT-Lizenz: Firmware © Humberto Möckel u. a., Bluetooth-Teil © Guy Turcotte, Platinen © Stefan Fambach. Bei Weitergabe Copyright- und Lizenztext beilegen; die Lizenz liegt im Firmware-ZIP.
Generelle Tipps
Soldering points
Lötstellen gerade an den ICs nochmal genau, am besten mit dem Mikroskop oder Lupe, auf Kurzschlüsse und Kontakt prüfen. Durchmessen mit Multifunktionsmeter bzw. Durchgangsprüfer.
For small solder joints on through-hole components, use flux if possible; it makes life easier and increases the quality of the connection.
Problems
Falsches Modul geflasht
Beim ersten Versuch hing noch ein D1 mini mit ESP8266 am PC, esptool-js meldete „ESP8266EX“. Der hat kein Bluetooth, die Firmware läuft darauf nicht.
Lösung: Vor dem Flashen prüfen, dass „Connected to device: ESP32…“ angezeigt wird. Kaputt geht dabei nichts, der ESP8266 kann einfach neu geflasht werden.
ESP32 bootet nach dem Flashen nicht
esptool-js schlägt als Flash Address 0x1000 vor. Die zusammengefasste Datei enthält den Bootloader aber schon an der richtigen Stelle; auf 0x1000 geschrieben landet er auf 0x2000.
Lösung: Flash Address auf 0x0 ändern und neu flashen.
Verbindungsabbrüche beim Flashen
Lösung: Baudrate auf 115200 heruntersetzen.
Firmware lässt sich unter Linux nicht bauen
Im Original standen Windows-Pfade in den #include-Zeilen, und serial_mouse.cpp fehlte in der CMakeLists.txt.
Lösung: In meinem Fork korrigiert (Pull Request #1Link status: OK), danach baut es mit ESP-IDF v5.3.0 ohne Änderung.
Build brach mit ESP-IDF 6.x ab
Mit ESP-IDF 6.x (Compiler esp-15.2.0) meldete der Linker undefined reference to `esp_ble_gap_set_scan_params', esp_ble_gap_start_scanning and esp_ble_resolve_adv_data. In ESP-IDF 6 gibt es die alten BLE-Scan-Funktionen, die die Firmware nutzt, nur, wenn BLE 4.2 in der Konfiguration eingeschaltet ist. Das alte sdkconfig aus 5.3 hatte es aus.
Lösung: Im Fork behoben (Commit 74eb970Link status: OK): sdkconfig.defaults schaltet jetzt CONFIG_BT_BLE_42_FEATURES_SUPPORTED and CONFIG_BT_BLE_42_SCAN_EN ein, das sdkconfig ist mit 6.1 neu erzeugt. Die Firmware baut damit mit ESP-IDF 6.1 und weiterhin mit 5.3. Wer ein eigenes, altes sdkconfig hat, löscht es vor dem Bauen oder setzt es mit git checkout sdkconfig zurück.
# und <> fehlen auf deutschen Tastaturen
Mit einer deutschen Bluetooth-Tastatur (Royal Kludge RK-M75) kamen die Tasten #' and <>| am PC nicht an. Diese beiden Tasten gibt es nur auf ISO-Tastaturen, die Original-Firmware hatte für sie keine Zuordnung.
Lösung: Im Fork ergänzt (PR #2Link status: OK), die aktuelle Firmware enthält den Fix.
AltGr unzuverlässig und Zeichen verschluckt am Micro 8088
Am Kiselev Micro 8088 (Tastatur-Konverter XTATKEY auf PIC) kam AltGr mal an und mal nicht und blieb danach hängen. Einzelne Zeichen gingen verloren, Strg oder Shift blieben gedrückt. Ursache war die PS/2-Senderoutine der Bibliothek: Hielt der PC den Takt fest, um eine Übertragung zu unterbrechen, bemerkte sie das nicht und beantwortete Resend-Anforderungen falsch. Dabei ging vor allem das E0 vor AltGr verloren. Ohne E0 sieht der PC beim Loslassen nur „linkes Alt los“, AltGr bleibt gedrückt. Eine echte PS/2-Tastatur funktionierte am selben Rechner.
Lösung: Im Fork behoben (Commit 62f9feaLink status: OK). Die Firmware prüft vor jedem Bit, ob der PC den Takt festhält, sendet abgebrochene Bytes erneut, beantwortet Resend richtig und lässt wie das Projekt HIDmanLink status: OK 1 ms Pause zwischen den Bytes.
Tastatur verbindet sich nach dem Einschalten erst nach 20 Sekunden
Nach dem Einschalten oder wenn die Tastatur aus dem Schlaf kam, dauerte es lange, bis wieder getippt werden konnte. Im Log war die gekoppelte Tastatur schon nach 11,7 s zu sehen, verbunden war sie aber erst nach 21,7 s. Der Scan beim Start lief stur 5 s BLE und danach 5 s BT Classic durch, erst dann wurde verbunden; der Hintergrund-Scan wartete ähnlich.
Lösung: Beide Scans brechen ab, sobald die gekoppelte Tastatur sendet, BT Classic entfällt dann, und die Dienstliste der Tastatur liegt im Flash. Jetzt ist die RK-M75 rund 1 s nach dem Aufwachen verbunden (Firmware ab 1.11.2026 im Repository).
Conclusion
| Description | Worth |
|---|---|
| Successful | Ja, beide Platinen aufgebaut und am PC getestet (RK-M75 am Micro 8088) |
| Preis pro Stück | Etwa 6,50 € mit aufgelötetem ESP32-WROOM-32D (Variante B), etwa 7,50 € mit D1 mini (Variante A). Davon Platine rund 1,90 €, ESP32 3,45 € bzw. D1 mini 5,06 €, der Rest sind Cent-Teile. |
| Soldering time | THT etwa 30 Minuten, SMD etwa 1 Stunde |
| Difficulty | Leicht (nur bedrahtete Bauteile bei Variante A) |
| Function | Tastatur läuft, auch ISO-Tasten und AltGr |
| Is it worth it | Ja. Wer am alten PC keine PS/2-Tastatur hat, ist damit günstig dabei. |
| Restrictions | Version 1 nur Tastatur; nur ESP32 mit BT Classic + BLE |
Related Posts
- Retro Projekt – Mini Floppy EmulatorLink status: OK
- Retro Projekt – LaufwerksalternativenLink status: OK
- Retro Projekt – Micro 8088Link status: OK
- Retro Projekt – Real Time Clock – RTC8088 (skiselev/RTC8088)Link status: OK
- Retro Projekt – DiskBuddy 64Link status: OK
- Retro Projekt – Joystick TesterLink status: OK
- Retro Projekt – ISA 8Bit BackplaneLink status: OK
- Retro Projekt – Voltage BlasterLink status: Unknown
- Retro Projekt – 8Bit ISA Ethernet Card (isa8_eth)Link status: Unknown
- Retro Projekt – FDC USB Floppy Disk ControllerLink status: OK
Sources
To the project
- 62f9feaLink status: OK
- 74eb970Link status: OK
- Arduino IDELink status: OK
- D1 mini ESP32Link status: OK
- ESP-IDFLink status: Broken
- esp32-bt2ps2 von HamberthmLink status: OK
- ESP32/ESP8266 in der Arduino GUI einrichtenLink status: OK
- Espressif IDF – Projekt erstellenLink status: OK
- esptool-jsLink status: OK
- GitHub – mein Fork mit den Platinen (hardware/)Link status: OK
- HIDmanLink status: OK
- Ordner hardware/caseLink status: OK
- PR #2Link status: OK
- Pull Request #1Link status: OK
- Release v0.1 im ForkLink status: OK
- Releases des OriginalsLink status: OK
- VS Code InstallationLink status: OK
- VS-Code Espressif IDFLink status: OK
Retro pages
https://archive.orgLink status: OK – Alte Software, Magazine, Handbücher und viele mehr.
https://theretroweb.comLink status: Broken – PC Hardwareverzeichnis.
https://www.winhistory.de/index.phpLink status: OK – Dos, Windows Versions Beschreibungen.
http://www.win31.de/links.htm – Win 3.1x Tools und Tricks
Retro Forensics
https://forum.classic-computing.de/forumLink status: Unknown – Deutsch/Englische Forum mit vielen Retro-Computer Enthusiasten.
https://www.vogons.orgLink status: Unknown – Hier habe ich schon viele Tipps zu Hardware gefunden, sie haben auch eine Treiber Verzeichnis.
https://www.dosforum.deLink status: Unknown – Forum mit strikten Regeln und sehr hilfreich in Bezug zu DOS, Windows-Fragen werden nicht gerne gesehen.
https://dosreloaded.deLink status: Unknown – Dos, Hardware Reparatur, Bios Dateien und mehr.
https://www.winhistory-forum.netLink status: Unknown DOS and Windows history.
Retro Shops
https://ram-co-shop.deLink status: Unknown – PC Teile auch neuere, schon viel dort bestellt hat immer funktioniert.
http://www.amoretro.deLink status: Unknown – Verkauft auf EBay und hat ein nettes Verzeichnis alter Hardware
https://retroreiz.deLink status: Unknown – Atari, Nintendo, Sega und anderes.
https://www.retroworld.info/deLink status: Unknown – Aufkleber, Schilder und mehr.
https://retesa-nb.deLink status: Unknown – Alte Hardware rund um den PC
https://www.retro8bitshop.comLink status: Unknown – C64 lastig
Logbook
| Date | Change | Author |
|---|---|---|
| 01.11.2026 | Preis pro Stück aus Taxmod-Stückpreisen berechnet Fazit und Bestelldaten der Platinen ausgefüllt Firmware-Abschnitt: idf.py flash zuerst, ZIP als erster Stand Foto PS/2-Kabel, Tipp vorgekrimpte JST-XH-Kabel ergänzt Auf Version 1 zurückgesetzt, Fotos THT-Platine, Hinweis auf V2, veröffentlicht Problem langsame Wiederverbindung mit Lösung ergänzt | Suffocation |
| 31.10.2026 | SMD-Stückliste auf V2, Schaltplan, Gerber, KiCad, 3D aktualisiert SMD V2: J3 6-polig mit DTR/RTS-Auto-Reset (Q3, Q4) Fotos bestückte SMD-Platine V1 mit ESP-32D ergänzt Firmware-Abschnitt: erst bauen, dann flashen Firmware-Bauanleitung: ESP-IDF v6.1.0, Abschnitt umbenannt SMD-3D-Ansicht, Gerber und KiCad-Projekt auf V2 Schaltpläne SMD und THT aktualisiert SMD-Platine V2: ohne D1-Sockel, WROOM quer, 49 × 31 mm | Suffocation |
| 25.10.2026 | Gliederung: Zusammenbau getrennt nach THT- und SMD-Platine (Schaltplan, Platine, Bauteile, Reihenfolge), Varianten, Kabel und Gehäuse gemeinsam; PS/2-Dokumentation nach Sonstiges; SMD-Bestückungspläne ergänzt | Suffocation |
| 24.10.2026 | Bauteile: Stückliste der SMD-Platine ergänzt | Suffocation |
| 21.10.2026 | Firmware: Tipp Programmieradapter für nackte Module (Variante B) | Suffocation |
| 20.10.2026 | Probleme: Build mit ESP-IDF 6.x (behoben), fehlende ISO-Tasten # und <> (Fix im Fork), AltGr/verschluckte Zeichen am Micro 8088 (behoben) | Suffocation |
| 10.10.2026 | Rechtschreibung korrigiert: Komma, Groß-/Kleinschreibung, Zusammenschreibung, Bindestriche | Suffocation |
| 08.10.2026 | Fotos der unbestückten Platinen, J1-Belegungstabelle, Erste Spannung, J3-Anschluss für Variante B, LED-Test ergänzt Beitragsbild gesetzt, Template-Reste entfernt Probleme: falsches Modul, Flash-Adresse 0x0, Baudrate, Build unter Linux Inbetriebnahme: Prüfen, Firmware-Download, Flashen im Browser mit Screenshots, VS Code/ESP-IDF, Arduino IDE, Pairing Aufbau: Varianten A/B, Lötreihenfolge, Kabel mit Belegungsbild und Löttipp, Gehäuse Fakten, Schaltpläne, Gerber, KiCad-Projekte, Stückliste nach Wert gruppiert, iBOM Ansichten mit Fotos der aufgebauten THT-Platine und 3D-Ansichten Einleitung, Links zum Original und zum Fork | Suffocation |
| 03.10.2026 | Log-Liste eingefügt | Suffocation |
| 18.09.2026 | Post created | Suffocation |