Google Analytics

29 september 2021

Bouw: PI1541 floppy drive emulator

In deze Blog beschrijf ik de bouw van de PI1541 floppy drive emulator met behulp van een de PI1541 print die op een Raspberry PI 3 gestoken kan worden. Met deze hardware en bijbehorende software wordt een VIC-1541 floppy drive exact geëmuleerd.

Als eerste voorzie ik de Raspberry Pi van koelblokjes omdat de IC's bij langdurig gebruik vrij heet kunnen worden. Zo'n koelset, bestaande uit 3 precies passende koelblokjes en voorzien van 3M thermisch geleidende plakfolie, kan bv. besteld worden bij Reichelt.

Hierboven zie je de Raspberry PI 3 met twee koelblokjes geplaatst aan de bovenkant van de print en één aan de onderkant.

De PI1541 is een IO adapter die op de 40 polige GPIO connector van de Raspberry PI kan worden aangesloten.

Aan de voorkant zitten twee DIN aansluitingen: 1 om aan te sluiten op de Commodore computer en de andere om een tweede floppy drive of printer door te lussen. Aan de zijkant zitten 5 knoppen die gebruikt worden om door de bestanden te navigeren die op de SD kaart aanwezig zijn.

Op de PI1541 zien we linksboven een jumper t.b.v. aan- uitschakelen van de ronde speaker eronder die de originele floppy drive geluiden nabootst. Daarnaast zit een aansluiting voor een externe speaker. Verder een rode en groene led voor de power en de disk activiteit. Voor de interface is een 74LS08 IC aanwezig (4 voudige AND gate) en het blauwe opsteekprintje is een bi- directionele level converter tussen de 5V van de Commodore en de 3.3V van de Raspberry PI. Rest nog een resetknop en in het midden een 4polige connector t.b.v. een 0.96 inch OLED scherm. Hierdoor is de module ook zonder beeldscherm te gebruiken. 

De PI1541 wordt op de Raspberry PI geplaatst zoals op de foto hieronder.

De PI1541 software wordt op de Micro SD kaart gezet zoals beschreven op: https://cbm-pi1541.firebaseapp.com/

Nu kan het geheel worden getest, mijn PI1541 blijkt te werken met uitzondering van het OLED display. Er is wel beeld via de HDMI uitgang van de Raspberry PI. Dit bleek twee oorzaken te hebben. De eerste was een fout in het configuratiebestand options.txt. Hieronder staat een gedeelte hiervan. De geel gemarkeerde instellingen zijn van belang voor het gebruikte OLED display en de aansluitingen van de PI1541 op de Raspberry PI.

// If you are using a LCD screen then specify it here
LCDName = ssd1306_128x64
//LCDName = ssd1306_128x32
//LCDName = sh1106_128x64
// If you are using a LCD screen and you would like PageUp and PageDown keys to work with it (rather than the HDMI screen) then specify this option
//KeyboardBrowseLCDScreen = 1
// change startup logo on oled - 1541ii or 1541classic
//LcdLogoName = 1541ii
LcdLogoName = 1541classic
//LcdLogoName = customfile.raw
// If you are using I2C LCD you can optionally change what pins it is connected to.
// (defaults to 0 for non-split lines (Option A) or 1 for split lines (Option B))
//i2cBusMaster = 0 //SDA - pin 27 SCL - pin 28
i2cBusMaster = 1 //SDA - pin 3 SCL - pin 5
i2cLcdAddress = 60 // I2C display address in decimal and shifted. 60 == 0x78, 61 == 0x7A

Ik heb de PI1541 printsporen van het OLED display voor de data (SDA) en de clock (SCL) gevolgd en deze kwamen uit op GPIO pin 3 en 5. In de configuratie stond i2cBusMaster default op 0 dus op pin 27 en 29. Aanpassing van deze instelling hielp echter niet.
Daarna heb ik het I2C adres van het OLED scherm bepaald m.b.v. een proefopstelling met een Arduino Nano waarbij ik de I2C uitgangen heb verbonden met het OLED display. Ik heb software gemaakt en geladen die alle I2C adressen scant en bij een reactie van het display het gevonden adres toont. Dit adres bleek te kloppen.

Tijdens de inspectie van de PI1541 print zag ik dat de soldeerbruggen aan de onderkant van de print waren gesoldeerd voor Bus 1 i.p.v. Bus 0. Nadat ik deze had aangepast werkte het OLED display.

Nu kan het geheel (m.u.v. het OLED display) worden ingebouwd in een 3D geprint kastje. Als laatste wordt het OLED display bovenop het kastje aangesloten en wordt nog een afdekkapje geplaatst.

Het opstart logo

Bestandsselectie d.m.v. de drukknoppen

De complete PI1541 in een 3D geprinte omhulling klaar voor gebruik

Geen opmerkingen:

Een reactie posten