Das Gotek-Laufwerk im Detail - Teil 4 - Gotek Mods

In den vorangegangenen Abschnitten dieser Anleitung wurde die Verwendung des Gotek Floppy Emulators behandelt. In diesem Abschnitt wird die Installation von Mods behandelt. Konkret geht es um die Installation von Displays, Buzzern und Drehschaltern. Diese Verbesserungen führen zu einer signifikanten Steigerung der Funktionalität und Benutzerfreundlichkeit des Gotek.


Bevor es losgeht, noch ein paar Hinweise (Wichtig!)
  • Arbeite ausschließlich im spannungsfreien Zustand an der Hardware.
  • Um statische Aufladungen zu vermeiden, sollte ein antistatisches Armband getragen werden.
  • Ich trage keine Verantwortung für Schäden, die direkt oder indirekt durch die Nutzung dieser Anleitung entstehen.

Inhaltsverzeichnis dieser Anleitung (Teil 4)

  • Ein LCD Display
  • Ein OLED Display
  • Der Insert/Eject Taster
  • Der Rotary Encoder für eine einfachere Bedienung
  • Emulation der Laufwerksgeräusche

Ein LCD Display

Bei fehlendem Display ist ein manuelles Umschalten zwischen den Images nur eingeschränkt möglich. Alternativ kann der Kompatibilitätsmodus verwendet werden, der im letzten Teil der Anleitung erläutert wird. Obwohl einige Gotek-Varianten mit einer numerischen Anzeige ausgestattet sind, ist auch diese nicht hilfreich. Es wäre wesentlich praktischer, wenn wir jederzeit sehen könnten, welches Abbild gerade geladen wird und welches als nächstes in der Liste steht. Die Verwendung einer ein- oder mehrzeiligen LCD-Anzeige ermöglicht es uns, einen Überblick über die vorhandenen Images zu erhalten.

Benötigt wird ein LCD-Display mit 5V I2C-Modul. Es gibt verschiedene Größen, einschließlich 16 x 2, 40 x 2 und 20 x 4 Zeichen, sowie verschiedene Farben. Außerdem benötigen wir einige Dupont-Drahtbrücken (Female-Female), Pinheader und eventuell zwei 10-kΩ-Widerstände.


Die Verkabelung gestaltet sich unkompliziert. Zunächst ist jedoch sicherzustellen, dass das I2C-Modul des Displays bereits mit PullUp-Widerständen bestückt ist. Um dies zu überprüfen, messen wir den Widerstand zwischen den Pins SDA/SCL und VCC. Bei einem Wert von unter 10 kΩ sind zwei entsprechende Widerstände zu installieren. Die Widerstände können ignoriert werden, wenn der Wert 10 kΩ oder höher beträgt.


Nach Abschluss der Installation ist eine Anpassung der Konfigurationsdatei FF.CFG vorzunehmen. Es muss die Option display-type=lcd-CCxRR angegeben werden. Dabei steht "CC" für die Spalten und "RR" für die Zeilen. Für ein LCD-Display mit 2x16 Zeichen würde dies folgendermaßen aussehen: display-type=lcd-16x02. Der maximal mögliche Wert beträgt 40 x 04.


Darüber hinaus gibt es einige weitere Einstellungen, die Einfluss auf das LCD-Display haben. Dazu gehören folgende Punkte:

display-order
Mögliche Parameter: 0-3
Funktion (für jede einzelne Zeile):
0: Aktuelles Image
1: Status
2: Image info
3: Aktueller Ordnername
Beispiel: display-order = 0,2,1

display-off-secs
Mögliche Parameter: 0-255
Funktion: Zeit in Sekunden, wie lange das Display bei Inaktivität leuchtet. 0 = Immer aus und 255 = Immer an.

display-on-activity
Mögliche Parameter: yes, no
Funktion: Hintergrundbeleuchtung des Displays bei Aktivität einschalten.

Weitere Optionen für das Scrollen des Imagenamens:

display-scroll-rate Zeit Dateiname Scrollrate in Millisekunden pro Aktualisierung (Wert 100-6535)
display-scroll-pause Pausenzeit am Anfang/Ende des Scrollens, in Millisekunden (Wert 0-65535)
nav-scroll-rate Scrollrate langer Dateiname während der Navigation in Millisekunden (Wert 0-65535)
nav-scroll-pause pause langer Dateiname bevor Scrollbeginn während der Navigation in Millisekunden (Wert 0-65535)

Optional: Die Hintergrundbeleuchtung leuchtet immer in voller Stärke. Auf der Rückseite des Displays befindet sich ein kleiner Dimmer, der jedoch nur den Kontrast der Schrift anpassen kann. Für uns ist der Jumper von Interesse. Wird er entfernt, schaltet die Beleuchtung aus, was jedoch keine Lösung für das zu helle Display darstellt. Durch den Einsatz eines Widerstandes oder eines Potentiometers kann die gewünschte Helligkeit eingestellt werden. Ein Widerstand von 1,5 KΩ ist ein Wert, an dem man sich orientieren kann bzw. mit dem man das Display recht stark dimmen kann. In meinem Fall ist dies ausreichend.

Ein OLED Display

Für Nutzer, die das LCD-Display zu klobig finden, ist das kleinere OLED-Display eine gute Alternative. Dieses ist platzsparender und kann auf Wunsch sogar in das Gotek-Gehäuse eingebaut werden. Die folgenden I2C-OLED-Displays werden unterstützt:

128x32: 0.91"
128x64: 0.96", 1.3"

Des Weiteren benötigen wir einige Dupont-Drahtbrücken (Female-Female) und Pinheader. Alternativ können die Drahtbrücken auch direkt auf das Gotek-Laufwerk gelötet werden. Das OLED-Display wird gemäß der Abbildung angeschlossen.


Nach Abschluss der Installation ist das Display in der Konfigurationsdatei FF.CFG zu spezifizieren. Suche nach der Option "Display-Typ".

display-type = oled-128xNN (NN Steht für die Anzahl an Pixel des OLED-Displays. z.B. oled-128x64)


Für die OLED-Anzeige stehen zahlreiche weitere Optionen zur Verfügung. Diese werden ohne Leerzeichen an den bestehenden Befehl angehängt:
-rotate: OLED Ansicht um 180 Grad drehen.
-hflip: OLED-Ansicht horizontal spiegeln.
-narrow: Zeigt nur 18 Zeichen von 6x13 Fonts an (falls die Displayöffnung kleiner als das Display selbst ist).
-narrower: Zeigt nur 16 Zeichen von 6x13 Zeichen an (wenn die Öffnung des Displays kleiner als das Display selbst ist).
-inverse: Vertauscht Vorder- und Hintergrundfarbe. Schwarze Schrift auf weißem Hintergrund.
-ztech: Für ZHONGJY_TECH 2.23" 128x32 SSD1305 OLED Display (erfordert Modifikation des Displays).
-slow: Verlangsamt den I2C Bus. Kann Anzeigefehler korrigieren.

Ein Beispiel: display-type = oled-128x64-rotate

Weitere Optionen, die sich auf die OLED-Anzeige auswirken, sind:

oled-font = Verändert die Größe der Zeichen (Werte: 6x13 oder 8x16)

display-order
Mögliche Parameter: 0-3
Funktion (für jede einzelne Zeile):
0: Aktuelles Image
1: Status
2: Image info
3: Aktueller Ordnername
Beispiel: display-order = 0,2,1

display-off-secs
Mögliche Parameter: 0-255
Funktion: Zeit in Sekunden, wie lange das Display bei Inaktivität leuchtet. 0 = Immer aus und 255 = Immer an.

display-on-activity
Mögliche Parameter: yes, no
Funktion: Hintergrundbeleuchtung des Displays bei Aktivität einschalten.

display-scroll-rate Zeit Scrollrate Dateiname in Millisekunden pro Aktualisierung (Wert 100-6535)
display-scroll-pause Pausenzeit am Anfang/Ende des Scrollens, in Millisekunden (Wert 0-65535)
nav-scroll-rate Scrollrate langer Dateiname während der Navigation in Millisekunden (Wert 0-65535)
nav-scroll-pause pause langer Dateiname bevor Scrollbeginn während der Navigation in Millisekunden (Wert 0-65535)

Das 128x32 SSD1305 OLED display

Die FlashFloppy-Firmware unterstützt neben den oben genannten OLED-Displays eine Reihe weiterer. Eines davon ist das 128x32 SSD1305 OLED Display, welches größer ist. Diese unterstützen in der Regel jedoch nicht das I2C-Protokoll. Um genauer zu sein: Sie unterstützen es, aber nur unter der Voraussetzung, dass bestimmte Komponenten des Displays ersetzt oder hinzugefügt werden. An dieser Stelle möchte ich auf die Website sites.google.com/one-n.co.uk/amiga-guides verweisen, die eine sehr gute Anleitung zur Aktivierung des I2C-Protokolls bietet.

Der Insert/Eject Taster

Unter der Voraussetzung, dass keine Änderungen an der Konfigurationsdatei vorgenommen wurden, werden die Images nach zwei Sekunden gemountet, sofern sie über die Tasten auf der Vorderseite des Gotek-Laufwerks ausgewählt wurden. Dies kann dazu führen, dass versehentlich Diskettenabbilder eingelegt werden, weil zu lange gewartet wurde. Dieses Problem kann umgangen werden, indem in der Konfigurationsdatei angegeben wird, dass die Images nicht automatisch gemountet werden sollen (autoselect-file-secs). Allerdings ist dann eine andere Möglichkeit erforderlich, dem Laufwerk mitzuteilen, dass das ausgewählte Image gemountet werden soll. Dieses Problem kann durch Änderungen in der Konfigurationsdatei gelöst werden. Konkret ist dafür die Angabe erforderlich, dass das Image gemountet wird, wenn beide Tasten gedrückt werden. Diese Einstellung ist unter "twobutton-action" vorzunehmen. Diese Lösung ist aus meiner Sicht nicht optimal, da sie dazu führen kann, dass das Image gewechselt wird, anstatt es zu mounten. Daher kann die Installation eines zusätzlichen Tasters, der ausschließlich für das Einfügen und Auswerfen von Images vorgesehen ist, eine sinnvolle Ergänzung darstellen. Der Taster wird angeschlossen, wie in der folgenden Abbildung dargestellt.



Zuletzt ändern wir diese Optionen in der Konfigurationsdatei:

autoselect-file-secs = 0
autoselect-folder-secs = 0

Images werden ab sofort nur noch eingelegt oder ausgeworfen, wenn die entsprechende Taste gedrückt wird. Das Gleiche gilt für das Öffnen von Ordnern.

Der Rotary Encoder für eine einfachere Bedienung

Die Bedienung mit den beiden Tasten ist zwar ausreichend, kann jedoch durch einen Drehregler optimiert werden. Mit dieser Funktion können wir die gewünschten Images auswählen und durch Betätigen des Drehreglers diese laden. Für dieses Vorhaben benötigen wir einen Drehregler. Die Drehregler, die ich bisher gesehen habe, verfügten alle über eine Tasterfunktion. Des Weiteren ist zu prüfen, ob die 10-kΩ-Pull-up-Widerstände bereits vorhanden sind. Erfahrungsgemäß sind diese bereits vorhanden. Wir gehen hier davon aus, dass die Widerstände Teil des Druckreglers sind. Des Weiteren benötigen wir einige Dupont-Drahtbrücken und Pin-Header. Alternativ können die Drahtbrücken auch direkt auf das Gotek-Laufwerk gelötet werden.


Die Verdrahtung des Reglers erfolgt nach folgendem Schema.


Beachte, dass einige Gotek-Boards (Artery) einen versetzten Header-Stecker haben. CLK und DT müssen daher dort angeschlossen werden.


Anschließend ändern wir die entsprechenden Optionen in der Konfigurationsdatei FF.CFG.
autoselect-file-secs = 0
autoselect-folder-secs = 0
rotary = full (alternativ “half” für halbe oder “quarter” für einen Viertel der ursprünglichen Drehgeschwindigkeit)

Emulation der Laufwerksgeräusche

Neben den Displays und Steuerungsmethoden des Gotek-Laufwerks gibt es noch eine Modifikation, die hier nicht fehlen darf. Hierbei handelt es sich um die Emulation des Ladegeräuschs. Der Ton wird über einen Buzzer ausgegeben. Sobald auf die virtuelle Diskette zugegriffen wird, ertönt ein akustisches Signal. Für diese Modifikation stehen zwei Varianten zur Verfügung. Die einfache Methode ist zwar unkompliziert, jedoch neigt sie dazu, die Geräusche etwas leiser wiederzugeben. Die zweite Methode ist aufwendiger, hat aber lautere Ladegeräusche zur Folge.

Variante 1

Komponenten:
Angeschlossen wird der Summer an den Pins JB


Für diesen Mod gibt es einige Optionen in der FF.CFG die dabei helfen die Lautstärke zu regulieren.

Option: step-volume
Funktion: Lautstärke für Aktivität
Mögliche Werte 0 - 20

Option: notify-volume
Funktion: Speaker für Mount-, Auswurf- und Slotnummer Benachrichtigungen
Mögliche Werte: N[,slotnr] (0 - 15)

Anmerkung: Wird „slotnr” angegeben, erfolgt die Ausgabe durch eine Folge langer Piepstöne, gefolgt von einer Folge kurzer Piepstöne.

Variante 2

Komponenten:
Der Anschluss der Komponenten muss nach folgendem Schema erfolgen: Dabei ist darauf zu achten, dass keine anderen Teile berührt werden und es zu keinem Kurzschluss kommt.