środa, 17 kwietnia 2019

Budowa TZXDuino dla Zx Spectrum

Do budowy emulatora magnetofonu na Arduino, czyli TZXDuino wykorzystałem:

1. Arduino Mini Pro 5V
2. Wyświetlacz LCD 16x2 wraz modułem I2C HD44780
3. Moduł czytnika kart SD dla Arduino
4. Przyciski tact switch 5 szt.
5. Układ wzmacniacza LM386
6. Kondensator 10 uF, 1000 uF, 100 nF i rezystor 10 ohm
7. Wtyk mini jack mono
8. Płytka uniwersalna i kawałki przewodów
9. Obudowa DT-065 czarna
9. Gniazdo zasilacza, wtyk zasilacza i wtyk usb

Gotowy emulator widać na zdjęciu niżej.


Połączenia elementów są takie:

Podłączenie wyświetlacza LCD:
SDA -> Arduino A4
SCL -> Arduino A5
VCC -> VCC
GND -> GND

Podłączenie czytnika kart SD:
GND -> GND
VCC- VCC
CS -> 10 ARDUINO
MOSI -> 11 ARDUINO
SCK -> 13 ARDUINO
MISO -> 12 ARDUINO

Przyciski:
Play -> 5 Arduino
Stop -> 4 Arduino
Up -> 3 Arduino
Down -> 2 Arduino
Return -> 7 Arduino

Do wzmacniacza na wyjściu użyłem kondensatora 1000 uF, ale można tez użyć 220 uF

Schemat całości.


Kod programu do wgrania do Arduino jest do pobrania tu -> Link

Różne moduły I2C mogą mieć różne adresy i dlatego przed wgraniem do Arduino sprawdzić jaki mamy adres modułu I2C.
Wgrywamy program skaner I2C -> Link

Po wgraniu uruchamiamy monitor portu szeregowego na 9600 i odczytujemy adres I2C.

U mnie adres I2C to 0x27 i wpisujemy, go w kodzie programu TZXDuino, jak pokazano niżej.


Po zmontowaniu całości wgrywamy kod programu TZXDuino 1.13 z linku jak wyżej, wkładamy kartę SD do czytnika z plikami TAP lub TZX i już możemy wybierać pliki i wgrywać do ZX Spectrum.

Do zasilania użyłem ładowarki do telefonu z gniazdem usb i połączyłem przewodem z wtykiem do zasilacza i wtykiem usb.
W obudowie zostało zamontowane gniazdo zasilania.


W obudowie zostały wykonane otwory pod czytnik kart, przyciski, gniazdo zasilania i przewód z wtykiem jack.


Film z testu działania.

niedziela, 24 marca 2019

Budowa zasilacza do Commodore 64

Do budowy zasilacza wykorzystałem płytki, które można kupić na Allegro.

Koszt budowy takiego zasilacza, to około 250 zł, użyłem najlepszej jakości elementów.

Spis części wraz z linkami do sklepów:

1. J1, J2, J4, J5, J6, J7 - konektor płaski -> Link
2. J3 - listwa wtykowa -> Link
3. F1, F2, F3 - oprawki bezpieczników -> Link
4. F1, F2 - bezpiecznik 2A -> Link
5. F3 - bezpiecznik 160 mA -> Link
6. C2, C3 - kondensator 100 nF, 50V -> Link
7. C1 - kondensator 2200 uF 50V -> Link
8. C4 - kondensator 47uF 50V -> Link
9. R1 - rezystor 100 ohm -> Link
10. C5 - kondensator przeciwzakłóceniowy 330 nF -> Link
11. BR1 - mostek prostowniczy KBU4G -> Link
12. D2, D3 - dioda przeciwprzepięciowa P6KE 15CA -> Link
13. D1 - dioda 1N5908 -> Link
14. D4 - dioda prostownicza 1N4007 -> Link
15. IC1 - przetwornik Traco TSR 2-2450 -> Link
16. TR1 - transformator do druku EI 66/23 209 -> Link
17. Obudowa -> Link
18. Śruby M3 6 mm -> Link
19. Złącza konektorowe -> Link
20. Wtyk DIN 7 -> Link
21. Prowadzenie kabla -> Link
22. Wtyczka do kabla -> Link
23. Dioda led 3 mm niebieska -> Link
24. Oprawka led 3 mm -> Link

Jeszcze będzie potrzebny przewód zasilający tzw. ósemka oraz przewód do wtyku zasilania DIN7, przewód nie może mieć średnicy większej niż 6,8 mm, ja użyłem takiego przewodu -> Link oraz krótkie odcinki pojedynczych przewodów 0,75 mm.

Potrzebne będą również wtyki i szpilki goldpin, nakrętki na śruby M3 oraz koszulki termokurczliwe.

Lutowanie zaczynamy od najmniejszych elementów.


Diody D2 i D3 P6KE 15CA są dwukierunkowe i nie ma znaczenia jak je wlutujemy.


Diodę D4 1N4007 lutujemy zgodnie z oznaczeniem na płycie.


Następnie lutujemy większe elementy, jak kondensatory pamiętając o odpowiedniej polaryzacji + , -.


Na zdjęciu widać również wlutowanie diody D1 1N5908 zgodnie z oznaczeniem na płycie.

Na końcu lutujemy transformator i przykręcamy go śrubami M3.


Teraz przystępujemy do lutowania wtyczki DIN7.

Ucinamy przewód YLYs 4x0,75 na długość około 2 m.

Sygnały w gnieździe są takie jak pokazano niżej.


Lutujemy przewody do wtyku, będą tak tak samo od strony lutowania, jak pokazano wyżej.


Proponuję czerwony przewód dolutować do pinu 5 +5V, brązowy do GND pin2, a zielony i biały do pinów 6 i 7.

Teraz w obudowie z boku wiercimy otwór, wkładamy element zaciskowy do prowadzenia kabla, przekładamy kable i zaciskamy zaciski.


Zaciski zaciskamy razem z czerwoną izolacją.

Dla pewności wtyczkę zasilania do Commodore zalałem klejem na gorąco, wcześniej sprawdzając miernikiem poprawność lutowania w wtyku i zaciskach.

Wiercimy w obudowie otwory z boku z drugiej strony pod gniazdo zasilania, wkładamy zasilacz do obudowy, przykręcamy śrubami do spodu obudowy, lutujemy 2 przewody z zaciskami do gniazda zasilania, wkładamy gniazdo zasilania i przykręcamy śrubami do obudowy.


Na końcu wtykamy końcówki zacisków do pól w zasilaczu, zielony i biały do 9V, czerwony do +5V i brązowy do GND.


Teraz pozostało dolutować przewody z wtykami goldpin do diody pamiętając, że dłuższa nóżka diody to jest +.

Wiercimy otwór w górnej części obudowy, wkładamy oprawkę i diodę oraz podłączamy diodę led do goldpinów.


Skręcamy obudowę i mamy gotowy zasilacz.


Płytka do budowy zasilacza do kupienia na Allegro -> Link









niedziela, 10 czerwca 2018

Budowa adaptera myszki PS/2

W Commodore 64 możemy wykorzystać myszkę PS/2 budując odpowiedni konwerter.

Konwerter oparty jest na układzie Atmega8 i wykonałem go na płytce uniwersalnej.



Do budowy wykorzystałem:

1. Atmega8
2. Płytka uniwesalna
3. Wtyk DB9
4. Gniazdo mini din 6 pin
5. Rezystory 10K - 4 szt.
6. Kawałki przewodów.

Projekt jest opisany na stronie -> Link

Schemat połączeń.



Programowanie przeprowadziłem programatorem USBasp, który opisałem tu -> Link

Programator należy ustawić w tryb slow, zwierając JP3.



Schemat podłączenia programatora do Atmegi 8.



Programowanie przeprowadziłem w programie Sinaprog -> Link

Najpierw programujemy Fuse bity ustawiając na 8 Mhz i klikamy Program.



Atmegę programujemy plikiem -> Link

Po zaprogramowaniu powinno już wszystko działać.

Adapter testowałem w programie Amica Paint.



Przykładowy napis wykonany myszką.


Podłączony adapter do Commodore 64 z myszką PS/2.


Adapter zaizolowałem koszulką termokurczliwą i owinąłem taśmą.


Adapter może pracować w różnych trybach.

Na wyłączonym Commodore 64 wciskamy przycisk myszy i włączamy Commodore 64:

Prawy przycisk - rozruch w trybie dżojstika
Lewy przycisk - rozruch w trybie szybkim
Środkowy przycisk - rozruch w trybie wolnym

czwartek, 31 maja 2018

Budowa SD2IEC - obudowa i płytka drukowana

Dzisiaj wykonałem SD2IEC z obudową na wytrawianej płytce metodą druku na drukarce laserowej.

Opis budowy we wcześniejszym wpisie na blogu -> Link

Gotowe SD2IEC.


Interfejs posiada dwie diody led, zieloną - odczyt i czerwoną - error.
Trzy przyciski: reset, disk 1, disk 2.



Płytka drukowana wykonana metodą termotransferu z wydruku na drukarce laserowej na papierze kredowym, później prasowanie żelazkiem, moczenie, ściąganie papieru i wytrawianie.



Projekt płytki do wydruku -> Link

Płytka z wlutowanymi elementami i opisem.



Płytka od spodu.



Z tyłu wykonałem gniazdo zasilania i przełącznik zmiany numeru stacji dysków.



Przełącznik w pozycji: 1 -on, 2 - off numer 9, 1 - off, 2 - on numer 10, 1 - on, 2 -on numer 11.

Do zasilania można wykorzystać standardowy zasilacz 5V z wtyczką.

Dodatkowo wykonałem przewód do zasilania z gniazda magnetofonu.

sobota, 26 maja 2018

Pi1541, czyli emulator stacji dysków 1541 na Raspberry Pi

Pi1541 jest to emulator stacji dysków na Raspberry Pi.

W przeciwieństwie do SD2IEC obsługuje wszystkie loadery i pozwala na uruchomienie wszystkich gier i dem, jest pełnym emulatorem stacji dysków Commodore 64, zawiera ROM realnej stacji dysków.

Obecnie działa na Raspberry Pi 3B.

Do budowy wykorzystałem obudowę do Raspberry Pi 3, efekt końcowy.



Z obudowy wypuszczony jest krótki odcinek przewodu z wtyczką 6 DIN.



Użyłem następujących komponentów:

1. Konwerter poziomu napięć 3.3V - 5V
2. Gniazdo żeńskie goldpin 2x20 pin
3. Wtyk DIN 6pin
4. 4 przyciski tact switch
5. Zielona dioda led
6. Rezystor 100 ohm
7. Mały buzzer
8. Przewody
9. Płytka uniwersalna

Schemat Pi1541.


Zmontowany interfejs.



Od spodu zamontowany jest mały buzzer.



Do uruchomienia wymagany jest ROM stacji dysków 1541, romy można znaleźć w folderze DRIVES w emulatorze Vice, wszystkie romy stacji dysków Commodore są do pobrania tu -> Link

Kartę SD do Raspberry Pi należy sformatować na FAT32.

Na kartę SD do głównego folderu kopiujemy pliki: bootcode.bin, fixup.dat i start.elf -> do pobrania tu -> Link

Na kartę SD rozpakowujemy pliki z PI1541.zip -> Link

Do głównego folderu kopiujemy jeden z plików ROM stacji dysków, może to być: dos1541 lub d1541II

Zawartość karty SD powinna wyglądać jak niżej.


Gotowa do skopiowania cała zawartość wszystkich plików potrzebnych do uruchomienia Pi1541 jest do pobrania tu -> Link

Pliki wystarczy wypakować i skopiować na kartę SD do głównego folderu.

Po skopiowaniu plików na kartę SD do folderu 1541 kopiujemy obrazy dyskietek, programy, gry dema itd..

Po włożeniu karty SD do Raspberry Pi, podłączeniu przewodu HDMI i zasilania ukaże się widok emulatora Pi1541.



W menu poruszamy się za pomocą przycisków Select, Up. Down i Exit.

Select - wybór pliku lub folderu
Up - góra
Down - dól
Exit - wyjście



Po wybraniu obrazu dyskietki d64 mamy:



W Commodore 64 wydajemy standardowe komendy, takie jak dla stacji dysków:

LOAD"$",8 - załadowanie listy plików
LIST - wyświetlenie listy plików
LOAD"nazwa_programu",8 - załadowanie programu
RUN - uruchomienie programu



Nie trzeba jednak podłączać dodatkowego telewizora i można obsługiwac jak standardową stację dysków i użyć programu FB64 do poruszania się po zawartości kary SD.

Po uruchomieniu wystarczy wpisać:

LOAD"FB64",8

i

RUN



Uruchomi się program CBM-Browser i poruszamy się w nim na Commodore 64.



Na karcie SD znajduje się plik options.txt, gdzie możemy zmieniać opcje emulatora, usuwamy // sprzed opcji.

deviceID = 9 - możemy zmienić numer napędu na 9

ROM2 = Jiffy.bin
ROM3 = d1541II - możemy załadować inne ROM-y stacji dyskietek

OnResetChangeToStartingFolder - opcja ustawiona na 1 - z każdym resetem Commodore 64 będzie następował powrót do głównego folderu 1541.

SoundOnGPIO = 1 - używanie buzzera.

SplitIECLines i InvertIECInputs - opcje dla innego schematu Pi1541.

piątek, 18 maja 2018

Budowa joysticka typu Arcade do Commodore 64

Joysticki do Commodore 64 nie są już praktycznie produkowane, istnieje jedynie jedna firma w Polsce, która produkuje jeszcze joysticki do Commodore 64, jednak joysticki te są dosyć drogie i kiepskiej jakości.

Postanowiłem zbudować samodzielnie joystick typu Arcade na mikrostykach.



Do budowy wykorzystałem:

1. Wtyk DB9 z obudową
2. Przewód z co najmniej 6 przewodami
3. Obudowę Z59
4. Joystick typu Arcade
5. Przycisk typu Arcade
6. Przewody z wtykami
7. Płytkę uniwersalną
8. Goldpiny
9. Śruby oraz wkręty
10. Gumowe nóżki

Jako obudowę wykorzystałem obudowę hermetyczną Z59 jasną o wymiarach: 125x115x58 mm.



Obudowę można kupić na Allegro.

Joystick zakupiłem w serwisie Aliexpress -> Link

Przycisk typu Arcade również na Aliexpress -> Link

Schemat budowy joysticka jest bardzo prosty i nie zawiera praktycznie żadnej elektroniki.



Poszczególne piny w gnieździe DB9 są zwierane do masy.

Piny są zazwyczaj opisane na samym wtyku numerami jak na schemacie.

Wystarczy je podłączyć do mikrostyków w joysticku.



Wykorzystałem wtyki z krótkimi przewodami, które zostały mi z budowy maszyny arkadowej.

Przewody podłączyłem do goldpinów na płytce uniwersalnej, do której zostały dolutowane przewody z wtyku DB9.



Przycisk okazał się zbyt wysoki do obudowy i na dole wywierciłem otwór.



Na spodzie obudowy przykręciłem gumowe nóżki.



Joystick przykręciłem śrubami z nakrętkami do obudowy po wywierceniu otworów.

Gotowy joystick.




Budowa TZXDuino dla Zx Spectrum

Do budowy emulatora magnetofonu na Arduino, czyli TZXDuino wykorzystałem: 1. Arduino Mini Pro 5V 2. Wyświetlacz LCD 16x2 wraz modułem I2C...