Atari,  Atari XL/XE,  Warsztat

Atari SDrive-MAX – zróbmy to sami czyli “Do It Yourself”…

Dawno tak bardzo nie cieszyłem się z prognozowanego deszczu. Najpierw wielka zapowiedź nocnej ulewy, potem piątkowy alert RCB. Pozabezpieczałem wszystko w ogrodzie, pochowałem lampiony z tarasu do domu, gdzie na noc został także skoszarowany pies. Auto zostało na zewnątrz bo dobra ulewa mogłaby zmyć z niego pyłki sosny, dzięki którym nabrał ostatnio innego, bardziej żółtego koloru. Nawet nawiozłem trawnik nawozem, którego granulki czekały na rozpuszczenie ogromem lejącej się z nieba wody. Mijały kolejne godziny, zachmurzyło się i zapadł zmrok, a z zapowiadanego deszczu spadło kilka kropel. O trzeciej w nocy zaczęło za to solidnie wiać. Otworzyłem mapę baryczną i już wiedziałem o co chodzi. Nad Bałtykiem niedaleko naszego wybrzeża przechodził niezbyt głęboki wydawałoby się niż, jednak to co ciągnął za sobą nie było już tak łagodne. Powstał ogromny wir powietrzny, który smagał wiatrem w promieniu wielu kilometrów. Na Pomorzu Zachodnim, gdzie większość roku wieje przyzwyczailiśmy się już do takich zjawisk, ale czasami nawet najstarsi zachodniopomorscy “górale”, zwani tu żeglarzami, podnoszą brwi nie tyle ze zdumienia, co z szacunku dla potęgi jaką może nam pokazać nasza planeta. Szczególnie w połączeniu z morzem taka postawa jest jak najbardziej uzasadniona. Morze nie jest ani dobre, ani złe, ale jedno jest pewne, nie wybacza braku przygotowania i lekkiego podejścia i na pewno z całą swoją bezwzględnością takie postawy kwestionuje. Dlatego w myśl powiedzenia Witolda Urbanowicza (jednego z dowódców Dywizjonu 303) – “Pan Bóg sprzyja przygotowanym” – przygotowany po uszy czekałem dalej na rozwój sytuacji i zapowiadaną ulewę. Spadły owszem dodatkowe trzy krople nad ranem, za to auto, którego karoseria miała być zmyta do fabrycznych kilkudziesięciu mikronów powłoki lakierniczej, przypominało raczej pojazd, który uprzednio będąc polany miodem, przejechał przez kurnik. 😉 No cóż z wielkiej chmury mały deszcz. Zastanawiałem się jak teraz rozpuścić ten nawóz na trawniku, ale koło godziny 13.00 znowu się zachmurzyło i przyszedł nareszcie oczekiwany od tygodni deszcz. Najpierw nieśmiały, drobny, jakby nie wiedział co tu robi i czy na pewno ma tu padać. Później jednak krople zamieniły się w strumienie i z nieba wylały się chciwie spijane przez wysuszoną ziemię życiodajne płyny. Widząc taki rozwój sytuacji, dumny z mojego przygotowania, którego sens został nareszcie potwierdzony i nie mając nic do zrobienia w ogrodzie poza obserwacją jak pięknie rozpuszcza się nawóz a samochód nabiera oryginalnej barwy ruszyłem zadowolony do retro-warsztatu, gdzie zwolniony ze wszelkich ogrodowych obowiązków z racji pogody, mogłem oddać się grzebaniu przy…no właśnie przy czym? Przy czymś co od miesięcy czekało na realizację a mianowicie projekcie SDrive-MAX, którego efektem będzie nakarmienie komputera Atari serii XL/XE strumieniami bitów, dających mu duszę. Zanim jednak przejdziemy do tego tematu, krótka relacja z tego co dzieje się w ogrodzie, a dzieje się dużo. Zacznijmy od ptaków, podlotek kosa już wyrośnięty, odleciał z rodzinnego gniazda i mam wrażenie, że czasem wraca siadając na gałęzi brzozy i racząc nas swoim śpiewem. Ciężko to ocenić bo zarówno ojciec jak i syn są czarni jak smoła 🙂 w myśl zasady “niedaleko pada jabłko od jabłoni”. Jeżeli już o jabłoni mówimy to zawiązała ona mnóstwo owoców i kosy na pewno będą miały co jeść tej zimy. 🙂 Budki lęgowe nadal wypełnione potomstwem ptasich rodzin, które to potomstwo coraz śmielej wystawia z budek dzioby w kierunku nadlatujących z “pysznym” robakiem rodziców. Głośny szczebiot dolatujący z trzech ogrodowych budek wyraźnie daje znać, iż maluchy właśnie dostały kolejny posiłek, a w ogrodzie mam o jedną gąsienicę mniej i mogę zrobić kolejną kreskę na murze. 😉 Grzywaczy dzisiaj nie widziałem, za to gniazdo na szczęście dalej jest na sośnie i wiatr go nie zrzucił. W ogrodzie kwitną kwiaty, a ja podążyłem dzisiaj z aparatem tropem trzmieli, bo one znają się na kwiatach najlepiej i wiedzą, które są najdorodniejsze. 🙂 Trzmiele zaczęły swoje loty od przepięknych azalii, potem zasmakowały kwiatu rododendronu, który ostatnio z racji swych rozmiarów jechał ze mną na fotelu pasażera ze sklepu, a ponieważ nicpoń pasa nie zapiął przez całą drogę słyszeć dał się sygnał “zapnij pasy”. Trzmiele następnie poleciały w innym kierunku. Zwabiła je przepiękna piwonia, której kwiat z lubością przyjął gościa oddającego się kąpieli w mieszaninie składającej się z przepysznego nektaru i kwiatowych pyłków. Kwitną także bzy, a za chwilę zakwitną derenie i hortensje. W ogrodzie pachnie jak w perfumerii, niektóre zapachy, np. azalii wystarczyłoby tylko wsadzić do buteleczek i sprzedawać za sumy z dwoma zerami. 😉 Taki jest ten maj, dla mnie najpiękniejszy miesiąc w roku. 🙂 Pies oczywiście dalej pilnuje ptaków, w wolnych chwilach zajmując się swoją ulubioną zabawką. 🙂

Wróćmy jednak do retrokomputerów, jako że peanów na temat majowej przyrody już wystarczy, bo Czytelniczki i Czytelnicy stwierdzą za chwilę: – “hmmm, a o czym był ten blog?” 😉 Szykujcie aromatyczną kawę oraz wygodną kanapę lub leżak i jeżeli jesteście gotowi to zaczynamy!

***

To co lubię robić to łączyć technologię z lat 80-tych z nowoczesną elektroniką. Nie inaczej mamy w przypadku projektu SDrive-MAX, do którego przymierzałem się od kilku miesięcy. SDrive-MAX jest urządzeniem potrafiącym emulować zarówno stację dysków jak i magnetofon do 8-bitowego Atari serii XL lub XE. Projekt został zapoczątkowany przez Bob!k’a (Robert Petružela) i Raster’a (Radek Štěrba), którzy w 2008 roku opracowali pierwszy SDrive. Projekt ten wygrał konkurs niemieckiej grupy użytkowników Atari: ABBUC i został udostępniony do użytku publicznego jako projekt open-source’owy. Spowodowało to powstanie kliku ulepszonych wersji, poczynając od SDrive-NUXX stworzonego w 2009 przez c0nsumer’a. W 2012 roku pojawiło się SDrive Micro stworzone przez santosp’a, w 2014 roku kbr opracował SDrive-NG, a w 2017 roku pojawił się SDrive2 opracowany przez alsp’a. W tym samym roku kbr opracował SDrive-MAX będący rozwinięciem SDrive-NG umożliwiającym obsługę za pomocą ekranu dotykowego. Projekt ten bazuje na Arduino Uno, a jego wykonanie powinno być w zasięgu każdej osoby potrafiącej majsterkować i lutować. 🙂

Zacznijmy od potrzebnych elementów. Po pierwsze potrzebne będzie Arduino UNO, najlepiej w wersji podstawowej z mikroktrolerem AVR firmy Atmel ATmega328P, montowanym w podstawce.

Kolejnym elementem jest wyświetlacz LCD z ekranem dotykowym oraz z zintegrowanym gniazdem micro SD. Może to być dowolny wyświetlacz do Arduino z chip’em ILI9341, ILI9340, ILI9329, HX8347i lub  HX8347g. Ja kupiłem wyświetlacz firmy Elgoo 2,8″ z układem ILI9341. W zestawie otrzymujemy także rysik wykonany z tworzywa sztucznego.

Kolejnym niezbędnym elementem jest wtyczka SIO i przewód pięciożyłowy. Ja kupiłem gotowy przewód z zainstalowaną wtyczką od Lotharka.

Kolejnym elementem jest zasilacz, najlepiej 9 lub 12 V prądu stałego, z wtyczką typu DC 2,5mm/5,5mm i z plusem na jej pinie środkowym. Użyłem tu impulsowy zasilacz 12V, który został mi po jakimś urządzeniu, którego już nie używam. Można także wykonać SDrive-MAX zasilane bezpośrednio z komputera, jednak z racji pobieranego prądu i wygody użytkowania wersja z zasilaczem zewnętrznym jest wg mnie pewniejsza w działaniu i wygodniejsza. Dodatkowo, niektórzy użytkownicy raportowali problemy z działaniem przy zasilaniu napięciem 5V, a takie podaje Atari przez gniazdo SIO.

Kolejną potrzebną rzeczą będzie karta microSD, ja użyłem tu starej karty o pojemności 8GB, która została mi po telefonie Nokii.

Kolejną rzeczą, którą będziemy potrzebować, jest przewód USB-AB. Dzięki niemu można będzie zaprogramować urządzenie za pomocą komputera.

Przydałaby się też obudowa, ponieważ planuję używać urządzenia z Atari 65 XE, postanowiłem znaleźć obudowę, która nawiązywałaby swoim wyglądem to tej serii. Doskonale nadaje się do tego projekt Chuck’a Caley’a z forum AtariAge. Można także znaleźć zmodyfikowaną wersję tego projektu umożliwiającą schowanie rysika w obudowie. Dzięki uprzejmości kolegi Michała (którego serdecznie pozdrawiam) obudowa została wykonana i to w kolorze nawiązującym do szarości Atari serii XE.

***

Przystąpmy do działania, pierwszą rzeczą jest spasowanie przewodu do podłączenia do Atari.

Nie do końca jednak jestem zadowolony z takiego rozwiązania, ponieważ lepszą wg mnie opcją jest zastosowanie odginki. Po pierwsze zabezpieczy przewód przed ułamaniem, a po drugie trzymać będzie przewód na miejscu, bez ryzyka wyrwania go z urządzenia. Oczywiście odginkę montujemy “przed” lutowaniem, a nie “po”. 😉

Aby jednak móc zamontować przewód z odginką powiększamy za pomocą pilnika “iglaka” otwór tak, aby miał prostokątny kształt i bez problemu dało się zamknąć obudowę.

Przymiarka pokazuje, że otwór jest wykonany prawidłowo:

W kolejnym kroku multimetrem ustalamy, który przewód jest podłączony do którego pinu wtyczki SIO:

Generalnie potrzebować będziemy 4 sygnałów z wtyczki SIO:

Schemat połączeń z Arduino jest następujący:

Piątą żyłę przewodu od Lotharka (+5V) izolujemy za pomocą izolacji termokurczliwej z użyciem hot-air’a:

Możemy teraz przystąpić do lutowania, nie zaszkodzi posmarować miejsc lutowania topnikiem w żelu firmy Termopasty:

Lutujemy przewody:

‘Data Output’ łączymy z pinem ‘0-rx’ Arduino, ‘Data Input’ z pinem ‘1-tx’, ‘Command’ z pinem ‘A5’, a masę ‘GND’ z pinem ‘GND’ Arduino.

Po zlutowaniu nie zaszkodzi wyczyścić płytki z pozostałości topnika alkoholem izopropylowym:

Przygotowujemy następnie wyświetlacz:

Łączymy wyświetlacz z Arduino wsuwając go w gniazda znajdujące się na wierzchniej stronie Arduino:

Sprawdzamy czy całość mieści się teraz w obudowie:

Następnie przygotowujemy spód obudowy:

Całość składamy razem tak, aby otwory płytki Arduino pokryły się z wystającymi podpórkami obudowy:

Całość trzymając z obu stron jak kanapkę umieszczamy w obudowie wkładając odginkę w otwór na przewód.

Wkręcamy wkręty:

W kolejnym kroku montujemy samoprzylepne nóżki po uprzednim przetarciu miejsc montażu alkoholem izopropylowym w celu ich odtłuszczenia.

Po zamontowaniu nóżek naklejamy nalepkę z zestawu Arduino, aby wiadomo było co jest sercem urządzenia. 🙂

Obracamy urządzenie i ściągamy folię ochronną z wyświetlacza:

SDrive-MAX gotowy! 🙂

Urządzenie ma trzy gniazda:

  • USB-B do podłączenia przewodem USB-AB do komputera PC/MAC,
  • gniazdo karty microSD,
  • gniazdo zasilania zewnętrznego typu: ‘DC 2,5mm/5,5mm’ z pinem środkowym jako ‘+’.

***

Czas przejść do zaprogramowania urządzenia. Ściągamy ze strony Arduino.cc najnowszą wersję środowiska programistycznego Arduino IDE (ang. Integrated Development Environment), aby zainstalować odpowiednie driver’y do Arduino UNO i przetestować komunikację z tym urządzeniem. Użyjemy komputera PC z systemem Windows 10.

Po ściągnięciu instalujemy środowisko programistyczne Arduino IDE:

Uruchamiamy je i podłączamy Arduino do komputera za pomocą przewodu USB-AB (jeszcze bez zewnętrznego zasilacza). Wyświetlacz zaczyna działać:

Możemy teraz sprawdzić komunikację z Arduino, ładując do niego default’owy program z IDE:

Operacja kończy się sukcesem i możemy już wyłączyć Arduino IDE, bo nie będzie nam już potrzebne. W kolejnym kroku wchodzimy na repozytorium GitHub projektu SDrive-Max, którego autorem jest kbr:

Ściągamy najnowszą wersję oprogramowania SDrive-MAX, w naszym przypadku jest to wersja 1.2 spakowana w pliku sdrive-max-v12.zip. Po ściągnięciu rozpakowujemy zawarte w nim katalogi i pliki:

W następnym kroku ściągamy program XLoader, który pozwoli nam załadować kod SDrive-MAX do pamięci Arduino. Po ściągnięciu rozpakowujemy i uruchamiamy XLoader:

Z menu XLoadera wybieramy plik do załadowania do Arduino, jednak musi to być wersja odpowiadająca chipowi naszego wyświetlacza. Aby sprawdzić jaki został użyty wchodzimy na stronę jego producenta i sprawdzamy specyfikację techniczną:

Upewniamy się, iż jest to chip ILI9341 i z katalogu oznaczonego tym symbolem wybieramy plik ‘eeprom_writer.hex’

Następnie wybieramy port gdzie podłączone jest Arduino (w naszym przypadku jest to COM3)

W kolejnym kroku naciskamy klawisz ‘Upload’ i plik jest przesyłany do Arduino. Po tej operacji ładujemy do XLoader’a drugi plik z katalogu, a mianowicie ‘SDrive.hex’:

Ponownie wciskamy klawisz ‘Upload” i plik jest przesyłany do Arduino, którego ekran wyświetla już status operacji:

Następnie wyświetlacz przechodzi do trybu kalibracji ekranu dotykowego, gdzie naszym zadaniem jest dotykanie rysikiem w miarę dokładnie w pojawiających się na ekranie miejscach oznaczonych symbolami krzyżyków:

Po zakończeniu urządzenie informuje nas o uzyskanych w ten sposów koordynatach:

I następnie uruchamia się oprogramowanie SDrive-MAX:

Teraz czas aby przygotować kartę SD. Wkładamy ją do komputera PC i formatujemy za pomocą FAT32:

W kolejnym kroku kopiujemy do katalogu głównego karty SD plik ‘sdrive.atr’ ze ściągniętego wcześniej z GitHub’a pliku sdrive-max-v12.zip. Jest to przeglądarka ekranowa, która pozwoli nam obsługiwać urządzenie z poziomu komputera Atari.

Czas teraz umieścić na karcie SD trochę programów o rozszerzeniach .ATR i .XEX (formaty dyskowe) oraz .CAS (format obrazu pliku z kasety magnetofonowej). Po zakończeniu wkładamy kartę do gniazda microSD urządzenia:

***

Podłączamy urządzenie do Atari 65XE i podajemy zasilanie zewnętrzne z naszego zasilacza 12V DC. Jak widać obudowa SDrive-MAX doskonale komponuje się z obudową komputera:

Urządzenie gotowe jest do pracy:

Urządzenie emuluje dwa typy stacji Atari: 810 i 1050. Domyślnie mamy 810 dlatego aby przejść do emulacji 1050 naciskamy klawisz Cfg i w menu konfiguracyjnym wybieramy klawisz ‘1050’:

Następnie zapisujemy konfigurację wciskając klawisz ‘Save’:

Teraz możemy uruchomić komputer. Przytrzymujemy przycisk ‘Option’, aby odłączyć interpreter BASIC’a i startujemy nasze Atari.

Po chwili uruchamia się przeglądarka SDrive.ATR’ z głównego katalagu karty SD. Wybieramy plik “Goonies.ATR i umieszczamy go w napędzie D1.

Także na wyświetlaczu natychmiast pokazuje się informacja, że ten plik został umieszczony w napędzie D1:

Podświetlenie jasnym niebieskim kolorem informuje nas o wybranym (aktywnym) napędzie. Do napędu D2 ładujemy inny plik, a mianowicie grę “Stealth”:

Wyłączamy teraz Atari i po wybraniu dysku D1 z ‘Goonies’ trzymając klawisz ‘Option’ ponownie uruchamiamy komputer. Na wyświetlaczu pojawia się informacja o ładowanym aktualnie pliku (zielona kropka):

Po chwili na ekranie pojawia się klasyk dla dwóch osób grających w trybie kooperacji – The Goonies, nawiązujący do świetnego filmu o tej samej nazwie z 1985 roku, którego reżyserem był Richard Donner:

Oczywiście nie możemy sobie odmówić kilku minut przyjemności…:)

Odpalmy teraz drugi program. W tym celu zaznaczamy napęd D2 i powtarzamy procedurę ponownie uruchamiając komputer i trzymając wciśnięty klawisz ‘Option’.

Po chwili uruchamia się jedna z lepszych strzelanek pseudo-3D na Atari, napisana przez  Tracy Lagrone i Richarda Sansom’a. Gra została wydana została w 1984 roku przez firmę Broderbund. Oczywiście kilka minut nie zaszkodzi poświęcić tej świetnej pozycji z lat 80-tych.

Urządzenie nie zapamiętuje po odłączeniu zasilania załadowanych do napędów plików. Jeżeli chcemy to zrobić to musimy wejść do opcji ‘cfg’, wybrać opcję ‘SaveIm’ i następnie nacisnąć przycisk ‘Save’.

Odłączamy zasilanie od SDrive-MAX i uruchamiamy je ponownie. Rzeczywiście urządzenie zapamiętało wczytane wcześniej do napędów programy.

Czas teraz na próbę załadowania obrazu taśmy magnetofonowej. Wybieramy przycisk ‘Tape’:

Następnie ładujemy z karty SD plik o rozszerzeniu ‘.CAS’, w naszym przypadku jest to kolejny klasyk ‘Bruce Lee’ – gra z 1984 roku stworzona przez Rona J. Fortiera i Kelly Day.

Potwierdzamy przyciskiem ‘ok’ i następnie wyłączamy komputer i ponownie go uruchamiamy tym razem trzymając wciśnięte klawisze: ‘Option’ i ‘Start’.

Słychać charakterystyczny dźwięk i teraz możemy uruchomić emulację magnetofonu w trybie symulacji wieczności, a mianowicie z prędkością transmisji 600 bodów (1 bod – 1 bit/s). 😉

Naciskamy klawisz ‘Start’ na wyświetlaczu i program zaczyna się wczytywać:

Proces ten trwa jak w przypadku oryginalnego magnetofonu Atari nawet kilkanaście minut. Po tak długim czasie oczekiwania nie można już sobie odmówić kilku pojedynków z Ninją i Zielonym Wojownikiem o życiowym motto: “najpierw masa potem rzeźba”. 😉

Czas przejść do posumowania. Początkowo byłem trochę sceptyczny, używałem do tej pory emulatora SIO2SD od Lotharka i byłem z niego bardzo zadowolony. Przystępując do projektu stwierdziłem, że dam temu rozwiązaniu szansę i zobaczę co to urządzenie potrafi. Po jego wykonaniu i kilku dniach użytkowania muszę stwierdzić, że pracuje bardzo dobrze i wygodnie się je obsługuje, zarówno za pomocą interfejsu dotykowego, jak i bezpośrednio z komputera Atari.

Wersja którą zbudowaliśmy może być używana jako jedyne urządzenie podłączone do portu SIO. Aby można było podłączyć więcej urządzeń z SDrive-MAX to musimy zmodyfikować konstrukcję dodając diodę Shotky’ego np. 1N5819, pomiędzy pinem 3 ‘Data Input’ w Atari a pinem ‘1-TX’ w Arduino w taki sposób aby katoda diody była podłączona do pinu ‘1-TX’.

Dioda Schotky’ego ma zamiast połączenia dwóch półprzewodników typu p i n (jak w tradycyjnej diodzie) połączenie typu metal-półprzewodnik. Dzięki temu dioda ta ma bardzo małą pojemność złącza, a co za tym idzie bardzo dużą szybkość przełączania.

Innym rozwiązaniem tego problemu jest zastosowanie opracowanego przez Brend’a Herale (BigBen’a) prostego interfejsu UNO2SIO wykorzystującego 2 rezystory 4,7KΩ i układ buforujący SN74LS07N, szczególnie przydatnego przy wersji Arduino z montażem powierzchniowym mikrokontrolera ATmega328P. 

Możecie także wybrać sobie inną obudowę urządzenia, na sieci znajduje się przynajmniej kilkanaście wersji do ściągnięcia i samodzielnego wydrukowania 3D lub zlecania komuś tego druku. Na koniec kilka przydatnych linków dotyczących projektu SDrive-MAX:

***

Czas kończyć dzisiejszy wpis, mam nadzieję, że nie przeraża Was już samodzielnie wykonanie SDrive-MAX, to naprawdę nic skomplikowanego, a urządzenie w pełni rekompensuje czas poświęcony na jego zbudowanie. Przy okazji może zainteresujecie się samym Arduino, można na jego podstawie zbudować wiele ciekawych urządzeń, a następnie je oprogramować, a przy tym nauczyć się trochę elektroniki i programowania w języku C. Na dowód, iż nie jest to nic trudnego zamieszczam zdjęcie samobieżnego autonomicznego robota (którego sercem jest dokładnie takie same Arduino Uno) wykrywającego przeszkody, którego zbudował mój syn będąc uczniem klasy V szkoły podstawowej. Można? Jasne że można! 🙂

Trzymajcie się ciepło i do następnego wpisu! 🙂



2 komentarze

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.