PiGFX 1.8.0 und Serial RX0 Problem des Arduino Due (RunCPM)

  • Gestern habe ich PiGFX 1.8.0 - ein bare metal Terminal auf Basis eines RPi- getestet.
    PiGFX 1.8.0 is die original Version von https://github.com/fbergama/pigfx
    (nicht der Fork von https://github.com/dhansel/pigfx)


    Frohen Mutes habe ich meinen Arduino Due - auf dem RunCPM laeuft - angeschlossen.
    Der RPi (1B+) bootete, brachte die Einschaltmeldung und erkannte die USB-Tastatur ;)

    ABER ich konnte keine Eingabe machen :(

    Also habe ich 5 verschiedene Tastaturen ausprobiert mit dem selben Ergebnis - keine Eingabe moeglich.

    Mit Strom versorgt hatte ich den Arduino Due (Clone) per MicroUSB (getestet auf beiden Ports).
    Als Gegentest versorgte ich nun den Arduino Due mit 5V auf dem Barrel-Connector.

    Nun konnte ich zwar scheinbar Eingaben machen - die Buchstaben erschienen auf dem Bildschirm - aber RunCPM erkannte diese nicht :(


    Ich testete die Optionen in der Konfig-Datei von PiGFX zu CR/LF-Optionen, aber auch diese brachten gegenueber RunCPM keine Erkennung der Befehle.

    In der Facebook-Gruppe zum Z80-MBC2 (wo die neue Version des PiGFX 1.8.0 vorgestellt wurde von David Collins) teilte mir John Smith mit, dass PiGFX auf seinem "Duo/Due" arbeiten wuerde mit einem Apple1-Emulator (mit echter 6502-CPU).


    Sein Due stellte sich allerdings nach einem eingestellten Bild als Arduino MEGA2560 raus :)


    Also machte ich mich auf die Suche nach einem Problem des Arduino Due mit dem Pin RX0, da TX0 zu arbeiten schien (Ausgabe klappe ja).

    Fuendig wurde ich auf [SOLVED] RX pin doesn't work
    Dort heisst es, dass einige Arduino Due (Clones bzw. auch Revisionen des Originals) Probleme mit dem Pin RX0 haben aufgrund einen Hardware-Design-Fehlers:

    Zitat


    The old Due design had #OE connected to ground, so that the driver is always enabled. The idle state of a UART is High. As you found, this can prevent re-use of Serial0.
    At some point the Due design was changed to wire #OE to it's input pin, so that it is only driven low. With the Atmega UART in the idle state, the '125 buffer chip is High-Z, allowing re-use of Serial0.


    Mit diesem neuen Wissen, habe ich mir dann am naechsten Morgen die RunCPM.ino (also das RunCPM-Programm fuer die Arduino IDE) angesehen und geschaut wie und wo der serielle Port0 (RX0/TX0) angesprochen wird.

    Nachdem ich gegoogelt hatte dass dies ueber "Serial." fuer RX0/TX0 gemacht wird und RX1/TX1 ueber "Serial1." angesprochen wird, habe ich in allen Tabs (2 waren betroffen) "Serial." gegen "Serial1." ersetzen lassen und dann RunCPM kompiliert und auf den Arduino Due uebertragen.


    Nachdem ich die TTL-serial-Kabel dann von RX0/TX0 auf RX1/TX1 umgesteckt hatte und das System/Konstrukt neu gestartet hatte, war sofort die USB-Tastatur nutzbar per PiGFX zur Nutzung am RunCPM des Arduino Due ;)


    Im Gegensatz zu meinem ersten Test von PiGFX (damals mit einer alten Version) scheint dies nun sauber zu funktionieren :)


    Dabei fiel mir ein, dass ich mit dem Due/RunCPM das selbe Problem hatte bei dem Versuch das Projekt ESPTerm (ESP8266) zu nutzen.

    Damals hatte ich es aufgegeben, da ich an einen Fehler in ESPTerm glaubte :(


    Somit habe ich - fuer mich - dieses Problem nun erfolgreich geloest und hoffe die Infos koennen Euch mal helfen :)


    PS: Auf dem Bild mit dem Raspberry Pi 1B+ ist der Arduino Due noch an RX0/TX0 angeschlossen!

  • auf meinen Wunsch hat PiGFX 1.8.1 nun die Moeglichkeit eines blinkenden Cursors bekommen ;)
    https://github.com/fbergama/pigfx/issues/41


    Alles "Neue" der 1.8.1:


    Zitat

    Speed improvement

    released this 16 hours ago


    - Enabled cache, this is a massive speed boost
    - Prepared interrupt handler for 8bit interface
    - Cursor can be set to blink mode

  • Zum einschalten des Cursor-blinkens kann man

    TYPE CBLINK.TXT

    nutzen ;)


    Das BASIC-Listing zum erstellen der Datei ist ja nur ein 3-Zeiler :) (ASCII-Version in GW-/PC-BASIC)


    Unter Win10:
    https://sourceforge.net/projects/pcbasic/

    Zitat

    PC-BASIC is a free, cross-platform interpreter for GW-BASIC, BASICA, PCjr Cartridge Basic and Tandy 1000 GWBASIC.
    PC-BASIC is free and open source software released under the GPLv3.