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

    Restart DuetControlServer (SBC)

    Scheduled Pinned Locked Moved Unsolved
    General Discussion
    5
    34
    2.1k
    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.
    • BeosDocundefined
      BeosDoc
      last edited by

      I'm running the latest 3.2.2 and SBC fully updated. With the pi already running for a while, I've turned on the printer and even after 10 minutes it still has status of Off and of course the DWC won't send any messages in that state.

      1 Reply Last reply Reply Quote 0
      • Phaedruxundefined
        Phaedrux Moderator
        last edited by

        Can you enable some additional logging?

        https://duet3d.dozuki.com/Wiki/Getting_Started_With_Duet_3#Section_Monitoring_optional

        Z-Bot CoreXY Build | Thingiverse Profile

        1 Reply Last reply Reply Quote 0
        • BeosDocundefined
          BeosDoc
          last edited by

          Here's when starting the DCS debug with Duet 3 off:

          [info] Settings loaded
          [info] Environment initialized
          [fatal] Could not connect to Duet (Timeout while waiting for transfer ready pin)
          [debug] System.OperationCanceledException: Timeout while waiting for transfer ready pin
             at DuetControlServer.SPI.DataTransfer.WaitForTransfer(Boolean inTransfer) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetControlServer/SPI/DataTransfer.cs:line 1088
             at DuetControlServer.SPI.DataTransfer.ExchangeHeader() in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetControlServer/SPI/DataTransfer.cs:line 1157
             at DuetControlServer.SPI.DataTransfer.PerformFullTransfer(Boolean connecting) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetControlServer/SPI/DataTransfer.cs:line 163
             at DuetControlServer.SPI.DataTransfer.Init() in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetControlServer/SPI/DataTransfer.cs:line 105
             at DuetControlServer.Program.Main(String[] args) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetControlServer/Program.cs:line 114
          
          

          And using /usr/bin/journalctl -u duetcontrolserver -e

          Feb 27 10:43:23 duet3 DuetControlServer[18261]: [warn] Restarting transfer because a bad header response was received (0xf0f0f0f0)
          Feb 27 10:43:23 duet3 DuetControlServer[18261]: [warn] Bad header CRC32 (expected 0xf0f0f0f0, got 0x6c311115)
          Feb 27 10:43:23 duet3 DuetControlServer[18261]: [warn] Note: RepRapFirmware didn't receive valid data either (code 0x00000000)
          Feb 27 10:43:23 duet3 DuetControlServer[18261]: [warn] Bad header CRC16 (expected 0x0000, got 0xd372)
          Feb 27 10:43:23 duet3 DuetControlServer[18261]: [warn] Note: RepRapFirmware didn't receive valid data either (code 0xffffffff)
          Feb 27 10:43:23 duet3 DuetControlServer[18261]: [warn] Bad header CRC16 (expected 0x0000, got 0xd372)
          Feb 27 10:43:23 duet3 DuetControlServer[18261]: [warn] Note: RepRapFirmware didn't receive valid data either (code 0xffffffff)
          Feb 27 10:43:23 duet3 DuetControlServer[18261]: [warn] Bad header CRC16 (expected 0x0000, got 0xd30c)
          Feb 27 10:43:23 duet3 DuetControlServer[18261]: [warn] Note: RepRapFirmware didn't receive valid data either (code 0xffffffff)
          Feb 27 10:43:23 duet3 DuetControlServer[18261]: [warn] Bad header CRC16 (expected 0x0000, got 0xd372)
          Feb 27 10:43:23 duet3 DuetControlServer[18261]: [warn] Note: RepRapFirmware didn't receive valid data either (code 0xffffffff)
          Feb 27 10:43:23 duet3 DuetControlServer[18261]: [warn] Restarting transfer because the number of maximum retries has been exceeded
          Feb 27 14:00:25 duet3 DuetControlServer[18261]: [warn] Bad header CRC16 (expected 0x0000, got 0xd372)
          Feb 27 14:00:25 duet3 DuetControlServer[18261]: [warn] Note: RepRapFirmware didn't receive valid data either (code 0xffffffff)
          Feb 27 14:00:25 duet3 DuetControlServer[18261]: [warn] Bad header CRC16 (expected 0x0000, got 0xd372)
          Feb 27 14:00:25 duet3 DuetControlServer[18261]: [warn] Note: RepRapFirmware didn't receive valid data either (code 0xffffffff)
          Feb 27 17:33:30 duet3 DuetControlServer[18261]: [warn] Received SIGTERM, shutting down...
          Feb 27 17:33:30 duet3 systemd[1]: Stopping Duet Control Server...
          Feb 27 17:33:30 duet3 DuetControlServer[18261]: [warn] Daemon: Aborting orphaned macro file daemon.g
          Feb 27 17:33:30 duet3 DuetControlServer[18261]: [info] Aborted macro file daemon.g
          Feb 27 17:33:45 duet3 systemd[1]: duetcontrolserver.service: State 'stop-sigterm' timed out. Killing.
          Feb 27 17:33:45 duet3 systemd[1]: duetcontrolserver.service: Killing process 18261 (DuetControlServ) with signal SIGKILL.
          Feb 27 17:33:45 duet3 systemd[1]: duetcontrolserver.service: Main process exited, code=killed, status=9/KILL
          Feb 27 17:33:45 duet3 systemd[1]: duetcontrolserver.service: Failed with result 'timeout'.
          Feb 27 17:33:45 duet3 systemd[1]: Stopped Duet Control Server.
          

          Hmmm, that's strange. After doing a couple more: sudo /opt/dsf/bin/DuetControlServer -l debug
          and retesting it's working properly. After doing a reboot of pi it's back to doing the same thing.

          1 Reply Last reply Reply Quote 0
          • Phaedruxundefined
            Phaedrux Moderator
            last edited by

            Double check your cable between pi and duet.

            Can you post your config.g?

            Z-Bot CoreXY Build | Thingiverse Profile

            1 Reply Last reply Reply Quote 0
            • BeosDocundefined
              BeosDoc
              last edited by

              ; Configuration file for Duet 3 (firmware version 3)
              ; executed by the firmware on start-up
              ;
              ; generated by RepRapFirmware Configuration Tool v3.1.4 on Sat Nov 14 2020 22:27:05 GMT-0600 (CST)
              
              ; General preferences
              G4 S1											; Delay for 1 second to give toolboard time to catch up on reset
              G90                                              ; send absolute coordinates... 
              M83                                              ; ...but relative extruder moves
              M550 P"Duet3"                                    ; set printer name
              M669 K1                                          ; select CoreXY mode
              
              ; Network
              ;M586 P0 S1                                       ; enable HTTP
              ;M586 P1 S0                                       ; disable FTP
              ;M586 P2 S0                                       ; disable Telnet
              
              ; Drives
              M569 P0.0 S0                                    ; physical drive 0.0 goes backwards
              M569 P0.1 S0                                    ; physical drive 0.1 goes backwards
              M569 P0.2 S1                                    ; physical drive 0.2 goes forwards (Z FL(front left))
              M569 P20.0 S0                                    ; physical drive 1.0 goes backwards (T0)
              M569 P21.0 S0									; physical drive 1.0 goes backwards (T1)
              M569 P0.3 S1                                     ; physical drive 0.3 goes forwards (Z BL)
              M569 P0.4 S1                                     ; physical drive 0.4 goes forwards (Z FR)
              M569 P0.5 S1                                     ; physical drive 0.5 goes forwards (Z BR)
              M584 X0.0 Y0.1 Z0.2:0.3:0.5:0.4 E20.0:21.0       ; set drive mapping
              M350 X16 Y16 Z16 E16:16 I1              		; configure microstepping with interpolation
              M92 X200.00 Y200.00 Z800.00 E408.00:408.00         ; set steps per mm
              M566 X900.00 Y900.00 Z120.00 E300.00:300.00     ; set maximum instantaneous speed changes (mm/min)
              M203 X50000.00 Y50000.00 Z1980.00 E6000.00:6000.00 ; set maximum speeds (mm/min)
              M201 X1500.00 Y1500.00 Z400.00 E3000.00:3000.00       ; set accelerations (mm/s^2)
              M906 X2100 Y2100 Z1600 E1100:1100 I30            ; set motor currents (mA) and motor idle factor in per cent
              M84 S30                                          ; Set idle timeout
              
              ; Axis Limits
              M208 X4 Y0 Z0 S1                                 ; set axis minima
              M208 X404 Y549 Z390 S0                           ; set axis maxima
              M671 X0:0:375:375 Y34:357:357:34 S15			; leadscrews near each corner
              
              ; Endstops
              M574 X1 S1 P"io0.in"                             ; configure active-high endstop for low end on X via pin io0.in
              M574 Y1 S1 P"io1.in"                             ; configure active-high endstop for low end on Y via pin io1.in
              M574 Z1 S2                                       ; configure Z-probe endstop for low end on Z
              
              
              ; Z-Probe
              M558 P9 C"^io7.in" H5 F120 T6000 A4                 ; set Z probe type to unmodulated and the dive height + speeds
              M950 S0 C"io7.out"
              G31 P500 X42.8 Y-19.2 Z2.0                            ; set Z probe trigger value, offset and trigger height. add for closer, sub for farther
              M557 X43:390 Y00:370 S20                         ; define mesh grid
              
              ; Bed Heater
              M308 S0 P"temp0" Y"thermistor" T100000 B4138 A"Bed"     ; configure sensor 0 as thermistor on pin temp0
              M950 H0 C"out1" T0                               ; create bed heater output on out0 and map it to sensor 0
              M307 H0 R0.638 C553.0 D3.91 S1.00 V31.5				; PID mode for temp0
              M140 H0                                          ; map heated bed to heater 0
              M143 H0 S160									; set temperature limit for heater 0 to 160C
              
              ; Other temperature sensor
              M308 S8 P"temp1" Y"thermistor" T100000 B4138 A"Case"     ; configure sensor 0 as thermistor on pin temp0
              
              ; Tool heaters                                     
              M308 S1 P"20.temp0" Y"pt1000" R2200 A"NzT0"               ; configure sensor 1 as PT1000 on pin 1.temp0
              M950 H1 C"20.out0" T1                             ; create nozzle heater output on 1.out0 and map it to sensor 1
              M307 H1 B0 S0.79                                  ; disable bang-bang mode for heater  and set PWM limit
              M143 H1 S360 A0								; set nozzle temp limit to 360C, heater fault if >360
              M308 S2 P"21.temp0" Y"pt1000" R2200 A"NzT1"               ; configure sensor 1 as PT1000 on pin 1.temp1
              M950 H2 C"21.out0" T2                             ; create nozzle heater output on 1.out0 and map it to sensor 2
              M307 H2 B0 S0.79                                  ; disable bang-bang mode for heater  and set PWM limit
              M143 H2 S360 A0								; set nozzle temp limit to 360C, heater fault if >360
              
              ; Fans
              M950 F0 C"out7" Q500                             ; create fan 1 on pin out3 and set its frequency
              M106 P0 S0 H-1 C"L Fan"                                  ; set fan 1 value. Thermostatic control is turned off
              M950 F1 C"out8" Q500                             ; create fan 2 on pin out4 and set its frequency
              M106 P1 S0 H-1 C"R Fan"                          ; set fan 2 value. Thermostatic control is turned off
              M950 F2 C"out9" Q500							 ; create Nozzle LEDs on pin out9
              M106 P2 S0 H-1 C"Noz LED"
              M950 F8 C"out4" Q2000
              M106 P8 I1 F2000 C"Case F"
              
              
              ; Tool fans
              M950 F3 C"20.out2" Q5000                          ; create fan 3 on pin 20.out2 and set its frequency
              M106 P3 S255 H1 T45 C"T0 Hemera Fan"                 ; set fan 3 value. Thermostatic control is turned on
              M950 F4 C"21.out2" Q5000                          ; create fan 4 on pin 21.out2 and set its frequency
              M106 P4 S255 H2 T45 C"T1 Hemera Fan"              ; set fan 4 value. Thermostatic control is turned on
              
              
              ; Tools T0
              M563 P0 D0 H1 F0:1 S"T0"                       ; 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
              ; T1
              M563 P1 D1 H2 F0:1 S"T1"                       ; define tool 1
              G10 P1 X0.36 Y-0.6 Z-0.37                         ; set tool 1 axis offsets
              G10 P1 R0 S0                                     ; set initial tool 1 active and standby temperatures to 0C
              
              
              ; Filament Sensor
              ;M591 D20 P1 C"0.io1.in" S1		 				; Detect filament issues
              M591 D0 P1 C"20.io1.in" S1
              M591 D1 P1 C"21.io1.in" S1
              
              ; Set up the dock and park indicator switches on the Hemera tools
              M950 J0 C"20.io2.in"							; T0 Docked indicator
              M950 J1 C"20.io0.in"							; T0 Parked indicator
              M950 J2 C"21.io2.in"							; T1 Docked indicator
              M950 J3 C"21.io0.in"							; T1 Parked indicator
              
              
              
              ; Custom settings
              if sensors.gpIn[0].value = 1 && sensors.gpIn[1].value = 0		; Check to see if tool 0 is already docked/mounted and not parked
              	T0 P0														; Set tool 0, don't run macros
              if sensors.gpIn[2].value = 1 && sensors.gpIn[3].value = 0		; Check to see if tool 1 is already docked/mounted and not parked
              	T1 P0														; Set tool 1, don't run macros
              if sensors.gpIn[0].value = 0 && sensors.gpIn[2].value = 0		; Check to see if no tool is docked/mounted
              	T-1 P0														; deselect all tools, don't run macros
              
              
              ;M308 S5 Y"mcu-temp" A"MCU"
              
              
              ; Miscellaneous
              ;M575 P1 S1 B57600                                ; enable support for PanelDue
              
              1 Reply Last reply Reply Quote 0
              • Phaedruxundefined
                Phaedrux Moderator
                last edited by

                Do you have anything in daemon.g?

                Z-Bot CoreXY Build | Thingiverse Profile

                BeosDocundefined 1 Reply Last reply Reply Quote 0
                • BeosDocundefined
                  BeosDoc @Phaedrux
                  last edited by

                  @Phaedrux

                  Yes I do.

                  if sensors.gpIn[0].value = 0 && sensors.gpIn[1].value = 0
                  	echo "Tool", 0, "is NOT docked or parked"
                  	if heat.heaters[1].state != "off"
                  		if heat.heaters[1].current > 46 && heat.heaters[1].active != 0
                  			echo "Setting T0 heater active temp to 0 (off)"
                  			G10 P0 R0 S0
                  		if heat.heaters[1].current > 46 && heat.heaters[1].standby != 0
                  			echo "Setting T1 heater standby temp to 0"
                  			G10 P0 R0 S0
                  
                  	if job.timesLeft.layer != null
                  		echo "Pausing print"
                  		M25
                  
                  if sensors.gpIn[2].value = 0 && sensors.gpIn[3].value = 0
                  	echo "Tool", 1, "is NOT docked or parked"
                  	if heat.heaters[2].state != "off"
                  		if heat.heaters[2].current > 46 && heat.heaters[2].active != 0
                  			echo "Setting T1 heater active temp to 0 (off)"
                  			G10 P1 R0 S0
                  		if heat.heaters[2].current > 46 && heat.heaters[2].standby != 0
                  			echo "Setting T1 heater standby temp to 0"
                  			G10 P1 R0 S0
                  
                  	if job.timesLeft.layer != null
                  		echo "Pausing print"
                  		M25
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • BeosDocundefined
                    BeosDoc
                    last edited by

                    Just as an FYI I renamed daemon.g and tried it that way and it didn't work.

                    1 Reply Last reply Reply Quote 0
                    • Phaedruxundefined
                      Phaedrux Moderator
                      last edited by

                      Was it working before at any point? Did anything recently change?

                      Could you try a fresh image of Duet pi and updating again?

                      https://pkg.duet3d.com/DuetPi-lite.zip

                      https://pkg.duet3d.com/DuetPi.zip

                      Can you check what firmware is installed on the Duet via USB?

                      Z-Bot CoreXY Build | Thingiverse Profile

                      1 Reply Last reply Reply Quote 0
                      • BeosDocundefined
                        BeosDoc
                        last edited by

                        Reseated the ribbon cable...no difference.

                        No, it's never connected (duet status: Off) when the pi has been running before the Duet has power. Just to be clear: when duet is powered and I reboot the Pi or restart the duetcontrolservice it will connect.

                        Duet 3 firmware is 3.2.2 (read via usb)

                        Redid the DuetPi image to SD card (image verified). Had the duet off and booted the pi to go through the first time initialization. Turned the duet on and it connected. Turned the duet off and waited a little bit and turned it back on and it didn't connect. Turned off duet and rebooted Pi, turned on the duet and it connected.

                        It looks like it will do it the first time the pi is rebooted but not after that. Also did the apt upgrades after the above, also no change.

                        Phaedruxundefined 1 Reply Last reply Reply Quote 0
                        • BeosDocundefined
                          BeosDoc
                          last edited by

                          Is it possible that after the first time it waits to connect and then the duet is off that it doesn't check/wait again?

                          1 Reply Last reply Reply Quote 0
                          • chrishammundefined
                            chrishamm administrators
                            last edited by

                            DSF does indeed wait for the Duet 3 to up and ready. In your case it looks like the might be dodgy connection between the Duet and the Pi which could cause the warnings from your log (all 0x00 or 0xFF could mean a timing issue on the TfrRdy pin).

                            Can you post the output of M122 when connected over USB to the Duet (with the Pi attached)?

                            Duet software engineer

                            1 Reply Last reply Reply Quote 0
                            • BeosDocundefined
                              BeosDoc
                              last edited by

                              With Pi attached and running and Duet off.
                              Plugged in the USB cable to the Duet, waited a few minutes

                              SENT: M122
                              READ: === Diagnostics ===
                              READ: RepRapFirmware for Duet 3 MB6HC version 3.2.2 running on Duet 3 MB6HC v1.01 or later (SBC mode)
                              READ: Board ID: 08DJM-956L2-G43S8-6J9D6-3S46L-KU2YD
                              READ: Used output buffers: 1 of 40 (1 max)
                              READ: === RTOS ===
                              READ: Static ram: 149788
                              READ: Dynamic ram: 60988 of which 0 recycled
                              READ: Never used RAM 148056, free system stack 190 words
                              READ: Tasks: Linux(ready,423) HEAT(blocked,368) CanReceiv(blocked,927) CanSender(blocked,371) CanClock(blocked,360) TMC(blocked,65) MAIN(running,1281) IDLE(ready,19)
                              READ: Owned mutexes: USB(MAIN)
                              READ: === Platform ===
                              READ: Last reset 00:00:33 ago, cause: power up
                              READ: Last software reset details not available
                              READ: Error status: 0x00
                              READ: Aux0 errors 0,0,0
                              READ: Aux1 errors 0,0,0
                              READ: MCU temperature: min 35.8, current 43.4, max 43.4
                              READ: Supply voltage: min 0.2, current 0.2, max 0.3, under voltage events: 0, over voltage events: 0, power good: no
                              READ: 12V rail voltage: min 0.1, current 0.2, max 0.2, under voltage events: 0
                              READ: Driver 0: position 0, ok, reads 0, writes 0 timeouts 0, SG min/max 0/0
                              READ: Driver 1: position 0, ok, reads 0, writes 0 timeouts 0, SG min/max 0/0
                              READ: Driver 2: position 0, ok, reads 0, writes 0 timeouts 0, SG min/max 0/0
                              READ: Driver 3: position 0, ok, reads 0, writes 0 timeouts 0, SG min/max 0/0
                              READ: Driver 4: position 0, ok, reads 0, writes 0 timeouts 0, SG min/max 0/0
                              READ: Driver 5: position 0, ok, reads 0, writes 0 timeouts 0, SG min/max 0/0
                              READ: Date/time: 1970-01-01 00:00:00
                              READ: Slowest loop: 0.10ms; fastest: 0.00ms
                              READ: === Storage ===
                              READ: Free file entries: 10
                              READ: SD card 0 not detected, interface speed: 37.5MBytes/sec
                              READ: SD card longest read time 0.0ms, write time 0.0ms, max retries 0
                              READ: === Move ===
                              READ: DMs created 125, maxWait 0ms, bed compensation in use: none, comp offset 0.000
                              READ: === MainDDARing ===
                              READ: Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
                              READ: === AuxDDARing ===
                              READ: Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
                              READ: === Heat ===
                              READ: Bed heaters = -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
                              READ: === GCodes ===
                              READ: Segments left: 0
                              READ: Movement lock held by null
                              READ: HTTP is idle in state(s) 0
                              READ: Telnet is idle in state(s) 0
                              READ: File is idle in state(s) 0
                              READ: USB is ready with "M122" in state(s) 0
                              READ: Aux is idle in state(s) 0
                              READ: Trigger is idle in state(s) 0
                              READ: Queue is idle in state(s) 0
                              READ: LCD is idle in state(s) 0
                              READ: SBC is idle in state(s) 0
                              READ: Daemon is idle in state(s) 0
                              READ: Aux2 is idle in state(s) 0
                              READ: Autopause is idle in state(s) 0
                              READ: Code queue is empty.
                              READ: === CAN ===
                              READ: Messages queued 0, send timeouts 165, received 0, lost 0, longest wait 0ms for reply type 0, free buffers 48
                              READ: === SBC interface ===
                              READ: State: 0, failed transfers: 0
                              READ: Last transfer: 33171ms ago
                              READ: RX/TX seq numbers: 0/1
                              READ: SPI underruns 0, overruns 0
                              READ: Number of disconnects: 0, IAP RAM available 0x2c8a8
                              READ: Buffer RX/TX: 0/0-0
                              READ: ok
                              
                              1 Reply Last reply Reply Quote 0
                              • BeosDocundefined
                                BeosDoc
                                last edited by

                                Oh, and the above message was with pi dwc saying the Duet status is Off.

                                And just incase you want to see what it says when the status is Idle:

                                SENT: m122
                                READ: === Diagnostics ===
                                READ: RepRapFirmware for Duet 3 MB6HC version 3.2.2 running on Duet 3 MB6HC v1.01 or later (SBC mode)
                                READ: Board ID: 08DJM-956L2-G43S8-6J9D6-3S46L-KU2YD
                                READ: Used output buffers: 2 of 40 (17 max)
                                READ: === RTOS ===
                                READ: Static ram: 149788
                                READ: Dynamic ram: 63684 of which 76 recycled
                                READ: Never used RAM 145284, free system stack 146 words
                                READ: Tasks: Linux(ready,81) HEAT(blocked,297) CanReceiv(blocked,834) CanSender(blocked,352) CanClock(blocked,352) TMC(blocked,19) MAIN(running,1147) IDLE(ready,19)
                                READ: Owned mutexes: USB(MAIN)
                                READ: === Platform ===
                                READ: Last reset 00:03:50 ago, cause: power up
                                READ: Last software reset details not available
                                READ: Error status: 0x00
                                READ: Aux0 errors 0,0,0
                                READ: Aux1 errors 0,0,0
                                READ: MCU temperature: min 40.3, current 40.5, max 40.7
                                READ: Supply voltage: min 31.2, current 31.3, max 31.3, under voltage events: 0, over voltage events: 0, power good: yes
                                READ: 12V rail voltage: min 11.9, current 12.0, max 12.0, under voltage events: 0
                                READ: Driver 0: position 800, standstill, reads 45086, writes 3 timeouts 0, SG min/max 0/298
                                READ: Driver 1: position 800, standstill, reads 45087, writes 3 timeouts 0, SG min/max 0/263
                                READ: Driver 2: position 0, standstill, reads 45087, writes 3 timeouts 0, SG min/max 0/160
                                READ: Driver 3: position 0, standstill, reads 45086, writes 3 timeouts 0, SG min/max 0/169
                                READ: Driver 4: position 0, standstill, reads 45086, writes 3 timeouts 0, SG min/max 0/207
                                READ: Driver 5: position 0, standstill, reads 45086, writes 3 timeouts 0, SG min/max 0/208
                                READ: Date/time: 2021-03-01 09:45:31
                                READ: Slowest loop: 88.98ms; fastest: 0.04ms
                                READ: === Storage ===
                                READ: Free file entries: 10
                                READ: SD card 0 not detected, interface speed: 37.5MBytes/sec
                                READ: SD card longest read time 0.0ms, write time 0.0ms, max retries 0
                                READ: === Move ===
                                READ: DMs created 125, maxWait 206056ms, bed compensation in use: none, comp offset 0.000
                                READ: === MainDDARing ===
                                READ: Scheduled moves 10, completed moves 10, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
                                READ: === AuxDDARing ===
                                READ: Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
                                READ: === Heat ===
                                READ: Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
                                READ: === GCodes ===
                                READ: Segments left: 0
                                READ: Movement lock held by null
                                READ: HTTP* is idle in state(s) 0
                                READ: Telnet is idle in state(s) 0
                                READ: File is idle in state(s) 0
                                READ: USB is ready with "m122" in state(s) 0
                                READ: Aux is idle in state(s) 0
                                READ: Trigger* is idle in state(s) 0
                                READ: Queue is idle in state(s) 0
                                READ: LCD is idle in state(s) 0
                                READ: SBC is idle in state(s) 0
                                READ: Daemon is idle in state(s) 0
                                READ: Aux2 is idle in state(s) 0
                                READ: Autopause is idle in state(s) 0
                                READ: Code queue is empty.
                                READ: === Filament sensors ===
                                READ: Extruder 0 sensor: no filament
                                READ: Extruder 1 sensor: no filament
                                READ: === CAN ===
                                READ: Messages queued 360, send timeouts 0, received 2232, lost 0, longest wait 0ms for reply type 0, free buffers 48
                                READ: === SBC interface ===
                                READ: State: 4, failed transfers: 0
                                READ: Last transfer: 0ms ago
                                READ: RX/TX seq numbers: 7559/7559
                                READ: SPI underruns 0, overruns 0
                                READ: Number of disconnects: 0, IAP RAM available 0x2c8a8
                                READ: Buffer RX/TX: 0/0-0
                                READ: ok
                                
                                1 Reply Last reply Reply Quote 0
                                • gloomyandyundefined
                                  gloomyandy
                                  last edited by

                                  @BeosDoc Can you take a look at the syslog file (/var/log/syslog) and see if you have any lines that look similar to:

                                   systemd[1]: duetcontrolserver.service: Start request repeated too quickly.
                                  
                                  BeosDocundefined 1 Reply Last reply Reply Quote 0
                                  • BeosDocundefined
                                    BeosDoc @gloomyandy
                                    last edited by

                                    @gloomyandy

                                    Yes there is, only 1 occurrence. I have seen it before the other day as well.

                                    Mar  1 09:39:52 duet3 DuetControlServer[30541]: [info] Settings loaded
                                    Mar  1 09:39:52 duet3 DuetControlServer[30541]: [info] Environment initialized
                                    Mar  1 09:39:53 duet3 DuetControlServer[30541]: [fatal] Could not connect to Duet (Timeout while waiting for transfer ready pin)
                                    Mar  1 09:39:53 duet3 systemd[1]: duetcontrolserver.service: Failed with result 'protocol'.
                                    Mar  1 09:39:53 duet3 systemd[1]: Failed to start Duet Control Server.
                                    Mar  1 09:39:53 duet3 systemd[1]: duetcontrolserver.service: Service RestartSec=100ms expired, scheduling restart.
                                    Mar  1 09:39:53 duet3 systemd[1]: duetcontrolserver.service: Scheduled restart job, restart counter is at 5.
                                    Mar  1 09:39:53 duet3 systemd[1]: Stopped Duet Control Server.
                                    Mar  1 09:39:53 duet3 systemd[1]: duetcontrolserver.service: Start request repeated too quickly.
                                    Mar  1 09:39:53 duet3 systemd[1]: duetcontrolserver.service: Failed with result 'protocol'.
                                    Mar  1 09:39:53 duet3 systemd[1]: Failed to start Duet Control Server.
                                    Mar  1 09:39:53 duet3 DuetWebServer[589]: #033[40m#033[1m#033[33mwarn#033[39m#033[22m#033[49m: DuetWebServer.Services.ModelObserver[0]
                                    Mar  1 09:39:53 duet3 DuetWebServer[589]:       Failed to synchronize machine model
                                    Mar  1 09:39:53 duet3 DuetWebServer[589]: System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (111): Connection refused /var/run/dsf/dcs.sock
                                    Mar  1 09:39:53 duet3 DuetWebServer[589]:    at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
                                    Mar  1 09:39:53 duet3 DuetWebServer[589]:    at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
                                    Mar  1 09:39:53 duet3 DuetWebServer[589]:    at DuetAPIClient.BaseConnection.Connect(ClientInitMessage initMessage, String socketPath, CancellationToken cancel$
                                    Mar  1 09:39:53 duet3 DuetWebServer[589]:    at DuetWebServer.Services.ModelObserver.Execute() in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetWebServe$
                                    
                                    

                                    And when I do a systemctl status duetcontrolserver, duet on and pi duet status of Off, I get:

                                    Mar 01 09:53:30 duet3 DuetControlServer[31177]: [warn] Note: RepRapFirmware didn't receive valid data either (code 0xffffffff)
                                    Mar 01 09:53:30 duet3 DuetControlServer[31177]: [warn] Restarting transfer because the number of maximum retries has been exceeded
                                    Mar 01 09:53:30 duet3 DuetControlServer[31177]: [warn] Bad header CRC16 (expected 0x0000, got 0x0272)
                                    Mar 01 09:53:30 duet3 DuetControlServer[31177]: [warn] Note: RepRapFirmware didn't receive valid data either (code 0xffffffff)
                                    Mar 01 09:53:31 duet3 DuetControlServer[31177]: [warn] Bad header CRC16 (expected 0x0000, got 0x0272)
                                    Mar 01 09:53:31 duet3 DuetControlServer[31177]: [warn] Note: RepRapFirmware didn't receive valid data either (code 0xffffffff)
                                    Mar 01 09:53:31 duet3 DuetControlServer[31177]: [warn] Bad header CRC16 (expected 0x0000, got 0x136c)
                                    Mar 01 09:53:31 duet3 DuetControlServer[31177]: [warn] Note: RepRapFirmware didn't receive valid data either (code 0xffffffff)
                                    Mar 01 09:53:31 duet3 DuetControlServer[31177]: [warn] Restarting transfer because the number of maximum retries has been exceeded
                                    Mar 01 10:00:55 duet3 DuetControlServer[31177]: [warn] RepRapFirmware got a bad header checksum
                                    
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • gloomyandyundefined
                                      gloomyandy
                                      last edited by

                                      If you get that message it basically means that systemd will no longer restart the duetcontrolserver service.

                                      The systemd documentation is a little tricky to follow but this message is generated if the service needs to be restarted more than a certain number of times over a period of time. In this case I think the defaults are 5 times in 10 seconds. I think this can happen if the Duet is turned off and the transfer ready pin floats high.

                                      Given that the main purpose of the SBC is to talk to the Duet I'm not sure it really makes sense to disable the service in this way. If you are happy making changes to the rPi config files (worse case you just reinstall everything), you can tell systemd not to disable a service in this situation by adding the following line:

                                      StartLimitIntervalSec=0
                                      

                                      to the [unit] part of the service control file. In this case that file is:

                                      /etc/systemd/system/multi-user.target.wants/duetcontrolserver.service
                                      

                                      if you modify to look like this:

                                      [Unit]
                                      Description=Duet Control Server
                                      StartLimitIntervalSec=0
                                      
                                      [Service]
                                      ExecStart=/opt/dsf/bin/DuetControlServer
                                      TimeoutStopSec=60
                                      Restart=always
                                      Type=notify
                                      User=dsf
                                      Group=dsf
                                      UMask=0002
                                      CapabilityBoundingSet=CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_SYS_TIME
                                      AmbientCapabilities=CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_SYS_TIME
                                      
                                      [Install]
                                      WantedBy=sysinit.target
                                      

                                      Then the action that disables the service should be turned off. Note that after making the change you should run the following commands:

                                      pi@duet3:~ $ sudo systemctl daemon-reload
                                      pi@duet3:~ $ sudo systemctl restart duetcontrolserver
                                      

                                      May be a good idea to make a copy of the file before you edit it.

                                      I've seen the service be disabled when updating firmware on the STM32/LPC port of RRF (that I look after). In that case flashing new firmware is different to the Duet and the firmware restart takes longer which can sometimes trigger systemd to disable the control server. Making the above change seems to fix that problem for me. It would be interesting to see if it helps with your problem.

                                      BeosDocundefined 2 Replies Last reply Reply Quote 1
                                      • Phaedruxundefined
                                        Phaedrux Moderator @BeosDoc
                                        last edited by

                                        @BeosDoc said in Restart DuetControlServer (SBC):

                                        Reseated the ribbon cable...no difference.

                                        Do you have another ribbon cable to test with or possibly make some jumper cables?

                                        @gloomyandy said in Restart DuetControlServer (SBC):

                                        StartLimitIntervalSec=0

                                        I've asked christian to take a look at this. Regardless, the Duet and Pi should be making a connection so the retry shouldn't come into play. Seems like either a bad cable or damaged pins.

                                        Z-Bot CoreXY Build | Thingiverse Profile

                                        BeosDocundefined 2 Replies Last reply Reply Quote 0
                                        • BeosDocundefined
                                          BeosDoc @gloomyandy
                                          last edited by

                                          @gloomyandy

                                          I don't have that file in /etc/systemd/system/multi-user.target.wants

                                          I did find it in /etc/systemd/system/sysinit.target.wants/

                                          Mine at that location is currently:

                                          [Unit]
                                          Description=Duet Control Server
                                          
                                          [Service]
                                          ExecStart=/opt/dsf/bin/DuetControlServer
                                          TimeoutStopSec=15
                                          Restart=always
                                          Type=notify
                                          User=dsf
                                          Group=dsf
                                          UMask=0002
                                          CapabilityBoundingSet=CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_SYS_TIME
                                          AmbientCapabilities=CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_SYS_TIME
                                          
                                          [Install]
                                          WantedBy=sysinit.target
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • BeosDocundefined
                                            BeosDoc @Phaedrux
                                            last edited by

                                            @Phaedrux said in Restart DuetControlServer (SBC):

                                            @BeosDoc said in Restart DuetControlServer (SBC):

                                            Reseated the ribbon cable...no difference.

                                            Do you have another ribbon cable to test with or possibly make some jumper cables?

                                            No other ribbon cable, just the one supplied with your board and I have reseated it. I have short jumper wires I can use. I want to verify the required pins: 19,21,22,23,34 and 20 for ground. Is pin 17 (3.3V) and/or Pin 2/4 (5v) required? SBC has it's own power supply and the duet no jumpers on 5V -> SBC and also SBC ->5V

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