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

    CANBUS disconnecting sometimes?

    Scheduled Pinned Locked Moved
    Beta Firmware
    3
    9
    602
    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.
    • Th0mpyundefined
      Th0mpy
      last edited by Th0mpy

      Hello again! I'm still in the process of provisioning my new Voron. From some other issues I ran into, I've updated to 3.4 Beta 3 firmware. I seem to have run into a different bug.

      Tonight I was calibrating my probe, changed a couple things in the config.g and saved. When it asked to reboot I went ahead and said yes. When the board comes back up I cannot control any of the steppers on the 3hc, and no matter what I do I can't get it to reconnect (perhaps there's a trick). I then power off and turn the printer back on, and then we're good to go. This doesn't happen all of the time but is relatively easy to reproduce. I don't think the config.g change is really relevant to the issue, rather, the simple fact that I have rebooted from the interface is. In case you're wondering I just simply updated the z-offzet on the probe the last time it happened.

      I can confirm that I have the right CAN port and have set the termination jumpers.

      Below is the relevant info I think you'll ask for 🙂 I am back to running in SBC mode, I can try it in stand-alone if you think it'd make a difference.

      M122 B0
      === Diagnostics ===
      RepRapFirmware for Duet 3 MB6HC version 3.4.0beta3 (2021-08-24 13:57:45) running on Duet 3 MB6HC v1.01 or later (SBC mode)
      Board ID: 08DJM-956L2-G43S8-6J9FA-3S86N-1B36F
      Used output buffers: 1 of 40 (11 max)
      === RTOS ===
      Static ram: 151160
      Dynamic ram: 62556 of which 396 recycled
      Never used RAM 136488, free system stack 126 words
      Tasks: SBC(resourceWait:,0.8%,336) HEAT(notifyWait,0.0%,320) Move(notifyWait,0.0%,276) CanReceiv(notifyWait,0.0%,797) CanSender(notifyWait,0.0%,374) CanClock(delaying,0.0%,339) TMC(notifyWait,7.7%,93) MAIN(running,90.6%,922) IDLE(ready,0.8%,29), total 100.0%
      Owned mutexes: HTTP(MAIN)
      === Platform ===
      Last reset 00:01:06 ago, cause: software
      Last software reset at 2021-09-05 19:34, reason: User, GCodes spinning, available RAM 136368, slot 0
      Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
      Error status: 0x00
      Step timer max interval 132
      MCU temperature: min 47.0, current 47.3, max 47.5
      Supply voltage: min 24.6, current 24.8, max 24.8, under voltage events: 0, over voltage events: 0, power good: yes
      12V rail voltage: min 12.0, current 12.0, max 12.1, under voltage events: 0
      Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
      Driver 0: position 397600, standstill, reads 42214, writes 17 timeouts 0, SG min/max 0/307
      Driver 1: position 56800, standstill, reads 42214, writes 17 timeouts 0, SG min/max 0/258
      Driver 2: position 16000, standstill, reads 42214, writes 17 timeouts 0, SG min/max 0/250
      Driver 3: position 0, standstill, reads 42214, writes 17 timeouts 0, SG min/max 0/296
      Driver 4: position 0, standstill, reads 42220, writes 11 timeouts 0, SG min/max 0/0
      Driver 5: position 0, standstill, reads 42220, writes 11 timeouts 0, SG min/max 0/0
      Date/time: 2021-09-05 19:35:50
      Slowest loop: 26.12ms; fastest: 0.03ms
      === Storage ===
      Free file entries: 10
      SD card 0 not detected, interface speed: 37.5MBytes/sec
      SD card longest read time 0.0ms, write time 0.0ms, max retries 0
      === Move ===
      DMs created 125, segments created 3, maxWait 9561ms, bed compensation in use: none, comp offset 0.000
      === MainDDARing ===
      Scheduled moves 10, completed moves 10, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
      === AuxDDARing ===
      Scheduled moves 0, completed moves 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, chamberHeaters = -1 -1 -1 -1
      Heater 1 is on, I-accum = 0.0
      === GCodes ===
      Segments left: 0
      Movement lock held by null
      HTTP* is doing "M122 B0" 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 610, received 1107, lost 0, longest wait 2ms for reply type 6024, peak Tx sync delay 234, free buffers 49 (min 48), ts 332/331/0
      Tx timeouts 0,0,0,0,0,0
      === SBC interface ===
      State: 4, failed transfers: 0, checksum errors: 0
      Last transfer: 2ms ago
      RX/TX seq numbers: 4757/4757
      SPI underruns 0, overruns 0
      Disconnects: 0, timeouts: 0, IAP RAM available 0x2c460
      Buffer RX/TX: 0/0-0
      === Duet Control Server ===
      Duet Control Server v3.4-b3
      Code buffer space: 4096
      Configured SPI speed: 8000000Hz
      Full transfers per second: 73.11, max wait times: 42.0ms/6.7ms
      Codes per second: 1.55
      Maximum length of RX/TX data transfers: 3196/816
      
      M122 B1
      Diagnostics for board 1:
      Duet EXP3HC firmware version 3.4.0beta3 (2021-08-24 14:57:06)
      Bootloader ID: not available
      Never used RAM 158816, free system stack 4373 words
      Tasks: Move(notifyWait,0.0%,100) HEAT(notifyWait,0.2%,84) CanAsync(notifyWait,0.0%,69) CanRecv(notifyWait,0.0%,80) CanClock(notifyWait,0.1%,71) TMC(notifyWait,46.2%,29) MAIN(running,45.0%,333) IDLE(ready,0.0%,39) AIN(delaying,8.6%,263), total 100.0%
      Last reset 09:23:23 ago, cause: software
      Last software reset data not available
      Driver 0: position 0, 415.0 steps/mm,  standstill, reads 14545, writes 21 timeouts 0, SG min/max 0/0, steps req 0 done 0
      Driver 1: position 0, 160.0 steps/mm,  standstill, reads 14550, writes 17 timeouts 0, SG min/max 0/240, steps req 897702 done 668934
      Driver 2: position 339200, 160.0 steps/mm,  standstill, reads 14550, writes 17 timeouts 0, SG min/max 0/248, steps req 1137708 done 851215
      Moves scheduled 40, completed 40, in progress 0, hiccups 0, step errors 0, maxPrep 56, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0
      Peak sync jitter 1/24, peak Rx sync delay 183, resyncs 0/1, no step interrupt scheduled
      VIN: 25.0V, V12: 12.2V
      MCU temperature: min 32.4C, current 36.9C, max 43.1C
      Ticks since heat task active 141, ADC conversions started 33803806, completed 33803806, timed out 0, errs 0
      Last sensors broadcast 0x00000001 found 1 146 ticks ago, loop time 0
      CAN messages queued 540938, send timeouts 0, received 304344, lost 0, free buffers 37, min 37, error reg 110000
      dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 414, adv 35613/37076
      
      ;config.g
      G90                                                             ; send absolute coordinates...
      M83                                                             ; ...but relative extruder moves
      M550 P"Voron"                                                  ; set printer name
      M669 K1                                                         ; select CoreXY mode
      
      ; Drives
      M569 P1.1 S0                                                    ; A
      M569 P1.2 S0                                                    ; B
      M569 P1.0 S1                                                    ; Extruder
      
      M569 P0.0 S1                                                    ; Z0
      M569 P0.1 S1                                                    ; Z1
      M569 P0.2 S0                                                    ; Z2
      M569 P0.3 S0                                                    ; Z3
      
      M584 X1.2 Y1.1 Z0.0:0.1:0.2:0.3 E1.0                            ; set drive mapping
      M671 X-65:-65:410:410 Y0:400:400:0 S5   						; bed leveling coordinates
      M350 X16 Y16 Z16 E16 I1                                         ; configure microstepping with interpolation
      M92 X160.00 Y160.00 Z800.00 E415.00                             ; set steps per mm
      M566 X900.00 Y900.00 Z120.00 E60.00                             ; set maximum instantaneous speed changes (mm/min)
      M203 X60000.00 Y60000.00 Z2000.00 E180.00                       ; set maximum speeds (mm/min)
      M201 X2800.00 Y2800.00 Z250.00 E20.00                           ; set accelerations (mm/s^2)
      M906 X1800 Y1800 Z1800 E800 I30                                 ; set motor currents (mA) and motor idle factor in per cent
      M84 S30                                                         ; Set idle timeout
      
      ; Axis Limits
      M208 X10 Y0 Z0 S1                                                ; set axis minima
      M208 X350 Y350 Z355 S0                                          ; set axis maxima
      
      ; Endstops
      M574 X2 S1 P"!io8.in"                                            ; configure active-high endstop for high end on X via pin io8.in
      M574 Y2 S1 P"!io6.in"                                            ; configure active-high endstop for high end on Y via pin io6.in
      M574 Z1 S2                                                      ; configure Z-probe endstop for low end on Z
      
      ; Z-Probe
      M558 P8 C"io3.in" H30 F1000 T20000                              ; set Z probe type to unmodulated and the dive height + speeds
      G31 P500 X0 Y25 Z4.74                                           ; set Z probe trigger value, offset and trigger height
      M557 X35:315 Y25:280 P4                                         ; define mesh grid
      
      ; Heaters
      M308 S0 P"1.temp0" Y"thermistor" T100000 B4725 C7.06e-8         ; configure sensor 0 as thermistor on pin temp2
      M950 H0 C"1.out0" T0                                            ; create bed heater output on 1.out0 and map it to sensor 0
      M307 H0 B0 S1.00                                                ; disable bang-bang mode for the bed heater and set PWM limit
      M140 H0                                                         ; map heated bed to heater 0
      M143 H0 S120                                                    ; set temperature limit for heater 0 to 120C
      M308 S1 P"temp0" Y"thermistor" T100000 B4725 C7.06e-8           ; configure sensor 1 as thermistor on pin temp0
      M950 H1 C"out1" T1                                              ; create nozzle heater output on out1 and map it to sensor 1
      M307 H1 B0 S1.00                                                ; disable bang-bang mode for heater  and set PWM limit
      M143 H1 S280                                                    ; set temperature limit for heater 1 to 280C
      M308 S2 P"temp1" Y"thermistor" T10000 B3940 A"Chamber Temp" 
      
      ; Fans
      M950 F0 C"out7" Q500                                            ; create fan 0 on pin out7 and set its frequency
      M106 P0 S0 H-1                                                  ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"out8" Q500                                            ; create fan 1 on pin out8 and set its frequency
      M106 P1 S1.0 H1 T45                                             ; set fan 1 value. Thermostatic control is turned on
      
      ; Tools
      M563 P0 D0 H1 F0                                                ; define 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
      
      ; Custom settings are not defined
      
      ; Miscellaneous
      M501                                                            ; load saved parameters from non-volatile memory
      T0                                                              ; select first tool
      

      Usually the team that scores the most points wins the game.

      1 Reply Last reply Reply Quote 0
      • oliofundefined
        oliof
        last edited by oliof

        Add a G4 S2 at the very start of config.g to allow for the CAN boards to synchronize at start up. If that doesn't help, double check your wiring.

        <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

        Th0mpyundefined 1 Reply Last reply Reply Quote 0
        • Th0mpyundefined
          Th0mpy @oliof
          last edited by

          @oliof I just tried that. Right off the bat it disconnects after a config change reboot.

          One thing I did not clarify, it worked fine in version 3.3 so I assume it's something relating to the beta. I've double checked the wiring and it all seems good.

          Last night I was able to print and didn't have any issues with the connection during the print. This only seems to occur when a software reset is done.

          Usually the team that scores the most points wins the game.

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

            @th0mpy said in CANBUS disconnecting sometimes?:

            @oliof I just tried that. Right off the bat it disconnects after a config change reboot.

            Please explain what you mean by "it disconnects". What disconnects from what, and what is your evidence for that?

            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

            Th0mpyundefined 1 Reply Last reply Reply Quote 0
            • Th0mpyundefined
              Th0mpy @dc42
              last edited by Th0mpy

              @dc42 Disconnect may be not be accurate, but that's how it's acting. Basically, it's not able to interact with any of the motors or outputs that I've defined on that board.

              What I am seeing is after a software reboot I attempt a home, the Z axis moves up as I would expect and the X and Y axis does not move. The interface spins for a few moments and then throws an error "Error: G0/G1: insufficient axes homed"

              Once in a while, following the same process, it does throw a "Error: M584: Driver 1.2 does not exist". This is not happening each time so I'm only assuming this is still the condition I explained above.

              The process I followed was to modify the config.g file (basically make a minor change to a comment so it'd prompt to save). Save the file, yes to restart.

              LUCKILY I did just get both errors to occur so here's what M122 says:

              M122 B1
              Diagnostics for board 1:
              Duet EXP3HC firmware version 3.4.0beta3 (2021-08-24 14:57:06)
              Bootloader ID: not available
              Never used RAM 158816, free system stack 4377 words
              Tasks: Move(notifyWait,0.0%,125) HEAT(notifyWait,0.0%,84) CanAsync(notifyWait,0.0%,69) CanRecv(notifyWait,0.0%,80) CanClock(notifyWait,0.0%,71) TMC(notifyWait,7.1%,63) MAIN(running,91.6%,332) IDLE(ready,0.0%,39) AIN(delaying,1.3%,263), total 100.0%
              Last reset 05:53:31 ago, cause: software
              Last software reset data not available
              Driver 0: position 0, 415.0 steps/mm,  standstill, reads 48382, writes 5 timeouts 0, SG min/max not available, steps req 0 done 0
              Driver 1: position -6720, 160.0 steps/mm,  standstill, reads 48387, writes 0 timeouts 0, SG min/max not available, steps req 0 done 0
              Driver 2: position 220480, 160.0 steps/mm,  standstill, reads 48387, writes 0 timeouts 0, SG min/max not available, steps req 0 done 0
              Moves scheduled 17, completed 17, in progress 0, hiccups 0, step errors 0, maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0
              Peak sync jitter 3/14, peak Rx sync delay 181, resyncs 0/1, no step interrupt scheduled
              VIN: 25.0V, V12: 12.2V
              MCU temperature: min 32.8C, current 36.1C, max 36.7C
              Ticks since heat task active 76, ADC conversions started 21211651, completed 21211651, timed out 0, errs 0
              Last sensors broadcast 0x00000001 found 1 81 ticks ago, loop time 0
              CAN messages queued 7315, send timeouts 0, received 4095, lost 0, free buffers 37, min 37, error reg 110000
              dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0
              
              M122 b0
              === Diagnostics ===
              RepRapFirmware for Duet 3 MB6HC version 3.4.0beta3 (2021-08-24 13:57:45) running on Duet 3 MB6HC v1.01 or later (SBC mode)
              Board ID: 08DJM-956L2-G43S8-6J9FA-3S86N-1B36F
              Used output buffers: 1 of 40 (11 max)
              === RTOS ===
              Static ram: 151160
              Dynamic ram: 62556 of which 396 recycled
              Never used RAM 136488, free system stack 152 words
              Tasks: SBC(resourceWait:,0.6%,342) HEAT(notifyWait,0.0%,320) Move(notifyWait,0.0%,276) CanReceiv(notifyWait,0.0%,797) CanSender(notifyWait,0.0%,374) CanClock(delaying,0.0%,339) TMC(notifyWait,7.4%,59) MAIN(running,91.7%,922) IDLE(ready,0.3%,29), total 100.0%
              Owned mutexes: HTTP(MAIN)
              === Platform ===
              Last reset 00:02:58 ago, cause: software
              Last software reset at 2021-09-06 20:47, reason: User, none spinning, available RAM 136368, slot 2
              Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
              Error status: 0x00
              Step timer max interval 133
              MCU temperature: min 46.4, current 46.7, max 47.0
              Supply voltage: min 24.6, current 24.8, max 24.8, under voltage events: 0, over voltage events: 0, power good: yes
              12V rail voltage: min 12.0, current 12.0, max 12.1, under voltage events: 0
              Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
              Driver 0: position 227200, standstill, reads 18538, writes 17 timeouts 0, SG min/max 0/308
              Driver 1: position 0, standstill, reads 18538, writes 17 timeouts 0, SG min/max 0/262
              Driver 2: position 4000, standstill, reads 18538, writes 17 timeouts 0, SG min/max 0/251
              Driver 3: position 0, standstill, reads 18538, writes 17 timeouts 0, SG min/max 0/294
              Driver 4: position 0, standstill, reads 18544, writes 11 timeouts 0, SG min/max 0/0
              Driver 5: position 0, standstill, reads 18544, writes 11 timeouts 0, SG min/max 0/0
              Date/time: 2021-09-06 20:50:20
              Slowest loop: 24.85ms; fastest: 0.03ms
              === Storage ===
              Free file entries: 10
              SD card 0 not detected, interface speed: 37.5MBytes/sec
              SD card longest read time 0.0ms, write time 0.0ms, max retries 0
              === Move ===
              DMs created 125, segments created 3, maxWait 96518ms, bed compensation in use: none, comp offset 0.000
              === MainDDARing ===
              Scheduled moves 4, completed moves 4, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
              === AuxDDARing ===
              Scheduled moves 0, completed moves 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, chamberHeaters = -1 -1 -1 -1
              Heater 1 is on, I-accum = 0.0
              === GCodes ===
              Segments left: 0
              Movement lock held by null
              HTTP* is doing "M122 B0" 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 1612, received 2899, lost 0, longest wait 2ms for reply type 6024, peak Tx sync delay 7, free buffers 49 (min 48), ts 893/892/0
              Tx timeouts 0,0,0,0,0,0
              === SBC interface ===
              State: 4, failed transfers: 0, checksum errors: 0
              Last transfer: 1ms ago
              RX/TX seq numbers: 7164/7164
              SPI underruns 0, overruns 0
              Disconnects: 0, timeouts: 0, IAP RAM available 0x2c460
              Buffer RX/TX: 0/0-0
              === Duet Control Server ===
              Duet Control Server v3.4-b3
              Code buffer space: 4096
              Configured SPI speed: 8000000Hz
              Full transfers per second: 40.41, max wait times: 40.7ms/3.2ms
              Codes per second: 0.44
              Maximum length of RX/TX data transfers: 3156/796
              

              I am noting one thing, the "Last reset" on the 6HC vs 3HC is not the same. If the mainboard resets shouldn't the 3HC?

              Usually the team that scores the most points wins the game.

              1 Reply Last reply Reply Quote 0
              • Th0mpyundefined
                Th0mpy
                last edited by

                @dc42 I decided to try standalone mode again this morning. So far I do not see the same issue and I've rebooted multiple times already.

                Usually the team that scores the most points wins the game.

                1 Reply Last reply Reply Quote 0
                • Th0mpyundefined
                  Th0mpy
                  last edited by Th0mpy

                  Last night I ran two prints of ~4 hours each. One running SBC and the other running in standalone mode. Since it's my first real prints I stopped and started a few times after adjusting parameters. No issues at all in standalone mode, I restarted via software several times and the print was mostly flawless. Each time while connected to the SBC I had to power off the printer in order to get the 3HC to recognize the motors and outputs again. During the print itself with the SBC I had no issues, just during config restarts.

                  Could there be something in the DWC (when using SBC) which isn't rebooting things properly?

                  Usually the team that scores the most points wins the game.

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

                    @th0mpy thanks for your tests. I have located a possible situation in which the reset of CAN-connected boards may not occur when the SBC commands the Duet to reset. We are looking into whether that actually happens.

                    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

                    Th0mpyundefined 1 Reply Last reply Reply Quote 0
                    • Th0mpyundefined
                      Th0mpy @dc42
                      last edited by

                      @dc42 I'm glad to know that I'm not crazy (in this particular instance)! Let me know if you need anything, happy to help.

                      Usually the team that scores the most points wins the game.

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