EasyFlash³ in rot bestückt


Damit man nun die fertige Hardware am C64 verwenden kann, muss noch die Software für das EF3-Menü eingespielt werden.
Es gibt dafür zwei verschiedene Cartridge Files
in zwei unterschiedlichen Versionen: (je nachdem welche CPLD Version ihr geflasht habt!!!)
ACHTUNG!!! Für alle, die Probleme beim Flashen haben. Das kann an einem bereits vorprogrammierten CPLD liegen.
Im Forum64 hat "no parity" eine Version erstellt, die via JTAG Kommando zuerst ein Unlock und Delete auf dem CPLD macht.
Diese Versionen haben bei mir bisher bei allen CPLDs funktioniert:
Skoe Version:
Kim Jorgensen:
Hat man ein komplett neues EF3 gebaut hat, dann sollte man das EF3-Init einspielen.
Am einfachsten geht das, wenn man im Besitz eines SD2IEC Laufwerks ist. Aber es ist auch möglich das EF3-Menü von Diskette aus zu installieren.
Kopiert folgende Dateien auf euere SD2IEC SD-Karte:
Dann startet euren C64 mit angestecktem EF3. Ist noch keine Software im EF3, dann bekommt ihr einen blauen Screen.
Mit der mittleren Taste (SPECIAL) eures EF3 kommt ihr einfach in das C64 BASIC.
Jetzt lädt ihr EasyProg es sollte folgender Schirm erscheinen:
Mit der Taste "M" kommt man in das erste Menü, hier könnt ihr nun "Write CRT to flash" auswählen und das EF3-Init zu flashen.
Bevor man das macht (bei neu gebauter Hardware) sollte man vorher ein "Erase all" durchführen, damit alle Slots sauber gelöscht sind.
Wurde das EF-Init fertig geflasht, kann man einen C64 Neustart durchführen oder die Linke Taste des EF3 (MENU) drücken, dann kommt ihr ins EF-Menü.

Fertig!
Eigentlich das gleiche Vorgehen wie für SD2IEC. Mit dem Unterschied, dass auf eine Diskettenseite das EF3-Init nicht Platz findet.
EasyProg und EF-Menu passen aber auf eine Diskettenseite, und man kann sich ein Menü ohne die Kernal und Freezer flashen.
In diesem Teil des Tutorials wird erklärt, wie die Logik in das CPLD eingespielt wird. Um das CPLD zu flashen ist es zuerst notwendig den FTDI Chip zu konfigurieren. In den folgenden Abschnitten wird erklärt wie man beide Chips programmiert.

Der Chip verwendet ein EEPROM, indem die entsprechenden Parameter gespeichert werden. Zur Konfiguration des FTDI Chips gibt es mehrere Herangehensweisen.
Am einfachsten ist es, das fertige Tool von FTDI names FT_Prog unter Windows zu verwenden. Skoe hat dazu eine Anleitung mit der passende XML Datei vorbereitet, die die benötigte Konfiguration enthält. Also im Grunde FT_Prog starten, XML Laden, USB Kabel an EF3 anstecken (Dieser Schritt benötigt keinen C64!), Konfiguration einspielen, fertig.
Dieser Ablauf funktioniert leider nur dann, solange man keinen vorprogrammierten Chip eingekauft hat. Da der Chip relativ teuer ist, werden auf ebay oder AliExpress sehr gerne Chips aus Restbeständen einer Produktion angeboten. Diese Chips sind in vielen Fällen bereits vorprogrammiert. Das heißt, sie beinhalten oft andere VENDOR oder PRODUCT Ids, als ein jungfräulicher Chip. Hat man so einen Chip ergattert und bereits verlötet, dann ist es mit FT_PROG nicht mehr möglich den Chip umzuprogrammieren.
Vielen Dank dafür an die Firma FTDI!
Hier ein paar Beispiele von Chips, die ich über ebay eingekauft habe:
usb 3-3.4.4: new full-speed USB device number 10 using xhci_hcd
usb 3-3.4.4: New USB device found, idVendor=1789, idProduct=0016, bcdDevice= 6.00
usb 3-3.4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 3-3.4.4: Product: TEMS Symphony Phone MIF ACM
usb 3-3.4.4: Manufacturer: FTDI
usb 3-3.4.4: SerialNumber: 30X0U6HT
usb 3-3.4.4: new full-speed USB device number 11 using xhci_hcd
usb 3-3.4.4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00
usb 3-3.4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 3-3.4.4: Product: NCP_PRNT
usb 3-3.4.4: Manufacturer: LAUNCH
usb 3-3.4.4: SerialNumber: 170000E6
usb 3-3.4.4: new full-speed USB device number 10 using xhci_hcd
usb 3-3.4.4: New USB device found, idVendor=0403, idProduct=c76a, bcdDevice= 6.00
usb 3-3.4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 3-3.4.4: Product: TITENG TP-9000
usb 3-3.4.4: Manufacturer: TITENG
Schlimmer noch, es gibt hin und wieder auch Händler, die fake Chips verkaufen. Bitte werft unbedingt einen Blick auf die Bewertungen von den Verkäufern oder kauft die Chips bei einem seriösen Elektronikhändler. Wenn ein FTDI Chip für unter 2€ angeboten wird sollte man skeptisch sein.
Eine andere, nicht weniger komfortable Lösung, ist das Tool ftdi_eeprom, das in den meisten Linux Distributionen enthalten ist. Unter Ubuntu / Debian kann man es einfach mit folgenden Kommando installieren:
sudo apt install ftdi-eeprom
ftdi_eeprom ist ein Commandline Tool, mit dem sich auch FTDI Chips umprogrammieren lassen, die bereits vorprogrammiert wurden. Ich habe dazu ein paar Dateien vorbereitet, die einem dabei helfen werden.
Um zu zu erkennen welche VENDOR und PRODUCT Id in den Chip programmiert wurde, ist der Befehl dmesg sehr praktisch. Mit dmesg wird der Kernel Log des Linux Systems dargestellt. Hier ein Log eines richtig konfigurierten EF3.
dmesg -r
usb 3-3.4.4: USB disconnect, device number 11
usb 3-3.4.4: new full-speed USB device number 12 using xhci_hcd
usb 3-3.4.4: New USB device found, idVendor=0403, idProduct=8738, bcdDevice= 6.00
usb 3-3.4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 3-3.4.4: Product: EasyFlash 3
usb 3-3.4.4: Manufacturer: skoe
usb 3-3.4.4: SerialNumber: A63702E2
Um nun den Chip unter Linux zu konfigurieren bitte folgender Schritte durchführen:

Danach folgenden Befehl ausführen:
sudo ftdi_eeprom --flash-eeprom --device i:0x0403:0x8738 easy.conf
Hat das Umkonfigurieren des FTDI Chips funktioniert, dann sollte mit dmesg nun die Meldung ausgegeben werden:
dmesg -r
usb 3-3.4.4: USB disconnect, device number 11
usb 3-3.4.4: new full-speed USB device number 12 using xhci_hcd
usb 3-3.4.4: New USB device found, idVendor=0403, idProduct=8738, bcdDevice= 6.00
usb 3-3.4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 3-3.4.4: Product: EasyFlash 3
usb 3-3.4.4: Manufacturer: skoe
usb 3-3.4.4: SerialNumber: A63702E2
Als nächstes kann nun das CPLD mit der benötigten EasyFlash3 Logik geflasht werden.

Zum Flashen des CPLDs hat Skoe das Programm easp bereitgestellt. Es ist ein Open Source Tool, das mit Hilfe des FTDI Chips das CPLD via JTAG Schnittstelle programmiert. Es basiert auf dem Programm „prog_cpld“ von Tilmann Hentze.
Weiters benötigt man die Dateien, die die richtige CPLD Logik enthalten. Entweder man verwendet die Dateien von Skoe oder man verwendet die neuere Version von Kim Jorgensen.
Ich persönlich verwende immer die neuere Version von Kim Jorgensen, weil damit auch Final Cartridge III+ unterstützt werden.
Um das CPLD zu flashen müssen folgenden Vorbedingungen erfüllt werden:

CPLD Dann wird das easp gestartet, der Aufruf ist ganz simple:
./easp -p 0x8738 ef3-cpld-1.2.1.svf

Nach der Meldung <<< All TDO outputs matched to the expected values! >>> wurde auch das CPLD erfolgreich programmiert.
Hin und wieder kommt es vor, dass eine gewisse Anzahl an TDO outputs als falsch gekennzeichnet wird. Dann sollte man sich nochmals alle Pins des CPLD ansehen. Manchmal ist ein Pin einfach nicht ordentlich verlötet.
Bekommt man die Meldung <<< 49127 TDO outputs didn't match to the expected values... >>> dann hat man vergessen die 4 Jumper auf PROG zu setzten.
Wenn man großes Pech hat, dann ist das CPLD beschädigt und lässt sich gar nicht programmieren, dann sollte man es mit einer Heißluftstation entlöten und gegen ein Neues tauschen.
Zur Info, während des Flashvorgangs stürzt der C64 ab. Sofern alles gut gelaufen ist, kann man nun die mittlere Taste des EF3 betätigen (SPECIAL) um wieder in den blauen READY Schirm des C64 zu gelangen.
Jetzt fehlt nur noch die Programmierung des EF3 Menüs. Dazu mehr im nächsten Kapitel.
THT steht für (engl.: through-hole technology), also all das was durch Löcher in der Platine gesteckt und eingelötet wird. Im Gegensatz dazu werden alle Bauteile, die bisher gelötet wurden, SMT (engl.: surface-mounting technology) oder SMD (engl.: surface-mounting device) genannt.
Würde man die Stiftleisten so einlöten wie es eigentlich vorgesehen ist, dann würden die fertigen EasyFlash³ Platinen nicht in ein standard C64 Cartridge Gehäuse passen. Es gibt zwei Möglichkeiten, dieses Problem zu umgehen:
a.) Stiftleisten vorher:
b.) Stiftleisten nachher:

Die Stiftleisten dann von oben verlöten.
Hat man nun alle Teile eingelötet folgt ein Bad in Isopropanol. Am besten ordentlich einziehen lassen und dann mit einem Pinsel oder einer kleinen Bürste alle Stellen ordentlich schrubben.
Danach mit einem fusselfreien Tuch trockenwischen. Am besten eigenen sich dazu "Clean Room Wipes".
Video folgt in Kürze
Im zweiten Teil des EF3 DIY Tutorials zeige ich euch wie die kleinen Bauteile eingelötet werden. Der Vorteil am "Hühnerfütter" - wie die kleinen Teile gerne genannt werden - ist, dass es sehr einfach eingelötet werden kann. Der Nachteil, auf dem EF3 gibt es relativ viel davon. Vor allem von den Stützkondensatoren. Zeitlich gesehen benötigt man für die kleinen Bauteile in etwa genau so lange wie für die ICs.
Bei den Widerstandsnetzwerken gibt es auch ein paar kleine Tricks, wie sie am besten eingelötet werden. Ich habe es mir angewöhnt R2 vor R1 zu löten, weil R1 stört, wenn er fix an seinem Platz ist. Das kommt natürlich auch darauf an, ob man Link- oder Rechtshänder ist. Außerdem sollten die Netzwerke nicht zu grob mit der Pinzette behandeln werden, da sie sehr spröde sind. Es können Teile von der Lackierung oder von den Kontaktflächen abbrechen. Es empfiehlt sich, die Bauteile vorher optisch zu kontrollieren. In seltenen Fällen sind die Kontakte bereits defekt, wenn man sie aus dem Filmstreifen nimmt.
Beim Einlöten wird das Widerstandsnetzwerk seitlich mit der Pinzette ausgerichtet und festgehalten. Dabei werden zwei Kontakte gelötet. Danach mit sanftem Druck das Array von oben fixieren und die restlichen zwei Kontakte löten.
Hier gilt im Grunde das Gleiche wie für R1 und R2.
Hier gibt es grundsätzlich nicht viel zu erklären. Den Kondensator mit der Pinzette festhalten und ausrichten. Auf einer Seite anlöten. Dann mit der Pinzette sanften Druck von oben ausüben und Lötstelle nochmals nachlöten. Dadurch wird sichergestellt, dass der kleine Kondensator auch richtig gut auf der Platine aufliegt. Es kann passieren, dass der Kondensator dabei verrutscht. Das ist aber nicht weiter schlimm, dann einfach nochmal seitlich ausrichten.
Fünfzehn an der Zahl gibt es einzulöten. Gleich an alle Stellen Flussmittel auftragen, dann kann man die Kondensatoren Stück für Stück ganz rasch einlöten.
Die EasyFlash³ Hardware wurden von Skoe und der Hilfe vieler anderer Menschen entwickelt und ist eine universelle Speicherkarte für den Commodore 64.
Die EF3 Hardware ist Open Source bzw. Open Hardware und mit einer CC-BY-SA 3.0 Lizenz versehen. Das bedeutet Jeder darf die Hardware nachbauen unter der Bedingung, dass der Entwickler genannt wird. Werden an der Hardware bzw. der Software Modifikationen gemacht, so müssen diese Änderungen ebenfalls mit der gleichen Lizenz veröffentlicht werden.
Zu allererst möchte ich auf ein paar Vorbereitungen eingehen, die für den Bau des EF3 notwendig sind.
Alle benötigten Bauteile findet man auf der EF3 Entwicklerseite von Skoe: [LINK]
Ich empfehle https://aliexpress.com für das Bestellen der Bauteile, das dauert zwar etwas länger, dafür sind die Teile günstiger.
| Bauteil | Anz. | Beschreibung | Aliexpress Link |
| U1 | 1 | 3.3V 150mA LDO Voltage Regulator, SOT-23-5 | Link |
| U2 | 1 | CPLD XC95144XL-TQ100 | Link |
| U3 | 1 | HC53 25 MHz Oscillator | Link |
| U4 | 1 | MX29LV Series 3 V 64Mb 70ns Flash - TSOP-48 | Link |
| U5 | 1 | 256-kbit (32K x 8) 3.3V 55ns SRAM - sTSOP-28 | Link |
| U6 | 1 | 74LVC14 or 74LVX14 Schmitt Trigger SOIC-14 | Link |
| U50 | 1 | FT245RL USB Full Speed to Parallel FIFO - SSOP-28 | Link |
| D1 | 1 | LED red, 2mA, 3mm | Link |
|
C3-C15, |
15 | Ceramic Capacitor 100nF, 0603, X5R/X7R | Link |
| C1, C2, C52 | 3 | Ceramic Capacitor 10uF, 0805, X5R/X7R | Link |
| R1,R2,R50,R51 | 4 | SMD Chip Resistor Network 4 x 100Ohm, 4 x 0603 |
Link |
| R3, R4, R5 | 3 | Chip Resistor 100kOhm 0805 | Link |
| R6,R7,R8,R52,R53 | 5 | Chip Resistor 4.7kOhm 0805 | Link |
| R9 | 1 | Chip Resistor 470Ohm 0805 | Link |
| FB50 | 1 | Ferrite Bead 120Ohm 3000mA DCR 0.04Ohm, 0805 | Link |
| J51 | 1 | Socket Right Angle Type B Surface Mount Mini USB | Link |
| P1, P2, P3 | 2.54 mm Pin Header | Link | |
| SW1, SW2, SW3 | 3 | Button Right Angle Through Hole Tactile Switch | Link |
| 4 | Jumper, 2.54mm | Link |
Die Gerber Files zum Bestellen von Platinen findet man ebenfalls auf der Entwicklerseite von Skoe: [LINK]
Ich bestelle meine Platinen bei ALLPCB. Die Lieferung erfolgt recht schnell (ca. 1 Woche) und die Qualität passt. Außerdem hatte ich noch keine Probleme mit dem Zoll. Man muss dazu nur die Eigenschaften der Platine (62mm * 84mm, Dicke 1.6mm, 2 Layers) angeben und das ZIP File mit den Gerber Dateien hochladen. Als Beschichtung empfehle ich "immerson gold". Ebenso sollte man "Golden Finger Beveling" auf "yes" stellen, das ist die Fase beim Steckkontakt.

Eine fertig produzierte Platine schaut dann folgendermaßen aus: [LINK]
Hat man alle Teile beisammen, dann kann es mit dem Löten losgehen.
Nun kommen wir zum Löten der ersten Bauteile. Man sollte immer mit dem schwierigsten Bauteil beginnen und sich zu den leichteren vorarbeiten. Wenn man den schwierigsten Teil geschafft hat, dann schafft man auch die leichteren Teile.
Das schwierigste bei diesem Bauteil ist die exakte Platzierung. Hat man das Teil erst mal richtig ausgerichtet und diagonal mit Lötstellen angeheftet, dann ist der Rest des Lötens eigentlich recht simpel.
Der nächste Baustein ist der Flashspeicher.
Gefolgt vom SRAM, das lässt sich relativ einfach einlöten.
Beim Spannungsregler muss man besonders auf den mittleren Pin aufpassen, auf der Seite mit den drei Pins. Wenn dieser nicht ordentlich verlötet ist, dann werden die 3,3V nicht korrekt erzeugt.
Die SMD Chips mit größeren Pins sollten nun eigentlich kein Problem mehr darstellen, wenn man die vorhergehenden bereits erfolgreich eingelötet hat.
Der FTDI Chip hat etwas geringere Abstände als der Schmitt Trigger, lässt sich aber trotzdem einfach einlöten.
Beim Verlöten des USB Steckers sollte man nicht zu viel Lötzinn auf der Spitze haben, sonst bekommt man Lötbrücken, die man nicht mehr so einfach weg bekommt.
Der Oszillatorbaustein ist etwas tricky einzulöten, wenn man das noch nie gemacht hat. Bevor man diesen anlötet, ist es empfehlenswert, Lötzinn auf die 4 Pads zu löten, sodass schöne runde Lötstellen entstehen.
Auf diese Stellen setzt man den Baustein und lötet in dann fest.
Heute sind EasyFlash³ Platinen in rot eingetroffen.

Der Käfer mit den meisten Beinen auf dem EasyFlash3
Ein paar Bilder von einer unbestückten EasyFlash³ Platine. Gemacht mit meinem neuen Digitalmikroskop.




