FabGL serielles (TTL 3.3v) ANSI Terminal auf Basis des TTGO VGA32

  • So - heute bin ich mal zum testen gekommen, nachdem ich es vor ca. 8 Monaten mal erwaehnt habe.

    Dazu musste ich in meine VGA32 v1.4 erst die Pin-Header einloeten und den PC-Emulator tauschen gegen das .INO fuer ANSI-Terminal.


    Etwas verwirrend war die Beschriftung der Pin-Out/Pin-Header.
    Auf der Unterseite (wo die vielen kleinen Chips/Bauteile sind) ist die Beschriftung direkt neben dem Pin - die auch stimmt.
    Wenn man sich zum ersten mal die Oberseite und da die Beschriftung ansieht - und dann gegen unten vergleicht - denkt man, die haben sich etwas vertan.


    Das gibt sich allerdings, wenn man davon ausgeht, dass die Beschriftung direkt an den Pins stimmt und die Text-Zeile "oeben drueber" (mit 3v3 und GND) eigentlich auf die gegenueberliegende Seite gehoert - nur war dort wegen dem Ende der Platine kein Platz mehr zum bedrucken ;)


    Nach dem dies geklaert war, habe ich erstmal brav TX/RX RX/TX und GND/GND verbunden.

    Allerdings kam diesmal - ausnahmsweise - kein Ergebnis :( denn diesmal war der seltene Fall TX/TX RX/RX und GND/GND zu verbinden ;)


    In meinen Bildern ist RX blau/blue - TX lila/purple und GND ist grau/grey.


    Am Arduino Due (wegen RunCPM auf Serial1. anstatt Serial.):

    RX1 (Pin 19) - blau

    TX1 (Pin 18) - lila

    GND - grau



    Am TTGO VGA32 v1.4:

    RX (IO34) - blau

    TX (IO2) - lila

    GND (GND) - grau



    Code im .INO des ANSI-Terminals:

    Code
    #define UART_RX 34
    #define UART_TX 2



    Die ANSI-Terminal Software ist hier zu sehen in Verbindung mit einem Z80-MBC2

    Am Anfang hatte ich Darstellungs- und Software-Probleme bei der Verbindung ANSI-Terminal mit RunCPM auf dem Due, weil ich beide an einem mit Schaltern ausgestatteten passiven USB-Hub hatte, der nur ueber einen USB-Port mit Strom versorgt wurde.
    Da hat die Power wohl nicht gereicht, um sauber Strom fuer die SDCard des Due zu liefern.
    D.h. teilweise konnte er die Karte nicht initialisieren (selbst bei 40Mhz) oder hatte auf einmal keinen Zugriff mehr auf die SDCard (BDOS-Error).

  • Kannst du nochmal den Aufbau erklären? Was ist denn da wo angeschlossen und wo läuft welche Software?

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Kannst du nochmal den Aufbau erklären? Was ist denn da wo angeschlossen und wo läuft welche Software?

    Klar :)
    Auf dem Arduino Due (mit SDCard-Shield) laeuft RunCPM (Power per MicroUSB 5v)

    Dieser ist per serial-TTL (3.3v) verbunden via RX/TX/GND mit dem TGGO VGA32 v1.4

    Am TTGO VGA32 v1.4 ist VGA-Monitor, PS/2-Tastatur und Power (5v MicroUSB) zusaetzlich angeschlossen.

    Auf dem TTGO VGA32 laeuft von der FabGL-Library das VGA Example (Source) "ANSI Terminal", welches per der seriellen Verbindung den Output des RunCPM empfaengt und als Input die Eingabe der PS/2-Tastatur an das RunCPM liefert.


    Die beiden MicroUSB Kabel sind nicht miteinander verbunden (liefern nur Strom)



    So sind dies 2 eigenstaendige Produkte (Software), die man in anderen Projekten auch einzeln nutzen kann (z.B. anderer Rechner mit serieller Ausgabe - das ANSI-Terminal kann z.B. auch VT52, ADM3A/31, Hazeltine 1500, Osborne und KayPro Emulation).


    Oder man schliesst ein anderes Terminal (puTTY, Linux oder echtes DEC VT) and RunCPM an ;)


    Sonst noch Fragen? ;)

  • Ah, OK, jetzt hab ich es auch kapiert. Der Arduino ist ein CPM-Emulator mit seriellem Port, aber ohne Grafik, und das TTGO ist ein Terminal ohne Bildschirm. Das hatte ich jetzt aus der Überschrift noch nicht schließen können.


    Ich glaube, das TTGO muss ich mir gleich mal ankucken! :)

    :tuschel: Suche: BeBox, Commodore 900, KIM-1 :tuschel:

  • Guten Tag,


    Weiss jemand ob ich beim TTGO VGA32 v1.4 eine 5V-Spannung sauber abgreifen kann?

    ich will das Ding als VT100-Terminal für mein SC114/Z80-Computer verwenden. Idealerweise würde ich nicht nur RX/TX (über Spannnungsteiler) verbinden wollen, sondern meinen SC114 auch gleich mit Betriebsspannung versorgen können.


    Schöne Grüsse

  • Weiss jemand ob ich beim TTGO VGA32 v1.4 eine 5V-Spannung sauber abgreifen kann?

    ich will das Ding als VT100-Terminal für mein SC114/Z80-Computer verwenden. Idealerweise würde ich nicht nur RX/TX (über Spannnungsteiler) verbinden wollen, sondern meinen SC114 auch gleich mit Betriebsspannung versorgen können.

    Am einfachsten/sichersten sollte der 5V Pin am Mausport sein, da Du wohl nur den Keyboard-Port fuers Terminal nutzen wirst.

    Also ein Kabel einer defekten PS/2-Maus oder Tastatur sollte da hilfreich sein



    Oder den 5V Loetpunkt vom Mausport auf der Unterseite der Platine.


    Alternativ Deinen SC114/Z80-Computer mit 5V versorgen und die VGA32 ueber den Mouseport testweise mit 5V versorgen? Oder Du splttest ein USB-Kabel.


    Der 8Pin-Header hat leider nur 3.3V verfuegbar.

  • Hallo Guidol,

    Herzlichen Dank!

    Mein VGA32 ist unterwegs, irgendwo zwischen China und mir. Wenn ich das Ding habe, werde ich versuchen, an den 5V Pin des Mausanschlusses eine Leitung anzulöten. Ich werde auch eine kleine Platine machen, wo ich dann auch die Spannungsteiler usw. unterbringen werden. Das stecke ich dann auf den Pfostenstecker, den ich einzulöten gedenke. Ob das Ding genügend Strom liefern kann, weiss ich allerdings noch nicht. Wir werden sehen.

    Schöne Grüsse, Hans

    Einmal editiert, zuletzt von x48x4b ()

  • Hallo Guidol,

    Sind auf dem VGA32 die folgenden PINS zugänglich?

    #define UART_RTS 13 // NEW

    #define UART_CTS 35 // NEW


    Auf dem Bild sehe ich I039, aber kein I035.


    Bringt es etwas, das umzudefinieren, wenn ich "hardware flow control" benutzen möchte?


    (Dies ist im Moment ein theoretische Frage, da mein VGA32 noch irgendwo in einem Schiffcontainer ist),


    Schöne Grüsse, Hans

  • Nach dem VGA32 v1.4 Pinout Bild bleibt Dir fuer RTS/CTS beim VGA32 wohl nur Pin 34&39 vom 8er-Block,

    da der Rest 3.3V & GND & SD-Karte ist.


    OK -beim Terminal wird der Kartenanschluss ja normal nicht genutzt,
    bleibt ausnahmsweise 2 (MISO) & 12 (MOSI) & 13 (CS-CardSelect) & 14 (CLK-Clock) auch :)

    (siehe SDCard-Pins im Pinout-Bild)


    Ansonsten koennte man testen on man das Terminal ohne Maus initialisiert

    (ist dann leicht anders der Befehl der FabGL) dann koenntest Du auch mal Pin 26&27 testen.



    Pin 35 & 13 sind wohl eher fuers das Original FabGL-Board 5V-IO 3.3V-IO (leider so gut wie NIE verfuegbar, weil Handarbeit des FabGL Autors - sollte TTGO mal in Serie nehmen ;) ) - denn da sind die Pins 35 & 13 oben rechts verfuegbar:


  • Hallo Guidol,


    Herzlichen Dank.


    In deinem "/GLTerm_VGA32__Baudrate_11092022/"


    // UART Pins for normal serial Port

    // OLD #define UART_SRX 34

    // OLD #define UART_STX 2

    #define UARTPORT_RX 34 // NEW

    #define UARTPORT_TX 2 // NEW


    // RTS/CTS hardware flow gpios

    // OLD #define RTS 13

    // OLD #define CTS 35

    #define UART_RTS 13 // NEW

    #define UART_CTS 35 // NEW


    Mein Vorschlag, wäre das so zu lassen, mit folgender Ausnahme:

    #define UART_CTS 35 // NEW wird zu #define UART_CTS 39


    Würde das funktionieren?


    Grüsse, Hans


  • Mein Vorschlag, wäre das so zu lassen, mit folgender Ausnahme:

    #define UART_CTS 35 // NEW wird zu #define UART_CTS 39


    Würde das funktionieren?

    Ich denke, dass sollte passen.


    Du kannst Dir in der FabGL Library fuer die Arduino-IDE schon mal im src/devdrivers Ordner die Dateien

    kbdlayouts.cpp und kbdlayouts.h ansehen. In erster werden die Tastatur-Layouts definiert und in zweiter werden die dann als vorhanden definiert.


    Code
    Beispiel-Pfad:
    C:\Users\guido\Documents\Arduino\libraries\FabGL\src\devdrivers\
  • Hallo Guidol,

    Ich habe gestern meinen VGA32 erhalten, das FABGL raufgeladen und kurz ausprobiert. Ich bin zum Schluss gekommen, dass ich die 5V für den SC114/Z80-Computer nicht vom VGA32 abzapfen will. Es macht keinen Sinn den Strom für die Versorgung meines SC114/Z80-Computer durch die dünnen Leiter des VGA32 zu schleusen. D.h. ich werde mir eine Vor-Platine bauen. Die Vorplatine hängt dann selbst an einem USB-Netzgerät. Einerseits soll sie das VGA32 und den SC114/Z80-Computer mit 5V versorgen. Andererseits soll sie die Pegelanpassung der seriellen Verbindung per Spannungsteiler von 5V (SC114/Z80) auf 3.3V (VGA32) bereitstellen. Die Bauteile dazu habe ich mir heute bestellt.

    Schöne Grüsse

  • Andererseits soll sie die Pegelanpassung der seriellen Verbindung per Spannungsteiler von 5V (SC114/Z80) auf 3.3V (VGA32) bereitstellen. Die Bauteile dazu habe ich mir heute bestellt.

    Auf den Aufbau waer ich gespannt, weil ich sowas ach noch umsetzen moechte fuer meinen Z80-MBC2 (auch 5V) auf 3.3V Device ;)

  • Hallo Guidol,

    Ich habe gestern die Teile erhalten. Ich werde mich ans zumsammenlöten machen.

    Übrigens zu den Keyboard-Definition: In "kbdlayouts.cpp" verstehe ich nicht, woher die Werte für die "scancodes" stammen. Ich habe sie verglichen mit der Ausgabe des Linux-Kommandos "showkey -s" (zeigt bei jedem Tastendruck den Code an, welcher die Tastatur sendet). Der Vergleich zeigt keine offensichtliche Übereinstimmung. Woher stammen die Werte für die "scancodes" in "kbdlayouts.cpp"?

    Schöne Grüsse, Hans

  • Woher stammen die Werte für die "scancodes" in "kbdlayouts.cpp"?

    Hallo Hans,

    da es scheinbar nicht die Standard-Scancodes sind, kommen die wohl aus der FabGL-Library.

    Dort gibt es in den Examples ein .ino Programm:

    \Arduino\libraries\FabGL\examples\Others\KeyboardScanCodes\KeyboardScanCodes.ino


    Ansonsten kannst Du auch noch mal in

    \Arduino\libraries\FabGL\examples\Others\KeyboardVirtualKeys\KeyboardVirtualKeys.ino

    schauen.


    Gruesse

    Guido

  • Hallo Guidol,

    Ich habe das Zwischenstück vom Z80/SC114 zum VGA32 gestern auf einer Lochrasterplatte zusammengelötet. Es funktioniert. Im Moment habe ich RTS/CTS noch nicht implementiert. Das wird noch kommen. Und jetzt muss ich noch meinen "Swiss German"-Tastatur-Treiber fertig schreiben. Das ist Feinarbeit.

    Grüsse, Hans

  • Übrigens: Ich besitze jetzt zwei VGA32-Exemplare und habe die Pin-Anordnung nachgemessen. Sie ist umgekehrt wie diejenige von guidol in seinem Beitrag vom 17.2.2021 verwendet. Unter anderem befinden sich bei meinen Exemplaren die Pins IO34 und GND in der Reihe am Rand der Platine und nicht in der zweiten Reihe.

    Von der Seite mit der Audiobuchse her betrachtet:


    ---------------------------------------------------------------------------------------

    PS/2-Keyboard________Platineninneres

    ________________________________________________VGA-Verbinder

    PS/2-Mouse IO12|IO14|IO13|IO02|

    _____________|3V3|GND|IO39|IO34|__Audiobuchse

    ---------------------------------------------------------------------------------------

    ________________________Platinenrand

  • Kennt jemand einen seriösen Händler in Detuschland (oder zumindest in der EU), bei dem man das bekommt?

    Auf die Schnelle habe ich nichts vernünftiges gefunden.

    Ich hab' mir meine aus China schicken lassen - das hat sehr gut geklappt. Das hat zwar jedesmal ein bisschen gedauert, war aber alles ok! Wenn Du möchtest, kann ich in meinem Ebay-Verlauf nochmal nachsehen von wem ich's gekauft hatte...


    :)Franky

  • Die "TTGO VGA32"-Platine wurde bzw. wird von der chinesischen Firma Lilygo in Zusammenarbeit mit den FabGL-Autoren entworfen und produziert. Jeder "seriöse Händler in Deutschland" müsste die Platine also auch erstmal aus China importieren. Ich habe meine zwei solchen Platinen per Ebay bei einem chinesischen Händler gekauft. Da kann man eigentlich nicht viel falsch machen.