Duex5 showing up as Duex2

  • Hello, I recently assembled a railcore kit from Filastruder and it has been working great for a few weeks, however I ran into an issue a few days ago. It's happened twice now and I'm honestly a bit stumped. For a bit of background, the z-axis has three steppers/lead screws connected to three plugs on the duex board - front left, rear left and right. Here is what's happening:

    • I did an overnight print that went fine. In the morning I turned off the machine.
    • Later that day I turned it back on, and when z-homing, the right stepper motor didn't move.
    • I tried troubleshooting for a while and it started working, but I'm not sure why.
    • I did another print, which went fine, then I turned off the printer.
    • The next day, I turned on the printer and the same stepper motor doesn't move.

    Here's what I've done to try to troubleshoot so far.

    • At the duex board, I swapped the wires for the right and one of the left z-axis steppers to determine if it was the cord/motor or the board. For instance, I plug the 7 wire into the 6 spot and the 6 wire into the 7 spot. When I do this, the right stepper motor works when plugged into position 6 and the stepper I plug into position 7 no longer works. I did this for both the front-left and rear-left steppers with the same results.
    • This suggests to me that the stepper driver at position 7 is faulty and that the wire/motor is fine.
    • However, if I plug the right stepper motor into position 8 and run this gcode to test it, the motor does not work. I tried also switching to position 9 with the same results.
    M584 U5 V6 W8 P6
    G91 G1 W5 F150 S2
    • I also tried switching the right stepper motor to plug 8 and then going into the config.g file and changing these lines, but the motor still doesn't work.
    M584 X0 Y1 Z5:6:8 E3:4:7:9 ; Map Z to drivers 5, 6, 7. Define unused drivers 3,4,8 and 9 as extruders
    M569 P8 S0 ; Drive 7 goes backwards Right Z
    • I checked the ribbon cable that goes between the duet and duex boards and it was very slightly out. I thought I'd found the issue, but pushing it in didn't fix things.

    This all seems to suggest that the motor and wires for the right stepper are ok, and that the stepper drivers in positions 7,8 and 9 are all bad, but having three stepper drivers all go out seems unlikely.

    Any suggestions on what else I can try? I've thought about using a multimeter to check the voltage of the pins on the board directly, but I'm not sure what voltage to expect and which pins to test together.



    Firmware info:

    Firmware Name: RepRapFirmware for Duet 2 WiFi/Ethernet
    Firmware Electronics: Duet WiFi 1.02 or later + DueX2
    Firmware Version: 2.05.1 (2020-02-09b1)
    WiFi Server Version: 1.23
    Web Interface Version: 1.22.6


    ; Configuration file for My Printer
    ; Communication and general
    M111 S0 ; Debug off
    M550 PUngoliant ; Machine name and Netbios name (can be anything you like)
    ;M551 Pmyrap ; Machine password (used for FTP)
    ;*** If you have more than one Duet on your network, they must all have different MAC addresses, so change the last digits
    M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xEE ; MAC Address
    ;*** Wifi Networking
    M552 S1 ; Enable WiFi
    M555 P2 ; Set output to look like Marlin
    M575 P1 B57600 S1 ; Comms parameters for PanelDue

    G21 ; Work in millimetres
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves

    ; Axis and motor configuration
    M669 K1 ; CoreXY mode

    M584 X0 Y1 Z5:6:7 E3:4:8:9 ; Map Z to drivers 5, 6, 7. Define unused drivers 3,4,8 and 9 as extruders

    M569 P0 S0 ; Drive 0 goes forwards (change to S0 to reverse it) X stepper (Rear)
    M569 P1 S1 ; Drive 1 goes backwards Y Stepper (Front)
    M569 P2 S1 ; Drive 2 goes forwards Unused
    M569 P3 S0 ; Drive 3 goes forwards Extruder
    M569 P4 S1 ; Drive 4 goes forwards Extruder (unused)
    M569 P5 S0 ; Drive 5 goes backwards Front Left Z
    M569 P6 S0 ; Drive 6 goes backwards Rear Left Z
    M569 P7 S0 ; Drive 7 goes backwards Right Z

    ;Leadscrew locations
    M671 X-10:-10:333 Y22.5:277.5:150 S7.5 ;Front left, Rear Left, Right S7.5 is the max correction - measure your own offsets, to the bolt for the yoke of each leadscrew

    M350 X16 Y16 Z16 E16 I1 ; set 16x microstepping for axes& extruder, with interpolation
    M574 X1 Y1 Z0 S1 ; set homing switch configuration (x,y at min, z at max) IF YOU NEED TO REVERSE YOUR HOMING SWITCHES CHANGE S1 to S0
    M906 X1400 Y1400 Z1000 E800 I60 ; Set motor currents (mA)
    M201 X3000 Y3000 Z100 E1500 ; Accelerations (mm/s^2)
    M203 X24000 Y24000 Z900 E3600 ; Maximum speeds (mm/min)
    M566 X1000 Y1000 Z100 E1500 ; Maximum jerk speeds mm/minute
    M208 X300 Y300 Z630 ; set axis maxima and high homing switch positions (adjust to suit your machine)
    M208 X0 Y0 Z-0.5 S1 ; set axis minima and low homing switch positions (adjust to make X=0 and Y=0 the edges of the bed)
    M92 X200 Y200 Z1600 E859.05 ; steps/mm

    ; Thermistors
    M305 P0 T100000 B3950 R4700 H0 L0 ; Put your own H and/or L values here to set the bed thermistor ADC correction
    ;If you have a Slice Engineering thermistor, comment out the next line
    M305 P1 T100000 B4725 R4700 H0 L0 C7.06e-8 ; Put your own H and/or L values here to set the first nozzle thermistor ADC correction
    ;If you have a Slice Engineering thermistor, uncomment the next lines. KITS DO NOT SHIP WITH A SLICE THERMISTOR - ONLY UNCOMMENT IF YOU ORDERED ONE
    ;M305 P1 T500000 B4723 C1.196220e-7 ; Set thermistor + ADC parameters for slice thermistor

    M307 H0 A298.6 C877.9 D13.1 S1.00 V24.1 B0 ; Bed Heaters
    M307 H1 A307.7 C134.5 D5.2 V24.1 B0 S1.0 ;Heater 1 model
    M570 S360 ; Hot end may be a little slow to heat up so allow it 180 seconds
    M143 S285

    ; Fans
    M106 P0 H-1 ; disable thermostatic mode for fan 0
    M106 P1 H-1 ; disable thermostatic mode for fan 1
    M106 P2 H-1
    M106 P0 S0 ; turn off fans
    M106 P1 S0
    M106 P2 S0

    ; Tool definitions
    M563 P0 D0 H1 ; Define tool 0
    G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures
    ;*** If you have a single-nozzle build, comment the next 2 lines
    ;M563 P1 D1 H2 ; Define tool 1
    ;G10 P1 S0 R0 X0 Y17 ; Set tool 1 operating and standby temperatures

    ; Z probe and compensation definition
    ;*** If you have a switch instead of an IR probe, change P1 to P4 in the following M558 command
    ; IR PRobe - uncomment the following 2 lines if you have a and IR Probe, and comment out the BLTouch section below
    ;M558 P1 X0 Y0 Z1 ; Z probe is an IR probe and is not used for homing any axes
    ;G31 X0 Y30 Z2.14 P500 ; Set the zprobe height and threshold (put your own values here)

    ;BLTouch - comment out the following 3 lines if using a IR Probe
    M307 H3 A-1 C-1 D-1
    M558 P9 X0 Y0 Z1 H5 F50 T6000 A5 S0.02
    G31 X2 Y42 Z2.193 P25 ; Customize your offsets appropriately - do a paper test, and put the probed value in the Z value here

    T0 ; select first hot end

  • @Matthewvc1 A few random thoughts............

    Where is this line - "M584 U5 V6 W8 P6"? Because your config.g has this "M584 X0 Y1 Z5:6:7 E3:4:8:9 "

    I'm assuming the one with the U,V W axes is in your homing file and you use it to home each motor individually, yes? If so, that might be the cause because (quote from the wiki)

    "Order dependence

    M584 must come earlier in config.g than any M350 and M906 commands. If it creates new axes, it must also be earlier than any M92, M201, M203, M208, M350, M566, M574, M667 and M669 commands. 

    So when you turn on the machine, config.g gets run and it executes the first M584 which does not create the U, V and W axes, then all the other motor related commands (M92, M201,M203 etc) get executed. But when you run the homing file, you run that second M584 which does create the additional axes and that happens after those motor related commands, not before (unless you run all those M92, M201, M203 etc a second time in your homing file).

    So move the second M584 to your config.g - combine them if you like, so something like
    M584 X0 Y1 Z5:6:7 U5 V6 W7 E3:4:8:9;

    The additional axes will then get created before the other order dependent motor commands.

    Then use the P3 parameter to hide the additional axes in config.g, and M584 P6 at the start of your homing file to make them visible (don't forget to use M584 P3 at the end to hide them again).

    That will most likely fix the issue. One other thing caught my attention. This
    "Firmware Electronics: Duet WiFi 1.02 or later + DueX2" because from the number of drivers, it looks like you are using a Duex5 not a Duex2 (but I have no idea why the firmware would report it as being a "2" if it's really a "5".

  • @deckingman said in Possible stepper driver failures:

    Where is this line - "M584 U5 V6 W8 P6"? Because your config.g has this "M584 X0 Y1 Z5:6:7 E3:4:8:9 "

    Sorry, I should have explained that part better. I pulled that bit of gcode out of a macro that tests the motors (https://github.com/railcore/configs/blob/master/duet/macros/5_Motion_Test.g). I ran that macro to check if the stepper would move, and when swapping around where the steppers were plugged in I pulled that bit out to test if the steppers were working. It's not in my config.g file and wouldn't normally be run outside of troubleshooting.

  • @deckingman said in Possible stepper driver failures:

    "Firmware Electronics: Duet WiFi 1.02 or later + DueX2" because from the number of drivers, it looks like you are using a Duex5 not a Duex2 (but I have no idea why the firmware would report it as being a "2" if it's really a "5".

    So that is interesting. It may explain why only two stepper drivers want to work? I'll have to try re-installing the firmware and see if that fixes it. Would be a nice easy fix!

  • @Matthewvc1 While your are at it, check the ribbon cable between the Duet and Duex5 - make sure it's well seated. Oh, and don't run that M584 UVW - even for troubleshooting it might give unpredictable results coming after the other dependent commands.

  • The cable is good. I tried reinstalling the firmware and it is still recognizing the board as a duex2, which really seems like it would explain only two stepper drivers working.

    In this post someone had the same issue and they were asked to get a picture of the "board ID resistor ". I'm not sure what that is though.
    my board: https://1drv.ms/u/s!As3BjAMCoBAWh6QSe2mKbLl5kNg68w

    Other post: https://forum.duet3d.com/topic/6505/duex5-shown-as-duex2/2

  • @Matthewvc1 Looking at the thread you linked to, it seemed that the final outcome was that the board was faulty and was replaced under warranty. I'm just an end user like you so it's not for me to say that your board is definitely faulty. However, I suggest you run M122 and paste the entire result of that here. Hopefully, that will provide the information that the Duet guys will need. Give it a day or so, and if this thread doesn't catch the attention of a moderator, I suggest you start a new thread with the title "Duex5 showing as Duex2" or some such.

  • Thanks for your help! I wouldn't have noticed the Duex2/5 thing.

    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 2.05.1 running on Duet WiFi 1.02 or later + DueX2
    Board ID: 08DGM-9T6BU-FG3SJ-6J1F0-3S86K-9AX3F
    Used output buffers: 1 of 24 (11 max)
    === RTOS ===
    Static ram: 25712
    Dynamic ram: 93648 of which 416 recycled
    Exception stack ram used: 312
    Never used ram: 10984
    Tasks: NETWORK(ready,752) HEAT(blocked,1232) DUEX(suspended,160) MAIN(running,3736) IDLE(ready,160)
    Owned mutexes:
    === Platform ===
    Last reset 00:00:21 ago, cause: power up
    Last software reset at 2020-05-21 10:10, reason: User, spinning module GCodes, available RAM 10960 bytes (slot 3)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d
    Error status: 0
    Free file entries: 10
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest block write time: 0.0ms, max retries 0
    MCU temperature: min 27.4, current 30.6, max 30.7
    Supply voltage: min 24.0, current 24.1, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, SG min/max not available
    Driver 1: standstill, SG min/max not available
    Driver 2: standstill, SG min/max not available
    Driver 3: standstill, SG min/max not available
    Driver 4: standstill, SG min/max not available
    Driver 5: standstill, SG min/max not available
    Driver 6: standstill, SG min/max not available
    Date/time: 2020-05-22 13:11:02
    Cache data hit count 51853519
    Slowest loop: 4.91ms; fastest: 0.07ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Move ===
    Hiccups: 0, FreeDm: 160, MinFreeDm: 160, MaxWait: 0ms
    Bed compensation in use: none, comp offset 0.000
    === DDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1
    Heater 1 is on, I-accum = 0.0
    === GCodes ===
    Segments left: 0
    Stack records: 1 allocated, 0 in use
    Movement lock held by null
    http is idle in state(s) 0
    telnet is idle in state(s) 0
    file is idle in state(s) 0
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon is idle in state(s) 0
    queue is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 15.49ms; fastest: 0.00ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
    HTTP sessions: 1 of 8
    - WiFi -
    Network state is running
    WiFi module is connected to access point
    Failed messages: pending 0, notready 0, noresp 0
    WiFi firmware version 1.23
    WiFi MAC address a0:20:a6:31:b1:72
    WiFi Vcc 3.45, reset reason Turned on by main processor
    WiFi flash size 4194304, free heap 22792
    WiFi IP address
    WiFi signal strength -66dBm, reconnections 0, sleep mode modem
    Socket states: 0 0 0 0 0 0 0 0

  • Moderator

    Thanks, I'll flag this for further attention. I've also edited the title of the thread.

    Can you post a closeup photo of the duex? Specifically the areas mentioned in that other post.

  • administrators

    hi @Matthewvc1 as @Phaedrux some pictures of the board would help. Especially in this area, and R66.


  • Sure thing. Let me know if you would like any other photos.



  • administrators

    @Matthewvc1 this looks like an issue with the SX1509B chip on the Duex 5 which is causing the board to be detected as a Duex 2 not a Duex 5.

    Please contact Filastruder to have the board replaced under warranty.

  • Will do. Thank you very much for your help!

    Have a great weekend,

  • @Matthewvc1 You might want to point Filastruder to this thread as evidence that Tony from Duet has authorised your warranty replacement.

  • @deckingman Will do! Thanks!

Log in to reply