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

    notifications upon start/pause/finish of print

    Scheduled Pinned Locked Moved
    Third-party software
    18
    65
    6.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.
    • chrishammundefined
      chrishamm administrators @madeinta1wan
      last edited by

      @madeinta1wan @madeinta1wan rr_status is still supported in standalone mode AFAIK. We will add a support layer for rr_ requests to SBC mode in v3.5 but I'm afraid it won't support rr_status. If possible, I'd strongly recommend upgrading to rr_model which returns portions of the object model.

      Duet software engineer

      Torinundefined 1 Reply Last reply Reply Quote 0
      • Torinundefined
        Torin @chrishamm
        last edited by

        So I finally found some time and resurfaced my duet enabled printer so I have started updating the app.... So hopefully soon there will be something to show 😉

        @chrishamm How do I currently identify finished print? Previously it was in rr_status marked as 'I'(capital I), now I can see see only in rr_model?key=state status: idle, pause, printing.

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

          @torin Those letters are abbreviations for the different machine states (see here), so idle is equal to I.

          Duet software engineer

          Torinundefined 1 Reply Last reply Reply Quote 0
          • Torinundefined
            Torin @chrishamm
            last edited by Torin

            @chrishamm Many thanks for that, it definitely extends what I've seen.
            However I am missing a 'final status' if that makes sense e.g. there's the status for cancelling yet there's no cancelled status or processing and no processed which makes it hard to understand and put the proper function in place to determine final status without hammering the API and making a request every let say 100ms which could still lead to some false positives.

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

              @torin

              This may help. Its some of the logic in DuetLapse3. It ends up being a bit convoluted .... and of course I have a bunch of defensive coding in here (for other reasons).
              The main logic starts at line 16.

              Any yes - it can do with a bit of tidying up 😞

              def captureLoop():  # Run as a thread
              
                  global printState, duetStatus, captureLoopState
                  
                  if connectionState is False:
                      return
                  
                  captureLoopState = 1
                  printState = 'Not Capturing'
              
                  lastDuetStatus = 'idle' # logical state on start of each thread instance
              
                  logger.debug('Starting Capture Loop')
              
                  while captureLoopState == 1:  # Set to 0 to stop. e.g  By http listener or SIGINT or CTL+C
                      if duetStatus != lastDuetStatus:  # What to do next?
                          logger.info('****** Duet status changed to: ' + str(duetStatus) + ' *****')
                          # logical states for printer are printing, completed
                          if duetStatus == 'idle' and printState in ['Capturing', 'Busy'] and terminateState != 1:  # Capturing is finished without being commanded
                              printState = 'Completed'
                              logger.debug('****** Print State changed to ' + printState + ' *****')
                          elif duetStatus in ['processing', 'idle'] or (duetStatus == 'paused' and detect == 'pause'):
                              printState = 'Capturing'
                              logger.debug('****** Print State changed to: ' + printState + ' *****')
                          elif duetStatus == 'busy':
                              printState = 'Busy'
                              logger.debug('****** Print State changed to: ' + printState + ' *****')
                          else:
                              printState = 'Waiting'
                          logger.info('****** Print State changed to: ' + printState + ' *****')
              
                      if printState == 'Capturing':
                          oneInterval('Camera1', camera1, weburl1, camparam1)
                          if camera2 != '':
                              oneInterval('Camera2', camera2, weburl2, camparam2)
                          unPause()  # Nothing should be paused at this point
                      elif printState == 'Completed':
                          logger.info('Print Job Completed')
                          printState = 'Not Capturing'
                          # use a thread here as it will allow this thread to close.
                          startnextAction('completed')
                          break # Do not want to wait to end
              
                      if captureLoopState == 1 and terminateState != 1 and connectionState:  # If still running then sleep
                          lastDuetStatus = duetStatus
                          time.sleep(poll)
              
                  printState = 'Not Capturing'
                  captureLoopState = -1
                  return  # End of captureLoop
              
              
              
              Torinundefined 1 Reply Last reply Reply Quote 0
              • Torinundefined
                Torin @stuartofmt
                last edited by Torin

                Hey folks,
                I want to share a download link with the version that should now work with v2 and v3 API.
                If you could test it and let me know if it's all good that we'd be great and I will release it officially.

                Only change you need to make is additional entry in your configuration file adding api_version in the connection section(v2 or v3) e.g.:

                connection:
                  host: 192.168.0.11
                  polling_time: 30
                  error_count: 5
                  api_version: v3
                

                Without further ado:
                https://1drv.ms/u/s!Aq3gq6mIQqpsisE-e3Adz3wsP6dAJw

                Link is going to expire in 2 weeks, after that I will just merge it 🙂

                stuartofmtundefined Nxt-1undefined 2 Replies Last reply Reply Quote 0
                • stuartofmtundefined
                  stuartofmt @Torin
                  last edited by stuartofmt

                  @torin

                  Don't know if this is interesting for you but may avoid having the user input the version /model info. Its Python, but the logic will be the same.

                  def getDuetVersion(model):
                      # Used to get the API and version information from Duet
                  
                      if model == '' or model == 'rr_model':
                              URL = ('http://' + duet + '/rr_model?key=boards')
                              r = urlCall(URL, 3, False)
                              if r.ok:   #The API type is rr_model
                                  try:
                                      j = json.loads(r.text)
                                      version = j['result'][0]['firmwareVersion']
                                      return 'rr_model', version
                                  except:
                                      pass
                  
                      if model == '' or model == 'SBC': 
                              #  model = '/machine/status'
                              URL = ('http://' + duet + '/machine/status')
                              r = urlCall(URL, 3, False) 
                              if r.ok:
                                  try:
                                      j = json.loads(r.text)
                                      version = j['boards'][0]['firmwareVersion']
                                      return 'SBC', version
                                  except:
                                      pass
                      
                  
                  Torinundefined 1 Reply Last reply Reply Quote 0
                  • Torinundefined
                    Torin @stuartofmt
                    last edited by

                    @stuartofmt Cool. I'll have a look tomorrow (that is if I will survive tomorrow heatwave...). Cheers buddy.

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

                      @torin

                      Ha! - good day to be indoors and futzing with play code 🙂
                      Good Luck. BTW what programming language are you using?
                      Part of the reason I ask is that I also have some code for using gmail.

                      I don't actually use your program as I use DuetMonitor (which only supports gmail) - but it you wanted to extend your connection capabilities - I can sling it in your direction.
                      I

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

                        @stuartofmt Ah that's quite cool. I've already put that in, however I stripped in my case and just checked for the appropriate content-type header on each URL, in both cases it should be app/json, otherwise it's just wrong.
                        I'm doing it all in golang, since it's quite nice for such nice things and portability and lack of dependencies.
                        I have notifications for any email service assuming it can do smtp so should in theory work everywhere. Can you point me to this duetmonitor? First time I'm hearing about this and haven't seen it.

                        If you want to poke around code and see what's there, that's the current that will go to master soon.
                        https://gitlab.com/Toriniasty/reprap_notify/-/tree/feature/apiV3/

                        stuartofmtundefined 1 Reply Last reply Reply Quote 0
                        • Nxt-1undefined
                          Nxt-1 @Torin
                          last edited by

                          @torin I tried the new version but could not get past identifying v2 of v3 firmware.

                          Printer is a Duet3 6HC in SBC mode, attached to a Jetson Nano (arm64). That name Nano also runs your project.

                          Top of rrnotity.yaml looks like this (dwc is running on port 8080)

                          connection:
                            host: localhost:8080
                            polling_time: 5
                            error_count: 50
                            api_version: v3
                          

                          Running the rr_notify results is this output:

                          2022/07/19 00:40:18 Detecting API version... 
                          2022/07/19 00:40:18 Couldn't identify v2 or v3 firmware
                          panic: Couldn't identify v2 or v3 firmware
                          
                          goroutine 1 [running]:
                          log.Panicf({0x463b71?, 0x454fd0?}, {0x0?, 0x1?, 0x400022a030?})
                          	/usr/local/go/src/log/log.go:392 +0x6c
                          main.main()
                          	/builds/Toriniasty/reprap_notify/cmd/rr_notify/main.go:71 +0x46c
                          

                          I am not sure how to proceed from here or how to debug. ¯_(ツ)_/¯

                          Duet3D and delta printer enthousiast. Buildlog
                          Looking for Duet3D configuration support, check out Nxt-3D

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

                            @torin said in notifications upon start/pause/finish of print:
                            Can you point me to this duetmonitor? First time I'm hearing about this and haven't seen it.

                            Here is DuetMonitor
                            https://forum.duet3d.com/topic/23282/duetmonitor

                            1 Reply Last reply Reply Quote 0
                            • Torinundefined
                              Torin @Nxt-1
                              last edited by

                              @nxt-1 hiya, would you be able to provide me output from these two commands(run from the nano itself):

                              curl -v http://localhost:8080/machine/system
                              curl -v http://localhost:8080/rr_model?key=boards
                              

                              ?

                              Nxt-1undefined 1 Reply Last reply Reply Quote 0
                              • Nxt-1undefined
                                Nxt-1 @Torin
                                last edited by

                                @torin They result in a 404 for both, though I would not be able to guess why since the base address does seem to be reachable, though understandably complaining about the lack of JS.

                                curl -v http://localhost:8080/rr_model?key=boards
                                *   Trying 127.0.0.1...
                                * TCP_NODELAY set
                                * Connected to localhost (127.0.0.1) port 8080 (#0)
                                > GET /rr_model?key=boards HTTP/1.1
                                > Host: localhost:8080
                                > User-Agent: curl/7.58.0
                                > Accept: */*
                                > 
                                < HTTP/1.1 404 Not Found
                                < Content-Length: 0
                                < Date: Tue, 19 Jul 2022 14:44:56 GMT
                                < Server: Kestrel
                                < 
                                * Connection #0 to host localhost left intact
                                
                                curl -v http://localhost:8080
                                * Rebuilt URL to: http://localhost:8080/
                                *   Trying 127.0.0.1...
                                * TCP_NODELAY set
                                * Connected to localhost (127.0.0.1) port 8080 (#0)
                                > GET / HTTP/1.1
                                > Host: localhost:8080
                                > User-Agent: curl/7.58.0
                                > Accept: */*
                                > 
                                < HTTP/1.1 200 OK
                                < Content-Length: 1441
                                < Content-Type: text/html
                                < Date: Tue, 19 Jul 2022 14:47:27 GMT
                                < Server: Kestrel
                                < Accept-Ranges: bytes
                                < ETag: "1d8772d0a7368a1"
                                < Last-Modified: Fri, 03 Jun 2022 09:33:54 GMT
                                < 
                                <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0"><!--[if IE]><link rel="icon" href="/favicon.ico"><![endif]--><title>Duet Web Control</title><link href="/css/app.62f87138.css" rel="preload" as="style"><link href="/js/app.d9dc885b.js" rel="preload" as="script"><link href="/css/app.62f87138.css" rel="stylesheet"><link rel="icon" type="image/png" sizes="32x32" href="/img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/img/icons/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#2196f3"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><meta name="apple-mobile-web-app-title" content="Duet Web Control"><link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="/img/icons/safari-* Connection #0 to host localhost left intact
                                pinned-tab.svg" color="#2196f3"><meta name="msapplication-TileImage" content="/img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but Duet Web Control does not work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/js/app.d9dc885b.js"></script```

                                Duet3D and delta printer enthousiast. Buildlog
                                Looking for Duet3D configuration support, check out Nxt-3D

                                Torinundefined 1 Reply Last reply Reply Quote 0
                                • Torinundefined
                                  Torin @Nxt-1
                                  last edited by

                                  @nxt-1 Right, so the second paste is wrong and missing URI 🙂 and I had a thought as well, since there's '?' in URI bash might be screwing around with it try again with:

                                  curl -v http://localhost:8080/machine/system
                                  curl -v "http://localhost:8080/rr_model?key=boards"
                                  
                                  Nxt-1undefined 1 Reply Last reply Reply Quote 0
                                  • Nxt-1undefined
                                    Nxt-1 @Torin
                                    last edited by

                                    @torin said in notifications upon start/pause/finish of print:

                                    @nxt-1 Right, so the second paste is wrong and missing URI 🙂

                                    I did in fact ment to post it without URI, just to show that can I fact make a connection.

                                    Here's the two requests, as requested 🙂

                                    curl -v http://localhost:8080/machine/system
                                    *   Trying 127.0.0.1...
                                    * TCP_NODELAY set
                                    * Connected to localhost (127.0.0.1) port 8080 (#0)
                                    > GET /machine/system HTTP/1.1
                                    > Host: localhost:8080
                                    > User-Agent: curl/7.58.0
                                    > Accept: */*
                                    > 
                                    < HTTP/1.1 404 Not Found
                                    < Content-Length: 0
                                    < Date: Tue, 19 Jul 2022 15:39:09 GMT
                                    < Server: Kestrel
                                    < 
                                    * Connection #0 to host localhost left intact
                                    
                                    curl -v "http://localhost:8080/rr_model?key=boards"
                                    *   Trying 127.0.0.1...
                                    * TCP_NODELAY set
                                    * Connected to localhost (127.0.0.1) port 8080 (#0)
                                    > GET /rr_model?key=boards HTTP/1.1
                                    > Host: localhost:8080
                                    > User-Agent: curl/7.58.0
                                    > Accept: */*
                                    > 
                                    < HTTP/1.1 404 Not Found
                                    < Content-Length: 0
                                    < Date: Tue, 19 Jul 2022 15:39:18 GMT
                                    < Server: Kestrel
                                    < 
                                    * Connection #0 to host localhost left intact
                                    

                                    Duet3D and delta printer enthousiast. Buildlog
                                    Looking for Duet3D configuration support, check out Nxt-3D

                                    Torinundefined 1 Reply Last reply Reply Quote 0
                                    • Torinundefined
                                      Torin @Nxt-1
                                      last edited by

                                      @nxt-1 That's bit odd according to the previous post it should be either one of those two URLs.

                                      @stuartofmt / @chrishamm any idea why either doesn't work?

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

                                        @torin It's /machine/status, not /machine/system. Support for rr_ requests will come in v3.5.

                                        Duet software engineer

                                        Torinundefined 1 Reply Last reply Reply Quote 0
                                        • Torinundefined
                                          Torin @chrishamm
                                          last edited by

                                          @chrishamm Awesome, thanks for the great spot, not sure how I missed it.

                                          @Nxt-1 would you mind giving it another go please? also api_version not needed anymore, software will try to detect it automatically.

                                          Nxt-1undefined 1 Reply Last reply Reply Quote 0
                                          • Nxt-1undefined
                                            Nxt-1 @Torin
                                            last edited by Nxt-1

                                            @torin /machine/status does give me a wall of json output 🙂 .

                                            curl -v http://localhost:8080/machine/status
                                            *   Trying 127.0.0.1...
                                            * TCP_NODELAY set
                                            * Connected to localhost (127.0.0.1) port 8080 (#0)
                                            > GET /machine/status HTTP/1.1
                                            > Host: localhost:8080
                                            > User-Agent: curl/7.58.0
                                            > Accept: */*
                                            > 
                                            < HTTP/1.1 200 OK
                                            < Content-Length: 14094
                                            < Content-Type: application/json
                                            < Date: Wed, 20 Jul 2022 13:45:18 GMT
                                            < Server: Kestrel
                                            < 
                                            {"boards":[{"accelerometer":null,"bootloaderFileName":null,"canAddress":0,"closedLoop":null,"directDisplay":null,"firmwareDate":"2022-06-01","firmwareFileName":"Duet3Firmware_MB6HC.bin","firmwareName":"RepRapFirmware for Duet 3 MB6HC","firmwareVersion":"3.4.1","iapFileNameSBC":"Duet3_SBCiap32_MB6HC.bin","iapFileNameSD":"Duet3_SDiap32_MB6HC.bin","maxHeaters":32,"maxMotors":6,"mcuTemp":{"current":44,"min":39.8,"max":50.4},"name":"Duet 3 MB6HC","shortName":"MB6HC","state":"unknown","supports12864":false,"supportsDirectDisplay":false,"uniqueId":"08DJM-9P63L-DJMSS-6JKD0-3S06T-9AF79","v12":{"current":12.3,"min":12.2,"max":12.4},"vIn":{"current":32.1,"min":31.9,"max":32.3}}],"directories":{"filaments":"0:/filaments/","firmware":"0:/firmware/","gCodes":"0:/gcodes/","macros":"0:/macros/","menu":"0:/menu/","scans":"0:/scans/","system":"0:/sys","web":"0:/www/"},"fans":[{"actualValue":0,"blip":0.1,"frequency":2000,"max":0.7,"min":0,"name":"Compressor","requestedValue":0,"rpm":-1,"thermostatic":{"heaters":[],"highTemperature":null,"lowTemperature":null}},{"actualValue":1,"blip":0.1,"frequency":25000,"max":1,"min":0,"name":"Duet","requestedValue":1,"rpm":2039,"thermostatic":{"heaters":[],"highTemperature":null,"lowTemperature":null}},{"actualValue":1,"blip":0.1,"frequency":25000,"max":1,"min":0,"name":"Pump","requestedValue":1,"rpm":4539,"thermostatic":{"heaters":[],"highTemperature":null,"lowTemperature":null}}],"global":{},"heat":{"bedHeaters":[0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"chamberHeaters":[-1,-1,-1,-1],"coldExtrudeTemperature":160,"coldRetractTemperature":90,"heaters":[{"active":0,"avgPwm":0,"current":33.6,"max":150,"min":-273.1,"model":{"coolingExp":1.4,"coolingRate":0.138,"deadTime":19.5,"enabled":true,"fanCoolingRate":0,"heatingRate":0.577,"inverted":false,"maxPwm":1,"pid":{"d":0.849,"i":0.0008,"overridden":false,"p":0.06221,"used":true},"standardVoltage":0},"monitors":[{"action":1,"condition":"tooHigh","limit":150},{"action":0,"condition":"disabled","limit":0},{"action":0,"condition":"disabled","limit":0}],"sensor":0,"standby":0,"state":"off"},{"active":0,"avgPwm":0,"current":29.2,"max":285,"min":-273.1,"model":{"coolingExp":1.4,"coolingRate":0.319,"deadTime":5.4,"enabled":true,"fanCoolingRate":0.038,"heatingRate":1.825,"inverted":false,"maxPwm":1,"pid":{"d":0.268,"i":0.0029,"overridden":false,"p":0.07116,"used":true},"standardVoltage":32.1},"monitors":[{"action":0,"condition":"tooHigh","limit":285},{"action":0,"condition":"disabled","limit":0},{"action":0,"condition":"disabled","limit":0}],"sensor":1,"standby":0,"state":"off"}]},"httpEndpoints":[],"inputs":[{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50,"inMacro":false,"macroRestartable":false,"name":"HTTP","stackDepth":0,"state":"idle","lineNumber":0,"volumetric":false},{"axesRelative":false,"compatibility":"Marlin","distanceUnit":"mm","drivesRelative":true,"feedRate":50,"inMacro":false,"macroRestartable":false,"name":"Telnet","stackDepth":0,"state":"idle","lineNumber":0,"volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":10.5,"inMacro":false,"macroRestartable":false,"name":"File","stackDepth":0,"state":"idle","lineNumber":270768,"volumetric":false},{"axesRelative":false,"compatibility":"Marlin","distanceUnit":"mm","drivesRelative":true,"feedRate":50,"inMacro":false,"macroRestartable":false,"name":"USB","stackDepth":0,"state":"idle","lineNumber":0,"volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50,"inMacro":false,"macroRestartable":false,"name":"Aux","stackDepth":0,"state":"reading","lineNumber":7,"volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50,"inMacro":false,"macroRestartable":false,"name":"Trigger","stackDepth":0,"state":"idle","lineNumber":0,"volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50,"inMacro":false,"macroRestartable":false,"name":"Queue","stackDepth":0,"state":"idle","lineNumber":270768,"volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50,"inMacro":false,"macroRestartable":false,"name":"LCD","stackDepth":0,"state":"idle","lineNumber":0,"volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50,"inMacro":false,"macroRestartable":false,"name":"SBC","stackDepth":0,"state":"idle","lineNumber":0,"volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50,"inMacro":false,"macroRestartable":false,"name":"Daemon","stackDepth":0,"state":"idle","lineNumber":0,"volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50,"inMacro":false,"macroRestartable":false,"name":"Aux2","stackDepth":0,"state":"idle","lineNumber":0,"volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50,"inMacro":false,"macroRestartable":false,"name":"Autopause","stackDepth":0,"state":"idle","lineNumber":0,"volumetric":false}],"job":{"build":null,"duration":null,"file":{"filament":[7056],"fileName":null,"generatedBy":"Simplify3D(R) Version 4.1.2","height":33.1,"lastModified":"2022-07-17T15:13:52","layerHeight":0.2,"numLayers":165,"printTime":7380,"simulatedTime":4309,"size":7460736,"thumbnails":[]},"filePosition":7460476,"lastDuration":4298,"lastFileName":"0:/gcodes/LampAdapter.gcode","lastFileAborted":false,"lastFileCancelled":false,"lastFileSimulated":false,"layer":null,"layers":[],"layerTime":null,"pauseDuration":null,"rawExtrusion":null,"timesLeft":{"filament":null,"file":null,"slicer":null},"warmUpDuration":null},"limits":{"axes":15,"axesPlusExtruders":25,"bedHeaters":12,"boards":21,"chamberHeaters":4,"drivers":26,"driversPerAxis":8,"extruders":16,"extrudersPerTool":10,"fans":20,"gpInPorts":32,"gpOutPorts":32,"heaters":32,"heatersPerTool":20,"monitorsPerHeater":3,"restorePoints":6,"sensors":56,"spindles":4,"tools":50,"trackedObjects":40,"triggers":32,"volumes":1,"workplaces":9,"zProbeProgramBytes":8,"zProbes":4},"messages":[],"move":{"axes":[{"acceleration":1000,"babystep":0,"current":2400,"drivers":["0.2"],"homed":false,"jerk":400,"letter":"X","machinePosition":-5.392,"max":200,"maxProbed":false,"microstepping":{"interpolated":true,"value":16},"min":-200,"minProbed":false,"percentCurrent":100,"percentStstCurrent":71,"speed":10000,"stepsPerMm":160,"userPosition":-5.365,"visible":true,"workplaceOffsets":[0,0,0,0,0,0,0,0,0]},{"acceleration":1000,"babystep":0,"current":2400,"drivers":["0.1"],"homed":false,"jerk":400,"letter":"Y","machinePosition":-24.104,"max":200,"maxProbed":false,"microstepping":{"interpolated":true,"value":16},"min":-200,"minProbed":false,"percentCurrent":100,"percentStstCurrent":71,"speed":10000,"stepsPerMm":160,"userPosition":-23.984,"visible":true,"workplaceOffsets":[0,0,0,0,0,0,0,0,0]},{"acceleration":1000,"babystep":0,"current":2400,"drivers":["0.0"],"homed":false,"jerk":400,"letter":"Z","machinePosition":133.866,"max":770.05,"maxProbed":false,"microstepping":{"interpolated":true,"value":16},"min":0,"minProbed":false,"percentCurrent":100,"percentStstCurrent":71,"speed":10000,"stepsPerMm":160,"userPosition":133.2,"visible":true,"workplaceOffsets":[0,0,0,0,0,0,0,0,0]}],"calibration":{"final":{"deviation":0.037,"mean":0},"initial":{"deviation":0.038,"mean":-0.033},"numFactors":8},"compensation":{"fadeHeight":null,"file":null,"liveGrid":null,"meshDeviation":null,"probeGrid":{"axes":["X","Y"],"maxs":[188.8,188.8],"mins":[-188.7,-188.7],"radius":190,"spacings":[41.9,41.9]},"skew":{"compensateXY":true,"tanXY":0,"tanXZ":0,"tanYZ":0},"type":"none"},"currentMove":{"acceleration":0,"deceleration":0,"laserPwm":null,"requestedSpeed":0,"topSpeed":0},"extruders":[{"acceleration":3000,"current":750,"driver":"0.3","filament":"","factor":1,"jerk":2000,"microstepping":{"interpolated":true,"value":16},"nonlinear":{"a":0,"b":0,"upperLimit":0.2},"percentCurrent":100,"percentStstCurrent":71,"position":7053.9,"pressureAdvance":0.14,"rawPosition":7054.8,"speed":10000,"stepsPerMm":414}],"idle":{"factor":0.6,"timeout":30},"kinematics":{"deltaRadius":231.522,"homedHeight":770.057,"printRadius":200,"towers":[{"angleCorrection":-0.02,"diagonal":501.3,"endstopAdjustment":0.413,"xPos":-200.544,"yPos":-115.692},{"angleCorrection":-0.091,"diagonal":501.3,"endstopAdjustment":-0.814,"xPos":200.319,"yPos":-116.08},{"angleCorrection":0,"diagonal":501.3,"endstopAdjustment":0.402,"xPos":0,"yPos":231.522}],"xTilt":-0.009,"yTilt":0.003,"name":"delta","segmentation":null},"limitAxes":true,"noMovesBeforeHoming":true,"printingAcceleration":20000,"queue":[{"gracePeriod":0.01,"length":60},{"gracePeriod":0.01,"length":5}],"rotation":{"angle":0,"centre":[0,0]},"shaping":{"amplitudes":[],"damping":0.1,"durations":[],"frequency":40,"minAcceleration":0,"type":"none"},"speedFactor":1,"travelAcceleration":20000,"virtualEPos":0,"workplaceNumber":0},"network":{"corsSite":null,"hostname":"server","interfaces":[{"activeProtocols":[],"actualIP":null,"configuredIP":null,"dnsServer":"127.0.0.53","firmwareVersion":null,"gateway":null,"mac":"AE:A2:57:DA:70:FA","numReconnects":null,"signal":null,"speed":0,"state":"disabled","subnet":null,"type":"lan"},{"activeProtocols":[],"actualIP":null,"configuredIP":null,"dnsServer":"127.0.0.53","firmwareVersion":null,"gateway":null,"mac":"48:B0:2D:3D:3E:E4","numReconnects":null,"signal":null,"speed":10,"state":"disabled","subnet":null,"type":"lan"},{"activeProtocols":[],"actualIP":null,"configuredIP":null,"dnsServer":"127.0.0.53","firmwareVersion":null,"gateway":null,"mac":"A6:73:89:4F:B4:35","numReconnects":null,"signal":null,"speed":0,"state":"disabled","subnet":null,"type":"lan"},{"activeProtocols":[],"actualIP":null,"configuredIP":null,"dnsServer":"127.0.0.53","firmwareVersion":null,"gateway":null,"mac":"A6:73:89:4F:B4:35","numReconnects":null,"signal":null,"speed":0,"state":"disabled","subnet":null,"type":"lan"},{"activeProtocols":[],"actualIP":null,"configuredIP":null,"dnsServer":"127.0.0.53","firmwareVersion":null,"gateway":null,"mac":"A6:73:89:4F:B4:37","numReconnects":null,"signal":null,"speed":0,"state":"disabled","subnet":null,"type":"lan"},{"activeProtocols":[],"actualIP":"172.17.0.1","configuredIP":"172.17.0.1","dnsServer":"127.0.0.53","firmwareVersion":null,"gateway":null,"mac":"02:42:A8:9B:B4:7D","numReconnects":null,"signal":null,"speed":0,"state":"disabled","subnet":"255.255.0.0","type":"lan"},{"activeProtocols":[],"actualIP":"192.168.178.22","configuredIP":"192.168.178.22","dnsServer":"127.0.0.53","firmwareVersion":null,"gateway":"192.168.178.1","mac":"58:96:1D:13:6F:0A","numReconnects":null,"signal":-71,"speed":0,"state":"active","subnet":"255.255.255.0","type":"wifi"}],"name":"server"},"plugins":{},"scanner":{"progress":0,"status":"D"},"sensors":{"analog":[{"lastReading":33.6,"name":"Bed","type":"thermistor"},{"lastReading":29.2,"name":"Hotend","type":"thermistor"}],"endstops":[{"highEnd":true,"triggered":false,"type":"inputPin"},{"highEnd":true,"triggered":false,"type":"inputPin"},{"highEnd":true,"triggered":false,"type":"inputPin"}],"filamentMonitors":[],"gpIn":[],"probes":[{"calibrationTemperature":25,"deployedByUser":false,"disablesHeaters":false,"diveHeight":5,"lastStopHeight":-0.116,"maxProbeCount":10,"offsets":[0,0,0.1],"recoveryTime":0.5,"speeds":[1000,1000],"temperatureCoefficients":[0,0],"threshold":100,"tolerance":0.03,"travelSpeed":10000,"triggerHeight":-0.1,"type":8,"value":[0]}]},"spindles":[{"active":0,"canReverse":false,"current":0,"frequency":0,"min":60,"max":10000,"state":"unconfigured"},{"active":0,"canReverse":false,"current":0,"frequency":0,"min":60,"max":10000,"state":"unconfigured"},{"active":0,"canReverse":false,"current":0,"frequency":0,"min":60,"max":10000,"state":"unconfigured"},{"active":0,"canReverse":false,"current":0,"frequency":0,"min":60,"max":10000,"state":"unconfigured"}],"state":{"atxPower":null,"atxPowerPort":null,"beep":null,"currentTool":0,"deferredPowerDown":null,"displayMessage":"","dsfVersion":"3.4.1","dsfPluginSupport":true,"dsfRootPluginSupport":false,"gpOut":[],"laserPwm":null,"logFile":null,"logLevel":"off","messageBox":null,"machineMode":"FFF","macroRestarted":false,"msUpTime":230,"nextTool":0,"pluginsStarted":false,"powerFailScript":"","previousTool":-1,"restorePoints":[{"coords":[0,0,0],"extruderPos":0,"fanPwm":0,"feedRate":50,"ioBits":0,"laserPwm":null,"spindleSpeeds":[],"toolNumber":-1},{"coords":[0,0,0],"extruderPos":0,"fanPwm":0,"feedRate":50,"ioBits":0,"laserPwm":null,"spindleSpeeds":[],"toolNumber":-1},{"coords":[0,0,238.806],"extruderPos":0,"fanPwm":0,"feedRate":50,"ioBits":0,"laserPwm":null,"spindleSpeeds":[],"toolNumber":-1},{"coords":[0,0,0],"extruderPos":0,"fanPwm":0,"feedRate":50,"ioBits":0,"laserPwm":null,"spindleSpeeds":[],"toolNumber":-1},{"coords":[0,0,0],"extruderPos":0,"fanPwm":0,"feedRate":50,"ioBits":0,"laserPwm":null,"spindleSpeeds":[],"toolNumber":-1},{"coords":[0,0,0],"extruderPos":0,"fanPwm":0,"feedRate":* Connection #0 to host localhost left intact
                                            50,"ioBits":0,"laserPwm":null,"spindleSpeeds":[],"toolNumber":-1}],"status":"idle","thisInput":null,"time":"2022-07-20T15:44:46","upTime":4052689},"tools":[{"active":[0],"axes":[[0],[1]],"extruders":[0],"fans":[0],"feedForward":[0],"filamentExtruder":0,"heaters":[1],"isRetracted":false,"mix":[1],"name":"Hotend","number":0,"offsets":[0,0,0],"offsetsProbed":0,"retraction":{"extraRestart":0,"length":0.9,"speed":45,"unretractSpeed":45,"zHop":0.1},"spindle":-1,"spindleRpm":0,"standby":[0],"state":"active"}],"userSessions":[{"accessLevel":"readWrite","id":33,"origin":"94.105.126.101","originId":-1,"sessionType":"http"}],"volumes":[{"capacity":236242378752,"freeSpace":220662013952,"mounted":true,"name":null,"openFiles":null,"partitionSize":236242378752,"path":"/","speed":null}]}
                                            

                                            However launching the updated executable I get continous json errors:
                                            (I am running rrf 3.4.1 fyi)

                                            ./reprap_notify_linux_arm64 
                                            2022/07/20 15:48:57 Detecting API version... 
                                            2022/07/20 15:48:57 Detected firmware revision 2
                                            2022/07/20 15:48:57 Error parsing JSON: unexpected end of JSON input
                                            2022/07/20 15:48:57 Error parsing JSON: unexpected end of JSON input
                                            

                                            Duet3D and delta printer enthousiast. Buildlog
                                            Looking for Duet3D configuration support, check out Nxt-3D

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