Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. JohnOCFII
    3. Posts
    • Profile
    • Following 0
    • Followers 0
    • Topics 19
    • Posts 358
    • Best 26
    • Controversial 0
    • Groups 0

    Posts made by JohnOCFII

    • RE: Deckingman's passing

      Late to the thread, but very sorry to hear. His work (and the time spent documenting his work) was greatly appreciated.

      posted in Off Topic
      JohnOCFIIundefined
      JohnOCFII
    • RE: DuetLapse3

      @stuartofmt Glad to see work continue on this very useful tool!

      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII
    • RE: RepPanel - A DIY alternative to the PanelDue with WiFi support

      @seeul8er I use the RepPanel regularly. I think my only issues are related to the potential memory issues -- things get flaky occasionally -- sometimes screen presses are not recognized, and I'll have to touch an area repeatedly. Sometimes it works first time in the same area.

      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII
    • RE: Spurious (?) "Error: G0/G1: insufficient axes homed" message?

      @fcwilt Thanks for the example of posting that way. I use that for small segments of code, but hadn't realized it was a good way to post complete files.

      As far as a Z-endstop -- I suppose it is possible. I haven't seen the need. As I mentioned above, the printer is working fine, just seem to be getting a message that does not correspond to the printer's behavior.

      As far as the probe, you can read all the details on the Github page: https://github.com/nionio6915/Euclid_Probe/blob/main/README.md#probe-calibration

      But in summary, a simple switch is magnetically attached to the carriage. The deploy and retract files handle the logic to determine if the probe is attached or not. The deploy macro will travel to the dock and "pick up" the probe. The retract macro will return the probe to the dock.

      John

      posted in Tuning and tweaking
      JohnOCFIIundefined
      JohnOCFII
    • RE: Spurious (?) "Error: G0/G1: insufficient axes homed" message?

      @sinned6915 Greetings -

      I added your if statement to my homez.g file but it seems that current RRF 3.3 already checks for an attempt to home Z before homing X and Y, and responds with this message in the console: Error: Must home axes [XY] before homing [Z]

      I added a final M64 S1 H1 to homez.g without change to the spurious message. I've since removed that line to continue troubleshooting.

      I've moved the M564 to be before all G1 movements in both deployprobe.g and retractprobe.g as suggested, with the M564 H1 S1 after the G1 movements in each file.

      Not sure about item 4.

      I've checked my latest files for tabs. I use VSCode which switches tabs to spaces be default, but perhaps if I edited via DWC for changes, some were introduced there. No change in bahavior.

      I did notice one interesting thing. After I complete homing X, Y, and Z, and get the error message, if I home Z a second time, I don't receive the "Error: G0/G1: insufficient axes homed" message" after the second execution of Home Z.

      @fcwilt I'm uploading files using the icon for "Upload files." If there is a better or different way to do that, please point me at those instructions. I've added the remaining homing files, as well as the updated files after the changes discussed above.

      Thanks,

      John

      homex.g homey.g homeall.g config.g homez.g deployprobe.g retractprobe.g

      posted in Tuning and tweaking
      JohnOCFIIundefined
      JohnOCFII
    • Spurious (?) "Error: G0/G1: insufficient axes homed" message?

      I'm running RRF 3.3 on Duet2Ethernet with Duex5. Printer is a Railcore 300ZL. I'm commissioning a Euclid dockable switch probe to replace a BLTouch. I've got my homez.g and my deployprobe.g and my retractprobe.g working well (other than fine tuning speeds).

      After the homing completes, the console displays the message: Error: G0/G1: insufficient axes homed but DWC reports all 3 axes are homed, and I can use DWC to move each axis normally.

      Is this just a bogus message, or am I doing something wrong?

      I've attached my config.g, homez.g, deployprobe.g and retractprobe.g files (please ignore extraneous echo lines).

      Thanks for any input!

      John

      retractprobe.g homez.g deployprobe.g config.g

      posted in Tuning and tweaking
      JohnOCFIIundefined
      JohnOCFII
    • RE: DuetLapse3

      @war4peace The file startDuetLapse3.py can be found along with the rest of the DuetLapse files here: https://github.com/stuartofmt/DuetLapse3

      It is fairly straightforward to replicate if needed.

      John

      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII
    • RE: DuetLapse3

      @stuartofmt Worked great! https://youtu.be/vvtMgD2nNE0

      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII
    • RE: DuetLapse3

      @stuartofmt sure - I'll try that soon.

      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII
    • RE: DuetLapse3

      @stuartofmt said in DuetLapse3:

      What version of DuetLapse3 are you on ? Sorry that you had to rebuild ffmpeg.

      I'm running 3.4.2. I was on 3.4.1 before that.

      John

      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII
    • RE: DuetLapse3

      Greetings -- My last couple of prints, I noticed that I wasn't getting my "extratime". The log told me that my version of ffmpeg didn't support it, even though it was the version I built locally on my Pi last December.

      pi@octocore:/opt/DuetLapse/octocore/railcore-localdomain $ more 15379_21-05-17T16ΛΈ40ΛΈ44.log 
      2021-05-17 16:40:45,112 - 
      2021-05-17 16:40:45,114 - ################### Options selected for this run #####################
      2021-05-17 16:40:45,114 - #Environment Settings:
      2021-05-17 16:40:45,115 - # printer         = railcore.localdomain                              
      2021-05-17 16:40:45,116 - # basedir         = /opt/DuetLapse                                    
      2021-05-17 16:40:45,116 - # poll            = 5                                                 
      2021-05-17 16:40:45,117 - # logtype         = both                                              
      2021-05-17 16:40:45,118 - # verbose         = False                                             
      2021-05-17 16:40:45,118 - # os              = Linux                                             
      2021-05-17 16:40:45,119 - # host            = 0.0.0.0                                           
      2021-05-17 16:40:45,119 - # port            = 0                                                 
      2021-05-17 16:40:45,120 - # pid             = 15379                                             
      2021-05-17 16:40:45,120 - # keeplogs        = False                                             
      2021-05-17 16:40:45,121 - # novideo         = False                                             
      2021-05-17 16:40:45,122 - # deletepics      = False                                             
      2021-05-17 16:40:45,122 - # maxffmpeg       = 2                                                 
      2021-05-17 16:40:45,123 - # keepfiles       = False                                             
      2021-05-17 16:40:45,123 - #Execution Setings:
      2021-05-17 16:40:45,124 - # dontwait        = False                                             
      2021-05-17 16:40:45,125 - # seconds         = 0                                                 
      2021-05-17 16:40:45,126 - # detect          = layer                                             
      2021-05-17 16:40:45,127 - # pause           = no                                                
      2021-05-17 16:40:45,128 - # standby         = False                                             
      2021-05-17 16:40:45,128 - #Camera1 Settings:
      2021-05-17 16:40:45,129 - # camera1         = web                                               
      2021-05-17 16:40:45,130 - # weburl1         = http://octocore.localdomain:8081/snapshot         
      2021-05-17 16:40:45,131 - # Video Settings:
      2021-05-17 16:40:45,132 - # extratime   =     4.0                                               
      2021-05-17 16:40:45,133 - ###################################################################
      2021-05-17 16:40:45,133 - 
      2021-05-17 16:40:45,432 - 
      2021-05-17 16:40:45,433 - ************************************************************************************
      2021-05-17 16:40:45,434 - Warning: This version of ffmpeg does not support -extratime
      2021-05-17 16:40:45,434 - -extratime has been set to 0
      2021-05-17 16:40:45,435 - ************************************************************************************
      2021-05-17 16:40:45,758 - 
      2021-05-17 16:40:45,759 - ###############################################################
      2021-05-17 16:40:45,760 - Connected to printer at railcore.localdomain using Duet version 3.3RC2 and API access using rr_model
      2021-05-17 16:40:45,761 - ###############################################################
      2021-05-17 16:40:45,761 - 
      2021-05-17 16:40:45,762 - 
      2021-05-17 16:40:45,763 - ##########################################################
      2021-05-17 16:40:45,764 - Will start capturing images on first layer change
      2021-05-17 16:40:45,764 - ##########################################################
      2021-05-17 16:40:45,765 - 
      2021-05-17 16:40:45,766 - 
      2021-05-17 16:40:45,767 - ##########################################################
      2021-05-17 16:40:45,767 - Video will be created when printing ends.
      2021-05-17 16:40:45,768 - On Linux   -  press Ctrl+C one time to stop capture and create video.
      2021-05-17 16:40:45,769 - On Windows -  Ctrl+C will NOT create a video. You must use the http listener
      2021-05-17 16:40:45,769 - ##########################################################
      2021-05-17 16:40:45,770 - 
      
      

      even though the filter showing tpad was there:

      pi@octocore:/opt/DuetLapse $ ffmpeg -filters | grep tpad
      ffmpeg version git-2020-12-24-29cef1b Copyright (c) 2000-2020 the FFmpeg developers
        built with gcc 8 (Raspbian 8.3.0-6+rpi1)
        configuration: --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --extra-libs='-lpthread -lm -latomic' --arch=armel --enable-gmp --enable-gpl --enable-libass --enable-libdrm --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libssh --enable-libvorbis --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-mmal --enable-nonfree --enable-omx --enable-omx-rpi --enable-version3 --target-os=linux --enable-pthreads --enable-openssl --enable-hardcoded-tables
        libavutil      56. 62.100 / 56. 62.100
        libavcodec     58.115.102 / 58.115.102
        libavformat    58. 65.100 / 58. 65.100
        libavdevice    58. 11.103 / 58. 11.103
        libavfilter     7. 94.100 /  7. 94.100
        libswscale      5.  8.100 /  5.  8.100
        libswresample   3.  8.100 /  3.  8.100
        libpostproc    55.  8.100 / 55.  8.100
       ... tpad              V->V       Temporarily pad video frames.
      pi@octocore:/opt/DuetLapse $ 
      
      

      I rebuilt ffmpeg again following the instructions in the GitHub pages, but other than seeing that I do have the new version, the log still shows that "Warning: This version of ffmpeg does not support -extratime"

      The extra time feature was working fine a couple of months ago.

      Any ideas, or places to check?

      Thanks,

      John

      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII
    • RE: RepPanel - A DIY alternative to the PanelDue with WiFi support

      @seeul8er Great to see an updated release!

      Is there a concern of panel burn-in if the display is RepPanel is left energized for 24 hours? Would a timed screen blank (awakened with touch) be a useful addition?

      Also -- sometimes touch input is sensed immediately -- other times I have to press an item four or five times for it to register. Any ideas on what would cause that, or ways to troubleshoot?

      Thanks!

      John

      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII
    • RE: RepPanel - A DIY alternative to the PanelDue with WiFi support

      I finally finished and published my RepPanel case. I used this as a good time to learn a bit about FreeCAD. The FreeCAD design file is included in the Thing.

      https://www.thingiverse.com/thing:4822626

      IMG_0370.jpeg-exported.jpeg

      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII
    • RE: DuetLapse3

      @stuartofmt Greetings!

      I added -verbose and ran from the command line with no issues. So -- I added verbose into the systemctl script, and it ALSO ran without issue. Then I removed the -verbose tag, and things continued to work.

      I blame it on the Moderna vaccine I received the other day. πŸ˜‰

      I have no idea what my issue was... Sorry if I caused you to rack your brain.

      John

      pi@octocore:/opt/DuetLapse $ 
      pi@octocore:/opt/DuetLapse $ python3 /opt/DuetLapse/startDuetLapse3.py -port 8082 -args="-duet railcore.localdomain -camera1 web -weburl1 http://octocore.localdomain:8081/snapshot -detect layer -extratime 4 -verbose"
      ***** Started http listener *****
      Cleaning up phase:  startup
      railcore.localdomain 
      railcore.localdomain ################### Options selected for this run #####################
      railcore.localdomain #Environment Settings:
      railcore.localdomain # printer         = railcore.localdomain                              
      railcore.localdomain # basedir         = /opt/DuetLapse                                    
      railcore.localdomain # poll            = 5                                                 
      railcore.localdomain # logtype         = both                                              
      railcore.localdomain # verbose         = True                                              
      railcore.localdomain # os              = Linux                                             
      railcore.localdomain # host            = 0.0.0.0                                           
      railcore.localdomain # port            = 0                                                 
      railcore.localdomain # pid             = 5350                                              
      railcore.localdomain # keeplogs        = False                                             
      railcore.localdomain # novideo         = False                                             
      railcore.localdomain # deletepics      = False                                             
      railcore.localdomain # maxffmpeg       = 2                                                 
      railcore.localdomain #Execution Setings:
      railcore.localdomain # dontwait        = False                                             
      railcore.localdomain # seconds         = 0                                                 
      railcore.localdomain # detect          = layer                                             
      railcore.localdomain # pause           = no                                                
      railcore.localdomain # standby         = False                                             
      railcore.localdomain #Camera1 Settings:
      railcore.localdomain # camera1         = web                                               
      railcore.localdomain # weburl1         = http://octocore.localdomain:8081/snapshot         
      railcore.localdomain # Video Settings:
      railcore.localdomain # extratime   =     4.0                                               
      railcore.localdomain ###################################################################
      railcore.localdomain 
      ffmpeg version git-2020-12-24-29cef1b Copyright (c) 2000-2020 the FFmpeg developers
        built with gcc 8 (Raspbian 8.3.0-6+rpi1)
        configuration: --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --extra-libs='-lpthread -lm -latomic' --arch=armel --enable-gmp --enable-gpl --enable-libass --enable-libdrm --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libssh --enable-libvorbis --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-mmal --enable-nonfree --enable-omx --enable-omx-rpi --enable-version3 --target-os=linux --enable-pthreads --enable-openssl --enable-hardcoded-tables
        libavutil      56. 62.100 / 56. 62.100
        libavcodec     58.115.102 / 58.115.102
        libavformat    58. 65.100 / 58. 65.100
        libavdevice    58. 11.103 / 58. 11.103
        libavfilter     7. 94.100 /  7. 94.100
        libswscale      5.  8.100 /  5.  8.100
        libswresample   3.  8.100 /  3.  8.100
        libpostproc    55.  8.100 / 55.  8.100
       ... tpad              V->V       Temporarily pad video frames.
      railcore.localdomain 
      railcore.localdomain ###############################################################
      railcore.localdomain Connected to printer at railcore.localdomain using Duet version 3.2.2 and API access using rr_model
      railcore.localdomain ###############################################################
      railcore.localdomain 
      railcore.localdomain 
      railcore.localdomain ##########################################################
      railcore.localdomain Will start capturing images on first layer change
      railcore.localdomain ##########################################################
      railcore.localdomain 
      railcore.localdomain 
      railcore.localdomain ##########################################################
      railcore.localdomain Video will be created when printing ends.
      railcore.localdomain On Linux   -  press Ctrl+C one time to stop capture and create video.
      railcore.localdomain On Windows -  Ctrl+C will NOT create a video. You must use the http listener
      railcore.localdomain ##########################################################
      railcore.localdomain 
      railcore.localdomain ++++++ Entering start state ++++++
      railcore.localdomain ++++++ Entering start state ++++++
      railcore.localdomain ****** Duet status changed to: idle *****
      railcore.localdomain ****** Print State changed to: Capturing *****
      railcore.localdomain !!!!!! Stopped by SIGINT or CTL+C - Post Processing !!!!!!
      railcore.localdomain ++++++ Entering terminate state ++++++
      railcore.localdomain Working directory created at: /opt/DuetLapse/octocore/railcore-localdomain/5350
      2021-03-28 15:02:21 URL:http://octocore.localdomain:8081/snapshot [128008/128008] -> "/opt/DuetLapse/octocore/railcore-localdomain/5350/Camera1_00000001.jpeg" [1]
      railcore.localdomain Camera1: Cannot create video with only 1 frames
      Cleaning up phase:  terminate
      railcore.localdomain Program Terminated
      ^C!!!!!! Stopped by SIGINT or CTL+C  !!!!!!
      Killed
      pi@octocore:/opt/DuetLapse $ 
      
      
      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII
    • RE: DuetLapse3

      @stuartofmt Thanks for the review.

      Checking status now, I get the following message:

      
      pi@octocore:/etc/systemd/system $ sudo systemctl status startDuetLapse3.service
      ● startDuetLapse3.service - DuetLapse3 timelapse launch script
         Loaded: loaded (/etc/systemd/system/startDuetLapse3.service; enabled; vendor preset: enabled)
         Active: active (running) since Thu 2021-03-25 19:51:17 CDT; 13h ago
       Main PID: 471 (python3)
          Tasks: 2 (limit: 2062)
         CGroup: /system.slice/startDuetLapse3.service
                 └─471 /usr/bin/python3 /opt/DuetLapse/startDuetLapse3.py -port 8082
      
      Mar 26 04:10:03 octocore python3[471]:     method()
      Mar 26 04:10:03 octocore python3[471]:   File "/opt/DuetLapse/startDuetLapse3.py", line 198, in do_GET
      Mar 26 04:10:03 octocore python3[471]:     split_referer = referer.split(":", 1)
      Mar 26 04:10:03 octocore python3[471]: AttributeError: 'NoneType' object has no attribute 'split'
      Mar 26 04:10:03 octocore python3[471]: ----------------------------------------
      Mar 26 04:10:03 octocore python3[471]: Exception happened during processing of request from ('192.168.88.1', 40405)
      Mar 26 04:10:03 octocore python3[471]: Traceback (most recent call last):
      Mar 26 04:10:03 octocore python3[471]:   File "/usr/lib/python3.7/socketserver.py", line 650, in process_request_thread
      Mar 26 04:10:03 octocore python3[471]:     self.finish_request(request, client_address)
      Mar 26 09:38:44 octocore systemd[1]: startDuetLapse3.service: Current command vanished from the unit file, execution of the command list won't be resumed.
      pi@octocore:/etc/systemd/system $ 
      
      

      Looking at that line 198 in startDuetLapse3.py it looks like it has something to do with parsing the URL.

      Here is the ExecStart line from the service file:

      ExecStart=python3 /opt/DuetLapse/startDuetLapse3.py -port 8082 -args="-duet railcore.localdomain -camera1 web -weburl1 http://octocore.localdomain:8081/snapshot -detect layer -extratime 4"
      

      Thoughts?

      John

      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII
    • RE: DuetLapse3

      @stuartofmt I'd like some guidance before I head off in the wrong direction.

      I've set up (but not yet started):

      /etc/systemd/system/StartDuetLapse3.service
      

      which calls:

      /opt/DuetLapse/StartDuetLapse3.py
      

      which calls:

      /opt/DuetLapse/DuetLapse3.py
      

      Now -- when I've been testing this over the last few days manually (without the systemd service, and without using StartDuetLapse3) I've used the following command line:

      python3 /opt/DuetLapse/DuetLapse3.py -duet railcore.localdomain -camera1 web -weburl1 http://octocore.localdomain:8081/snapshot -detect layer -extratime 4
      

      So switching to this service-initiated launch, do I put all the arguments in the systemd service file like this?

      ExecStart=python3 /opt/DuetLapse/StartDuetLapse3.py -port 8082 -args="-duet railcore.localdomain -camera1 web -weburl1 http://octocore.localdomain:8081/snapshot -detect layer -extratime 4"
      

      Thanks for your review!

      John

      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII
    • RE: DuetLapse3

      @GoremanX said in DuetLapse3:

      Still figuring stuff out for my setup, but this is getting fun πŸ™‚

      https://youtu.be/EscEw5L3rYU

      Really raising the bar with music... I'll have to see what I can find!

      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII
    • RE: DuetLapse3

      I'd guess that running DWC on two other devices in addition to DuetLapse might have had the Duet2 board confused...

      Today, after a fresh start on the printer and after quitting DWC after the first layer completed, I didn't see any disconnect errors.

      Here's a nice example DuetLapse3 timelapse. This was a 3 hour 20 minute print in a 53 second timelapse.

      https://youtu.be/civr9_qgMhM

      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII
    • RE: DuetLapse3

      @stuartofmt It is great to see how your mind works on this stuff!

      FYI -- I did disable WiFi, and switch to wired Ethernet. I am no longer seeing connectivity issues, but Duetlapse is still seeing "something" network related. I will gladly 100% blame this on the weak networking code in the firmware on the Duet2 -- whatever library is used in this hardware (not from dc42 -- but whatever the vendor provides) seems to act as if it hasn't seen changes to networking code since the 1990's.

      This is what I see a few times an hour:

      railcore.localdomain !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      railcore.localdomain There was a network failure: HTTPConnectionPool(host='railcore.localdomain', port=80): Max retries exceeded with url: /rr_model?key=state.status (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x764ad170>: Failed to establish a new connection: [Errno 111] Connection refused'))
      railcore.localdomain !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      railcore.localdomain 
      

      or

      railcore.localdomain !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      railcore.localdomain There was a network failure: HTTPConnectionPool(host='railcore.localdomain', port=80): Max retries exceeded with url: /rr_model?key=state.status (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7664cdf0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution'))
      railcore.localdomain !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      railcore.localdomain 
      railcore.localdomain getDuetStatus failed to get data. Code: 9999 Reason: Connection Error
      railcore.localdomain Printer is disconnected - Trying to reconnect
      railcore.localdomain ****** Duet status changed to: processing *****
      railcore.localdomain ****** Print State changed to: Capturing *****
      
      

      As you suggested, DuetLapse seems to work past it without issue.

      John

      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII
    • RE: DuetLapse3

      @stuartofmt said in DuetLapse3:

      So it looks like the print job was named /Calibration/HoseSideRingTest-v3_0.2mm_PETG_RC Does this seem right given your situation ? Code-wise, the print job name is appended to the process id and a directory created accordingly.

      This is correct.

      Are the directories cleaned up when you start a new (only one running) instance of DuetLapse3?

      Yes -- I think what confused me is that at the time I created that tree, the directory and JPEGs were still around -- I was thinking they got cleaned up at the end of the current job, and not the start of the next job.

      I actually prefer your current design.

      Also - I am really glad of your current design for another reason -- I love the log file! I ran a 7.5 hour print yesterday evening, and my Pi lost network connectivity 5 times during the print. All the successfully captured images are still available for me to re-run through FFMPEG! Separately I need to try to use the wired Ethernet instead of WiFi to see if the WiFi on this particular Pi is the issue.

      posted in Third-party software
      JohnOCFIIundefined
      JohnOCFII