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

6XD external driver error signal handling

Scheduled Pinned Locked Moved
Duet Hardware and wiring
duet 3 6xd external drivers
6
38
1.8k
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
    jay_s_uk @curieos
    last edited by 21 Aug 2023, 19:21

    @curieos as far as I know, driver events are internal only. I believe you'll need to use triggers instead to generate a pause

    Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

    1 Reply Last reply Reply Quote 0
    • undefined
      Maestro @curieos
      last edited by Maestro 22 Aug 2023, 01:59

      @curieos I'm only just starting to play with the 6XD, but triggering the 6XD local drivers' "ERR" pins certainly does seem to raise an event. I get an Event Notification popup: "Driver 0.1 Error: Exernal driver error". I've yet to try actually doing anything with this event, but I assume it would run the macro if I had one.

      Remember the 6XD does have an external driver error selection jumper for pull-up vs pull-down. Also, are you sure the external drivers themselves actually triggered an error? From what you describe it sounds like they may have just happily continued on.

      undefined 1 Reply Last reply 22 Aug 2023, 13:12 Reply Quote 1
      • undefined
        curieos @Maestro
        last edited by 22 Aug 2023, 13:12

        @Maestro I'm not positive they did trigger an error. I believe an error light on the motors came on, but it was a week or two ago when this happened, and I'm not exactly trying to stall out the motors on a regular basis.

        I know about the jumper for the error signal, and I believe I have that hooked up correctly as well. The motors we are using are modified Leadshine motors from A3DP. We have them hooked up in a slightly funky configuration, the control signals are common +5v, and the error+ from the motor is hooked up to error in on the board, and error- is hooked up to ground. The jumper is set to pull down. The intended configuration is common 5V for every signal, but this machine had 6 conductors run for signalling, so I decided to use them all.

        She/Her
        I work at a local 3D printing shop.
        Printers: Micron+ w/Duet 3 Mini, in-progress adaptation of the Jubilee REL onto an E3D MS, Prusa i3 MK3S.

        undefined 1 Reply Last reply 22 Aug 2023, 13:28 Reply Quote 0
        • undefined
          Maestro @curieos
          last edited by Maestro 22 Aug 2023, 13:28

          @curieos I can claim only a quick glance at the Leadshine manual you linked, but it sounds like your alarm/error circuit is mis-wired. The Leadshine's alarm circuit is just an optocoupled throughput. So if one alarm lead is hooked to the 6XD error pin and the other alarm lead goes to ground, you have no signal/voltage on that circuit. You need your 5V to the alarm+, and the alarm- going to the 6XD error pin.

          undefined 1 Reply Last reply 22 Aug 2023, 13:58 Reply Quote 0
          • undefined
            curieos @Maestro
            last edited by 22 Aug 2023, 13:58

            @Maestro It says it can sink or source 5-24V, this means it doesn't supply the 5-24V? Tbh, I'm not much of an EE, so I assumed this meant it would work either way.

            She/Her
            I work at a local 3D printing shop.
            Printers: Micron+ w/Duet 3 Mini, in-progress adaptation of the Jubilee REL onto an E3D MS, Prusa i3 MK3S.

            undefined 1 Reply Last reply 22 Aug 2023, 14:37 Reply Quote 0
            • undefined
              Maestro @curieos
              last edited by 22 Aug 2023, 14:37

              @curieos That just means it doesn't care where it's switching in relation to voltage, it doesn't mean it sources its own voltage. Think of the alarm pins as two sides of a switch/relay that's either open or closed; that's all it's doing.

              undefined 1 Reply Last reply 22 Aug 2023, 14:40 Reply Quote 0
              • undefined
                curieos @Maestro
                last edited by 22 Aug 2023, 14:40

                @Maestro Ah, should I have the jumper set to pull up then? And in the opposite config, the jumper should be pulled down?

                She/Her
                I work at a local 3D printing shop.
                Printers: Micron+ w/Duet 3 Mini, in-progress adaptation of the Jubilee REL onto an E3D MS, Prusa i3 MK3S.

                undefined 1 Reply Last reply 22 Aug 2023, 15:20 Reply Quote 0
                • undefined
                  Maestro @curieos
                  last edited by Maestro 22 Aug 2023, 15:20

                  @curieos Yes, with your existing wiring you should be pull-up. My example above would be pull-down.

                  undefined 1 Reply Last reply 22 Aug 2023, 15:26 Reply Quote 0
                  • undefined
                    curieos @Maestro
                    last edited by 22 Aug 2023, 15:26

                    @Maestro Well thanks, I got that changed and I think it's working. One issue I'm noticing is it's complaining about the unused driver headers erroring out on boot. Any chance you know how to get RRF to ignore this?

                    She/Her
                    I work at a local 3D printing shop.
                    Printers: Micron+ w/Duet 3 Mini, in-progress adaptation of the Jubilee REL onto an E3D MS, Prusa i3 MK3S.

                    undefined 1 Reply Last reply 22 Aug 2023, 15:36 Reply Quote 0
                    • undefined
                      Maestro @curieos
                      last edited by 22 Aug 2023, 15:36

                      @curieos Well, now hold on a minute... Before you go trying to ignore faults, is the alarm circuit on your drivers normally open or normally closed?

                      undefined 1 Reply Last reply 22 Aug 2023, 15:48 Reply Quote 0
                      • undefined
                        curieos @Maestro
                        last edited by 22 Aug 2023, 15:48

                        @Maestro I'm not sure about that one, the Leadshine sheet doesn't seem to say, at least not in a form I can locate and parse. The guide we have from A3DP just says:

                        If you connect the ALM terminals back to the corresponding pins on the 6XD, you can use
                        RRF’s event system to respond to error events from the drives. See the Event docs to get
                        started.

                        The error I see pop up is just for the final unused driver (2.5, we have a second 6XD, CAN address 2). There's no message in the log to say which other drives have errors.

                        She/Her
                        I work at a local 3D printing shop.
                        Printers: Micron+ w/Duet 3 Mini, in-progress adaptation of the Jubilee REL onto an E3D MS, Prusa i3 MK3S.

                        undefined undefined 2 Replies Last reply 22 Aug 2023, 15:59 Reply Quote 0
                        • undefined
                          Maestro @curieos
                          last edited by 22 Aug 2023, 15:59

                          @curieos I ask because if they're normally open (which is what I've been assuming) I don't see any reason for an unused driver header to throw an error fault while the others don't; in the absence of a fault, error pins would all be at pull-up/pull-down voltage regardless of whether it's connected to an external driver or not. If it's not in documentation, you could check normally-open vs normally-closed with a multimeter.

                          undefined 1 Reply Last reply 22 Aug 2023, 16:03 Reply Quote 0
                          • undefined
                            curieos @curieos
                            last edited by 22 Aug 2023, 16:00

                            @curieos I created the driver-error/stall/warning macros in the sys folder to try to get more info on what drivers are erroring, but it doesn't seem to be running the macro. I just did a simple one that echos the event properties (like the example on the events page: echo "Driver error from driver: "^{param.B}^"."^{param.D}^" : "^{param.P}^" ,"^{param.S}), but it's still outputting the default error that doesn't log to the console.

                            She/Her
                            I work at a local 3D printing shop.
                            Printers: Micron+ w/Duet 3 Mini, in-progress adaptation of the Jubilee REL onto an E3D MS, Prusa i3 MK3S.

                            undefined 1 Reply Last reply 22 Aug 2023, 16:07 Reply Quote 0
                            • undefined
                              curieos @Maestro
                              last edited by 22 Aug 2023, 16:03

                              @Maestro The notes for the alternate wiring (which is what we are using for the error signal) says:

                              As another option, Robbie suggests using 10k pull-up resistors between signal lines and +5V to
                              invert the signaling. Wire the now-high signals to +PUL, +DIR, +EN, and +ALM. Wire -PUL, -
                              DIR, -EN, and -ALM to 6XD GND.

                              So I assume this is how things are supposed to be? I do agree it is weird that the unused headers are erroring. I was hoping the macro would give me more info.

                              She/Her
                              I work at a local 3D printing shop.
                              Printers: Micron+ w/Duet 3 Mini, in-progress adaptation of the Jubilee REL onto an E3D MS, Prusa i3 MK3S.

                              1 Reply Last reply Reply Quote 0
                              • undefined
                                curieos @curieos
                                last edited by 22 Aug 2023, 16:07

                                @curieos @Maestro For clarity on my config, this machine is running with two 6XDs and a tool board breakout with two toolboards, with the primary 6XD operating in SBC mode with a Pi 4. I can't see anything that would suggest this configuration would cause any weirdness, but that's the full details in case this is a bug.

                                She/Her
                                I work at a local 3D printing shop.
                                Printers: Micron+ w/Duet 3 Mini, in-progress adaptation of the Jubilee REL onto an E3D MS, Prusa i3 MK3S.

                                undefined 1 Reply Last reply 22 Aug 2023, 16:12 Reply Quote 0
                                • undefined
                                  Maestro @curieos
                                  last edited by 22 Aug 2023, 16:12

                                  @curieos I would suggest building from the level of being confident that the wiring is correct and as expected before moving to software. Some sense could be made of this if the alarm outputs are NC.

                                  undefined 1 Reply Last reply 22 Aug 2023, 16:15 Reply Quote 0
                                  • undefined
                                    curieos @Maestro
                                    last edited by 22 Aug 2023, 16:15

                                    @Maestro Okay, would checking this on the motor with it powered on (but the signals disconnected) be better, or should I check with it hooked up to the 6XD? Tbh, optocouplers are a bit of black magic to me.

                                    She/Her
                                    I work at a local 3D printing shop.
                                    Printers: Micron+ w/Duet 3 Mini, in-progress adaptation of the Jubilee REL onto an E3D MS, Prusa i3 MK3S.

                                    undefined 1 Reply Last reply 22 Aug 2023, 16:24 Reply Quote 0
                                    • undefined
                                      Maestro @curieos
                                      last edited by 22 Aug 2023, 16:24

                                      @curieos Check with external drivers on, but alarm wiring disconnected from the Duet. Resistance should either be very high or very low.

                                      undefined 1 Reply Last reply 22 Aug 2023, 16:34 Reply Quote 0
                                      • undefined
                                        curieos @Maestro
                                        last edited by curieos 22 Aug 2023, 16:34

                                        @Maestro Okay, I tested two ways. The motor starts out at around 17-18Mohm when it's not errored, and moves to around .8Mohm when errored, which I believe means it's NO?

                                        I also verified the error macro works by overpowering the Y gantry. Both motors error out and run the error macro. I'm not sure why driver 2.5 (unused) shows an error, but I did notice driver 2.2 (the one I was testing) also errors when I have it unplugged at the start in the same way (as in, it doesn't run driver-error.g).

                                        She/Her
                                        I work at a local 3D printing shop.
                                        Printers: Micron+ w/Duet 3 Mini, in-progress adaptation of the Jubilee REL onto an E3D MS, Prusa i3 MK3S.

                                        undefined 1 Reply Last reply 22 Aug 2023, 17:00 Reply Quote 0
                                        • undefined
                                          Maestro @curieos
                                          last edited by 22 Aug 2023, 17:00

                                          @curieos Yes, alarms look to be NO. Which means your wiring should work, and it now does, so that's a good sanity-check passed.

                                          So, not sure why the drivers throw an error when unused. Even while open, there are components--albeit high-resistance--in the external drivers' alarm circuit, so maybe these are doing something to startup transients to make the used drivers happier at startup... I dunno. I suppose it's also possible that it's tripping an error due to sensing something--or lack of something--on pins other than the error pin. Perhaps someone with better background can chime in.

                                          undefined 1 Reply Last reply 22 Aug 2023, 17:03 Reply Quote 0
                                          11 out of 38
                                          • First post
                                            11/38
                                            Last post
                                          Unless otherwise noted, all forum content is licensed under CC-BY-SA