PicoX-8: Universalerweiterung für den Epson PX-8

  • Hallo,


    ich habe vergangene Woche von explit einen Epson PX-8 erhalten, und zu meiner Freude kam diese schöne Maschine mit einer RAM-Disk-Erweiterung ("RAM DISK UNIT 60"), die auf 120 Kilobyte aufgerüstet ist. Natürlich waren die drei Akkus (NiCd) im Eimer und ich hatte erst geplant, sie durch neue NiCd's zu ersetzen, aber dann habe ich mir die Erweiterungkiste ein bisschen genauer angesehen und überlegt, dass es doch eigentlich viel schöner wäre, einen modernen LiPo-Akku dort einzubauen und damit das ganze System zu versorgen.


    Die Erweiterungsbox ist eigentlich ziemlich groß, aber die Aussparung für den Akku ist ziemlich klein, und der Rest der Box wird für die monströse RAM-Disk (mit dynamischem RAM und eigenem Z80) verbraten:



    Da liegt es doch eigentlich nahe, die Platine komplett durch etwas moderneres zu ersetzen: Ladeelektronik für LiPo-Akku, ein Raspberry Pi Pico für Modem- und RAM-Disk-Emulation und vielleicht noch mehr, und ein CPLD zur Pegelanpassung und für die Adressdekodierung. Ich habe also angefangen, einen Protypen zu bauen:



    Für die Stromversorgung habe ich erstmal auf Fertigmodule (Ladecontroller und Boost-Converter von 3.7V auf 5V) zugegriffen, aber das soll natürlich dann auf die neue Platine integriert werden. Eine kleine Herausforderung wird dabei, das so zu gestalten, dass der Akku im Betrieb geladen werden kann. Es scheint, dass die meisten LiPo-Ladecontroller-Chips gern keine Last auf dem Akku haben wollen, wenn geladen wird, also muss ich einen Weg finden, den Rechner während des Ladevorgangs aus dem USB-Port zu speisen und unterbrechungsfrei zwischen Lade- und Akkubetrieb umzuschalten. Wenn jemand einen Tipp für eine fertige Schaltung hat, wäre ich interessiert.


    Die vorhandenen Akkus habe ich ausgebaut, und ich versorge das gesamte System nun mit +5V aus dem Boost Converter (oder zum Testen aus dem USB-Port). Die ursprüngliche Ladeelektronik wird nicht mehr verwendet, und die 5V landen direkt auf der auch auf dem Erweiterungsbus vorhandenen Batteriespannungs-Leitung (VB).


    Die einfachste Funktion der Erweiterungsbox ist das WiFi-Modem. Es gab im Original auch eine Modem-Erweiterung (wahlweise auch als Kombination mit RAM-Disk), daher ist die serielle Schnittstelle auch auf den Erweiterungsbus geführt. Der UART-Empfänger im Rechner kann über einen IO-Port zwischen der herausgeführten RS232-Schnittstelle und dem Erweiterungsbus umgeschaltet werden. Die Modem-Software kann über einen Port erkennen, ob ein Modem am Erweiterungsbus hängt, und dann eben entsprechend umschalten. Ich habe das Statusregister im CPLD realisiert, und damit funktioniert dann auch das "DAK Communications ROM":



    Als Modem-Software verwende ich auf dem Pico das PicoWiFiModem, wobei ich noch kleinere Anpassungen machen muss, um es mit DAK Comm kompatibler zu machen.


    Die nächste Aufgabe wird dann die Implementation der RAM-Disk. Es gibt eine funktionierende Emulation, die sich vermutlich recht einfach portieren lässt. Ich bin allerdings noch nicht sicher, ob ich die RAM-Disk und das Modem in einem Pico zum Laufen kriege. Theoretisch sollte das passen, aber praktisch ist es mir vielleicht zu viel Fummelei und ich packe einfach noch einen zweiten Pico W auf das Board.


    Wenn jemand Interesse an so einer Erweiterung hat, bitte gerne hier äußern. Das Projekt ist auch auf GitHub.

  • Gerade, als ich das hier fertig geschrieben hatte, sah ich diesen Post:


    https://mastodon.social/@BoscoLab@social.tchncs.de/112745852095275915



    Vielleicht will ich doch keinen LiPo-Akku nehmen? Was sind die Alternativen?

  • Wie hat er das denn aufgebaut?

    Scheinbar gar nicht: "The battery was new and not connected"

  • Wow, echt cool, was du da machst.


    ich habe noch ein NEC PC-8300 der auch noch Ni-Mh Akkupack aus 4xAA Akkus verwendet. Da werde ich deine Lösung im Auge behalten...

    Habe da auch überlegt, etwas "moderneres" einzubauen.


    Ansonsten danke fuer deine Sun SparcStation 20, hans !

    Erstmal habe ich die Tastatur, Maus und den Deckel einer Retrobright Prozedur unterzogen, genauer Bericht folgt später, wenn alles fertig ist.

    Telegram: explit

    Mastodon: explit@infosec.exchange

  • Wenn jemand Interesse an so einer Erweiterung hat, bitte gerne hier äußern.

    Interesse hab ich. Muß nur den Rechner erstmal stabil zum Laufen bekommen.

    Was für Probleme macht denn Dein Gerät? Vielleicht lohnt es sich, erstmal die Stromversorgung zu modernisieren?

  • Hallo Hans,

    dein Projekt hört sich gut an.

    Habe vor einiger Zeit meinen mit dem SD-Interface von Wiliam R. Cooke aufgerüstet

    Damit werden 4LW a320kB simuliert, läuft perfekt nur ein separates Gehäuse mit dem "Kabelsalat" gefiel mir nicht und ein Erweiterungsmodul zum Unterschrauben nicht auffindbar (kein Wunder denn wenn einer eins hat rückt es verständlicherweise nicht mehr raus ;-)).


    Im 2.Anlauf ein Modulgehäuse aus ASB-Platten geschnitzt, dort wieder das SD-Interface eingebaut und für die Stromversorgung das Elektor-Modul mit LiPO-Zelle vorgesehen.

    Hier ist der Tip von Franky der bessere Weg, muss nur die Sicherungs-/Ladeschaltung angepasst werden.


    Der restliche Platz sollte von einer RAM-Disk gefüllt werden, hierzu sind die Pläne schon mal grob in KICAD gezeichnet - noch nicht Final.


    LG Werner


    Details zu meinem Projekt:

    Epson PX-8 – Neu.Werners-Seiten

  • So nun hab ich auch was zum Beitrag hinzuzufügen...

    Hab denke ich ungefähr die selbe Kiste bekommen.. Bin auch am überlegen das anders zu versorgen.

    Ich würde Lifepo4 Akkus nehmen.. Werde aber denke ich erstmal mit den Nicd oder Nimh wieder alles zusammensetzen und bei Zeiten mal auf Lifepo umbauen.

  • Ich werde auf der Platine voraussichtlich einen LTC4085 für das Power Path Management vorsehen. Er kann LiPo- und LiIon-Akkus laden und sorgt dafür, dass der Rechner während des Ladevorgangs aus dem USB-Port versorgt wird. LiPo und LiIon sind offenbar die besten derzeit verfügbaren Akkutechnologien. Ich werde versuchen, auf der Platine eine Aussparung vorzusehen, in die auch die größeren LiIon-Zellen hineinpassen.


    Heute habe ich mir einen zweiten Prototypen gebaut, denn der XC9572XL im VG44-Gehäuse hatte nicht genug Pins, um den Z80-Bus zu bedienen und mit vertretbarem Aufwand ein schnelles Interface zum Pico zu realisieren. Ich verwende nun einen XC95144XL im TQ100-Gehäuse, da ist dann reichlich Luft. Bei Preisen von 2-3 Euro pro Stück macht es keinen rechten Unterschied, welcher CPLD letztlich benutzt wird, finde ich.


    Mit dem größeren CPLD werde ich in der Lage sein, die 3 Register des Modems sowie die beiden Register der RAM-Disk mit dem Pico zu verbinden. Ich bin im Moment jedoch noch nicht sicher, wie ich das mit der Pico-Software machen will. Das WiFi-Modem, welches ich zum Testen verwendet habe, funktioniert zwar, aber da es sich beim Quellcode ursprünglich um Arduino-Code handelt, ist es ein bisschen schwer integrier- und erweiterbar. Ausserdem emuliert es ja ein Hayes-Modem, bei dem die Ansteuerung über AT-Befehle auf der seriellen Schnittstelle erfolgt. Das Epson-Modem hingegen wird über I/O-Ports des Z80 angesteuert, und vielleicht ist es besser, dann ganz auf die C++-Software zu verzichten und die Firmware auf dem Pico stattdessen in MicroPython zu bauen.


    In MicroPython hat man auch direkt Unterstützung von LittleFS, ohne sich mit CMake befassen zu müssen. Mit LittleFS kann man den Teil des SPI-Flash, der nicht durch die Firmware belegt ist, als Dateisystem nutzen. Die Daten der RAM-Disk könnten dann direkt in LittleFS gespeichert werden, und Batteriepufferung würde in diesem Zusammenhang nicht mehr notwendig sein.


    Ob ein SD-Karten-Interface benötigt wird? Ich bin mir nicht sicher. Im QSPI-Flash bietet 2 Megabyte (abzüglich MicroPython) Platz, und weitere Daten kann man über WiFi laden und speichern. Das Gefummel mit SD-Karten finde ich eigentlich eher nervig, aber vielleicht bin ich da allein.

  • und weitere Daten kann man über WiFi laden und speichern. Das Gefummel mit SD-Karten finde ich eigentlich eher nervig, aber vielleicht bin ich da allein.

    Geschmäcker sind verschieden. Bei mir ist es genau andersrum - mich nervt WiFi Datenübertragung. Passwörter, Verbindungsprobleme, File Server... elendiges Zeug. :capone:

  • Geschmäcker sind verschieden. Bei mir ist es genau andersrum - mich nervt WiFi Datenübertragung. Passwörter, Verbindungsprobleme, File Server... elendiges Zeug. :capone:

    OK, dann schaue ich mal, ob ich noch einen SD-Karten-Sockel vorsehe. Der Platz reicht ja. :)

  • Der PX-8 hat ja schon das dollste Kassettenlaufwerk, das man sich vorstellen kann, insofern ist da nichts zu verbessern:



    Was fällt auf? Genau: Es gibt keine Bedienelemente. Die Kassetten werden blockweise angesprochen, und man kann sie - wenn man ausreichend Geduld hat - wie Disketten verwenden. Details im Manual.

  • Nö.

    Der kann nur Motor ein/aus.

    Nö. Der kann auch auf einen Zählerstand gesteuert vorspulen und so ein Sub-Programm von Kassette an einer best. Stelle nachladen. Programmgesteuert. Da guckst Du, was? 8o

  • Öhm.

    Ich erinnere mich an ein Programm, das die Bandposition nach Zeitablauf schätzt. Mehr ist da nicht, würde ich sagen.

    Du kannst Dich ja mal informieren - deswegen hat das Ding doch einen digitalen Zähler.... ;)