🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    TermTab5

    Scheduled Pinned Locked Moved PROJECTS
    11 Posts 3 Posters 500 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H Offline
      h0lmes
      last edited by

      TermTab5 is an Arduino/ESP32 touchscreen terminal firmware project with a VT100-style terminal core, on-screen keyboard, touch-driven menu system, board abstraction layer, settings persistence, Wi-Fi helpers, and optional screensaver-style animations.

      The codebase targets M5 Tab5 and related ESP32 display hardware, while keeping a substantial part of the terminal and UI stack reusable and host-testable.

      GitHub repo

      Demo video
      In this video is a custom made Z80-based handheld retro computer running RomWBW with Tab5 as a screen.

      P 1 Reply Last reply Reply Quote 0
      • P Offline
        Powersoft @h0lmes
        last edited by

        @h0lmes

        Re: TermTab5
        Hello,

        Thank you for this great program. There is one thing that is unclear to me. How do I establish a serial connection with an external device? I plan to connect the terminal to a Forth computer and want to use the serial connection for that.
        Which pins/connector did you use for your own computer?
        I hope you can help me with this.
        Kind regards, Jan

        H 1 Reply Last reply Reply Quote 0
        • H Offline
          h0lmes @Powersoft
          last edited by

          @Powersoft Hi!
          Not visiting this forum very often, I'd have to see if notifications can be enabled.

          So, to your question, if you download Tab5 schematics there's M5_BUS connector on page 4. You need pins 13 (aka U0RXD, aka G3) and 14 (aka U0TXD, aka G1). They use 3V3 logic levels but are 5V tolerant as per Espressif themselves (and my thorough testing).
          Feel free to ask more questions.

          P 1 Reply Last reply Reply Quote 0
          • P Offline
            Powersoft @h0lmes
            last edited by

            @h0lmes
            Thanks for your information, but i'm a bit confused. I asumed that I must used the black 30p connector on the backside. Wich pins on this connector I should use? Is it not posible to use the grove connector with pins G53 ,G54.

            With kind regards,

            Jan

            H 3 Replies Last reply Reply Quote 0
            • easytargetE Offline
              easytarget
              last edited by

              You should ythink about allowing the user to specify the port to use, especially on the Tab5, which has lots of IO ports.

              Also; your (or your AI coder) seems to be confused.

              a38ac64c-650e-4b73-987d-61b18d3c7084-image.jpeg
              pin 13 = U0TXD = G37
              pin14 = U0RXD = G38

              Not G3/G1

              The P4 can basically mux hardware Serial onto any pin combo. And software serial can handle any pins that dont mux.

              Pins G49 and G50 are on ExtPort1 on the side of the unit, (so are G0 and G1, but these should be avoided unless you understand how G0 is used at boot time).

              There is a RS485 port on pins G20/G21/G34 (TX/RX/Dir) that would also be sensible to support.

              And, of course, G53 and G54 on the grove connector (port-A) can be used, by default this is the User I2C bus (I2C1). If you don't want to use any external I2C peripherals then it is a good choice.

              H 1 Reply Last reply Reply Quote 0
              • H Offline
                h0lmes @Powersoft
                last edited by

                This post is deleted!
                1 Reply Last reply Reply Quote 0
                • H Offline
                  h0lmes @Powersoft
                  last edited by

                  This post is deleted!
                  1 Reply Last reply Reply Quote 0
                  • H Offline
                    h0lmes @easytarget
                    last edited by

                    @easytarget I assume you did not read my message carefully. G1/G3 are in the PDF Schematics
                    b7f3a2c7-5c9e-45d0-bb35-06b177bd4fb0-image.jpeg

                    easytargetE 1 Reply Last reply Reply Quote 0
                    • H Offline
                      h0lmes @Powersoft
                      last edited by

                      @Powersoft Hi!
                      You can easily use any pins with SoftwareSerial, though I did not test it. One of my primary goals was to make it work fast (which is not what you usually expect from software serial).
                      Can you do it yourself? Or maybe use a GhatGPT (point it to the main .ino file and ask to change to pins you want).
                      If you encounter any problems message me, I'll try to find some time to do tests.

                      easytargetE 1 Reply Last reply Reply Quote 0
                      • easytargetE Offline
                        easytarget @h0lmes
                        last edited by easytarget

                        @h0lmes Software Serial is best left for smaller devices with limited IO mapping. For any of the recent ESP32 chips you should one of the hardware UARTS, the P4 has six of them!

                        You can mux any GPIO pin to any hardware UART. That way you get speed with no cpu load, and the option to do DTS/CTS etc by just specifying the extra pins.

                        https://docs.espressif.com/projects/arduino-esp32/en/latest/tutorials/io_mux.html#peripheral-table

                        https://docs.espressif.com/projects/esp-idf/en/stable/esp32p4/api-reference/peripherals/uart.html#set-communication-pins

                        However if (and I have not looked at the code) you just use the default esp functions it will default to a hardware UART if it can and only use soft serial as needed, so you may be good anyway ;-)

                        1 Reply Last reply Reply Quote 0
                        • easytargetE Offline
                          easytarget @h0lmes
                          last edited by

                          @h0lmes
                          Actually I was ignoring that; I am using the actual P5 GPIO pin numbers for clarity.

                          If you look at the image I pasted, which is from the Tab5 main documentation, you can see that it also uses the real GPIO pin numbers.

                          The M5_BUS uses pin names based on the original M5Stack, and the schematic shows the M5_BUS pin names there, and this is very important if interfacing to other stack modules! But the actual GPIO numbers are what you need in your terminal code. Using the M5_BUS labels just confuses things.

                          So; I prefer to use the actual P5 GPIO pin numbers, rather than having to do a mental 'GPIO pin X == M5_BUS pin Y' conversion every time.

                          1 Reply Last reply Reply Quote 0

                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                          With your input, this post could be even better 💗

                          Register Login
                          • First post
                            Last post