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

    DueUI Release 3.0.1-beta2 Available

    Scheduled Pinned Locked Moved
    DueUI
    10
    50
    6.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.
    • gtj0undefined
      gtj0
      last edited by gtj0

      DueUI is an alternate web-based user Interface for the Duet family of products. It's not meant to replace the full fledged DuetWebControl (DWC) interface but rather to complement it. I needed something more compact, kind of like the PanelDue user interface and had started looking at ways to make the PanelDue more user-customizable. Unfortunately, while the PanelDue is great at what it does, trying to develop a framework that would let it be more customizable without recompiling the firmware every time just wasn't feasable. It then dawned on me that 7" Android tablets with serviceable browsers were ridiculously cheap so I started down the road of creating a customizable widget based user interface that could run on any modern browser. Not only does it work well on tablets, it works great on a small(ish) touch screen attached to an SBC. I run it on an 11" 1920x1080 touchscreen monitor mounted on the side of my printer.

      DueUI Wiki

      Download

      https://github.com/gtjoseph/DueUI/releases/tag/v3.0.1-beta1

      Yeah I know it should really be 2.0.0 but I wanted to be cool and make it match RRF 3.0 and the Duet3.
      I also know that it's not exactly Beta "Firmware" but it's still a Beta something. If a mod wants to move it, that's fine. 🙂

      What's New in 3.0.0-beta1

      • The DueUI Wiki!!

        • Complete documentation with examples for every widget.
        • Samples of the printer status objects.
        • Installation and Upgrade guide.
        • Sample configs.
      • Functions, templates and constants can now be defined in the config file.

      • A new backend for the Duet Software Framework.
        Standalone still works.

      • There are some new widgets

        • "Image" allows you to embed an image or a Motion JPEG stream anywhere.
        • "File Dropdown" allows you to display a select box with a list of files.
        • "File Select" is a File Dropdown with accompanying Refresh and Run/Print
          buttons.
      • Lots of behind-the-scenes updates.

      • Stuff I can't remember.

      Here's a screen shot of my "Print" panel...

      Screenshot_Print.png

      ...and my Movement panel...

      Screenshot_Movement.png

      Remember, this is my layout. You can make yours look like anything you want.

      I've been using it with my Duet3 and the DSF for a few months now and I think I've got all the bugs. As with any Beta release though, I'm sure there are others I haven't caught.

      What's New in 3.0.1-beta1

      Updates for Standalone Duet

      • Added a dueui_config_default_standalone.json file.
      • Fixed some issues in the standalone backend.

      Settings Update

      • Moved the "Backend Type" selection to the top of the page and
        changed "NonDSF" to "Standalone".

      • If the backend type changes:

        • The Hostname label will change to "SBC" or "Duet" as appropriate.
        • The DueUI Config URL will change to an appropriate URL path
          and default file name (if it was one of the defaults to start with).
        • If DSF is selected, the Polling Intervals will be hidden.
      • Changed the default config file name to
        "dueui_config_default_standalone.json" to match the default backend
        type.

      What's New in 3.0.1-beta2

      Fixed issue with fields showing the format instead of value

      • When first started or refreshed, the UI could display format
        strings like "${state.heat.heaters[1].current.toFixed(1)}" for a
        short time iunstead of the actual value. This was due to the model
        not being populated before the UI elements. Now we populate the
        model before showing the UI.

      Minor backend refactoring

      Add refresh_seconds to the Image widget

      • Some WebCams only provide an image snapshot instead of
        a live MJPEG stream. If you have one, you can now set
        "refresh_seconds" to control how often teh image should
        be refreshed.
      garyd9undefined 1 Reply Last reply Reply Quote 8
      • jens55undefined
        jens55
        last edited by

        Impressive! Thank you !

        1 Reply Last reply Reply Quote 0
        • garyd9undefined
          garyd9 @gtj0
          last edited by

          @gtj0

          My first impression seeing this thread was "What is DueUI"? Unfortunately, that first question wasn't answered early in the post... (In fact, I really didn't get an answer until I followed your wiki link.)

          So, please accept my suggestion based on that first impression: In the top line of the post, mention what this is. For example: "A lightweight replacement (or addition) to DWC"

          "I'm not saying that you are wrong - I'm just trying to fit it into my real world simulated experience."

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

            Admittedly I wondered for two seconds if it was to replicate PanelDue on hdmi, and while I guess it kinda is? Its also kinda unfamiliar, but still looks much more suited to touch than vanilla DWC.

            Awesome work!

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

              Blank config URL would not pick the default for me, even with DSF mode set. I believe it is trying RR_ commands that don't work on RRF3 with Pi.

              Changing config url to 192.168.7.101/dueui/dueui_config_default.json worked.

              Delta / Kossel printer fanatic

              gtj0undefined 1 Reply Last reply Reply Quote 0
              • DaBitundefined
                DaBit
                last edited by DaBit

                What am I doing wrong when I see this?

                alt text

                I took the 'DSF' release since it seemed to contain the files in unzipped form, unzipped the contents of that file to the wwwroot of the lighttpd server on a Pi running at 192.168.0.23, pointed the config to http://192.168.0.23/dueui/dueui_config_default.json and the location of the Duet to 192.168.0.42
                (I swap to names instead of IP's when things work)

                The config JSON appears when the URL is entered in a browser, so the link to the config is OK. The Duet is also reachable since the ATX power button works.

                [edit]
                http://dueui.org/v3/ does the same, so probably not installation related.
                [/edit]

                gtj0undefined 1 Reply Last reply Reply Quote 0
                • gtj0undefined
                  gtj0 @garyd9
                  last edited by

                  @garyd9 said in DueUI Release 3.0.0-beta1 Available:

                  @gtj0

                  My first impression seeing this thread was "What is DueUI"? Unfortunately, that first question wasn't answered early in the post... (In fact, I really didn't get an answer until I followed your wiki link.)

                  So, please accept my suggestion based on that first impression: In the top line of the post, mention what this is. For example: "A lightweight replacement (or addition) to DWC"

                  Yeah, that's a great point. I'll update the first post.

                  1 Reply Last reply Reply Quote 0
                  • gtj0undefined
                    gtj0 @Danal
                    last edited by

                    @Danal said in DueUI Release 3.0.0-beta1 Available:

                    Blank config URL would not pick the default for me, even with DSF mode set. I believe it is trying RR_ commands that don't work on RRF3 with Pi.

                    Changing config url to 192.168.7.101/dueui/dueui_config_default.json worked.

                    Rats. I thought I had that fixed. If you want to create your own config, stick in in /sys/ and change the URL to http://<sbc>/machine/file/sys/<your_config.json>

                    1 Reply Last reply Reply Quote 0
                    • gtj0undefined
                      gtj0 @DaBit
                      last edited by gtj0

                      @DaBit said in DueUI Release 3.0.0-beta1 Available:

                      What am I doing wrong when I see this?

                      I took the 'DSF' release since it seemed to contain the files in unzipped form, unzipped the contents of that file to the wwwroot of the lighttpd server on a Pi running at 192.168.0.23, pointed the config to http://192.168.0.23/dueui/dueui_config_default.json and the location of the Duet to 192.168.0.42
                      (I swap to names instead of IP's when things work)

                      The config JSON appears when the URL is entered in a browser, so the link to the config is OK. The Duet is also reachable since the ATX power button works.

                      The default config is set for a Duet3 with the DSF. I need to get a default config up for the Duets in standalone mode. Sorry about that. I'll get one up shortly.

                      Which version of RRF are you running?

                      1 Reply Last reply Reply Quote 0
                      • DaBitundefined
                        DaBit
                        last edited by DaBit

                        That would be 3.01-beta1+1 (2020-01-15b2)
                        The board I am running is a Duet2 Wifi

                        gtj0undefined 1 Reply Last reply Reply Quote 0
                        • gtj0undefined
                          gtj0 @DaBit
                          last edited by

                          @DaBit said in DueUI Release 3.0.0-beta1 Available:

                          That would be 3.01-beta1+1 (2020-01-15b2)

                          Perfect.

                          1 Reply Last reply Reply Quote 0
                          • zaptaundefined
                            zapta
                            last edited by zapta

                            Reading the post here and the github page it looks very impressive. Thanks for doing it. A quick question about the installation, if I upload DueUI-1.1.0.zip to the Duet as described, will the zip file stay as is on the SD card or will it be decompressed into multiple directory and files?

                            (my preference is to have the DueUI as a single file or directory on the SD so I can easily manage and delete if needed).

                            gtj0undefined 1 Reply Last reply Reply Quote 0
                            • gtj0undefined
                              gtj0 @zapta
                              last edited by

                              @zapta said in DueUI Release 3.0.0-beta1 Available:

                              Reading the post here and the github page it looks very impressive. Thanks for doing it. A quick question about the installation, if I upload DueUI-1.1.0.zip to the Duet as described, will the zip file stay as is on the SD card or will it be decompressed into multiple directory and files?

                              (my preference is to have the DueUI as a single file or directory on the SD so I can easily manage and delete if needed).

                              Unfortunately, the DWC unzips the file and places the javascript files in /www/js, the css files in /www/css, etc. right beside the DWC files. With the exception of 2 font files, all DueUI files start with "dueui" though so it'd be easy to get rid of.

                              On an SBC/DSF, you'd manually unzip the zip file and it all goes in 1 directory: /opt/dsf/sd/www/dueui

                              1 Reply Last reply Reply Quote 0
                              • gtj0undefined
                                gtj0
                                last edited by

                                What's New in 3.0.1-beta1

                                https://github.com/gtjoseph/DueUI/releases/tag/v3.0.1-beta1

                                Updates for Standalone Duet

                                • Added a dueui_config_default_standalone.json file.
                                • Fixed some issues in the standalone backend.

                                Settings Update

                                • Moved the "Backend Type" selection to the top of the page and
                                  changed "NonDSF" to "Standalone".

                                • If the backend type changes:

                                  • The Hostname label will change to "SBC" or "Duet" as appropriate.
                                  • The DueUI Config URL will change to an appropriate URL path
                                    and default file name (if it was one of the defaults to start with).
                                  • If DSF is selected, the Polling Intervals will be hidden.
                                • Changed the default config file name to
                                  "dueui_config_default_standalone.json" to match the default backend
                                  type.

                                1 Reply Last reply Reply Quote 0
                                • garisundefined
                                  garis
                                  last edited by

                                  I liked the previous version, but had left you with some crude code ~20 July, and comments related to my simple needs, but I had abandoned use of DueUI as I thought you had abandoned this project as there had been no response and looked like there would be no support.

                                  I notice babystepping is now included - thanks?

                                  Is there anything critical that is new? Although I can implement and customise this I am not conversant with JSON in general & my brain will take some hours to reboot into this project.

                                  gtj0undefined 1 Reply Last reply Reply Quote 0
                                  • gtj0undefined
                                    gtj0 @garis
                                    last edited by gtj0

                                    @garis I am so sorry. It was your post that got me working on the additional stuff and I just lost track of that other thread. I have definitely not abandoned this project. The two big hold-ups for me have been writing the documentation for the wiki and the fact that both RRF3 and the DSF were getting lots of changes in preparation for the Duet3 release, and are still getting lots of changes. Every time I thought about doing another release, something else in the environment changed.

                                    Anyway, the biggest functional change is the ability to interface to the SBC. Others include the Image/WebCam support and the File Select widget. The File Select widget could be a great space saver because it only occupies a small space on the layout and the files only show in the dropdown when you click on it.

                                    As I've been going through the default configs, I've also realized that the config is getting a bit "verbose" :). I'm trying to find ways to balance config complexity and flexibility so I'll probably come up with more "composite" widgets.

                                    1 Reply Last reply Reply Quote 0
                                    • DaBitundefined
                                      DaBit
                                      last edited by DaBit

                                      With the new standalone config it works. Now I have to adjust the config for my printer, but since adding the second extruder and the webcam image took 15 minutes that seems completely doable.

                                      Just wondering / thinking out loud: let's assume dueui can run under Electron. How hard would it be to add a backend that talks over serial (to the PanelDue port) or USB virtual comport instead of Wifi?
                                      That would make the printer usable when the Wifi infrastructure disappears. For example, when I want to put the printer temporarily at the school of my sons to let the kids play with it..

                                      It is probably easier to add an access point to the printer (or use the Pi for that) and just give the printer it's own Wifi network, but I can dream, right?

                                      gtj0undefined 1 Reply Last reply Reply Quote 0
                                      • gtj0undefined
                                        gtj0 @DaBit
                                        last edited by

                                        @DaBit That could be really interesting. None of the actual UI stuff would need to change at all. It'd be just adding another backend that implements the same contract that the other two do. I'll look into it!

                                        1 Reply Last reply Reply Quote 0
                                        • DaBitundefined
                                          DaBit
                                          last edited by

                                          I skimmed through the code, and if you add a third backend for serial which emits M408 and reads the response it should work. Don't ask me how to do that; I never did serious Javascript before.

                                          However, I do have the serial line coming from the PanelDue connector connected to the Pi, so I can test. And setting up the build environment would be possible too.

                                          I just set DueUI up on the Pi + 7" Pi screen on the printer.

                                          alt text

                                          Of course I have to configure it. I do get the basic idea of how to do that. However, a few things:

                                          • The camera image is not refreshing. DWC reloads the image every X milliseconds, DueUI does not. Not a big issue; having the camera image taking up real estate on the 7" Pi screen while I only have to look up 30cm to have a real view makes no sense.

                                          • Current/last file says 'unknown'. Which makes sense if I look at the config, line 355 of dueui_config_default_standalone.json. Isn't the real current filename available somewhere (I am not seeing it in a M408 response either)?

                                          "value": "Current/Last File:  ${state.status == 'P' ? 'unknown' : 'Not printing'}",
                                          
                                          • Time and times left stay at 0:00:00. In the config the calculated values are commented out, but the referenced values seem OK. Still a beta thing?
                                          gtj0undefined 2 Replies Last reply Reply Quote 0
                                          • A Former User?
                                            A Former User
                                            last edited by

                                            Maybe I'm missing something, but how would this make the paneldue any more functional than it already is on IO0? I.e. you cannot start jobs from SD. (you could probably execute macros or console commands to start prints, but the paneldue cannot list the fake sd card on the pi)?

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