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

    Logic Level shifter for 12864 display on Duet 2 Wifi

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    11
    200
    16.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.
    • dc42undefined
      dc42 administrators @Schmart
      last edited by

      @Schmart said in Logic Level shifter for 12864 display on Duet 2 Wifi:

      but I also noticed that functions like DrawCircle() and ReadPixel() are not used at the moment

      The linker eliminates any non-virtual functions that are not referenced, so no need to disable them using #define.

      Duet WiFi hardware designer and firmware engineer
      Please do not ask me for Duet support via PM or email, use the forum
      http://www.escher3d.com, https://miscsolutions.wordpress.com

      dc42undefined 1 Reply Last reply Reply Quote 1
      • dc42undefined
        dc42 administrators @dc42
        last edited by dc42

        I've been working on the code in RRF 3.2 to vary the number of drivers depending on whether a display is configured or not. In the process, I finalised the pin assignments for Duet WiFi to the Fysetc mini 12864 display, as follows.

        constexpr Pin EncoderPinB = PortCPin(7);		// connlcd.3	-> exp2.6
        constexpr Pin EncoderPinA = PortAPin(8);		// connlcd.4	-> exp2.8
        constexpr Pin LcdNeopixelPin = PortDPin(18);       	// connlcd.5	-> exp1.5
        constexpr Pin LcdResetPin = PortCPin(28);		// connlcd.6	-> exp1.6
        constexpr Pin LcdA0Pin = PortDPin(19);			// connlcd.7	-> exp1.7
        constexpr Pin LcdCSPin = PortAPin(25);			// connlcd.8	-> exp1.8
        constexpr Pin EncoderPinSw = PortDPin(20);		// connlcd.9	-> exp1.9
        constexpr Pin LcdBeepPin = PortDPin(21);		// connlcd.10	-> exp1.10
        
        // Additional spi wiring for FYSETC Mini 12864 display:
        // connlcd.2 (gnd)	-> exp1.2
        // connsd.1 (+5V)	-> exp1.1
        // connsd.2 (gnd)	-> exp2.2
        // connsd.3 (SD CS)	-> exp2.7
        // connsd.4 (sck)	-> exp2.9
        // connsd.5 (mosi)	-> exp2.5
        // connsd.6 (miso)	-> exp2.10
        

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        Schmartundefined 1 Reply Last reply Reply Quote 1
        • jay_s_ukundefined
          jay_s_uk
          last edited by

          Sounds promising. I have one of these displays gathering dust

          Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

          1 Reply Last reply Reply Quote 0
          • Schmartundefined
            Schmart @dc42
            last edited by

            Hi @dc42

            I've optimized and simplified the code further in my repo and managed to save a few hundred bytes.

            Also, the ST7565 display now works without additional logic components, inverting the LCD_CS with a 74xx00 is not necessary anymore. I've used the exp_0 pin for DC and the exp_1 pin for CS now. My display accepts the logic levels perfectly.

            I should be able to save another 60 bytes or so, but I have to first work out an issue that I uncovered when I start drawing columns pixel by pixel.

            Creality CR-20 Pro with a Duet 2 Maestro, 3Dfused X+Z-axis rail kit, HIWIN-based DIY solution for the Y-axis, E3D Hemera, working ST7565 MiniPanel and various other small hardware improvements.

            1 Reply Last reply Reply Quote 0
            • oliofundefined
              oliof
              last edited by

              @Schmart where'd one find your patch, and what does the new wiring look like? Inquiring minds want to know ...

              <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

              Schmartundefined 2 Replies Last reply Reply Quote 0
              • Schmartundefined
                Schmart
                last edited by

                @dc42: I created a pull request of my changes today, and I tested:

                • ST7920 display type 1
                • ST7565 display type 2 that uses EXP_1 for active low CD
                • ST7565 display type 3 which needs a NAND inverter IC to invert the LCD_CS towards the display

                Also implemented a couple of optimizations, solved a few bugs and simplified the Flush routine.

                I see some room for further size reduction of the firmware, but that would probably make some parts of the code a little slower. What's your stance on that?

                Creality CR-20 Pro with a Duet 2 Maestro, 3Dfused X+Z-axis rail kit, HIWIN-based DIY solution for the Y-axis, E3D Hemera, working ST7565 MiniPanel and various other small hardware improvements.

                1 Reply Last reply Reply Quote 0
                • Schmartundefined
                  Schmart @oliof
                  last edited by

                  Hi @oliof, back from fishing? 😉

                  The changes are in the following repo and branch.
                  https://github.com/SchmartMaker/RepRapFirmware/tree/ST7565

                  I have a binary firmware for the Maestro here:
                  https://1drv.ms/u/s!Au1g8fW6BaQzioADewiHDAxzQ_Adlg?e=KuNYOB

                  What's the board you're using? I'm asking, because the firmware build for the Duet Wifi and Duet Ethernet is still a little too large for the flash memory of these boards unfortunately.

                  Creality CR-20 Pro with a Duet 2 Maestro, 3Dfused X+Z-axis rail kit, HIWIN-based DIY solution for the Y-axis, E3D Hemera, working ST7565 MiniPanel and various other small hardware improvements.

                  1 Reply Last reply Reply Quote 0
                  • Schmartundefined
                    Schmart @oliof
                    last edited by

                    @oliof I'll see if I can hack the wiring picture so that it reflects the new option that doesn't require the 74xx00.

                    Creality CR-20 Pro with a Duet 2 Maestro, 3Dfused X+Z-axis rail kit, HIWIN-based DIY solution for the Y-axis, E3D Hemera, working ST7565 MiniPanel and various other small hardware improvements.

                    1 Reply Last reply Reply Quote 0
                    • oliofundefined
                      oliof
                      last edited by

                      I have a Duet2Wifi, but I can easily remove stuff I don't need (I did remove Hangprinter when trying the level shifter approach).

                      <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                      Schmartundefined 1 Reply Last reply Reply Quote 0
                      • Schmartundefined
                        Schmart @oliof
                        last edited by Schmart

                        @oliof This is the wiring I used without the inverter.

                        So to be clear and safe, this is very specific wiring to connect the Duet 2 Maestro to a Creality ST7565-based MiniPanel display @3.3v logic levels.

                        The pinout of displays made vary wildly, and the connectors on display-side may need to be reversed (the plastic shroud rotated 180 degrees). Also, the firmware adaptations I made in my fork are relatively easy to change for the Duet 2 Wifi, but I believe you would need to make changes in the Pins.h specific to the board and maybe also in Display.cpp (for now).

                        Maestro ST7565 Wiring Option 2.png

                        Edit: Since @oliof is using the exact same Creality MiniPanel display from the CR-20, I have adjusted the diagram to match the exact orientation of the display connectors on that specific display. The tab goes on the side of pin #1.

                        Creality CR-20 Pro with a Duet 2 Maestro, 3Dfused X+Z-axis rail kit, HIWIN-based DIY solution for the Y-axis, E3D Hemera, working ST7565 MiniPanel and various other small hardware improvements.

                        1 Reply Last reply Reply Quote 0
                        • oliofundefined
                          oliof
                          last edited by

                          @Schmart said in Logic Level shifter for 12864 display on Duet 2 Wifi:

                          The pinout of displays made vary wildly, and the connectors on display-side may need to be reversed (the plastic shroud rotated 180 degrees). Also, the firmware adaptations I made in my fork are relatively easy to change for the Duet 2 Wifi, but I believe you would need to make changes in the Pins.h specific to the board and maybe also in Display.cpp (for now).

                          I have a Creality minipanel I want to use, so we're in the clear there. I'll check how Pins.h need to be adapted if I get around to it before this lands in 3.2 or beyond.

                          <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                          Schmartundefined 1 Reply Last reply Reply Quote 0
                          • Schmartundefined
                            Schmart @oliof
                            last edited by

                            @oliof That would be so cool if you'd get it working as well. I'm not at my computer anymore, but I believe I'm using ‘M918 P2 E4 F2000000‘ in my config.g.

                            Creality CR-20 Pro with a Duet 2 Maestro, 3Dfused X+Z-axis rail kit, HIWIN-based DIY solution for the Y-axis, E3D Hemera, working ST7565 MiniPanel and various other small hardware improvements.

                            1 Reply Last reply Reply Quote 0
                            • dc42undefined
                              dc42 administrators
                              last edited by

                              Please note, the wiring diagram posted by @Schmart above is not the wiring arrangement that will be supported in RRF 3.2. The wiring arrangement in 3.2 is listed in this post https://forum.duet3d.com/post/157139.

                              Duet WiFi hardware designer and firmware engineer
                              Please do not ask me for Duet support via PM or email, use the forum
                              http://www.escher3d.com, https://miscsolutions.wordpress.com

                              Schmartundefined antlobundefined 2 Replies Last reply Reply Quote 1
                              • Schmartundefined
                                Schmart @dc42
                                last edited by

                                @dc42 I saw the post, it wasn't clear to me if this was for the Duet 2 Wifi/Ethernet only or also for the Maestro?

                                Creality CR-20 Pro with a Duet 2 Maestro, 3Dfused X+Z-axis rail kit, HIWIN-based DIY solution for the Y-axis, E3D Hemera, working ST7565 MiniPanel and various other small hardware improvements.

                                oliofundefined dc42undefined 2 Replies Last reply Reply Quote 0
                                • oliofundefined
                                  oliof @Schmart
                                  last edited by

                                  @Schmart I'd assume it will be the same for either.

                                  <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                                  1 Reply Last reply Reply Quote 0
                                  • dc42undefined
                                    dc42 administrators @Schmart
                                    last edited by dc42

                                    @Schmart said in Logic Level shifter for 12864 display on Duet 2 Wifi:

                                    @dc42 I saw the post, it wasn't clear to me if this was for the Duet 2 Wifi/Ethernet only or also for the Maestro?

                                    It's for Duet WiFi/Ethernet. For the Maestro, I chose pin exp.pa21 to connect A0 to (same as in your diagram). To avoid having to invert the CS signal in hardware, I am considering requiring CS of a 7567-based display to be connected to exp.pa22.

                                    Duet WiFi hardware designer and firmware engineer
                                    Please do not ask me for Duet support via PM or email, use the forum
                                    http://www.escher3d.com, https://miscsolutions.wordpress.com

                                    1 Reply Last reply Reply Quote 1
                                    • antlobundefined
                                      antlob @dc42
                                      last edited by antlob

                                      @dc42 Can you please confirm if that wire arrangement ( https://forum.duet3d.com/post/157139.) will work not only for the MINI LCD 12864 but also for a standart LCD 12864, mine is a BigtreeTech. Many thanks! If that's the case from lines 11 to 17 I must connect them only if I want the LCD 12864 SD Card support, right? If I prefer the one on the panel due I only need to connect the LCD 12864 to ConnLCD on the Duet 2 Wifi, right?

                                      antlobundefined A Former User? 2 Replies Last reply Reply Quote 0
                                      • antlobundefined
                                        antlob @antlob
                                        last edited by

                                        @antlob Hello! Anybody? Please help!

                                        1 Reply Last reply Reply Quote 0
                                        • oliofundefined
                                          oliof
                                          last edited by

                                          @antlob I can confirm that the BTT TFT2.4 12864 emulation works on the Duet Maestro which indicates it's an ST7920 and will need a logic level shifter (and a custom firmware build) for the Duet2 Wifi. Unless you share more details about the 12864 you have we cannot give you a straight answer.

                                          <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                                          antlobundefined 1 Reply Last reply Reply Quote 0
                                          • antlobundefined
                                            antlob @oliof
                                            last edited by

                                            @oliof Thanks for the reply. I have the following display . For what I've seen in forums is an ST7920 but don't know how to be certain, the display is soldered to a backplate and don't have access to the chip. So, assuming that I have the correct one, should I follow scheck's diagram? And also seems like I have to compile version RRF 3.02 dev, right? Would it work, in principle? But, if by any chance you already have the *.bin file it would really help me. Many thanks again for your time. My current RRF version is 3.1.1 as suggested by @dc42.

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