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

    Duet 3 + SBC Connection Issues

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    4
    9
    542
    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.
    • HebigTundefined
      HebigT
      last edited by HebigT

      Running into a connection problem when connected to an SBC

      @chrishamm & @gtj0 have been helping me quite a lot with this (last several posts on this thread):

      https://forum.duet3d.com/topic/11777/duet-3-and-jetson-nano/71?_=1579111810551

      (I'm starting a new thread to get more exposure since that thread is getting quite long, and now that my issue seems to be not unique to the Jetson Nano)


      The Problem:

      I can connect to the Duet via DWC (thermistors and endstops read correctly), but I can't send gcode commands to the Duet (console just hangs forever.)

      I've tried this with 3 different SBC configurations with the same result:
      1). Jetson Nano (initially)
      2). RPi running Raspbian (to rule out any problem with the Jetson)
      3). RPi with DuetPi (to rule out any problem with Rasbian)

      DSF installed without issues in all cases.

      What I have tried:
      1). Ensuring correct TransferReadyPin & adjusting SPI frequency in /opt/dsf/conf/config.json (SPI frequency is currently set to 2MHz)
      2). trying the above SBC configurations
      3). Confirming ribbon cable is connected correctly
      4). Swapping to a different ribbon cable

      Searching for a cause:
      1). Monitoring in Debug mode yields:

      jpomo@jpomo-desktop:~$ sudo /opt/dsf/bin/DuetControlServer
      Duet Control Server v1.2.3.0
      Written by Christian Hammacher for Duet3D
      Licensed under the terms of the GNU Public License Version 3
      
      [info] Settings loaded
      [info] Environment initialized
      [debug] Lost connection to Duet
         System.OperationCanceledException: Board is not available (no header)
         at DuetControlServer.SPI.DataTransfer.ExchangeHeader() in /home/christian/duet/DuetSoftwareFramework/src/DuetControlServer/SPI/DataTransfer.cs:line 965
         at DuetControlServer.SPI.DataTransfer.PerformFullTransfer(Boolean mustSucceed) in /home/christian/duet/DuetSoftwareFramework/src/DuetControlServer/SPI/DataTransfer.cs:line 154
      [error] Duet is not available
      

      Possibly Helpful:
      1). stopping duetcontrolserver via terminal causes a popup in DWC that reads "Operation failed (Reason: Transport endpoint in not connected)" In this case I tried to send M122

      General Info:

      • Duet 3 V1.0
      • RRF 3.0 (lastest stable)
      • DSF on all SBC configs updated through terminal, "sudo apt-get update" etc.

      My Config.g generated by the configuration tool (note: my Duet's SD card contains only the sys folder, is this correct?)

      ; Configuration file for Duet 3 (firmware version 3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v2.1.5 on Thu Jan 09 2020 15:58:52 GMT-0700 (Mountain Standard Time)
      
      ; General preferences
      G90                                                              ; send absolute coordinates...
      M83                                                              ; ...but relative extruder moves
      M550 P"Duet 3"                                                   ; set printer name
      
      M667 S1                                                          ; select CoreXY mode
      
      ; Drives
      M569 P0.0 S1                                                     ; physical drive 0.0 goes forwards
      M569 P0.2 S1                                                     ; physical drive 0.2 goes forwards
      M569 P0.1 S1                                                     ; physical drive 0.1 goes forwards
      M569 P0.5 S1                                                     ; physical drive 0.5 goes forwards
      M569 P0.3 S1                                                     ; physical drive 0.3 goes forwards
      M569 P0.4 S1                                                     ; physical drive 0.4 goes forwards
      M584 X0.0 Y0.2 Z0.1 E0.5:0.3:0.4                                 ; set drive mapping
      M350 X16 Y16 Z16 E16:16:16 I1                                    ; configure microstepping with interpolation
      M92 X100.00 Y100.00 Z1600.00 E409.00:409.00:100.00               ; set steps per mm
      M566 X900.00 Y900.00 Z12.00 E120.00:120.00:120.00                ; set maximum instantaneous speed changes (mm/min)
      M203 X30000.00 Y30000.00 Z1200.00 E300000.00:300000.00:300000.00 ; set maximum speeds (mm/min)
      M201 X6000.00 Y6000.00 Z400.00 E2500.00:2500.00:500.00           ; set accelerations (mm/s^2)
      M906 X1400 Y1400 Z1000 E1000:1000:400 I30                        ; set motor currents (mA) and motor idle factor in per cent
      M84 S120                                                         ; Set idle timeout
      
      ; Axis Limits
      M208 X-35 Y-49 Z0 S1                                             ; set axis minima
      M208 X328.5 Y243 Z300 S0                                         ; set axis maxima
      
      ; Endstops
      M574 X1 S0 P"io6.in"                                             ; configure active-low endstop for low end on X via pin io6.in
      M574 Y1 S0 P"io7.in"                                             ; configure active-low endstop for low end on Y via pin io7.in
      M574 Z1 S1 P"io8.in"                                             ; configure active-high endstop for low end on Z via pin io8.in
      
      ; Z-Probe
      M558 P5 C"io5.in" H5 F120 T6000                                  ; set Z probe type to switch and the dive height + speeds
      G31 P500 X0 Y0 Z2.5                                              ; set Z probe trigger value, offset and trigger height
      M557 X-20:215 Y-34:195 S20                                       ; define mesh grid
      
      ; Heaters
      M308 S0 P"temp0" Y"thermistor" T100000 B4138                     ; configure sensor 0 as thermistor on pin temp0
      M950 H0 C"out0" T0                                               ; create bed heater output on out0 and map it to sensor 0
      M143 H0 S210                                                     ; set temperature limit for heater 0 to 210C
      M307 H0 B1 S1.00                                                 ; enable bang-bang mode for the bed heater and set PWM limit
      M140 H0                                                          ; map heated bed to heater 0
      M308 S1 P"temp1" Y"thermistor" T100000 B4725                     ; configure sensor 1 as thermistor on pin temp1
      M950 H1 C"out1" T1                                               ; create nozzle heater output on out1 and map it to sensor 1
      M143 H1 S300                                                     ; set temperature limit for heater 1 to 300C
      M307 H1 B0 S1.00                                                 ; disable bang-bang mode for the nozzle heater and set PWM limit
      M308 S2 P"temp2" Y"thermistor" T100000 B4725                     ; configure sensor 2 as thermistor on pin temp2
      M950 H2 C"out2" T2                                               ; create nozzle heater output on out2 and map it to sensor 2
      M143 H2 S300                                                     ; set temperature limit for heater 2 to 300C
      M307 H2 B0 S1.00                                                 ; disable bang-bang mode for the nozzle heater and set PWM limit
      
      ; Fans
      M950 F0 C"out4" Q500                                             ; create fan 0 on pin out4 and set its frequency
      M106 P0 S0 H-1                                                   ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"out5" Q500                                             ; create fan 1 on pin out5 and set its frequency
      M106 P1 S0 H-1                                                   ; set fan 1 value. Thermostatic control is turned off
      M950 F2 C"out7" Q500                                             ; create fan 2 on pin out7 and set its frequency
      M106 P2 S1 H1 T45                                                ; set fan 2 value. Thermostatic control is turned on
      M950 F3 C"out8" Q500                                             ; create fan 3 on pin out8 and set its frequency
      M106 P3 S1 H2 T45                                                ; set fan 3 value. Thermostatic control is turned on
      
      ; Tools
      M563 P0 S"L-Hemera" 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
      M563 P1 S"R-Hemera" D1 H2 F1                                     ; define tool 1
      G10 P1 X0 Y0 Z0                                                  ; set tool 1 axis offsets
      G10 P1 R0 S0                                                     ; set initial tool 1 active and standby temperatures to 0C
      
      ; Custom settings are not defined
      
      ; Miscellaneous
      M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"               ; set voltage thresholds and actions to run on power loss
      

      Any help is appreciated!

      tobias_munichundefined 1 Reply Last reply Reply Quote 0
      • gtj0undefined
        gtj0
        last edited by

        @jpomo10 Can you connect the Duet3's USB port to a computer (even the SBC) and get an M122 dump?

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

          I doubt an M122 dump would reveal anything new - as mentioned in the other thread, I think the main reason why this isn't working is because the Jetson Nano cannot communicate with the Duet 3 over SPI (hence the "no header" error message).

          If DCS is able to connect from your Raspberry Pi, please share the debug log. To get it, do this on the Pi:

          sudo systemctl stop duetcontrolserver
          sudo /opt/dsf/bin/DuetControlServer --log-level debug
          

          Also make sure there is no microSD card in the Duet 3.

          Duet software engineer

          HebigTundefined 1 Reply Last reply Reply Quote 0
          • gtj0undefined
            gtj0
            last edited by

            Actually, I was looking for

            === Linux interface ===
            State: 0, failed transfers: 0
            Last transfer: 26ms ago
            RX/TX seq numbers: 22864/301
            SPI underruns 0, overruns 0
            Number of disconnects: 0
            Buffer RX/TX: 0/0-0
            

            from the M122.

            BUT I think that you hit it with the SDCard. If there's a /sys/config.g file on it, the Duet3 will operate in standalone mode.

            1 Reply Last reply Reply Quote 0
            • tobias_munichundefined
              tobias_munich @HebigT
              last edited by

              This post is deleted!
              1 Reply Last reply Reply Quote 0
              • tobias_munichundefined
                tobias_munich
                last edited by tobias_munich

                What do you mean....
                You have all sys files on the sd-Card?
                are you having a physical card in your duet3 board?

                If you work with an SBC you should not have an SD Card inserted in your duet-board.
                If so, please take it out and try again...

                HebigTundefined 1 Reply Last reply Reply Quote 0
                • HebigTundefined
                  HebigT @chrishamm
                  last edited by

                  @chrishamm

                  pi@raspberrypi:~ $ sudo systemctl stop duetcontrolserver
                  pi@raspberrypi:~ $ sudo /opt/dsf/bin/DuetControlServer --log-level debug
                  Duet Control Server v1.2.3.0
                  Written by Christian Hammacher for Duet3D
                  Licensed under the terms of the GNU Public License Version 3
                  
                  [info] Settings loaded
                  [info] Environment initialized
                  [warn] RepRapFirmware got a bad header checksum
                  [info] Connection to Duet established
                  [info] IPC socket created at /var/run/dsf/dcs.sock
                  [debug] IPC#2: Got new UNIX connection, checking mode...
                  [debug] IPC#2: Subscription processor registered
                  [debug] IPC#3: Got new UNIX connection, checking mode...
                  [debug] IPC#3: Command processor added
                  [debug] IPC#3: Received command ResolvePath
                  
                  1 Reply Last reply Reply Quote 0
                  • HebigTundefined
                    HebigT @tobias_munich
                    last edited by HebigT

                    @tobias_munich

                    😳

                    I mean... the SD card would probably explain it. I see what I missed in the documentation now. Thanks for pointing it out.

                    Standalone.JPG
                    @gtj0 @chrishamm

                    Thank you for your help on this, aswell! I'm glad it was simple, but I'm sorry to take us around in circles.

                    Still not working on the Jetson, but I'll adjust SPI frequency as you suggested and see if I can get anywhere.

                    tobias_munichundefined 1 Reply Last reply Reply Quote 0
                    • tobias_munichundefined
                      tobias_munich @HebigT
                      last edited by

                      @jpomo10 always a pleasure 👍

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