DuetRFF Cura plugin Duet 3



  • hi, I use Cura 4.5 and Duet 3 updated to the latest version. "Print on ..." I get network error.
    What did I forget?
    Thanks.

    Here the Cura log (this one is with password but I get same error without):
    2020-04-10 09:40:21,096 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.init [72]: Ultimaker 2ET-print | New DuetRRFOutputDevice created
    2020-04-10 09:40:21,097 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.init [73]: Ultimaker 2ET-print | URL: http://192.168.1.110/
    2020-04-10 09:40:21,098 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.init [74]: Ultimaker 2ET-print | Duet password: set.
    2020-04-10 09:40:21,099 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.init [75]: Ultimaker 2ET-print | HTTP Basic Auth user: empty.
    2020-04-10 09:40:21,100 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.init [76]: Ultimaker 2ET-print | HTTP Basic Auth password: empty.
    2020-04-10 09:40:21,102 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.init [72]: Ultimaker 2ET-simulate | New DuetRRFOutputDevice created
    2020-04-10 09:40:21,103 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.init [73]: Ultimaker 2ET-simulate | URL: http://192.168.1.110/
    2020-04-10 09:40:21,103 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.init [74]: Ultimaker 2ET-simulate | Duet password: set.
    2020-04-10 09:40:21,104 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.init [75]: Ultimaker 2ET-simulate | HTTP Basic Auth user: empty.
    2020-04-10 09:40:21,105 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.init [76]: Ultimaker 2ET-simulate | HTTP Basic Auth password: empty.
    2020-04-10 09:40:21,106 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.init [72]: Ultimaker 2ET-upload | New DuetRRFOutputDevice created
    2020-04-10 09:40:21,107 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.init [73]: Ultimaker 2ET-upload | URL: http://192.168.1.110/
    2020-04-10 09:40:21,107 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.init [74]: Ultimaker 2ET-upload | Duet password: set.
    2020-04-10 09:40:21,109 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.init [75]: Ultimaker 2ET-upload | HTTP Basic Auth user: empty.
    2020-04-10 09:40:21,109 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.init [76]: Ultimaker 2ET-upload | HTTP Basic Auth password: empty.

    2020-04-10 09:55:04,894 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.onFilenameAccepted [160]: Ultimaker 2ET-print | Filename set to: CFFFP_PolyBox Distanziale.gcode
    2020-04-10 09:55:05,120 - DEBUG - [MainThread] LinearAdvanceSettingPlugin.LinearAdvanceSettingPlugin._filterGcode [109]: No used extruders specify a linear advance factor
    2020-04-10 09:55:05,122 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.onFilenameAccepted [173]: Ultimaker 2ET-print | Loading gcode...
    2020-04-10 09:55:05,256 - DEBUG - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice.onFilenameAccepted [184]: Ultimaker 2ET-print | Connecting...
    2020-04-10 09:55:05,292 - INFO - [MainThread] UM.TaskManagement.HttpRequestManager._processRequest [308]: Request [5e4e2928768b49589f7e5dc20c74f688] started
    2020-04-10 09:55:05,300 - DEBUG - [MainThread] UM.TaskManagement.HttpRequestManager._processNextRequestsInQueue [279]: No more requests to process, stop
    2020-04-10 09:55:05,511 - ERROR - [MainThread] DuetRRFPlugin.DuetRRFOutputDevice._onNetworkError [336]: _onNetworkError: 203



  • @Gio said in DuetRFF Cura plugin Duet 3:

    http://192.168.1.110/

    Is this the URL under which you can reach your printer and it shows DWC?

    I don't see anything obviously wrong here...



  • Thanks @resam for quick answer.
    Yes the ip is correct… I think 🙂

    DWC.png



  • Unfortunately I do not have a Duet3 - so I never tested the Cura Plugin.

    Are you running your Duet3 stand-alone or with a SBC attached?



  • Duet3 with Raspberry PI3 Model B.
    Do you want me to make some tests?
    Thanks.



  • I'm wondering - does the SBC for a Duet3 actually expose the usual RRF HTTP endpoints? Are they simply passed-through to RRF?
    https://github.com/dc42/RepRapFirmware/blob/v3.01-dev/HTTP requests.md

    @dc42 might be able to shed some light on this.



  • Looks like this is a known limitation of Duet3+SBC:
    https://github.com/chrishamm/DuetSoftwareFramework/issues/99



  • @resam said in DuetRFF Cura plugin Duet 3:

    RRF HTTP

    Thanks a lot, let me check.



  • If I understand correctly I have to wait for the Ultimaker to update the cure, right?
    Thanks.



  • @resam said in DuetRFF Cura plugin Duet 3:

    I'm wondering - does the SBC for a Duet3 actually expose the usual RRF HTTP endpoints? Are they simply passed-through to RRF?

    It is more that RRF3 changed from HTTP to websockets. Standalone or +Pi.

    https://github.com/dc42/RepRapFirmware/blob/v3.01-dev/HTTP requests.md

    That is a very old document. You will find the equivalent over at DWC is in the "legacy" branch (i.e. V1 DWC, V2 RRF)



  • @Gio said in DuetRFF Cura plugin Duet 3:

    If I understand correctly I have to wait for the Ultimaker to update the cure, right?
    Thanks.

    Cura would be best to update the plugin, they can include it with Cura itself. However, the plugin is open source... anyone could potentially fix it.



  • @Danal maybe I've missed it - but I'm not aware of any deprecation notice or other announced / communicated changes regarding this...

    I'm of course fine with releasing a new API - but silently killing the old one is a bit surprising for users and developers trying to integrate tooling and automation with the Duet platform.



  • I can certainly see both sides of this (to be clear, I am just a vocal user, I have no formal association with Duet the company).

    RRF V2 still works fine with 3rd party software written to the APIs published with RRF V2. Nothing has been deprecated.

    RRF V3 has statements all over the place about how different it is, and that people should not automatically go there, unless they desire feature/function not available in 2. And that they should expect gaps as well as differences. Does it explicitly say the Web API changed? No, absolutely not.

    So I can see multiple nuances here.

    Also, I'm fairly certain that Ultimaker (the company that publishes Cura) did not write the DuetRRF plugin. It has to be fetched it from the "marketplace" in Cura.

    5024901c-4eb0-4d8a-9a72-55aa88784b5d-image.png



  • @Danal sorry, I wasn't too clear in the first posts here - I am the author of the Cura Duet-RRF plugin.

    I pushed a first development branch here: https://github.com/Kriechi/Cura-DuetRRFPlugin/tree/duet3-sbc-DuetSoftwareFramework

    Since I do not have a Duet3 + SBC print, I was unable to test this - so this is completely untested!

    @Gio @Danal if you could install the plugin manually and give it a test - and send me the Cura log output back - it would be much appreciated!

    Please test: simple upload, upload + printing, upload + simulating.

    Again - this is untested - I have no clue how the DuetSoftwareFramework API behaves - I simply read the documentation and used common sense...



  • [link text]([link url](20200414_102033.jpg link url))


  • administrators

    I am discussing with my colleagues the best way to get all the upload plugins working with Duet 3 + SBC. What I don't want is for users to have to choose one of two different plugins according to their Duet configuration, because that would inevitably result in a lot of forum support due to users selecting the wrong one.



  • @resam I can see the same result as @Sotidii

    It seems that the mode-switch is not working. What makes me wonder is that it says 203 Error as if that would be a HTTP/203 return code though when I call this URL directly I get the (correct) HTTP/404.



  • @wilriker Cura uses Qt - and Qt introduced their own error codes:
    https://doc.qt.io/qt-5/qnetworkreply.html#NetworkError-enum
    i.e., QT 203 means more or less HTTP 404.

    @Sotidii @wilriker I pushed another code change to hunt the the problem with the mode switch. Please post parts of your Cura log. On macOS you can find the log under ~/Library/Application\ Support/cura/4.5/cura.log. Or on Windows under C:\Users\<Username>\AppData\Roaming\cura\4.5\cura.log. I'm only interested in lines with Cura-DuetRRFPlugin.DuetRRFOutputDevice in it.

    Thanks!



  • @resam sorry me for delay.
    I can't do anything at the moment, I disassembled the printer to finish some works with duet 3



  • @Sotidii @wilriker I just realised that my original instructions where probably a bit misleading. Here the correct ones:

    Please follow this link to download the correct testing version:
    https://github.com/Kriechi/Cura-DuetRRFPlugin/archive/duet3-sbc-DuetSoftwareFramework.zip

    Then, with Cura not running, unpack the zip file to this specific folder:

    • Windows: C:\Users<username>\AppData\Roaming\cura\4.5\plugins\DuetRRFPlugin
    • macOS: ~/Library/Application Support/Cura/4.5/plugins/DuetRRFPlugin
    • Linux: /home/<username>/.local/share/cura/4.5/plugins/DuetRRFPlugin

    Be careful, the unzipper often tacks on the name of the zip as a folder at the bottom and you don't want it nested. You want the files to show up in that folder.

    Make sure that the plugin folder name is a listed above and it does not have any trailing version numbers (-1.0.0) or similar.



  • @resam Hi Thomas,

    first I have to admit that accidentally I was on the wrong branch when testing before. Now I am on the correct branch but still get an issue. I even get a Cura pop-up with a traceback:

    Traceback (most recent call last):
      File "/home/manuel/.local/share/cura/4.5/plugins/DuetRRFPlugin/DuetRRFOutputDevice.py", line 201, in _check_duet3_sbc
        Logger.log("d", self._name_id + " | rr_connect failed with errorCode " + errorCode)
    TypeError: can only concatenate str (not "NetworkError") to str
    

    There is no logging line containing Cura-DuetRRFPlugin.DuetRRFOutputDevice though.



  • @wilriker thanks - almost an expected error.
    I pushed another commit - please try again.



  • @resam said in DuetRFF Cura plugin Duet 3:

    @Gio @Danal if you could install the plugin manually and give it a test - and send me the Cura log output back - it would be much appreciated!

    Been away for a bit, back now.

    Will do.



  • @resam So upload works with latest commit now. Simulating fails with

    Traceback (most recent call last):
      File "/home/manuel/.local/share/cura/4.5/plugins/DuetRRFPlugin/DuetRRFOutputDevice.py", line 216, in onUploadReady
        self._stream.seek(0)
    ValueError: I/O operation on closed file
    

    I could not test printing right now (and won't be able to before tomorrow) but I guess if Simulate works, Start print will also work.



  • Big shout out to @wilriker for a quick live debugging session!

    It looks like the Cura-DuetRRF plugin now should fully support Duet3+SBC printers.
    I will keep the dedicated branch for a few more days - anyone who is interested in testing, please grab a copy of the plugin here: https://github.com/Kriechi/Cura-DuetRRFPlugin/archive/duet3-sbc-DuetSoftwareFramework.zip

    I plan to upload an updated plugin version into the Cura Marketplace on the weekend. Please let me know if you encounter any issues.


Log in to reply