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

    Duet wifi display support question

    Scheduled Pinned Locked Moved
    General Discussion
    13
    24
    8.3k
    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.
    • 3DSTBundefined
      3DSTB
      last edited by

      Hello David,
      i'm not sure if it is difficult to add some lcd-support to the RADDS-firmware? There is a free adapter on thingiverse with some documentation. I'm especially interested for a support of the reprapdiscount smart controller (20x4). What do you think?

      Regards
      Steffen

      Reprapdiscount Smart Controller (20x4)
      http://reprap.org/wiki/RepRapDiscount_Smart_Controller

      RADDS2LCD:
      http://www.thingiverse.com/thing:1740725

      [[language]]
      RADDS2LCD in Repetier-Firmware for DEV-version (1.x.x)
      ======================================================
      
      Hardware
      --------
      
      Box Header: pin 1 = red conductor from ribbon cable -> side is marked with "rt" on RADDS2LCD.u / RADDS2LCD.o
      on RADDS: red conductor towards MOS-FETs and screw terminals
      
      Repetier.h
      ----------
      
      at end of block beginning with:
      ##################################
      #define NO_CONTROLLER 0
      
      add these lines:
      #########
      #define CONTROLLER_RADDS_LCD_16X2 997
      #define CONTROLLER_RADDS_LCD_20X4 998
      #define CONTROLLER_RADDS_FGSC 999
      
      Configuration.h
      --------------
      
      replace this:
      #####################
      #define FEATURE_CONTROLLER ...
      
      by this:
      ######
      /*
      		which display ???
      		- full graphics smart controller is tested!
      		- row / column display is NOT TESTED - use with own testing ;)
        */
      //#define FEATURE_CONTROLLER CONTROLLER_RADDS_LCD_16X2	// RADDS2LCD -> LCD with 16 columns and 2 rows
      //#define FEATURE_CONTROLLER CONTROLLER_RADDS_LCD_20X4	// RADDS2LCD -> LCD with 20 columns and 4 rows
      #define FEATURE_CONTROLLER CONTROLLER_RADDS_FGSC	  	// RADDS2LCD -> Full Graphics Smart Controller
      
      ui.h
      ----
      
      after these lines
      #######
      
      #if  FEATURE_CONTROLLER == CONTROLLER_RAMBO
      ...
      #endif
      
      add these lines
      ###############
      
      // RADDS + RADDS2LCD + Full Graphics Smart Controller / other 4-bit LCD
      #if (FEATURE_CONTROLLER == CONTROLLER_RADDS_FGSC || FEATURE_CONTROLLER == CONTROLLER_RADDS_LCD_16X2 || FEATURE_CONTROLLER == CONTROLLER_RADDS_LCD_20X4)
        #undef SDCARDDETECT
        #define SDCARDDETECT -1
        #undef SDSUPPORT
        #define SDSUPPORT 1
      #endif // FEATURE_CONTROLLER == CONTROLLER_RADDS_FGSC
      
      DisplayList.h
      ------
      
      before or after these lines:
      ###################
      
      #if FEATURE_CONTROLLER == CONTROLLER_RADDS
      #undef SDSS
      ...
      void uiCheckSlowKeys(uint16_t &action) {}
      #endif
      
      add these lines
      ##############
      
      #if (FEATURE_CONTROLLER == CONTROLLER_RADDS_FGSC || FEATURE_CONTROLLER == CONTROLLER_RADDS_LCD_16X2 || FEATURE_CONTROLLER == CONTROLLER_RADDS_LCD_20X4)
        #undef SDSS
        #define SDSS            10
        #undef SPI_PIN
        #define SPI_PIN         77
        #undef SPI_CHAN
        #define SPI_CHAN        0
        #define UI_HAS_KEYS     1
      
        #define UI_HAS_BACK_KEY 0
      
        // decide which lcd is used
        #if (FEATURE_CONTROLLER == CONTROLLER_RADDS_FGSC)
      	#define UI_DISPLAY_TYPE DISPLAY_U8G
          #define U8GLIB_ST7920
          #define UI_LCD_WIDTH 128
          #define UI_LCD_HEIGHT 64
      
          //select font size
          #define UI_FONT_6X10 //default font
          #ifdef UI_FONT_6X10
            #define UI_FONT_WIDTH 6
            #define UI_FONT_HEIGHT 10
            #define UI_FONT_SMALL_HEIGHT 7
            #define UI_FONT_DEFAULT repetier_6x10
            #define UI_FONT_SMALL repetier_5x7
            #define UI_FONT_SMALL_WIDTH 5 //smaller font for status display
            #define UI_ANIMATION false  // Animations are too slow
          #endif
      
          //calculate rows and cols available with current font
          #define UI_COLS (UI_LCD_WIDTH/UI_FONT_WIDTH)
          #define UI_ROWS (UI_LCD_HEIGHT/UI_FONT_HEIGHT)
          #define UI_DISPLAY_CHARSET 3
      
        #elif (FEATURE_CONTROLLER == CONTROLLER_RADDS_LCD_16X2)
      		#define UI_DISPLAY_TYPE DISPLAY_4BIT
      		#define UI_COLS 16
      		#define UI_ROWS 2	
      
        #else (FEATURE_CONTROLLER == CONTROLLER_RADDS_LCD_20X4)
      	  #define UI_DISPLAY_TYPE DISPLAY_4BIT
      		#define UI_COLS 20
      		#define UI_ROWS 4	
        #endif
      
        #define UI_DISPLAY_CHARSET 3
      
        #define BEEPER_TYPE 1
        #undef BEEPER_PIN
        #define BEEPER_PIN             41
        #define UI_DISPLAY_RS_PIN      42
        #define UI_DISPLAY_RW_PIN      -1
        #define UI_DISPLAY_ENABLE_PIN  43
        #define UI_DISPLAY_D0_PIN      44
        #define UI_DISPLAY_D1_PIN      45
        #define UI_DISPLAY_D2_PIN      46
        #define UI_DISPLAY_D3_PIN      47
        #define UI_DISPLAY_D4_PIN      44
        #define UI_DISPLAY_D5_PIN      45
        #define UI_DISPLAY_D6_PIN      46
        #define UI_DISPLAY_D7_PIN      47
      
        // swap these two numbers to invert rotary encoder scroll direction
        #define UI_ENCODER_A           50
        #define UI_ENCODER_B           52
      
        #define UI_ENCODER_CLICK       48
        #define UI_RESET_PIN           -1
        #define UI_DELAYPERCHAR 50
        #define UI_INVERT_MENU_DIRECTION 0
        #define UI_BUTTON_BACK         71 // -1
      
        #ifdef UI_MAIN
          void uiInitKeys() {
            UI_KEYS_INIT_CLICKENCODER_LOW(UI_ENCODER_A, UI_ENCODER_B); // click encoder on pins 47 and 45\. Phase is connected with gnd for signals.
            UI_KEYS_INIT_BUTTON_LOW(UI_ENCODER_CLICK); // push button, connects gnd to pin
            UI_KEYS_INIT_BUTTON_LOW(UI_BUTTON_BACK);
          }
          void uiCheckKeys(uint16_t &action) {
            UI_KEYS_CLICKENCODER_LOW(UI_ENCODER_A, UI_ENCODER_B); // click encoder on pins 47 and 45\. Phase is connected with gnd for signals.
            UI_KEYS_BUTTON_LOW(UI_ENCODER_CLICK, UI_ACTION_OK); // push button, connects gnd to pin
            UI_KEYS_BUTTON_LOW(UI_BUTTON_BACK, UI_ACTION_BACK);
          }
          inline void uiCheckSlowEncoder() {}
          void uiCheckSlowKeys(uint16_t &action) {}
        #endif
      #endif // controller RADDS2LCD
      
      DisplayList.h - (optional)
      --------------------------
      if you want to swap rotary encoder scroll direction (count clock / clockwise rotation)
      then swap 
      ##########################################
      #if FEATURE_CONTROLLER == CONTROLLER_RADDS_FGSC
      ...
      #define UI_ENCODER_A           52
      #define UI_ENCODER_B           50
      ##########################################
      to
      ##########################################
      #if FEATURE_CONTROLLER == CONTROLLER_RADDS_FGSC
      ...
      #define UI_ENCODER_A           50
      #define UI_ENCODER_B           52
      ##########################################
      
      
      1 Reply Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators
        last edited by

        It's a lot of work to add support for other LCDs and to maintain that support because the menu system and interaction with the rest of the firmware would need to be implemented. It's not going to happen any time soon.

        It would be possible to use an Arduino or similar with a low-cost display and a rotary encoder to emulate some of the functions of PanelDue. Another user started implementing that, but AFAIK it wasn't finished.

        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
        • HikariNoKitsuneundefined
          HikariNoKitsune
          last edited by

          So basically, something that is usually seen relatively easy to accomplish, is seen as too hard to maintain for the Duet? With the sheer amount of support there is out there for all these other displays that are out here in the wild, most notably the "Reprap Discount Full Graphic Smart Controller", it is abit mind blowing to hear someone state that it is difficult to not just add, but 'maintain' something that seemingly wouldn't ever need to be changed, and thus maintaining would something to not even really worry about.

          The only issue I can see would be that since it isn't arduino based like a RAMPS, it obviously wouldn't be the same 'menu' and 'layout' as something like the Marlin firmware. Thus the layout and menu would need to be created. But, again, that seems insanely simple to do considering there is already a pretty amazing web interface that already has all the variables and such, not to mention the already existing code to interact with the PanelDue. Granted, I believe the PanelDue is kind of its own separate system in itself and is merely just being fed values and then spitting out gcode back to the Duet. So all the infrastructure to enable support for these other screens appears to be pretty straight forward, with the only other reason for not including support for them being to keep the ecosystem of components closed off to drive up sales of those components… That, or the hardware itself is designed in such a way that other displays couldn't be used, but then that thought gets tossed aside because the same exact pins that are used to connect to an 'external SD card' on the back of a screen, can be used for running a TFT28 or similar screen, or even the Full Graphic Smart Controller....

          So it seems more of a 'We just don't want to do it' and not a 'its too much for us to do' when the board itself is basically finished and the firmware working near flawlessly.

          1 Reply Last reply Reply Quote 0
          • 3dprinting meatheadundefined
            3dprinting meathead
            last edited by

            @HikariNoKitsune:

            So basically, something that is usually seen relatively easy to accomplish, is seen as too hard to maintain for the Duet? With the sheer amount of support there is out there for all these other displays that are out here in the wild, most notably the "Reprap Discount Full Graphic Smart Controller", it is abit mind blowing to hear someone state that it is difficult to not just add, but 'maintain' something that seemingly wouldn't ever need to be changed, and thus maintaining would something to not even really worry about.

            The only issue I can see would be that since it isn't arduino based like a RAMPS, it obviously wouldn't be the same 'menu' and 'layout' as something like the Marlin firmware. Thus the layout and menu would need to be created. But, again, that seems insanely simple to do considering there is already a pretty amazing web interface that already has all the variables and such, not to mention the already existing code to interact with the PanelDue. Granted, I believe the PanelDue is kind of its own separate system in itself and is merely just being fed values and then spitting out gcode back to the Duet. So all the infrastructure to enable support for these other screens appears to be pretty straight forward, with the only other reason for not including support for them being to keep the ecosystem of components closed off to drive up sales of those components… That, or the hardware itself is designed in such a way that other displays couldn't be used, but then that thought gets tossed aside because the same exact pins that are used to connect to an 'external SD card' on the back of a screen, can be used for running a TFT28 or similar screen, or even the Full Graphic Smart Controller....

            So it seems more of a 'We just don't want to do it' and not a 'its too much for us to do' when the board itself is basically finished and the firmware working near flawlessly.

            It is all open source, so you can implement it yourself if you want.

            It would need to be changed as new features are continually added though.

            The pins can be configured in almost anyway you can imagine, so I don't think pinout would be an issue.

            The board has a 3.3v logic, which might be an issue.

            They are rather busy perfecting the firmware, which is always being improved and new features added. But it is a wifi board, so you can control it on any computer, tablet, or smart phone. That kinda pushes it's necessity further down the priority list.

            But I do feel that it is inappropriate to imply greed a a motivating factor for not having the time to write the support. They work very hard to develop the most advanced and most versatile board on the market today. Please check out the firmware wishlist to get an idea of the types of features they are constantly adding.

            If I can learn it, than anyone can learn it.

            1 Reply Last reply Reply Quote 0
            • T3P3Tonyundefined
              T3P3Tony administrators
              last edited by

              We initially planned on supporting a simpler LCD. that is why the headers are there on the board (LCD CONN and SD CONN). The reasons for not doing so yet are:

              1. While it may seam trivial to you to add a whole menu system, and UI control, as it is not yet implemented within the Duet it is a significant amount of firmware work to put in place, its also (despite what you say) another area that will need frequent updating as new features are added to the firmware.

              2. Most of our users who initially asked for a simple LCD, once they use the browser UI, feel its a lower priority than they may have initially thought. That is not to say it has no utility. Just that other firmware work is higher priority.

              I actually developed a 3.3V version of the PanelOne, our simple LCD panel:
              https://www.think3dprint3d.com/PanelOne
              for this reason, however, once again it is not currently a high enough priority.

              www.duet3d.com

              1 Reply Last reply Reply Quote 0
              • Cataundefined
                Cata
                last edited by

                A 20x4 display for temps, and other fast reading values it's a great idea.

                1 Reply Last reply Reply Quote 0
                • weputundefined
                  weput
                  last edited by

                  @Cata:

                  A 20x4 display for temps, and other fast reading values it's a great idea.

                  <–-- i second this.

                  I recently (as in 3 or 4 days ago) finished setting the duet on my printer... and i really miss my LCD...it displayed temps... time and had a kill switch that is way easier to press than the reset button.

                  if 12864 is going to be supported... lets go for it.. it cost less than 20 bucks.

                  1 Reply Last reply Reply Quote 0
                  • elmoretundefined
                    elmoret
                    last edited by

                    @HikariNoKitsune:

                    Granted, I believe the PanelDue is kind of its own separate system in itself and is merely just being fed values and then spitting out gcode back to the Duet.

                    It sounds like you may not have done very much firmware development. Creating a whole new menu system is not "insanely simple". It is really time intensive, more so than other features that are currently on the wishlist. The cool thing about the wishlist is that it is an open voting system, the author of the firmware prioritizes based on community feedback. Which is admirable, in my opinion.

                    @HikariNoKitsune:

                    So all the infrastructure to enable support for these other screens appears to be pretty straight forward, with the only other reason for not including support for them being to keep the ecosystem of components closed off to drive up sales of those components…

                    The beautiful thing is that the hardware and firmware are both open source. There is nothing stopping you (or anyone else) from writing the code.

                    @HikariNoKitsune:

                    So it seems more of a 'We just don't want to do it' and not a 'its too much for us to do' when the board itself is basically finished and the firmware working near flawlessly.

                    No, it is more of a "there are other firmware feature requests that are much more popular/requested right now". You can see the list of requests here:

                    https://www.duet3d.com/forum/thread.php?id=961

                    1 Reply Last reply Reply Quote 0
                    • sigxcpuundefined
                      sigxcpu
                      last edited by

                      The protocol on the PanelDue socket is the simple serial console, right?
                      So an Arduino + cheap LCD with firmware for UI can emulate PanelDue.
                      Now the question is who will write a whole OS for that 🙂

                      The "net" is full of 3.2" touchscreens with adapter for Arduino Mega 2560.

                      1 Reply Last reply Reply Quote 0
                      • PcSundefined
                        PcS
                        last edited by

                        With the web interface and the panel due you really don't need anything else. I hate with a passion anything with a rotary encoder wheel and layer after layer of menus. It is both not very unintuitive a very slow. Usually people buying this board do so with the touch screen in mind…At least I did bought both same day. I do not consider it too pricey for this much ability and fingertip freedom. To each his own of course...But why buy a top of the line controller and put an outdated display on it ? I had the old display on my other printer and took it off because I never used it as I always controlled it with Octoprint.

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

                          PanelDue originally supported a 3.2" touch screen, but I dropped support for that before release because I just couldn't fit as much information on the screen as I wanted to, and the 4.3" screen didn't cost much more. Like PcS, I hate having layer after layer of menus. PanelDue with standard firmware has just 4 pages, with popup windows appearing over them when necessary.

                          I have been trying to reduce the production cost of the PanelDue control board, and hence the price I charge. The Brexit vote put paid to my first attempt because my component costs increased sharply as the £ fell. But at least I managed not to increase prices, and customers outside the UK benefitted from the change in exchange rate. I'm prototyping a new version with a cheaper processor, in another attempt to reduce the production cost.

                          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
                          • PcSundefined
                            PcS
                            last edited by

                            Thanks for the panel due. It was one item on a list of things that set this board apart from the competition for me personally. I find the menus well laid out and fast . The web interface is also a joy and the firmware configuration tool really sped up initial printer set up . I may have to upgrade the rest of my fleet . Thanks again.

                            1 Reply Last reply Reply Quote 0
                            • Agniusmundefined
                              Agniusm
                              last edited by

                              I would like to add to this. I was too very exited about 5" i got but having used it and having both, PanelDue and 20x4 character i have to say, 20x4 is a lot friendly to use. It just gives you that feedback of having hardware know rather than touchscreen.
                              Perhaps its just an individual preference and in time paneldue will get more functionality.

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

                                What feedback from the 20x4 display are you referring to?

                                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
                                • Cataundefined
                                  Cata
                                  last edited by

                                  Feedback for presing buttons he says

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

                                    PanelDue provides audible feedback whenever a button is pressed, with adjustable volume.

                                    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
                                    • Agniusmundefined
                                      Agniusm
                                      last edited by

                                      Its not just that. Its same like in a vehicle. Its nicer to control things via phisical buttons rather then lcd touch screen.
                                      Btw, does paneldue has limited set of characters on the keybard? I miss " for setting up wifi AP's

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

                                        @Agniusm:

                                        Its not just that. Its same like in a vehicle. Its nicer to control things via phisical buttons rather then lcd touch screen.

                                        A vehicle is a completely different environment, you need to feel the buttons so you can keep your eyes on the road.

                                        @Agniusm:

                                        Btw, does paneldue has limited set of characters on the keybard? I miss " for setting up wifi AP's

                                        The latest beta PanelDue firmware provides a lot more characters.

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