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

    Read Output pin state

    Scheduled Pinned Locked Moved
    Using Duet Controllers
    8
    44
    2.6k
    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.
    • wayneosdiasundefined
      wayneosdias @alankilian
      last edited by

      @alankilian
      Yes! Thanks Alan!

      M118 P1 S{state\u002EgpOut[3]\u002Epwm} L0
      

      Works perfectly with GCode Compression

      2022-02-27 13:07:50.156 GcodeAsyncDriver DEBUG: serial://COM13 commandQueue.offer(M118 P1 S{state\u002EgpOut[3]\u002Epwm} L0, 5000)...
      2022-02-27 13:07:50.158 GcodeAsyncDriver$WriterThread TRACE: [serial://COM13] >> M118 P1 S{state.gpOut[3].pwm} L0
      2022-02-27 13:07:50.158 GcodeDriver$ReaderThread TRACE: [serial://COM13] << 0.00
      2022-02-27 13:07:50.159 GcodeDriver$ReaderThread TRACE: [serial://COM13] << ok
      
      

      Thanks Again Alan!

      alankilianundefined 1 Reply Last reply Reply Quote 0
      • alankilianundefined
        alankilian @wayneosdias
        last edited by alankilian

        @wayneosdias

        I'm thrilled that you are taking the time to work Duet into the OpenPNP world.

        Are you sure you turned compression back on?
        Because I thought it compressed the spaces out also but it doesn't seem to be doing that.

        SeemeCNC Rostock Max V3 converted to V3.2 with a Duet2 Ethernet Firmware 3.2 and SE300

        wayneosdiasundefined 1 Reply Last reply Reply Quote 0
        • wayneosdiasundefined
          wayneosdias @alankilian
          last edited by

          @alankilian
          Yes its working with compression. Here is a snippet of my machine.xml with the setting emboldened. The full .xml file is several thousand lines long;

          driver class="org.openpnp.machine.reference.driver.GcodeAsyncDriver" id="DRV16cc6c1da8ebf1f8" name="GcodeAsyncDriver" motion-control-type="Simulated3rdOrderControl" communications="serial" connection-keep-alive="false" sync-initial-location="false" units="Millimeters" max-feed-rate="100000" backlash-offset-x="-1.0" backlash-offset-y="-1.0" backlash-offset-z="0.0" backlash-offset-r="0.0" non-squareness-factor="0.0" backlash-feed-rate-factor="0.1" timeout-milliseconds="5000" connect-wait-time-milliseconds="3000" visual-homing-enabled="true" backslash-escaped-characters-enabled="false" remove-comments="false" compress-gcode="true" logging-gcode="true" supporting-pre-move="false" using-letter-variables="true" infinity-timeout-milliseconds="60000" writer-polling-interval="100" writer-queue-timeout="60000" max-commands-queued="1000" confirmation-flow-control="false" reported-location-confirmation="true" interpolation-max-steps="32" interpolation-jerk-steps="4" interpolation-time-step="0.001" interpolation-min-step="16"

          Config
          25af0902-64dd-4cec-b01b-81d46b2f3ea9-image.png
          Console
          653c1341-7b16-4c8f-bd78-dbb65c451f9f-image.png

          Thanks. Duet is working very well w Openpnp thus far. I started a Duet Wiki page under Openpnp. All add this info for others as well. RRF config via SD is so much easier to get Openpnp configured correctly vs Smoothieware that needs you to rebuild and flash with each config change.

          There is a lot of hesitancy to move to Openpnp from propriety PnP controllers because generating the machine.xml (Openpnp config) is long and complex. The Duet/RRF make scratch building the machine.xml much more straight forward.

          Again thanks

          alankilianundefined 1 Reply Last reply Reply Quote 0
          • alankilianundefined
            alankilian @wayneosdias
            last edited by

            @wayneosdias said in Read Output pin state:

            backslash-escaped-characters-enabled="false"

            I'm sure you know what you're doing, and I'm also SURE I DO NOT, but this doesn't match your graphics, so maybe just check to be sure?

            I do know I've wasted so much time when I update something and forget to type Make before testing, or I edited and didn't save a change, so I'm an idiot.

            SeemeCNC Rostock Max V3 converted to V3.2 with a Duet2 Ethernet Firmware 3.2 and SE300

            wayneosdiasundefined 1 Reply Last reply Reply Quote 0
            • wayneosdiasundefined
              wayneosdias @alankilian
              last edited by

              @alankilian
              Sorry, yes you're correct again 🙂
              The xml doesn't update until File>Save>Configuration. Meaning the GUI changes don't automatically update the xml and I blindly copied it without saving first.

              So just for clarity I Saved the GUI settings, closed Openpnp, restarted Openpnp and now;

              xml
              driver class="org.openpnp.machine.reference.driver.GcodeAsyncDriver" id="DRV16cc6c1da8ebf1f8" name="GcodeAsyncDriver" motion-control-type="Simulated3rdOrderControl" communications="serial" connection-keep-alive="false" sync-initial-location="false" units="Millimeters" max-feed-rate="100000" backlash-offset-x="-1.0" backlash-offset-y="-1.0" backlash-offset-z="0.0" backlash-offset-r="0.0" non-squareness-factor="0.0" backlash-feed-rate-factor="0.1" timeout-milliseconds="5000" connect-wait-time-milliseconds="3000" visual-homing-enabled="true" backslash-escaped-characters-enabled="true" remove-comments="false" compress-gcode="true" logging-gcode="true" supporting-pre-move="false" using-letter-variables="true" infinity-timeout-milliseconds="60000" writer-polling-interval="100" writer-queue-timeout="60000" max-commands-queued="1000" confirmation-flow-control="false" reported-location-confirmation="true" interpolation-max-steps="32" interpolation-jerk-steps="4" interpolation-time-step="0.001" interpolation-min-step="16"

              GUI
              3d07893b-0926-4a3a-a7f2-37ae02ed644e-image.png
              c7b059a3-822b-433e-8686-94405caeec5f-image.png

              Its all working 🙂

              wayneosdiasundefined 1 Reply Last reply Reply Quote 0
              • wayneosdiasundefined
                wayneosdias @wayneosdias
                last edited by

                @dc42 @alankilian @gloomyandy @OwenD @SIam @Stephen6309
                Thanks again.

                Now that I have M118 working within Openpnp with GCode compression via the Backslash option I have changed my other analog sensor queries;

                Initially using M308 was pretty verbose with 138 total char count

                >> M308S0
                << Sensor 0 (Pressure_1) type Linear analog using pin temp0, reading 1996.0, last error: success, unfiltered, range 0.0 to 4095.0
                

                Vs now using M118 a total char count of 50

                >> M118P1S{sensors.analog[0].lastReading}
                //actual Opnepnp syntax w compression and back slash
                // M118 P1 S{sensors\u002Eanalog[0]\u002ElastReading}
                << 1996.0
                

                Thanks Wayne

                OwenDundefined 1 Reply Last reply Reply Quote 0
                • OwenDundefined
                  OwenD @wayneosdias
                  last edited by

                  @wayneosdias
                  Glad it's all working.
                  Be interesting to see a video of it in operation

                  wayneosdiasundefined 1 Reply Last reply Reply Quote 0
                  • wayneosdiasundefined
                    wayneosdias @OwenD
                    last edited by wayneosdias

                    @owend
                    Will do, I need to get the mechanicals back together first. 🙂
                    If you dont know what this is, it's the aftermath drag pin machine crash. The pin with the bent tip slides up and down within the blue coil of the selenoid with the bent frame.

                    I hope to get fixed tonight and put some of my new and improved RRF commands to work 🙂

                    Thanks again.
                    20220227_191412.jpg

                    1 Reply Last reply Reply Quote 1
                    • wayneosdiasundefined
                      wayneosdias
                      last edited by

                      Heres a quick vid of the process.
                      pick_2edOjyQd.mp4

                      droftartsundefined 1 Reply Last reply Reply Quote 0
                      • droftartsundefined
                        droftarts administrators @wayneosdias
                        last edited by

                        @wayneosdias Hi, is it okay to add a link to your wiki page on our wiki page here? https://docs.duet3d.com/User_manual/Machine_configuration/Configuration_OpenPnP

                        Ian

                        Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                        wayneosdiasundefined 2 Replies Last reply Reply Quote 0
                        • wayneosdiasundefined
                          wayneosdias @droftarts
                          last edited by

                          @droftarts
                          Yes absolutely. I do need to make some tweeks to the wiki as I have been making changes but haven't been updating the wiki. I'll spend some time tonight to tiding things up a bit.

                          I don't want to spread any bad info so if you see anything that is not best practice please let me know.

                          Lastly, just to put the original topic to bed, M118 is the best method for retrieving input/output/analog values from Duet using GCode correct? Best meaning timely and succinct.

                          droftartsundefined 1 Reply Last reply Reply Quote 0
                          • droftartsundefined
                            droftarts administrators @wayneosdias
                            last edited by

                            @wayneosdias Great, thanks.

                            For sending messages to USB, I guess M118 is going to be the most useful; I actually can't think of any other way to do it. If you wanted to send to DWC or PanelDue (but I don't think you do), use M291 instead.

                            Ian

                            Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                            wayneosdiasundefined 1 Reply Last reply Reply Quote 0
                            • wayneosdiasundefined
                              wayneosdias @droftarts
                              last edited by

                              @droftarts
                              Ok good to know, for Openpnp its USB/serial or tcp.

                              1 Reply Last reply Reply Quote 0
                              • wayneosdiasundefined
                                wayneosdias @droftarts
                                last edited by

                                @droftarts
                                Ive updated the wiki, it is current. Feel free to post the link
                                https://github.com/openpnp/openpnp/wiki/Duet3D-Openpnp-Example

                                1 Reply Last reply Reply Quote 0
                                • dc42undefined
                                  dc42 administrators
                                  last edited by

                                  @droftarts said in Read Output pin state:

                                  @wayneosdias Great, thanks.

                                  For sending messages to USB, I guess M118 is going to be the most useful; I actually can't think of any other way to do it. If you wanted to send to DWC or PanelDue (but I don't think you do), use M291 instead.

                                  Ian

                                  You can also use 'echo' commands to retrieve information.

                                  Duet WiFi hardware designer and firmware engineer
                                  Please do not ask me for Duet support via PM or email, use the forum
                                  http://www.escher3d.com, https://miscsolutions.wordpress.com

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