Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    RepPanel - A DIY alternative to the PanelDue with WiFi support

    Scheduled Pinned Locked Moved
    Third-party software
    39
    243
    30.5k
    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.
    • seeul8erundefined
      seeul8er @Colten
      last edited by seeul8er

      @Colten I know. Should be fixed within the development branch. The current way is that you need to copy file content of main/lv_conf_back.hover to externals/lv_port_esp32/components/lvgl/lv_conf.h. You can find lv_conf_back.h in the dev branch.

      1 Reply Last reply Reply Quote 0
      • seeul8erundefined
        seeul8er
        last edited by

        Hi guys!
        I am very happy to finally release v1.0.0 of RepPanel. It now supports UART/PanelDue wired connections as well as WiFi. All connections can be hot-swapped.
        I also fixed lots of bugs related to memory issues. You can now have up to 16 macros/jobs per directory with file names up to 63 characters.

        RepPanel with prototype case
        I also tried to design the first prototype for a case. Still needs some tiny improvements but it already is very compact and clean. Together with a simple circuit board it is only 25mm thick. The images do not reflect the quality of the screen well. In reality, the contrast is a lot better.

        1 Reply Last reply Reply Quote 5
        • seeul8erundefined
          seeul8er
          last edited by

          First release of RepPanel
          First test of RepPanel

          1 Reply Last reply Reply Quote 2
          • pdundefined
            pd
            last edited by

            Hi

            I have just started trying to get this to work as I have several applications. I have flashed the software onto an ESP devkit and connected your recommended screen. I have not however connected it to a duet board. I had hoped at least part of the screen would show up but I only get a faint outline in the top left hand corner. I suspect I have made a mistake in connecting to the screen but I would be grateful if you would confirm that is the case. Or does the duet need to be connected.

            1 Reply Last reply Reply Quote 0
            • pandaymundefined
              pandaym
              last edited by pandaym

              Anywhere to get working hardware for this inside the EU?

              1 Reply Last reply Reply Quote 0
              • seeul8erundefined
                seeul8er
                last edited by seeul8er

                @pd Sorry for the late reply! Can you share the link to your display, because there are multiple very similar versions of it and I already had a user that bought the wrong one šŸ˜ž I clarified it inside the GitHub project page. Can you also share the wiring and a picture of what you can see on screen?
                It is not necessary to connect the Duet. The app should start anyways.

                @pandaym Hi, the ESP32 is not an issue since it is generally available. I ordered the display directly from china. Since it was below 22€ it is tax free and shipping was OK-fast. There may be other ili9488 displays with SPI (+ supported touch controller) and the same resolution that work and that you can get within the EU. However, I have not tested any of them.

                pdundefined 2 Replies Last reply Reply Quote 0
                • PCRundefined
                  PCR
                  last edited by

                  Dear @seeul8er ,

                  would you be intrested in a PCB. I will order some PCBs for other projects in China. If you want i could design one!

                  Best
                  Peter

                  seeul8erundefined 1 Reply Last reply Reply Quote 1
                  • seeul8erundefined
                    seeul8er @PCR
                    last edited by seeul8er

                    @PCR I already thought about it but wanted to keep it as simple as possbile for others to follow for now. Non the less a custom PBC would be awesome!
                    And if you are willing to give it a try why not.
                    With that we would get a couple of options to choose from. We could dump the pin headers of the TFT module and use an FCC cable. The DevKit would also not be necessary since the ESP module could be soldered directly to the PCB. Or keep the devkit and and solder it to the PCB since it offers USB power and serial for a low price.
                    The software does only support SPI connections so a 8bit parallel interface is currently not possible.

                    A Former User? 1 Reply Last reply Reply Quote 0
                    • A Former User?
                      A Former User @seeul8er
                      last edited by

                      @seeul8er said in RepPanel - A DIY alternative to the PanelDue with WiFi support:

                      the ESP module could be soldered directly to the PCB

                      how much flash do you need? (ESP8285 is cheaper and smaller but only 1MB)

                      seeul8erundefined 1 Reply Last reply Reply Quote 0
                      • seeul8erundefined
                        seeul8er @A Former User
                        last edited by

                        @bearer Hardware-wise the ESP8285 is not enough (especially RAM - kind of maxed out on the ESP32). The image needs 1.4 MB at the moment. The software only supports the ESP32.

                        1 Reply Last reply Reply Quote 0
                        • pandaymundefined
                          pandaym
                          last edited by

                          I really like your solution, and decided to try and grab a few pieces for it, as I was already ordering a lot of other stuff off Mouser.com
                          Since stuff like this is COMPLETELY new to me, could you maybe take a look at these parts I grabbed and see if you think it will work?

                          ESP32:
                          https://www.mouser.dk/ProductDetail/Espressif-Systems/ESP32-DevKitC-32D?qs=%2Fha2pyFadugghcwsr%252BfCfoiPKVRrwUbD0eThxd%2FUYFY7U8Wh9XQ4LHYEl5esmHGZ

                          Screen:
                          https://www.mouser.dk/ProductDetail/Seeed-Studio/308010014?qs=%2Fha2pyFadujFrWe34c%2Fp962d7Tsl7GBwUGpbcqXmB9KgWxdyEeTeaQ%3D%3D

                          I have no idea where to begin, but I will figure that out šŸ˜‰ I would just like to know if I overlooked something in the specs for the stuff I needed to find. I just went for ESP32 devkit and from the details of the screen, I saw it was 320x480 and had SPI connection: https://www.seeedstudio.com/3-5-Inch-TFT-Display-for-Raspberry-Pi-Resistive-Touch-Screen-p-2248.html

                          1 Reply Last reply Reply Quote 0
                          • seeul8erundefined
                            seeul8er
                            last edited by

                            @pandaym Your hardware looks good to me! The DevBoard is standard so that's perfectly fine. The screen is tricky but it should work. Its touch controller is a XPT2046 which definitely supported by LVGL. I did some searching and my best guess is that the display is from waveshare. Looking at their driver code the chip should be a ILI9486 which is also supported by LVGL and thus by RepPanel šŸ‘

                            pandaymundefined 1 Reply Last reply Reply Quote 0
                            • pandaymundefined
                              pandaym @seeul8er
                              last edited by

                              @seeul8er said in RepPanel - A DIY alternative to the PanelDue with WiFi support:

                              @pandaym Your hardware looks good to me! The DevBoard is standard so that's perfectly fine. The screen is tricky but it should work. Its touch controller is a XPT2046 which definitely supported by LVGL. I did some searching and my best guess is that the display is from waveshare. Looking at their driver code the chip should be a ILI9486 which is also supported by LVGL and thus by RepPanel šŸ‘

                              Thanks a lot, that sounds good! I will dive into it and see if I can figure out how to wire and program it šŸ™‚

                              pandaymundefined 1 Reply Last reply Reply Quote 0
                              • dragonnundefined
                                dragonn
                                last edited by

                                Any 5 inch screens witch could run with LVGL?

                                seeul8erundefined 1 Reply Last reply Reply Quote 1
                                • seeul8erundefined
                                  seeul8er @dragonn
                                  last edited by

                                  @dragonn said in RepPanel - A DIY alternative to the PanelDue with WiFi support:

                                  Any 5 inch screens witch could run with LVGL?

                                  I am afraid not. With 5" screens the resolution usually is not 480x320 anymore. The RepPanel UI is sort of hardcoded for that resolution since it is an embedded system. Besides that, the ESP32 with SPI is not powerful enough to updated higher-resolution screens in time.

                                  1 Reply Last reply Reply Quote 0
                                  • pandaymundefined
                                    pandaym @pandaym
                                    last edited by

                                    @pandaym said in RepPanel - A DIY alternative to the PanelDue with WiFi support:

                                    @seeul8er said in RepPanel - A DIY alternative to the PanelDue with WiFi support:

                                    @pandaym Your hardware looks good to me! The DevBoard is standard so that's perfectly fine. The screen is tricky but it should work. Its touch controller is a XPT2046 which definitely supported by LVGL. I did some searching and my best guess is that the display is from waveshare. Looking at their driver code the chip should be a ILI9486 which is also supported by LVGL and thus by RepPanel šŸ‘

                                    Thanks a lot, that sounds good! I will dive into it and see if I can figure out how to wire and program it šŸ™‚

                                    @seeul8er any chance I could get some help finding the right way to wire it? I have started, but I got stuck trying to figure out the naming and what was what.

                                    So I got:
                                    ESP > LCD:
                                    3.3V > Pin 1
                                    GND > Pin 6
                                    GPIO 13 > Pin 19 (MOSI - Data line to TFT)
                                    GPIO 14 > Pin 23 (SCL - SPI CLK for TFT)
                                    GPIO 15 > ?!?!? (Slave Select - SPI)
                                    GPIO 22 > ?!?!? (SCL - I2C - touch)
                                    GPIO 21 > ?!?!? (SDA - I2C - touch)
                                    GPIO 4 > Pin 22 (Reset - TFT related)
                                    GPIO 2 > ?!?!? (Data - TFT related)
                                    GPIO 27 > ?!?!? (Backlight - Turn on/off TFT backlight)
                                    And lastly I got GPIO 17 and 16 that will go to the Duet

                                    wiring.png

                                    Mind helping me figure out where the last ones go?

                                    seeul8erundefined 1 Reply Last reply Reply Quote 0
                                    • seeul8erundefined
                                      seeul8er @pandaym
                                      last edited by seeul8er

                                      @pandaym

                                      Your touch screen is connected via a second SPI. Mine is I²C. The second SPI and all other pins will be a config thing during compilation (menuconfig settings) The default for LVGL should be the following HSPI for TFT and VSPI for the touch controller - I think you can choose the "RPi MPI3501" config during the build. The pins can be selected/changed but this should work:

                                      GPIO 15 -> 24 (Slave/Chip select for TFT)
                                      GPIO 23 -> 19 MOSI Touch - (but should not be needed?!)
                                      GPIO 19 -> 21 MISO Touch
                                      GPIO 18 -> 23 CLK Touch (same clk for touch and tft)
                                      GPIO 5 -> 26 Chip select Touch
                                      GPIO 25 -> 11 Interrupt Touch
                                      GPIO 2 -> 18

                                      Looks like the backlight is on automatically

                                      pandaymundefined 1 Reply Last reply Reply Quote 0
                                      • pandaymundefined
                                        pandaym @seeul8er
                                        last edited by

                                        @seeul8er said in RepPanel - A DIY alternative to the PanelDue with WiFi support:

                                        Your touch screen is connected via a second SPI. Mine is I²C. The second SPI and all other pins will be a config thing during compilation (menuconfig settings) The default for LVGL should be the following HSPI for TFT and VSPI for the touch controller - I think you can choose the "RPi MPI3501" config during the build. The pins can be selected/changed but this should work:
                                        GPIO 15 -> 24 (Slave/Chip select for TFT)
                                        GPIO 23 -> 19 MOSI Touch - (but should not be needed?!)
                                        GPIO 19 -> 21 MISO Touch
                                        GPIO 18 -> 23 CLK Touch (same clk for touch and tft)
                                        GPIO 5 -> 24 Chip select Touch
                                        GPIO 25 -> 11 Interrupt Touch
                                        GPIO 2 -> 18
                                        Looks like the backlight is on automatically

                                        Thanks a lot for the help. I apologize, but I am a complete newbie in all of this stuff, so it is a bit much to chew šŸ™‚

                                        Wonder if I understand it correctly. So I still use the pins for 3.3v, gnd and reset like I set them, and add the ones you mentioned? This should make the full wiring this:

                                        ESP > LCD:
                                        3.3V -> Pin 1
                                        GND -> Pin 6
                                        GPIO 4 -> Pin 22 (Reset - TFT related)
                                        GPIO 15 -> 24 (Slave/Chip select for TFT)
                                        GPIO 23 -> 19 MOSI Touch - (but should not be needed?!)
                                        GPIO 19 -> 21 MISO Touch
                                        GPIO 18 -> 23 CLK Touch (same clk for touch and tft)
                                        GPIO 5 -> 24 Chip select Touch
                                        GPIO 25 -> 11 Interrupt Touch
                                        GPIO 2 -> 18

                                        And ESP > Duet 3:
                                        GPIO 16 -> TX PanelDue port
                                        GPIO 17 -> RX PanelDue port

                                        Does this mean I have to bridge it so that both GPIO 15 and GPIO 5 go to the 24 pin on the screen?

                                        1 Reply Last reply Reply Quote 0
                                        • seeul8erundefined
                                          seeul8er
                                          last edited by

                                          @pandaym Sorry my bad. Chip select for the touch must be GPIO 5 -> 26. I corrected it.

                                          Yes. Looks good! All in all its just about knowing SPI wiring in general and then matching the inputs & outputs. The software/compile process will allow you to change some GPIOs, but with this most stuff should already be configured correctly.

                                          pandaymundefined 1 Reply Last reply Reply Quote 0
                                          • pandaymundefined
                                            pandaym @seeul8er
                                            last edited by pandaym

                                            @seeul8er said in RepPanel - A DIY alternative to the PanelDue with WiFi support:

                                            @pandaym Sorry my bad. Chip select for the touch must be GPIO 5 -> 26. I corrected it.

                                            Yes. Looks good! All in all its just about knowing SPI wiring in general and then matching the inputs & outputs. The software/compile process will allow you to change some GPIOs, but with this most stuff should already be configured correctly.

                                            Arh, thanks! Really appreciate you helping me out!

                                            I guess my challenge is I don't even know wiring in general, let alone SPI wiring.

                                            So this is how I wired it now:

                                            ESP > LCD:
                                            3.3V -> Pin 1
                                            GND -> Pin 6
                                            GPIO 4 -> Pin 22 (Reset - TFT related)
                                            GPIO 15 -> 24 (Slave/Chip select for TFT)
                                            GPIO 23 -> 19 MOSI Touch - (but should not be needed?!)
                                            GPIO 19 -> 21 MISO Touch
                                            GPIO 18 -> 23 CLK Touch (same clk for touch and tft)
                                            GPIO 5 -> 26 Chip select Touch
                                            GPIO 25 -> 11 Interrupt Touch
                                            GPIO 2 -> 18

                                            Connection to the Duet, as far as I understand, can be done either wirelessly or wired like this, right?
                                            GPIO 16 -> TX PanelDue port (which I assume on a Duet 3 is IO_0_out ?)
                                            GPIO 17 -> RX PanelDue port (which I assume on a Duet 3 is IO_0_in ?)

                                            The controllers you mentioned seems to be right according to this: http://www.lcdwiki.com/3.5inch_RPi_Display , so ILI9486 and XPT2046.

                                            So to get started on the software side I:

                                            • Installed ESP-IDF
                                            • Cloned the project
                                            • Replaced the contents of externals/lv_port_esp32/components/lvgl/lv_conf.h with that of main/lv_conf_back.h
                                            • Ran idf.py menuconfig

                                            So for TFT display controller I have it set up like this for starters:
                                            cafed4b6-fd69-4e72-8bd5-a91b0e838139-image.png
                                            I hope it is correctly assumed that there is nothing pre-defined, so I have to do it like that. For the board pinouts, it looks like ESP32 V4 with 38 pins should be correct for the ESP32-DevKitC-32D ?
                                            Then I just chose ILI9486 and left the rest of the main page as is.

                                            For the pin-out I have this, but I don't know if something is missing or wrong here?
                                            19e749a9-781c-4ca7-93c7-42375fdb7078-image.png

                                            Touch controller I set up like this:
                                            e87eacfb-8b97-479f-843d-14587bd2e75f-image.png

                                            With this assignment:
                                            9415b04c-f717-43df-b12a-e7e95f1ab2b2-image.png

                                            Last thing is the WiFi connection. I cannot tell where I add my SSID and password for it. Am I overlooking something? šŸ™‚

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA