Budowa uniwersalnego testera joysticków retro: Między sukcesem a techniczną lekcją pokory

Pasja do retrokomputerów często zaczyna się od grania, ale u wielu z nas szybko ewoluuje w stronę techniczną: naprawianie, modyfikowanie, a w końcu budowanie własnego sprzętu. Joysticki zajmują w tym świecie miejsce szczególne. Jako fani starych technologii, często posiadamy ich dziesiątki – jedne prywatne, inne przeznaczone do ekspozycji muzealnych. Każdy z nich wymaga czasem konserwacji, naprawy lub – co zdarza się coraz częściej – głębokiej modyfikacji.

Pojawia się jednak prozaiczny problem: jak skutecznie i bezpiecznie testować te urządzenia?

Dlaczego komputer to nie zawsze najlepszy tester?

Standardową procedurą testową jest zazwyczaj podłączenie joysticka do sprawnego Commodore 64, Atari czy Amigi, które akurat stoją na biurku. Ma to jednak swoje istotne wady. Po pierwsze, przestrzeń robocza – gdy na blacie króluje stacja lutownicza i rozłożone komponenty, wyciąganie całego zestawu komputerowego jest po prostu kłopotliwe.

Po drugie, i ważniejsze, kwestia bezpieczeństwa. Podłączanie niesprawdzonego joysticka, szczególnie takiego po własnoręcznych modyfikacjach lub naprawach, niesie ze sobą ryzyko uszkodzenia portów komputera. W dobie coraz rzadszych i droższych układów scalonych, takich jak chociażby CIA w Commodore, ryzykowanie ich sprawności dla szybkiego testu przycisków jest zwyczajnie nierozsądne. Rozwiązaniem jest dedykowany, zewnętrzny tester.

Założenia projektowe: Więcej niż standard

Przeglądając rynek gotowych testerów oraz projektów open-source, można odnieść wrażenie, że większość z nich jest zbyt uproszczona. Typowy tester bazuje na baterii 3V (np. CR2032) i kilku diodach. Dla podstawowych kierunków i przycisku „Fire” to wystarczy, ale ambitniejszy projekt wymagał czegoś więcej:

  1. Pełna obsługa standardu Atari: Kierunki oraz główny przycisk strzału.
  2. Obsługa dodatkowych przycisków: Wsparcie dla Fire 2 i Fire 3.
  3. Wsparcie dla układów Auto-Fire: I tu pojawia się problem zasilania. Większość układów Auto-Fire wbudowanych w joysticki wymaga napięcia 5V, aby poprawnie generować impulsy. Zasilanie bateryjne 3V często okazuje się zbyt słabe, by wzbudzić elektronikę wewnątrz kontrolera.
  4. Nowoczesne, ale bezpieczne zasilanie: Zamiast mało popularnych dziś zasilaczy z wtykiem beczkowym, wybór padł na zasilanie przez USB.

Co ciekawe, w projekcie świadomie zrezygnowano z portu USB-C na rzecz Micro-USB. Decyzja ta podyktowana była ostrożnością – starsze ładowarki Micro-USB dają gwarancję stabilnego 5V bez ryzyka, że nowoczesne protokoły „turbo ładowania” z gniazd USB-C mogłyby podać wyższe napięcie, które uszkodziłoby testowany sprzęt.

Schemat i konstrukcja

Sercem urządzenia jest prosta, ale skuteczna logika: napięcie 5V przepływa przez diodę LED i rezystor do odpowiedniego pinu w porcie joysticka (DE9). W momencie wychylenia drążka lub naciśnięcia przycisku, obwód zostaje zamknięty do masy, co powoduje zaświecenie się odpowiedniej diody na panelu testera.

Dodatkowym atutem projektu jest wsparcie dla tzw. „paddli” (paletek). Ponieważ porty joysticka obsługują również sygnały analogowe, w schemacie uwzględniono wyjście na miernik oraz zestaw zworków (jumperów). Pozwalają one przełączać piny między obsługą przycisków Fire 2/Fire 3 a pomiarem oporności na wejściach analogowych.

Po zaprojektowaniu płytki w programie KiCad, projekt trafił do profesjonalnej produkcji. Gotowe PCB zostały polutowane, a całe urządzenie zamknięte w dedykowanej, dwuczęściowej obudowie zaprojektowanej i wydrukowanej w technologii 3D.

Techniczna pułapka: Atari vs. Commodore

Pierwsze testy z joystickiem ArcadeR wypadły pomyślnie – kierunki i przyciski działały idealnie. Jednak głębsza analiza schematów i testy z innymi kontrolerami ujawniły błąd w założeniach dotyczący uniwersalności urządzenia. Okazało się, że świat retro nie jest tak jednolity, jak mogłoby się wydawać.

Problem dotyczy sposobu obsługi dodatkowych przycisków Fire w różnych systemach:

  • Amiga: Tutaj sprawa jest najprostsza – dodatkowe przyciski (2 i 3) zwierają sygnał do masy, podobnie jak główny przycisk Fire.
  • Commodore 64: Komputer ten reaguje na stan wysoki. Oznacza to, że przycisk Fire 2 lub 3 pobiera z komputera 5V i podaje je z powrotem na wejścia analogowe (piny POT X / POT Y).
  • Atari: W przypadku ośmiobitowych komputerów Atari sytuacja jest odwrotna. System oczekuje spadku napięcia na wejściu, aby zarejestrować naciśnięcie przycisku.

W pierwotnej wersji testera, gdzie na piny podawane było stałe 5V, próba użycia joysticka skonfigurowanego pod Commodore kończyła się niepowodzeniem. Ponieważ z obu stron (z testera i z joysticka) występował ten sam potencjał, prąd nie płynął, a dioda LED nie miała prawa się zaświecić. Co zabawne, tester w tej wersji okazał się idealnym, „profesjonalnym” rozwiązaniem dla standardu Atari, choć ambicją było stworzenie czegoś bardziej uniwersalnego.

Wnioski i dalszy rozwój

Budowa testera to doskonała lekcja tego, że w elektronice retro „standard” jest pojęciem względnym. Nawet tak proste urządzenie potrafi zaskoczyć niuansami implementacji sygnałów w różnych modelach komputerów z tej samej epoki.

Obecnie projekt przechodzi proces korekty. Nowa rewizja płytki drukowanej zakłada „odwrócenie biegunów” dla przycisków Fire 2 i 3, tak aby diody reagowały na napięcie 5V podawane bezpośrednio z joysticka. Pozwoli to na pełną kompatybilność z kontrolerami dedykowanymi dla Commodore 64.

Mimo początkowych trudności, pierwsza seria testerów (świetnie współpracująca z Atari) zostanie w pełni wykorzystana w pracach serwisowych. Projekt ten udowadnia, że nawet w czasach gotowych rozwiązań, budowanie własnych narzędzi warsztatowych daje nie tylko ogromną satysfakcję, ale pozwala na głębsze zrozumienie architektury sprzętu, który staramy się zachować dla przyszłych pokoleń.

W kolejnym etapie prac planowana jest prezentacja poprawionej wersji urządzenia oraz szersze omówienie budowy własnego, nowoczesnego joysticka opartego o te same doświadczenia.