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

    Ideas for a successor of DWC

    Scheduled Pinned Locked Moved
    Duet Web Control wishlist
    16
    40
    4.6k
    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.
    • sonderzugundefined
      sonderzug
      last edited by

      Hi,

      first of all, I think DWC is a remarkable puzzle piece in the 3d printing world, which made having a dedicated Control unit on the Printer completely obsolete for me. My printer only has its power button and nothing else (it's sitting directly next to my PC though). Before I worked with Duet, I was constantly searching for "the perfect" UI, considering everything from 12864-style displays with encoder to full fledged touchscreens. So this shows how much of a game changer this well done web interface was for me personally.

      That being said, this use case is not for everyone. To answer your question and offer my 2 cents:
      I think DWC might have potential to be the truly universal UI for remote and non-remote operation of the printer. Therefore beyond the screen size adapting to smaller (smartphone) and bigger (desktop) screens, there should be different "modes" that you can set up. I'm thinking "printer display" mode which offers at least the functionality that classical 12864-style controllers (or Paneldue 👅 ) offer, and "admin" mode like the current DWC UI, offering full access to the printers configuration, files etc. "Printer Display" mode should adapt to smartphones or tablets, maybe offering more tactile UI elements (e.g. knobs for temperature adjustment, if possible), which leaves the user to choose if they want to use their smartphone, or fix a tablet or RPI display to the printer itself (offering the possibility to even add mouse and keyboard there).

      I can't really offer any feedback on features I find missing in DWC, because for me personally there are none. Maybe one thing (which would apply to "printer display" and "admin" mode both):
      My Anycubic Photon (DLP printer) uses a Chitu board and touchscreen, which shows a little representation of the model in the slicer. It's a screenshot of the slicer window, which makes it difficult to implement in our FDM world as I know of no slicer that offers this atm, but maybe there is a way to have a little graphical representation of the model in the Gcode file list?

      HTH, Niklas

      1 Reply Last reply Reply Quote 1
      • SupraGuyundefined
        SupraGuy
        last edited by

        Re-sizable controls. I might want a fairly control dense screen on my RPi 480X320 screen with a trackball, or I might want only a few key buttons if I'm using the same in a 5" touchscreen. Kind of different if I'm displaying on a 4k monitor.

        I commonly use an RPi with a 1280X720 7" screen, my phone (5" 1080X1920 or 1920X1080 screen) or my media PC (40" 4k screen) with DWC now.

        The phone is the most maddening, but the one that I am most likely to use for babystepping adjustments.

        For me thought the biggest thing that I'd like to see is user levels. One level where you can print pre-stored files, one level where you can upload macros and files, and one where you can update firmware, and main configuration. (Let the kids print another object, daily use, and admin privs.) Yeah, I'm aware that with "Gcode everywhere" uploading a Gcode file can do whatever mucking with the configuration files can do, but at least it can be reset with a power down. (I'm a network admin for my day job. Proper user sandboxing is something that I like.)

        Lead screw driven printer, powered by Duet 2 Wifi
        MPCNC powered by Duet 2 Wifi
        CoreXY printer driven by Duet 3 6HC
        LowRider CNC powered by Duet 2 Wifi

        pabomanundefined 1 Reply Last reply Reply Quote 2
        • pabomanundefined
          paboman @SupraGuy
          last edited by

          @supraguy
          agree, user levels authentication is something we really need

          1 Reply Last reply Reply Quote 0
          • botundefined
            bot
            last edited by

            It would be interesting if the new version of DWC could intrinsically manage a farm of printers. I guess the web servers would have to somehow communicate with one another. I guess you would go to the appropriate URL for any DWC instance, and in some part of the UI you could see the status of the other printers on the network, and quickly jump to their DWC instance.

            I guess that's actually not very important, because one could just have the multiple instances open in tabs, but it could streamline the process and cause less confusion for users who are not as intimate with the setup as the admin.

            *not actually a robot

            chrishammundefined Danalundefined 2 Replies Last reply Reply Quote 0
            • chrishammundefined
              chrishamm administrators @bot
              last edited by

              @bot Nice idea, I think somebody requested this before, too. Would anyone mind if this was only an option when running on the local PC, though? At the moment DWC already allows an IP to be specified if it detects it is running on localhost so I figure it would be a good extension to allow the same for multiple boards. Besides, that way DWC could avoid getting confused by stored DWC settings on the machine(s) that it connects to.

              Duet software engineer

              T3P3Tonyundefined botundefined 2 Replies Last reply Reply Quote 0
              • T3P3Tonyundefined
                T3P3Tony administrators @chrishamm
                last edited by

                @chrishamm another option could be a print farm mode when you connect to one Duet and have a setup option mode to scallops for other duets on the local network. Then the user can select the live instances of DWC they want to control.

                www.duet3d.com

                1 Reply Last reply Reply Quote 0
                • botundefined
                  bot @chrishamm
                  last edited by

                  @chrishamm However you and others find best to implement, I'd be fine with. You've done well so far, I have no reason to doubt the solution you come up with.

                  I guess it could actually be a separate application/web server that could be run on the same network, from a PC or micro computer, and configured to access whichever printers is needed. Perhaps it could interface with the DWC instances to handle user privileges in an elegant way (ie, the credentials are passed through from the farm interface to the DWC instance, though perhaps this is a major security worst-practice) .

                  *not actually a robot

                  1 Reply Last reply Reply Quote 0
                  • Danalundefined
                    Danal @bot
                    last edited by

                    @bot said in Ideas for a successor of DWC:

                    It would be interesting if the new version of DWC could intrinsically manage a farm of printers.

                    I'd love to see this built in. Meanwhile:

                    https://github.com/DanalEstes/MultiDuetWebMonitor

                    I guess the web servers would have to somehow communicate with one another.

                    Not really. Chris already has a discovery protocol. Once any printer provided the UI and script to a browser, that browser could find all the other printers.

                    I guess you would go to the appropriate URL for any DWC instance, and in some part of the UI you could see the status of the other printers on the network, and quickly jump to their DWC instance.

                    Exactly. If Chris wants to do that.

                    I guess that's actually not very important, because one could just have the multiple instances open in tabs, but it could streamline the process and cause less confusion for users who are not as intimate with the setup as the admin.

                    Tabs hide each other. Having "arms length" color codes on "one pane of glass" was a design goal for multiduetwebmonitor.

                    Delta / Kossel printer fanatic

                    1 Reply Last reply Reply Quote 2
                    • brunofportoundefined
                      brunofporto
                      last edited by

                      Idea:

                      Show commands that are registered but not executed yet due to the printer been busy!

                      For example, my end gcode commands the bed to go to 50C and wait, then play the buzzer so I know when the bed is cool enough to get parts out of it.

                      While I was waiting I sent some commands (heat the bed to 100C and start a simulation). As expected it will execute those commands but there is no indication that they are at the "queue" for execution...

                      Another suggestion is to show the Macro's list (like the one that exists in Machine Control) besides the gcode console.

                      Thanks!

                      chrishammundefined 1 Reply Last reply Reply Quote 0
                      • chrishammundefined
                        chrishamm administrators @brunofporto
                        last edited by

                        @brunofporto Thanks for the proposal, I'll consider it! Perhaps it would make sense to disable the G-code inputs temporarily until the firmware indicates a response?

                        Meanwhile I've made some more progress and got a big part of the backend working. By that I mean the responsive grid that will allow you to customise the pages as you like. If anyone wants to play with it, check out the demo sandbox here. The source code of the component can be found here even though it is still a first version.

                        Nevertheless I guess it will give you an idea about what the upcoming UI designer will look like. Because the original vue-grid-layout component isn't nearly as flexible as I hoped I had to add a whole bunch of features but I'm quite happy with it so far. And don't be surprised about the poor looks of the demo page, that is just a sandbox with plain HTML and JavaScript 🙂

                        Duet software engineer

                        sonderzugundefined brunofportoundefined 2 Replies Last reply Reply Quote 1
                        • brunofportoundefined
                          brunofporto
                          last edited by

                          @chrishamm said in Ideas for a successor of DWC:

                          Perhaps it would make sense to disable the G-code inputs temporarily until the firmware indicates a response?

                          Show them at the terminal with a different color, marking it as halted, until executed than the color changes to indicate it was executed.

                          chrishammundefined 1 Reply Last reply Reply Quote 0
                          • TLASundefined
                            TLAS
                            last edited by

                            Not sure if you’re familiar with AngularJS, but it’s an awesome architecture. Whatever you come up with, I’d like to see the core functions as disconnected from the UI as possible (Angular does great with this). This allows UI changes very easily. Especially with the move to SBCs on the Duet 3, a main-stream web architecture would be great.

                            The SBC shift also opens up a large potential for server based operations. I dare to even suggest it, but a ‘Duet Reliability Initative” sounds feasible. Essentially have the web interface / SBC send information to a central server about errors, failed / cancelled prints, config setup / firmware feature use, bed compensation deviations, heater Calibrations, laser filament results, etc. You could do a lot of cool stuff with that data. Map out the most successful filaments / printer configurations, Recommend heater calibration changes, auto-notify errors for error message improvements, Of course have the opt-in / out options for privacy.

                            Just some thoughts.

                            1 Reply Last reply Reply Quote 1
                            • chrishammundefined
                              chrishamm administrators @brunofporto
                              last edited by

                              @brunofporto Or perhaps even a "loading" icon in the right corner of the G-code input, I think Element-UI provides some nice templates for that. I'll check it out.

                              @TLAS I looked into Angular and Ember before I started development with Vue, see here for a comparison. Separation of view and model and reusability are the main goals of the upcoming DWC rewrite and this already worked quite decently in the config tool rewrite. AFAIK this idea is a core concept of Angular too.

                              A Duet Reliability Initative could be an option but this would introduce privacy aspects which I didn't want to touch before. However I expect the new UI will be a lot more robust anyway and I'm still considering the introduction of unit tests too.

                              Duet software engineer

                              1 Reply Last reply Reply Quote 0
                              • sonderzugundefined
                                sonderzug @chrishamm
                                last edited by

                                @chrishamm who remembers all the hate M$ received when releasing Windows 8 in 2012... however much sense it makes to build a desktop OS around this kind of UI is debatable at best, imo it's still a very good design approach and I'm very excited to play around with this once it takes shape.

                                what's it gonna be called, btw? DWC2? DDWC (dynamic duet web Control)?

                                chrishammundefined 1 Reply Last reply Reply Quote 0
                                • chrishammundefined
                                  chrishamm administrators @sonderzug
                                  last edited by

                                  @sonderzug Since it will be a NodeJS app it will be possible to turn it into desktop app will without much trouble, I think. I'll call it DWC2, which is why there is no DWC 2.0 release yet.

                                  Duet software engineer

                                  1 Reply Last reply Reply Quote 0
                                  • brunofportoundefined
                                    brunofporto @chrishamm
                                    last edited by

                                    @chrishamm said in Ideas for a successor of DWC:

                                    By that I mean the responsive grid that will allow you to customise the pages as you like

                                    Idea: Be able to SAVE, and maybe in a way that is shareable, the customization. 😄

                                    chrishammundefined 1 Reply Last reply Reply Quote 0
                                    • chrishammundefined
                                      chrishamm administrators @brunofporto
                                      last edited by

                                      @brunofporto Yep, that is going to be possible - OEMs will need this feature, too. I doubt it will be feasible to implement dynamic menus right in the first DWC2 version but I'll keep an eye on it while porting everything over to the new framework.

                                      I've got the first draft of the file structure ready but I decided to stop using Element-UI because it violates so many design rules that would enable theme support (e.g. colour keys in layout/HTML files instead of CSS). Instead I will focus on Vuetify, iziToast and vue-chartjs. Vuetify also provides light+dark themes out of the box and I'm sure many users will want to see that when upgrading to a newer DWC version.

                                      Duet software engineer

                                      brunofportoundefined 1 Reply Last reply Reply Quote 2
                                      • brunofportoundefined
                                        brunofporto @chrishamm
                                        last edited by

                                        @chrishamm

                                        One thing:

                                        When I send a command from the top "send" area there is no indication that it was sent or executed!!! If at least the text box was cleared was a nice indication. But it does not even do that 😄 So sometimes I execute more than once the same command.

                                        So another suggestion is to always have clues that something was executed! Like a color quick change at a Macro's button holding it like that until it finishes execution, for example, the text box been cleaned after pressing enter and the queued indicator mentioned earlier.

                                        chrishammundefined 1 Reply Last reply Reply Quote 0
                                        • SupraGuyundefined
                                          SupraGuy
                                          last edited by

                                          Hmmm. I see in the history box below the GCode box that it shows that it's sent it, even if I can't see that it's executed.

                                          Personally, I'd like a better history on the GCode box. Sometimes, I want to send the same sequence of commands. Kind of like with a linux bash shell. That way, I can send a sequence of commands easily without typing it out again, or stuff like redefining my Z probe between manual and having the piezo probe quickly.

                                          (Yes, I could just define these in macros, but for whatever reason, I don't.)

                                          Lead screw driven printer, powered by Duet 2 Wifi
                                          MPCNC powered by Duet 2 Wifi
                                          CoreXY printer driven by Duet 3 6HC
                                          LowRider CNC powered by Duet 2 Wifi

                                          1 Reply Last reply Reply Quote 0
                                          • fmaundefined
                                            fma
                                            last edited by

                                            I second this.

                                            Frédéric

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