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

    ST7567 Support

    Scheduled Pinned Locked Moved
    Beta Firmware
    4
    10
    652
    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.
    • Schmartundefined
      Schmart
      last edited by Schmart

      Hi @dc42, please consider this an informational update mostly. About seven days ago, I was finally able to make time to work on UC1701/ST7567 support for the 12864 Mini Panel in my CR-20 Pro.

      I used the latest versions of Eclipse, plugins, tools and toolchain and (as instructed) the v3-dev branch of RRF. I set up the environment, accurately documented the whole process and started working on a DriverBase class that is both the base class for the ST7920 and UC1701 driver classes, so I can easily implement additional displays. I bricked the Maestro board the first time, but was able to figure out the problem and recovered quickly.

      As of now, the firmware with the refactored ST7920 display code still shows two additional zeroes for the nozzle temperature (!), so that's something I have to figure out still, but I'm already excited that I got the concept working: long time ago, I was fluent in C++, but I'm a little rusty now, and I have only one machine to test firmwares on, which is not ideal.

      I'm now at the point that can I implement the specifics for the UC1701/ST7567 controller. I expect to need one more day at most coding, and I've already mapped the vastly different display connector pinout that Creality is using. I'm using pin ext_0 (PA21) for the DC line, and I want to buffer the pin with an SN74HC08. I don't have a 74HCT08, so I'm hoping that will work out okay.

      Three questions I'm hoping you'll answer:

      • Today, I discovered in the v3.02dev branch that you also started on implementing ST7567 support. That's great! If I'm done, would you still like to review my approach and provide feedback?
      • Is the SN74HC08 suitable to use for buffering?
      • What is your process to test firmware? Are you using a development board or do you -like me- upload a firmware binary and look at the serial output for debug messages?

      Edit: I was under the assumption that my display is based on a ST7565, not the ST7567, but these drivers are probably all close enough.

      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.

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

        @Schmart said in ST7567 Support:

        Is the SN74HC08 suitable to use for buffering?

        no, normal cmos chips will not trigger a high level at 3.3v, the T signifies ttl which trigger at 2-ish volts.

        also the 7408 does perform a gating function in addition to the buffering, not sure if thats needed for the st7567

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

          According to the data sheets and schematics, the ST7567 does not need the SCLK pin to be gated with CS. Also the ST7567 uses 3.3V signal levels, and displays using it normally have input level shifters to tolerate 5V signals. I believe these should work just fine with 3.3V signal levels. So it should not be necessary to use any buffers.

          The ST7567 support code in the 3.02 branch is notionally complete, but untested and therefore almost certainly not working yet. The type of controller chip is selected in the M918 command.

          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 2 Replies Last reply Reply Quote 0
          • Schmartundefined
            Schmart @dc42
            last edited by Schmart

            @dc42 I much prefer a wiring solution without additional components, as long as I don't risk blowing up the IO port or the MCU on 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.

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

              @dc42 Just an update, I finally found and squashed a nasty bug I introduced as a result of refactoring for multiple display drivers, and will start testing the UC1701/ST7565 code with my MiniPanel display soon.

              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

                Thanks for the update.

                I haven't tried my ST7567 changes yet either. Although I finished writing the code, the particular ST7567 display that I purchased has an RGB backlight, so it needs additional code to control that.

                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

                jay_s_ukundefined 1 Reply Last reply Reply Quote 0
                • jay_s_ukundefined
                  jay_s_uk @dc42
                  last edited by

                  @dc42
                  Have you bought a mini12864 panel? The one by fysetc?

                  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

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

                    @jay_s_uk said in ST7567 Support:

                    @dc42
                    Have you bought a mini12864 panel? The one by fysetc?

                    Yes. I didn't realise it had an RGB backlight.

                    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 0
                    • Schmartundefined
                      Schmart
                      last edited by Schmart

                      @dc42 Since the ST7565/UC1701 uses a different GDRAM to COM/SEG mapping, I'm using some temporary code that flushes the entire display for testing purposes. It's my intention to later implement flushing the affected area only, either using the existing principle already in the firmware, or through keeping a bitmap of affected tiles (e.g. tile size 8x8 for the UC1701, 16x8 for the ST7920). That will be more efficient since smaller areas are refreshed and it's simpler to implement, but it will take some extra memory, about 64-128 bytes in RAM, so I wasn't sure if you would approve.

                      Also, I flashed the test firmware and turned on the printer... Nothing on the display at all.

                      So I hooked up a logic analyzer and then it hit me. The MiniPanel I'm using needs an active low, but SPI0_SCK_LCD is gated with LCD_CS. So configuring SPI active low does not put out a clock signal when needed. Apart from inverting the LCD_CS line between the Maestro and the display, do you have any creative thoughts? Maybe use the unbuffered SPI for the SD card (which I'm not using anyway)?

                      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
                        last edited by Schmart

                        @dc42 I think I'm making progress here... 🙂

                        I found an old 74LS00N NAND to invert the LCD_CS with, but it seems that when the display isn't configured properly, the Vcc drops to below 4v and the IC becomes a bit noisy which causes instability in the CS line. Now the display code is working, the Vcc is back to 4.8v and the noise seems gone though.

                        The 74LS00N is probably not the best choice, but I have nothing better at the moment. Any suggestions?

                        And using the SPI of the SD card reader raw, instead of the buffered 12864 pins of the Maestro, is that an option?

                        Next step: only draw affected pixels...

                        UC1701 Display Working_small.jpg

                        Update: Many additions and corrections. Too excited!

                        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
                        • First post
                          Last post
                        Unless otherwise noted, all forum content is licensed under CC-BY-SA