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

    DuetLapse3

    Scheduled Pinned Locked Moved
    Third-party software
    20
    296
    30.0k
    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.
    • osteracundefined
      osterac
      last edited by

      It doesn't seem to be making any videos for me. I see that the temporary folder is created during the print but no video. I'll attach a log file.
      481_1_overhang_test_mini.log.txt

      stuartofmtundefined 1 Reply Last reply Reply Quote 0
      • stuartofmtundefined
        stuartofmt @osterac
        last edited by

        @osterac

        Thanks for the logfile. There may be two problems and a "condition".

        The likely problem.

        You start Duetlapse in standby state but nothing tells it to go to start state. As a result there is no attempt to capture images hence no video can be created.

        In the options:

        2023-01-24 17:40:55,863 - terminate - -standby  =  True
        

        The logfile shows DuetLapse entering standby state:

        2023-01-24 17:40:55,944 - terminate - ++++++ Entering standby state ++++++
        

        But there is nothing that takes it out of standby state. In fact, throughout most of the log, DuetLapse is simply looking for a command.

        In the logfile, towards the end of the print (I'm assuming), there is a command to DuetLapse

        2023-01-25 16:48:23,135 - gcodeLoop - M117 Command: DuetLapse3.completed
        

        Did you intended the gcode to take DuetLapse out of standby mode with:

        M117 DuetLapse3.start   ; start
        G4 S10
        

        Either , the command is missing from the gcode or DuetLapse did not "see" the command.

        The condition

        There are a few instances where there are network issues in the log. Most are sub-second (not uncommon in my experience). It is possible that DuetLapse did not see the start command because it was sent during a network issue. This would be plain bad luck 😞

        There is a network disconnect that lasts about 3 minutes. On reconnect, DuetLapse goes back to its previous (standby) state :

        2023-01-25 10:39:05,717 - gcodeLoop - Cannot connect to the printer
        <snip>
        2023-01-25 10:42:52,139 - checkforConnection - -----------------------  Reconnected to printer ----------------------
        <snip>
        2023-01-25 10:42:57,145 - nextAction - nextAction resuming after reconnect target = standby
        

        The same pattern occurs at 11:50

        The second problem

        At the end after the command to complete the print job; DuetLapse tries, correctly (for the first time), to get an image and make copies to satisfy the -extratime 2 option.

        There is an error because this command failed
        wget --auth-no-challenge -nv -O /home/pi/ftp/files/DuetLapse/octopi/192-168-1-8/481_1_overhang_test_mini/Camera1_00000102.jpeg "http://cam.local:8765/picture/1/current/"
        i.e. it could not get an image from the camera.

        I'm concerned about this for two reasons (1) Is the camera working / are the parameters correct and (2) I do not expect to see the image file being requested as number 102

        I recommend you verify that you can capture images using the following from the command line:

        wget --auth-no-challenge -nv -O ./test.jpeg "http://cam.local:8765/picture/1/current/"
        

        I will take a look and see why the image number is not what I expect. Its possible that I have a bug that somehow prevented attempts to capture images but the code logic does not change based on camera type.

        2023-01-25 16:48:31,220 - nextAction - Command Exception: wget --auth-no-challenge -nv -O /home/pi/ftp/files/DuetLapse/octopi/192-168-1-8/481_1_overhang_test_mini/Camera1_00000102.jpeg "http://cam.local:8765/picture/1/current/"  > /dev/null 2>&1
        2023-01-25 16:48:31,221 - nextAction - Command 'wget --auth-no-challenge -nv -O /home/pi/ftp/files/DuetLapse/octopi/192-168-1-8/481_1_overhang_test_mini/Camera1_00000102.jpeg "http://cam.local:8765/picture/1/current/"  > /dev/null 2>&1' returned non-zero exit status 1.
        2023-01-25 16:48:31,222 - nextAction - !!!!!  There was a problem capturing an image !!!!!
        2023-01-25 16:48:31,222 - nextAction - Copying last frame to extend video by 2 seconds
        
        osteracundefined 1 Reply Last reply Reply Quote 0
        • osteracundefined
          osterac @stuartofmt
          last edited by osterac

          @stuartofmt
          I executed the command that you listed

          wget --auth-no-challenge -nv -O ./test.jpeg "http://cam.local:8765/picture/1/current/"
          

          and an image file was created. I downloaded it and it was what I expected. I updated my router firmware and changed some settings, I also added a -port modifier to duetlapse, but I still get the wget --auth-no-challenge error and no images are captured. Here's another log file if it helps.
          604_3_Fidgit3_resize.log.txt

          PS I also did an apt full-upgrade on my duetlapse pi and my camera server and updated to the latest dev version of motioneye.

          stuartofmtundefined 1 Reply Last reply Reply Quote 0
          • stuartofmtundefined
            stuartofmt @osterac
            last edited by stuartofmt

            @osterac said in DuetLapse3:

            wget --auth-no-challenge -nv -O

            The earler problem was clearly the lack of start command. Now however, its clearly the wget that is unhappy.

            I'm not sure why because the command is being reported as syntactically identical when executed by DuetLapse3 as the one you proved to be working at the command line.

            Try this version of DuetLapse3. All I have done is use a different form of the wget command ( -v instead of -nv) when -verbose is set.
            Hopefully this will generate better output from wget as to why it is unhappy.

            DuetLapse3.py

            osteracundefined 1 Reply Last reply Reply Quote 0
            • osteracundefined
              osterac @stuartofmt
              last edited by

              @stuartofmt
              ran a print with the new script. log:
              604_1_xyzCalibration_cube.log.txt

              stuartofmtundefined 2 Replies Last reply Reply Quote 0
              • stuartofmtundefined
                stuartofmt @osterac
                last edited by stuartofmt

                @osterac

                Unfortunately the error output from wget only had marginally more information 😞 Not enough to suggest WHY it is unhappy. This may be because Python is calling wget and not all the error response is getting through.

                I've added another line of code to, maybe, capture some more info.

                [DuetLapse3.py]

                I googled a bit and it MAY be because the url has a trailing slash. With the newer script, can you try with:

                http://cam.local:8765/picture/1/current
                

                To save a lot of time during testing - you do not need to be printing. Just set something like:

                -seconds 15
                -dontwait
                

                and remove -standby

                This way DuetLapse will start capturing images every N seconds even though there is no print job running. Let it run until you see (or not) an image capture error in the console, then use the UI to download the current logfile. The logfile will be startup.log since there is no actual print job.

                1 Reply Last reply Reply Quote 0
                • stuartofmtundefined
                  stuartofmt @osterac
                  last edited by

                  @osterac
                  If trying above does not give any luck, it could be a Motioneye nuance. Seems there MAY be an issue getting still images if there is no streaming enabled.
                  If this is the case - you could try setting -camera1 stream and weburl1 to the streaming URL (as opposed to the still picture url). In any case, this may be a better solution as you would not have Motioneye getting still images at one frequency and DuetLapse doing so at another frequency.

                  osteracundefined 1 Reply Last reply Reply Quote 0
                  • osteracundefined
                    osterac @stuartofmt
                    last edited by

                    @stuartofmt
                    I did a print with those settings. It managed to capture the jpg files, but it's 30 minutes after the print and it is still writing to the log file and hasn't deleted the images or made a video yet. Log file attached.
                    598_1_printer_square_calibration.log.txt

                    stuartofmtundefined 1 Reply Last reply Reply Quote 0
                    • stuartofmtundefined
                      stuartofmt @osterac
                      last edited by stuartofmt

                      @osterac said in DuetLapse3:

                      @stuartofmt
                      I did a print with those settings. It managed to capture the jpg files, but it's 30 minutes after the print and it is still writing to the log file and hasn't deleted the images or made a video yet.

                      It is working just fine. 88 images captured according to the log, every 20 seconds --> almost exactly 30 minutes.

                      It will continue to do so until one of two things happens:

                      1. you start a print job that runs to completion
                      2. you tell it to stop.

                      One way to tell it to stop:
                      Use the UI.
                      https://github.com/stuartofmt/DuetLapse3/blob/main/Documents/User Interface.md

                      Controls --> Terminate --> Graceful (this will generate a video)

                      Looks like you are good to go !

                      BTW. I installed motioneye and found that wget is definitely not happy about something. Unfortunately it only returns a generic error code. I also noticed that the still capture from motioneye did not seem to work from a web browser.

                      Using the streaming interface seems the way to go.

                      osteracundefined 1 Reply Last reply Reply Quote 0
                      • osteracundefined
                        osterac @stuartofmt
                        last edited by osterac

                        @stuartofmt
                        I did a graceful terminate and waited a couple of hours but it is still updating the log file. Web UI says this:

                        DuetLapse3 Version 5.0.3
                        Connected to printer at: 192.168.1.8:8086
                        
                        Process Id: 598
                        Last Update: Tuesday - 15:32
                        Capture Status:= Completed
                        DuetLapse3 State:= completed
                        Duet Status:= processing
                        Images Captured:= 88
                        Current Layer:= 33
                        
                        

                        Updated log file
                        598_1_printer_square_calibration.log.txt

                        1 Reply Last reply Reply Quote 0
                        • stuartofmtundefined
                          stuartofmt
                          last edited by stuartofmt

                          @osterac

                          I'm not able to see the same issue on my test system (using Motioneye). It all works fine for me.
                          I think there may be an edge condition associated with the use of -extratime as this is where the program encountered issues. Unfortunately, if it was a Python issue (syntax or similar), it cannot be captured in the logs. It would only be visible in the , now, long gone console output. 😞

                          It may also be associated with the polling of Duet as I saw a situation (in your log) that I have never seen before. In any case, the program got itself into a bind.

                          I am also not sure exactly what's happening at your end . I can see you used Terminate but I also see 8 instances of M117 DuetLapse2.completed command. This suggests either you are isuing the commands from DWC or from one or more print jobs ? Can you help by explaining what happened ?

                          I have a couple of ideas I need to think through but feel confident that I can avoid this condition.

                          If you have some time on your hands; you could try another run (without - extratime). Just set the program running (no print job needed), let it run until the UI Video tab tells you there are enough images to create a video) and then use Terminate-->Graceful. This should work just fine and if it does (or does not) will narrow the scope of what's happening in your case.

                          osteracundefined 1 Reply Last reply Reply Quote 0
                          • osteracundefined
                            osterac @stuartofmt
                            last edited by

                            @stuartofmt
                            As for the multiple stop commands, it may be because I printed several things after duetlapse got stuck so commands were sent to duetlapse from that. In my end gcode I use this command:

                            M98 P"DuetLapse3Stop.g" ;stop timelapse
                            

                            Which calls a .g file that contains this command:

                            M117 DuetLapse3.completed ;Stop DuetLapse3
                            G4 S10 ;Wait 10 seconds
                            

                            I have several of those files, one for start, pause, continue, and stop. I have references to them in my start and stop gcode, and in my pause.g, resume.g, and cancel.g.
                            I tried doing a run without extratime and I was able to get a video. here's the log file.

                            2081_1_YACS_vertical.log.txt

                            It may look a little odd because I started recording and then started a print and duetlapse caught on to that. I ended the recording before the print was done.

                            osteracundefined 1 Reply Last reply Reply Quote 0
                            • osteracundefined
                              osterac @osterac
                              last edited by

                              @osterac
                              So will I be able to use extratime at some point in the future?

                              stuartofmtundefined 2 Replies Last reply Reply Quote 0
                              • stuartofmtundefined
                                stuartofmt @osterac
                                last edited by

                                @osterac said in DuetLapse3:

                                @osterac
                                So will I be able to use extratime at some point in the future?

                                Yes, absolutely. Hopefully over the weekend.

                                stuartofmtundefined 1 Reply Last reply Reply Quote 0
                                • stuartofmtundefined
                                  stuartofmt @stuartofmt
                                  last edited by stuartofmt

                                  Release Version 5.1.0

                                  Continuing on the journey towards a plugin ....

                                  Version 5.1.0

                                  [1] Removed the use of M117 messages and replace with M291 messages as this gives much better control. Also there is no need for a delay after the message (as there was with M117).
                                  [2] Set new default, minimum values for -seconds (20) and -poll (10) along with some logic changes to avoid an occassional race condition.
                                  [3] Fixed a code error associated with -extratime
                                  [4] Some minor bug UI / Typo fixes

                                  Details on using M291 are here:
                                  https://github.com/stuartofmt/DuetLapse3/tree/main/Documents

                                  1 Reply Last reply Reply Quote 1
                                  • stuartofmtundefined
                                    stuartofmt @osterac
                                    last edited by

                                    @osterac

                                    See the post above. You will need to change M117 control messages to the M291 equivalent.
                                    Note that there is no need for a delay after each message

                                    osteracundefined 1 Reply Last reply Reply Quote 0
                                    • osteracundefined
                                      osterac @stuartofmt
                                      last edited by

                                      @stuartofmt said in DuetLapse3:

                                      @osterac

                                      Note that there is no need for a delay after each message

                                      Sweet! Appreciate your work. Great stuff.

                                      1 Reply Last reply Reply Quote 0
                                      • T3P3Tonyundefined T3P3Tony referenced this topic
                                      • stuartofmtundefined
                                        stuartofmt
                                        last edited by

                                        First of all, many thanks to @chrishamm @Falcounet @MintyTrebor and @T3P3Tony for all helping in progressing this plugin. Withouth their combined efforts it would still be where I left it late last year i.e. abandoned.

                                        I'm very pleased to announce the pluging version of DuetLapse3.

                                        The plugin uses the same source as the standalone version of DuetLapse3 but is easier to install than the standalone version. Other than that the standalone and plugin version have the same functionality.

                                        https://github.com/stuartofmt/DuetLapse3/tree/main/plugin

                                        The instructions for installing DuetLapse3 as a plugin are here:
                                        https://github.com/stuartofmt/DuetLapse3/blob/main/plugin/plugin installation guide.md

                                        1 Reply Last reply Reply Quote 3
                                        • stuartofmtundefined
                                          stuartofmt
                                          last edited by stuartofmt

                                          VERSION - 5.2.0 Released

                                          [1] Fixed snapshot when called from gcode
                                          [2] Process all M291 messages without delay
                                          [3] Refactored loop control to prevent thread blocking
                                          [4] Prevent first layer capture if -pause yes
                                          [5] Added -password option to support passwords
                                          [6] Released as a plugin for SBC

                                          LuniLABundefined 1 Reply Last reply Reply Quote 1
                                          • LuniLABundefined
                                            LuniLAB @stuartofmt
                                            last edited by

                                            @stuartofmt

                                            https://i.postimg.cc/5tGyZb6j/duetlapse.png SBC installation doesnt work.

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