Autor Thema: USB-Tastatur und Maus an Atari ST - es funktioniert!  (Gelesen 1123 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline eventcatcher

  • Benutzer
  • Beiträge: 16
USB-Tastatur und Maus an Atari ST - es funktioniert!
« am: Sa 15.07.2023, 13:25:54 »
Moin Atarista,

ich bin vor ungefähr 2 Jahren auf ein Projekt gestossen, welches es ermöglicht, eine USB-Tastatur und Maus an einen Atari ST anschliessen zu können.
Das Projekt verwendet hierfür einen Raspberry PI Pico mit ein paar zusätzlichen Bauteilen.
Optional kann man auch 2 Joysticks anschliessen. Dafür sind zwei der Standard 9pol. Sub-D (male) Steckverbinder vorgesehen.
Hier der Link zum Projekt: https://github.com/fieldofcows/atari-st-rpikb

Nun war es leider so, dass der Sourcecode für den Raspi Pico nicht ganz vollständig war, d.h. es gab beim Compiliervorgang mehrere Fehlermeldungen.
Zwischenzeitlich gab es einen Tip in den Kommentaren, wie das Problem zu lösen ist.
https://github.com/fieldofcows/atari-st-rpikb/issues/2#issuecomment-1221354118

Ich bin dem aber bisher nicht mehr nachgegangen.

Zufällig bin ich dann über ein Youtube-Video gestolpert: https://www.youtube.com/watch?v=ckudswUSQ0Y
Der YouTuber hat das kompilierte Programm für den Raspi online gestellt, so dass man den Code nicht selbst kompilieren muss. Hier der Link: https://github.com/dh219/atari-st-rpikb/releases/tag/20220825

Ich habe das dann mal mit meinem Versuchsaufbau ausprobiert, und das Programm auf dem Raspberry Pico installiert. Das geht ziemlich einfach, indem man den Pico via USB-Kabel an den Rechner anschliesst. In meinem Fall einen Mac. Man muss beim einschalten bzw. anstöpseln des Pico den Taster "Bootsel" gedrückt lassen. Danach kann man den Taster wieder los lassen. Der Raspi sollte dann wie eine Festplatte ein Laufwerk mounten.
Achtung: Zuerst die atari_ikbd-firmware.zip entpacken.
Auf dieses Laufwerk kopiert man nun die im zip enthaltene atari_ikbd.uf2.
Danach sollte sich das Laufwerk automatisch auswerfen. Nun sollte das Programm auf dem Raspi installiert sein.

Die Schaltpläne und wie das ganze aufzubauen ist, finden sich auf der Original-Seite https://github.com/fieldofcows/atari-st-rpikb

Ich habe einige Tastaturen und Mäuse getestet. Es läuft eigentlich fast alles, es darf nur nicht zu sehr Strom ziehen. Und leider gehen Tastaturen und Mäuse am Logitech Unifying Funk-Dongle NICHT.
Das bedeutet: Außer Gamer-Tastaturen und Mäusen, sowie Logitech Funk-Dongle  geht viel.
Hier meine Liste der Testgeräte und das Ergebnis:
 
   - ok: Raspberry Pi Keyboard und Maus
   - ok: Logitech MX518 Maus
   - ok: Kensington USB/PS2 Wired Mid-Size Mouse (M01093, K72355)
   - ok: Apple Pro Mouse (transparent / schwarz, langsam)
   - ok: Apple Maus Model A1152, weiss (langsam)
   - ok: Microsoft Express Mouse MSK1480
   - ok: Kensington Expert Mouse K64325
   - ok: Das Keyboard 4c Pro DASK4CPROSIL
   - ok: Apple Keyboard A1048
   - ok: 4-port USB-Hub (blau) + HKBD Pro Hybrid Type-S (über Kabel, cmd: FN-Control-0) + Raspberry Pi Mouse
   - ok: 4-port USB-Hub (blau) + Keysonic ACK-11864 (Funk) + Raspberry Pi Mouse
   - geht nicht: generell Tastaturen mit Logitech Unifying Funk-Dongle
   - geht nicht: SteelSeries Kinzu V3 (Gamer-Maus)
   - geht nicht: SteelSeries Kana V2 (Gamer-Maus)
   - geht nicht: Apple Keyboard (white) A1243
   - geht nicht: Ducky One 3 SF (Gamer-Keyboard)
   - geht nicht: Logitech TK820 mit integr. Touchpad (getestet ohne/mit USB-Hub)
   - geht nicht: Logitech Dinovo Edge mit BT-Dongle (getestet ohne/mit USB-Hub)

Und was wichtig ist: Wenn die Tastatur bereits einen USB-Hub verwendet, dann darf man die Tastatur nicht über einen weiteren USB-Hub anschliessen - das funktioniert dann nicht.
Wenn die Tastatur KEINEN USB-Hub integriert hat, dann kann man beides, also Tastatur und Maus an einen USB-Hub anschliessen.
Was NICHT funktioniert sind aktive Hubs, also welche mit eigener Stromversorgung. Also nur passive Hubs verwenden!

Btw: Ich habe das Projekt geforkt, ihr findet es ebenfalls auf meinem Github-Account: https://github.com/eventcatcher
« Letzte Änderung: Sa 15.07.2023, 13:40:17 von eventcatcher »

Offline Arthur

  • Benutzer
  • Beiträge: 10.302
  • Mein Atari erinnert mich an die gute alte Zeit..
Re: USB-Tastatur und Maus an Atari ST - es funktioniert!
« Antwort #1 am: Sa 15.07.2023, 16:44:55 »
Danke @eventcatcher für diese sehr ausführliche Zusammenfassung. Das dürfte eine große Hilfe für Nachahmer sein. ;)

Offline eventcatcher

  • Benutzer
  • Beiträge: 16
Re: USB-Tastatur und Maus an Atari ST - es funktioniert!
« Antwort #2 am: Mi 26.07.2023, 10:42:34 »
Wer die App aus dem Git-Sourcecode selbst erzeugen möchte, kann das z.B. auf einem Mac folgendermaßen machen.
Oder um es mit den Worten eines Mandalorian zu sagen: Das ist der Weg  :D

clone repos (...in das lokale GIT-Verzeichnis im User Documents Ordner, es ist natürlich auch jedes andere Verzeichnis möglich. Im Beispiel "username" durch den eigenen Benutzernamen ersetzen):
cd /Users/username/Documents/git
mkdir dh219
cd dh219
git clone -b main https://github.com/dh219/atari-st-rpikb.git
cd /Users/username/Documents/git/dh219/atari-st-rpikb
git clone -b master https://github.com/fieldofcows/pico-sdk.git
cd /Users/username/Documents/git/dh219/atari-st-rpikb/pico-sdk

checkout des richtigen branch/commit:
siehe GIT ==> rdh/hd6301-patch, commit 9360b07613c0fb65da70bdf173ff73a05be883db
Dies ist der korrekte branch mit aktuellen Ánderungen und Fixes von fieldofcows.
git checkout -b actual 9360b07613c0fb65da70bdf173ff73a05be883db

Den fehlenden Import von HIDParser.c in die Datei CMakeLists.txt einfügen:
sudo vim /Users/username/Documents/git/dh219/atari-st-rpikb/pico-sdk/src/rp2_common/tinyusb/CMakeLists.txt
Herunterscrollen bis zur Zeile 91: ${PICO_TINYUSB_PATH}/src/class/hid/hid_host.c
Darunter einfügen:
${PICO_TINYUSB_PATH}/src/class/hid/hidparser/HIDParser.c
In VIM speichern mit: ESC :wq

export PICO_SDK_PATH=/Users/username/Documents/git/dh219/atari-st-rpikb/pico-sdk

cd /Users/username/Documents/git/dh219/atari-st-rpikb/pico-sdk
git submodule sync
git submodule update --init --recursive

Kompilieren:
cd /Users/username/Documents/git/dh219/atari-st-rpikb
mkdir build
cd build

cmake ..
make -j4

Die Datei mit Dateiendung uf2 sollte im Ordner dh219/atari-st-rpikb/build liegen, Name der Datei: atari_ikbd.uf2
Diese Datei muss auf den Raspberry Pico per Drag & Drop auf das Pico-Laufwerk übertragen werden.
Das war's auch schon.

Kurzer Nachtrag:
Man benötigt folgendes Tool:
- Apple Command Line Tools for Xcode 12.3
- Homebrew: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Folgendes muss installiert sein:
brew install git
brew install python3
brew install cmake
brew tap ArmMbed/homebrew-formulae
brew install arm-none-eabi-gcc

Siehe auch: https://www.heise.de/blog/Raspberry-Pi-Pico-und-C-C-eine-gute-Kombination-5991042.html

Man benötigt evtl. noch einen Symlink zu dem 12.3 SDK:
sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk

Achtung: Mit neueren SDKs funktioniert es NICHT mehr, daher die zusätzliche Installation des SDK 12.3.
« Letzte Änderung: Mi 26.07.2023, 14:26:18 von eventcatcher »