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

    MB6HC and 1XD Connection Issues

    Scheduled Pinned Locked Moved Solved
    General Discussion
    3
    4
    155
    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.
    • JRCLundefined
      JRCL
      last edited by

      Hello, I can't seem to get my MB6HC and 1XD connected. I had a successful machine and firmware running that utilized the MB6HC and a 1LC, and now I'm attempting to daisy chain all 3 with the 1XD in the middle. All boards share the same ground!

      In an attempt to test the connection between the MB6HC and 1XD, I unattached the 1LC and put the 1XD in it's place, but it wouldn't sync (status LED blinking quickly) or connect over CAN (M115 B122). I tried cycling the 1XD with the reset jumper pins, which didn't seem to make a difference either. I went to check my config with M98 but with the 1LC disconnected it threw all sorts of errors related to that board and made it difficult to see issues that would cause the 1XD to fail to connect. I also tested with all 3 boards daisy chained together and that didn't have an effect either.

      The MB6HC and 1LC are both running v3.4.6, I'm not sure what to look at next. Here is my config.g and M122

      ; Enable network
      G4 S5													;wait for board to start
      if {network.interfaces[0].type = "ethernet"}
          M552 P192.168.1.14 S1
      else
          M552 S1
      
      ;General Prefrences
      G90                             						; send absolute coordinates...
      M83                             						; ...but relative extruder moves
      M550 P"RL1 V3"                  						; set printer name
      M669 K1													; switch to CoreXY mode
      
      ; Drives
      M569 P0.0 S1											; X motor runs 
      M569 P0.1 S0											; Y motor runs 
      M569 P0.2 S1											; Z1 motor runs 
      M569 P0.4 S1											; Z2 motor runs
      M569 P0.5 S1											; Z3 motor runs
      M569 P20.0 S0											; E moves
      M569 P0.3 S0											; U motor runs
      M207 S1.5 F7200 Z0.2
      
      M584 X0.0 Y0.1 Z0.2:0.4:0.5 E20.0 U0.3    				; Set drive mapping
      
      M350 X16 Y16 Z16 E16 U16 I1             				; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z400.00 E685.37234 U100       			; set steps per mm
      M566 X900.00 Y900.00 Z60.00 E300 U900.00   				; set maximum instantaneous speed changes (mm/min)
      M203 X6000.00 Y6000.00 Z180.00 E7200 U17000.0			; set maximum speeds (mm/min)
      M201 X500.00 Y500.00 Z20.00 E3000 U500.0   				; set accelerations (mm/s^2)
      M906 X800 Y800 Z800 U3800 I30       					; set motor currents (mA) and motor idle factor in per cent
      M906 E1200 I10											; extruder current and idle factor
      M572 D0 S0.02											; pressure advance-to be calibrated
      M84 S30                         						; Set idle timeout
      
      ; Axis Limits
      M208 X0 Y0 Z-1 U0 S1                    												;set axis minima
      M208 X100 Y100 Z38.45 U330 S0              												;set axis maxima
      M671 X-67.2193:182.5338:182.5338 Y54.4915:-72.3045:181.2875 S2 					; position of leadscrew/bed pivot point at front left, rear middle and front right
      
      ; Endstops
      M574 X1 S1 P"20.io1.in" 									; configure switch-type (e.g. microswitch) endstop for low end on X via pin io0.in
      M574 Y2 S1 P"20.io2.in" 									; configure switch-type (e.g. microswitch) endstop for high end on Y via pin io1.in
      M574 Z2 S1 P"0.io3.in+0.io4.in+0.io5.in"						; configure switch-type (e.g. microswitch) endstop for high end on Z
      M574 U2 S1 P"0.io6.in"									; configure switch-type (e.g. microwswitch) endstop
      
      ; Z-Probe
      M950 S0 C"20.io0.out"              						; create servo pin 0 for BLTouch (use IO_4/5/7 for 6HC)
      M558 P9 C"20.io0.in" H5 F120 T6000 						; set Z probe type to bltouch and the dive height + speeds
      G31 P500 X-19.14 Y0 Z4.242            					; set Z probe trigger value, offset and trigger height
      M557 X0:80 Y12:100 P3        							; define mesh grid
      
      ; Heaters
      M308 S0 P"temp0" Y"thermistor" T100000 B3950         	; configure sensor 0 as thermistor on pin temp0
      M950 H0 C"0.out0" T0                                   	; create bed heater output on out0 and map it to sensor 0
      M307 H0 R0.075 K0.161:0.000 D3.07 E1.35 S1.00 B0
      M140 H0                                               	; map heated bed to heater 0
      M308 S1 P"20.temp0" Y"thermistor" 							; configure sensor 1 as thermistor on pin temp1
      M950 H1 C"20.out0" T1                                  	; create nozzle heater output on out1 and map it to sensor 1
      M307 H1 R4.585 K0.421:0.683 D3.75 E1.35 S1.00 B0 V24.2	 	; disable bang-bang mode for heater  and set PWM limit
      M143 H1 S280                                          	; set temperature limit for heater 1 to 280C
      
      ; Fans
      M950 F0 C"20.out1" Q500 								; create fan 0 on toolboard out1 and set its frequency
      M106 P0 S1 H-1 ;T50       									; set fan 0 value. Thermostatic control is turned on
      M950 F1 C"20.out2" Q500 								; create fan 1 on toolboard out2 and set its frequency
      M106 P1 S0 H-1    										; set fan 1 value. Thermostatic control is turned off
      
      
      ;Relays
      M950 P2 C"0.io_7.out"									;Heater
      M42 P2 S0												;Start in off position
      M950 P3 C"0.io_1.out"									;Clamps FWD
      M42 P3 S0												;Start in off position
      M950 P4 C"0.io_8.out"									;Clamps REV
      ;M42 P4 S0												;Start in off position
      ;M950 P5 C"0.io2.out"									;IPV DWN
      ;M42 P5 S0												;Start in off position
      ;M950 P6 C"0.out9"										;IPV UP
      ;M42 P6 S0												;Start in off position
      M950 P5 C"0.out2"										;Chamber Pressure
      M42 P5 S0												;Start closed
      M950 P6 C"0.out1"										;IPV Direction
      M42 P6 S0												;Start in down position
      M950 P7 C"0.io_0.out"									;Inlet Valve
      M42 P7 S0												;Start closed
      M950 P8 C"0.out3"										;Emergency Valve
      M42 P8 S0												;start closed
      
      
      ;Tool Definitions
      M563 P0 D0 H1 F0										; tool 0 uses extruder drive 0 and heater 1. Fan 0 and Fan 1 are mapped to tool 0
      G10 P0 X0 Y0 Z0  										; set tool 0 axis offsets
      G10 P0 R0 S0     										; set initial tool 0 active and standby temperatures to 0C
      
      ; Epilogue
      M556 S100 X0 Y0 Z0                                 		; Put your axis compensation here
      M912 P0 S0                                        		; Put your CPU temperature sensor correction here
      M501                                               		; load saved parameters from non-volatile memory
      M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" 		; set voltage thresholds and actions to run on power loss
      T0
      

      M122

      122
      === Diagnostics ===
      RepRapFirmware for Duet 3 MB6HC version 3.4.6 (2023-07-21 14:11:38) running on Duet 3 MB6HC v1.02 or later (standalone mode)
      Board ID: 08DJM-9P63L-DJ3T8-6J9DG-3S46J-1V5Z8
      Used output buffers: 3 of 40 (14 max)
      === RTOS ===
      Static ram: 153252
      Dynamic ram: 97772 of which 656 recycled
      Never used RAM 96136, free system stack 208 words
      Tasks: NETWORK(ready,33.3%,172) ETHERNET(notifyWait,0.0%,576) HEAT(notifyWait,0.0%,359) Move(notifyWait,0.0%,352) CanReceiv(notifyWait,0.0%,943) CanSender(notifyWait,0.0%,335) CanClock(delaying,0.0%,344) TMC(notifyWait,7.2%,92) MAIN(running,47.2%,925) IDLE(ready,12.2%,30), total 100.0%
      Owned mutexes:
      === Platform ===
      Last reset 00:02:19 ago, cause: software
      Last software reset at 2024-02-18 16:31, reason: User, GCodes spinning, available RAM 96964, slot 2
      Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a
      Error status: 0x00
      Step timer max interval 126
      MCU temperature: min 46.9, current 47.4, max 48.6
      Supply voltage: min 24.2, current 24.2, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes
      12V rail voltage: min 12.1, current 12.3, max 12.5, under voltage events: 0
      Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/12/12, gc cycles 0
      Events: 0 queued, 0 completed
      Driver 0: standstill, SG min 0, mspos 8, reads 58985, writes 14 timeouts 0
      Driver 1: standstill, SG min 0, mspos 8, reads 58986, writes 14 timeouts 0
      Driver 2: standstill, SG min 0, mspos 8, reads 58986, writes 14 timeouts 0
      Driver 3: standstill, SG min 0, mspos 8, reads 58986, writes 14 timeouts 0
      Driver 4: standstill, SG min 0, mspos 8, reads 58986, writes 14 timeouts 0
      Driver 5: standstill, SG min 0, mspos 8, reads 58986, writes 14 timeouts 0
      Date/time: 2024-02-18 16:34:01
      Slowest loop: 3.06ms; fastest: 0.05ms
      === Storage ===
      Free file entries: 10
      SD card 0 detected, interface speed: 25.0MBytes/sec
      SD card longest read time 2.2ms, write time 0.0ms, max retries 0
      === Move ===
      DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000
      === MainDDARing ===
      Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
      === AuxDDARing ===
      Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
      === Heat ===
      Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
      === GCodes ===
      Segments left: 0
      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
      USB is idle in state(s) 0
      Aux is idle in state(s) 0
      Trigger is idle in state(s) 0
      Queue is idle in state(s) 0
      LCD is idle in state(s) 0
      SBC is idle in state(s) 0
      Daemon is idle in state(s) 0
      Aux2 is idle in state(s) 0
      Autopause is idle in state(s) 0
      Code queue is empty
      === CAN ===
      Messages queued 1209, received 0, lost 0, boc 1114
      Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 49), ts 696/0/0
      Tx timeouts 0,0,139,0,0,13 last cancelled message type 30 dest 127
      === Network ===
      Slowest loop: 4.11ms; fastest: 0.03ms
      Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
      HTTP sessions: 1 of 8
      = Ethernet =
      State: active
      Error counts: 0 0 0 1 0 0
      Socket states: 5 2 2 2 2 0 0 0
      = WiFi =
      Interface state: disabled
      Module is disabled
      Failed messages: pending 0, notready 0, noresp 0
      Socket states: 0 0 0 0 0 0 0 0
      === Multicast handler ===
      Responder is inactive, messages received 0, responses 0
      
      dc42undefined droftartsundefined 2 Replies Last reply Reply Quote 0
      • JRCLundefined JRCL marked this topic as a question
      • JRCLundefined
        JRCL @dc42
        last edited by

        @dc42 the internal wire swap was it! Once I cut it open and swapped CANL and CANH they synced. Thank you much

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

          @JRCL if a CAN-connected board won't sync with the master, this usually means that either there is a problem wit the CAN connection (e.g. CANL and CANH are swapped over in the cable), or you are powering the expansion board and the main board from different PSUs and you haven't connected the negative output terminals of the two PSUs together.

          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

          JRCLundefined 1 Reply Last reply Reply Quote 1
          • droftartsundefined
            droftarts administrators @JRCL
            last edited by

            @JRCL Also make sure all boards are on the same firmware version. Obviously, you can't see this until the board connects, but you can force it to ask for a firmware update. On the 1XD, do this:

            • Ensure that the correct expansion board firmware binary "Duet3Firmware_EXP1XD.bin" from the RRF 3.4.6 Github repository is present in the /firmware folder on the SD card.
            • On Duet 3 Expansion 1XD, fit the CAN reset jumper, then power up. The CAN address will be reset to default and the board will request a firmware update. When re-syncing is complete, turn off power, remove the CAN reset jumper, then power up again.
            • After updating expansion board firmware, you must restart the main board or at least re-run config.g in order to create any sensors, heaters, fans etc. that you have configured on that board in config.g.

            (Above largely from https://docs.duet3d.com/User_manual/Machine_configuration/CAN_connection#updating-duet-3-expansion-board-firmware)

            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

            1 Reply Last reply Reply Quote 0
            • JRCLundefined
              JRCL @dc42
              last edited by

              @dc42 the internal wire swap was it! Once I cut it open and swapped CANL and CANH they synced. Thank you much

              1 Reply Last reply Reply Quote 0
              • JRCLundefined JRCL has marked this topic as solved
              • JRCLundefined JRCL has marked this topic as unsolved
              • JRCLundefined JRCL has marked this topic as solved
              • First post
                Last post
              Unless otherwise noted, all forum content is licensed under CC-BY-SA