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

PanelDue no longer connecting on Duet3/io0 with 3.01-RC11

Scheduled Pinned Locked Moved
Beta Firmware
4
48
1.7k
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.
  • undefined
    Nuramori @gtj0
    last edited by 1 May 2020, 20:23

    @gtj0 I'll clarify.

    physical layout used, on a duet2 and current duet3+Pi4, working as intended up until 3.01-RC11

    DUET3 connected to paneldue per standard guidelines.
    Arduino Rx connected to DUET3 by sharing the io0.out pin.

    Above works/worked for 3.0/3.01 up to RC10.

    With RC11:

    Above configuration results in the arduino working as expected, but the paneldue now reporting "connecting" and screen data not being updated. controls on the screen such as move x/y/z work properly. Indicates that Tx from paneldue to DUET3 is functioning, and the issues do not appear to crash the paneldue hardware.

    With wire between arduino and io0.out removed, either on powerup or while operating:
    Paneldue will now function, after switching screens, such as choosing 'CONSOLE" and moving back. Status will now say "IDLE". Arduino as expected, is not connected, therefore not receiving data and neopixels not reflecting printer status.

    If wire is connected again, while the printer is still running, Arduino resumes working, and the paneldue now will say "IDLE" but data is no longer being updated. Commands back to the DUET3 continues to work as expected.

    If the printer is powered up without the connecting wire attached between the arduino and the DUET3, the paneldue functions as expected.

    undefined 1 Reply Last reply 1 May 2020, 20:28 Reply Quote 0
    • undefined
      Nuramori @gtj0
      last edited by 1 May 2020, 20:28

      @gtj0 said in PanelDue no longer connecting on Duet3/io0 with 3.01-RC11:

      Oh, one other thing, io1.out can also be configured as a uart so you may want to use that for the Arduino.

      Would the DUET3 push the json package to io1 without any other input? that's a bit of the problem, short of writing code for the arduino, connecting the Tx to io1.in, and tricking the DUET3 to push the same data that is on io0.out when the paneldue is connected. I experimented with JUST the arduino connected without the paneldue also connected to io0 before, and data does not exist on that port unless the paneldue is causing communication. As you can see my skills on this is limited.

      undefined 1 Reply Last reply 1 May 2020, 20:30 Reply Quote 0
      • undefined
        gtj0 @Nuramori
        last edited by 1 May 2020, 20:28

        @Nuramori Could you try connecting the Arduino to io1.out with an appropriate M575 command?
        M575 P2 B115200 S1 or even S0 if you want JSON without checksums?

        @dc42 With RC11 did something change with the drive strength for the uarts?

        1 Reply Last reply Reply Quote 0
        • undefined
          gtj0 @Nuramori
          last edited by 1 May 2020, 20:30

          @Nuramori Oops, I missed your response about not getting updates. I'm not sure but I can try a few things and let you know.

          1 Reply Last reply Reply Quote 1
          • ?
            A Former User
            last edited by 1 May 2020, 20:31

            The Arduino would have to send M408 S0 or S1 depending on how much of the data it needs to update to work independent of the PanelDue.

            undefined undefined 2 Replies Last reply 1 May 2020, 20:34 Reply Quote 0
            • undefined
              Nuramori @A Former User
              last edited by Nuramori 5 Jan 2020, 20:35 1 May 2020, 20:34

              @bearer said in PanelDue no longer connecting on Duet3/io0 with 3.01-RC11:

              The Arduino would have to send M408 S0 or S1 depending on how much of the data it needs to update to work independent of the PanelDue.

              The arduino code is basically sniffing and parsing the JSON package for the time to complete, the bed temp, and the extruder(s) temps. That info is then graphically represented via driven neopixel rings.

              undefined 1 Reply Last reply 2 May 2020, 07:27 Reply Quote 0
              • undefined
                gtj0 @A Former User
                last edited by 1 May 2020, 20:35

                @bearer Maybe if you jumper io0.in to io1.in both ports will get the paneldue commands.

                ? 1 Reply Last reply 1 May 2020, 20:40 Reply Quote 0
                • undefined
                  Nuramori
                  last edited by 1 May 2020, 20:37

                  The ultimate goal maybe/would be to negate the arduino entirely and use the Pi4 to drive the neopixels. I am digesting the way that could be done by using the API to pull the same info that is used in the JSON package to the Paneldue.

                  undefined 1 Reply Last reply 1 May 2020, 20:39 Reply Quote 0
                  • undefined
                    gtj0 @Nuramori
                    last edited by 1 May 2020, 20:39

                    @Nuramori There's a command /opt/dsf/bin/ModelObserver that spits out json as its updated by the Duet. All you have to do is keep reading that.

                    1 Reply Last reply Reply Quote 0
                    • ?
                      A Former User @gtj0
                      last edited by A Former User 5 Jan 2020, 20:43 1 May 2020, 20:40

                      @gtj0 said in PanelDue no longer connecting on Duet3/io0 with 3.01-RC11:

                      @bearer Maybe if you jumper io0.in to io1.in both ports will get the paneldue commands.

                      probably, but i think thats what Nuramori was suggesting?

                      @Nuramori said in PanelDue no longer connecting on Duet3/io0 with 3.01-RC11:

                      sniffing and parsing the JSON package for the time to complete, the bed temp, and the extruder(s) temps.

                      yeah, you could just send M408 with different S paramters in DWC to see which one returns all you need and have the arduino send that string at regular intervals and keep the parsing code as is.
                      https://duet3d.dozuki.com/Wiki/Gcode#Section_M408_Report_JSON_style_response

                      The Pi route may be easier, if not maybe less reliable until the DSF stuff matures.

                      1 Reply Last reply Reply Quote 0
                      • ?
                        A Former User @gtj0
                        last edited by A Former User 5 Jan 2020, 20:50 1 May 2020, 20:50

                        btw
                        @gtj0 said in PanelDue no longer connecting on Duet3/io0 with 3.01-RC11:

                        Oh, one other thing, io1.out can also be configured as a uart so you may want to use that for the Arduino.

                        @gtj0 said in RRF 3.01-RC11 DSF mode: io_1 not outputting "ok" consistently:

                        Marlin mode and raw mode on io_1...

                        M555 P2
                        M575 P1 B115200 S2

                        was wondering if the typo was io_1 or P1, should be P2? (never mind, saw P2 a bit further up here)

                        undefined 1 Reply Last reply 1 May 2020, 20:58 Reply Quote 0
                        • undefined
                          gtj0 @A Former User
                          last edited by 1 May 2020, 20:58

                          @bearer Unfortunately it looks like the uart on io1 is disabled in firmware. So P0 is the USB port, P1 is io0 and P2 returns Error: M575: parameter 'P' too high

                          Maybe @dc42 can enable it in a future release.

                          1 Reply Last reply Reply Quote 0
                          • undefined
                            Nuramori
                            last edited by 1 May 2020, 21:06

                            I'm always up to trying anything; out of pure curiosity, I am interested in what changed that would prevent both devices from sharing the data on io0.out, when it worked prior to RC11, without any hardware changes.

                            undefined 1 Reply Last reply 1 May 2020, 21:12 Reply Quote 0
                            • undefined
                              gtj0 @Nuramori
                              last edited by 1 May 2020, 21:12

                              @Nuramori said in PanelDue no longer connecting on Duet3/io0 with 3.01-RC11:

                              I'm always up to trying anything; out of pure curiosity, I am interested in what changed that would prevent both devices from sharing the data on io0.out, when it worked prior to RC11, without any hardware changes.

                              I'm guessing there was a drive strength change or something. I can't get to the source code right now but I can check tomorrow if @dc42 hasn't answered by then.

                              undefined 1 Reply Last reply 1 May 2020, 21:18 Reply Quote 0
                              • undefined
                                Nuramori @gtj0
                                last edited by 1 May 2020, 21:18

                                I'm guessing there was a drive strength change or something. I can't get to the source code right now but I can check tomorrow if @dc42 hasn't answered by then.

                                Interesting. I wasn't aware that something like that was controllable through software. Thanks for the help @gtj0 .

                                undefined 1 Reply Last reply 1 May 2020, 22:19 Reply Quote 0
                                • undefined
                                  gtj0 @Nuramori
                                  last edited by 1 May 2020, 22:19

                                  @Nuramori said in PanelDue no longer connecting on Duet3/io0 with 3.01-RC11:

                                  I'm guessing there was a drive strength change or something. I can't get to the source code right now but I can check tomorrow if @dc42 hasn't answered by then.

                                  Interesting. I wasn't aware that something like that was controllable through software. Thanks for the help @gtj0 .

                                  Yeah on most "microcontroller" platforms, including the ones on the Duets, Pis and other SBCs, many pins are general purpose and have their function (uart, GPIO, SPI, etc) and capabilities (input, output, both, drive strength, pull up/pull down, tristate, etc) controlled from software.

                                  1 Reply Last reply Reply Quote 0
                                  • ?
                                    A Former User
                                    last edited by 1 May 2020, 22:24

                                    couldn't spot any changes to low level functions, just some conditional logic around the higher level initilization.
                                    https://github.com/dc42/RepRapFirmware/commit/6f912e9ca47930d7b91d504c0e9c8be31251284a#diff-52cb419324e9c23a2e2c5a269e0e70fcR3581

                                    0 dc42 committed 29 Apr 2020, 21:01 to dc42/RepRapFirmware
                                    Various changes for 3.01-RC11
                                    
                                    Tool change files are now run even if axes have not been homed
                                    PanelDue replies are now sent immediately instead of being saved for
                                    retrieval by M408
                                    Added aux raw mode
                                    On Duet 3, IO_0 is not configured in serial mode until M575 P1 is
                                    executed
                                    GCodeException class now stores a small string to allow more meaningful
                                    error messages
                                    1 Reply Last reply Reply Quote 0
                                    • undefined
                                      Nuramori
                                      last edited by Nuramori 5 Feb 2020, 01:56 2 May 2020, 01:55

                                      Could it be this?

                                      setPullup(APIN_Serial0_RXD, true);

                                      I didn’t see anywhere else where the pull-up resistor is used/set in the old code, could the setting the pull-up affect the signal enough that it “dies” enough in signal strength for two electrical connections to be too much for the paneldue circuitry?

                                      undefined 1 Reply Last reply 2 May 2020, 02:10 Reply Quote 0
                                      • ?
                                        A Former User
                                        last edited by A Former User 5 Feb 2020, 02:06 2 May 2020, 02:01

                                        @Nuramori said in PanelDue no longer connecting on Duet3/io0 with 3.01-RC11:

                                        setPullup(APIN_Serial0_RXD, true);

                                        click the beginning of the line and choose "git blame" to see when it was changed. (if viewed on github, otherwise git cli works as well)

                                        i'm guessing its part of the other repositories then

                                        undefined 1 Reply Last reply 2 May 2020, 02:11 Reply Quote 0
                                        • undefined
                                          gtj0 @Nuramori
                                          last edited by 2 May 2020, 02:10

                                          @Nuramori said in PanelDue no longer connecting on Duet3/io0 with 3.01-RC11:

                                          Could it be this?

                                          setPullup(APIN_Serial0_RXD, true);

                                          I didn’t see anywhere else where the pull-up resistor is used/set in the old code, could the setting the pull-up affect the signal enough that it “dies” enough in signal strength for two electrical connections to be too much for the paneldue circuitry?

                                          Absolutely!
                                          I just did a build without the pullup. See this helps...
                                          http://dueui.org/download/Duet3Firmware_MB6HC.bin

                                          undefined 1 Reply Last reply 2 May 2020, 02:16 Reply Quote 0
                                          17 out of 48
                                          • First post
                                            17/48
                                            Last post
                                          Unless otherwise noted, all forum content is licensed under CC-BY-SA