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

    Duet 2 Ethernet and SBC

    Scheduled Pinned Locked Moved
    Beta Firmware
    29
    302
    32.7k
    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.
    • A Former User?
      A Former User
      last edited by A Former User

      (Potentially) interesting segway; PCIe to SPI adapter AX99100 PCIe to 2S1SPI Demo Board might allow this to run on x86 etc. Just too bad can't seem to find anyone that sells that model, its all 4S and 2S1P all over the usual chinesium sites.

      https://www.asix.com.tw/development.php?op=DBdetail&PItemID=256

      edit: chip mode is controlled by 3 GPIO lines and the SPI signals are on the parallell port, so moving some 4k7 pull up/down resistors and attaching to the parallell port should could work (if OS supports the SPI driver and moon has the correct phase)

      edit edit: very OT, but what got me thinking was the SAMMY-C21 board might be the easiest option to bridge PCIe to CAN-FD to let linuxcnc use the Duet 3HC/1XD/1LC boards without the 6HC/5LC.

      JoergS5undefined 1 Reply Last reply Reply Quote 1
      • JoergS5undefined
        JoergS5 @A Former User
        last edited by JoergS5

        @bearer said in Duet 2 Ethernet and SBC:

        AX99100 PCIe to 2S1SPI Demo Board

        I cannot find it to buy also. But PCIe would be difficult for me anyway because I use laptops primarily. But your idea led me to the idea of USB3 to SPI as an alternative for PCs, so e.g. AN1999 allows USB hubs with additional SPI interface:
        http://ww1.microchip.com/downloads/en/AppNotes/00001999B.pdf
        Maybe there are products with this chip. The mentioned USB5734 is very interesting, but I found only single chips or expensive eval board so far. The next little PCB project. Now I have a reason to buy a reflow oven 😉

        1 Reply Last reply Reply Quote 1
        • wilrikerundefined
          wilriker
          last edited by

          I tried to look into the communication problem and discovered that today is Murphy's law day. Basically everything failed on me today with no reason at all and totally erratic (worst thing was that my router died completely and I have no internet except for my smartphone). I cannot even get it to run anymore being powered solely from the RPi.

          So nothing new to report yet, unfortunately.

          Manuel
          Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
          with probably always latest firmware/DWC (incl. betas or self-compiled)
          My Tool Collection

          smoki3undefined 1 Reply Last reply Reply Quote 0
          • smoki3undefined
            smoki3 @wilriker
            last edited by

            @wilriker this does't sounds good. good luck you get everything running again

            1 Reply Last reply Reply Quote 0
            • wilrikerundefined
              wilriker
              last edited by

              Finally a short update: it is a firmware issue (or at least one that will somehow needed to be solved in firmware) where the SBC SPI bus and the USART SPI bus polling the TMC driver state interfere although they should not - at least in theory.

              Manuel
              Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
              with probably always latest firmware/DWC (incl. betas or self-compiled)
              My Tool Collection

              smoki3undefined 1 Reply Last reply Reply Quote 1
              • smoki3undefined
                smoki3 @wilriker
                last edited by

                @wilriker said in Duet 2 Ethernet and SBC:

                Finally a short update: it is a firmware issue (or at least one that will somehow needed to be solved in firmware) where the SBC SPI bus and the USART SPI bus polling the TMC driver state interfere although they should not - at least in theory.

                Nice to hear that it could be hopefully fixed by software

                wilrikerundefined 1 Reply Last reply Reply Quote 0
                • wilrikerundefined
                  wilriker @smoki3
                  last edited by

                  @smoki3 Could you please retest with the latest firmware? It's not fixed but so far I can only reproduce this when trying to flash firmware but no other action leads to this issue anymore. Can you confirm? Or else please give a detailed list of when it happens for you.

                  Manuel
                  Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
                  with probably always latest firmware/DWC (incl. betas or self-compiled)
                  My Tool Collection

                  smoki3undefined 2 Replies Last reply Reply Quote 0
                  • smoki3undefined
                    smoki3 @wilriker
                    last edited by

                    @wilriker Sure I will test. Which branch should I use?

                    wilrikerundefined 1 Reply Last reply Reply Quote 0
                    • wilrikerundefined
                      wilriker @smoki3
                      last edited by

                      @smoki3 Regular v3.02-dev branch.

                      Manuel
                      Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
                      with probably always latest firmware/DWC (incl. betas or self-compiled)
                      My Tool Collection

                      1 Reply Last reply Reply Quote 0
                      • wilrikerundefined
                        wilriker
                        last edited by

                        One intermediate thing I noticed: you definitely need a direct ground connection between your VIN PSU and the Raspberry Pi. The connection on the Ethernet/Wifi header is not sufficient for me.

                        Manuel
                        Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
                        with probably always latest firmware/DWC (incl. betas or self-compiled)
                        My Tool Collection

                        smoki3undefined 1 Reply Last reply Reply Quote 0
                        • smoki3undefined
                          smoki3 @wilriker
                          last edited by

                          @wilriker said in Duet 2 Ethernet and SBC:

                          One intermediate thing I noticed: you definitely need a direct ground connection between your VIN PSU and the Raspberry Pi. The connection on the Ethernet/Wifi header is not sufficient for me.

                          First of all, I connected all Rpi GND Pins directly to Ground of the PSU.

                          Then I now tested the new build but unfortunately I get the same results as before. After homing my printer is hanging forever. (I think the "finish message" of the homing get lost.) For information: All my axes getting homed by stall detection besides Z axis.

                          Than also as you already told, I get the checksum errors while flashing a firmware. And it is fine again without VIN connected.

                          wilrikerundefined 1 Reply Last reply Reply Quote 0
                          • wilrikerundefined
                            wilriker @smoki3
                            last edited by

                            @smoki3 Just for completeness: regular status updates (MCU temperatur, input voltage, thermistor temps, etc.) do work normally while VIN is powered, right?

                            Manuel
                            Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
                            with probably always latest firmware/DWC (incl. betas or self-compiled)
                            My Tool Collection

                            smoki3undefined 1 Reply Last reply Reply Quote 0
                            • smoki3undefined
                              smoki3 @wilriker
                              last edited by

                              @wilriker yes this is fine. But this was also fine with the old firmware.

                              wilrikerundefined 1 Reply Last reply Reply Quote 0
                              • wilrikerundefined
                                wilriker @smoki3
                                last edited by

                                @smoki3 Do you have the possibility to change homing to something other than stallGuard to test with that? Using stallGuard would fit into the issue that was found so far that was blocking updates on my setup.

                                Also can you please confirm that print simulation is working? And if possible heating of bed/hotend. So far it looks to be bound to the motion system (the communication to the TMC2660 in particular) but it's unclear if there are other things that will trigger fault states.

                                Manuel
                                Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
                                with probably always latest firmware/DWC (incl. betas or self-compiled)
                                My Tool Collection

                                smoki3undefined 1 Reply Last reply Reply Quote 0
                                • smoki3undefined
                                  smoki3 @wilriker
                                  last edited by smoki3

                                  @wilriker said in Duet 2 Ethernet and SBC:

                                  @smoki3 Do you have the possibility to change homing to something other than stallGuard to test with that? Using stallGuard would fit into the issue that was found so far that was blocking updates on my setup.

                                  Also can you please confirm that print simulation is working? And if possible heating of bed/hotend. So far it looks to be bound to the motion system (the communication to the TMC2660 in particular) but it's unclear if there are other things that will trigger fault states.

                                  To disable stallGuard I have to do some more work. (Solder some endstops and so on, I can do but need some time)

                                  Heating my hotend is fine. It is heating up as it should. Then I now tried to simulate a print: Then I get the same issue as when I try to home my printer. The simulation starts but hang forever. Then I also not able to send any command to the printer. But at this time I don't see any checksum errors in the terminal.

                                  [info] Selected file /opt/dsf/sd/gcodes/Dreher.gcode
                                  [info] Starting file print
                                  [info] File: Optional macro file start.g not found
                                  

                                  I also tried homing all my axis separately and this is working fine.

                                  A Former User? 1 Reply Last reply Reply Quote 0
                                  • smoki3undefined
                                    smoki3
                                    last edited by

                                    Update: I also tried now to simulate a few times more. Now I get some checksum error and resets.

                                    1 Reply Last reply Reply Quote 0
                                    • A Former User?
                                      A Former User @smoki3
                                      last edited by

                                      @smoki3 said in Duet 2 Ethernet and SBC:

                                      To disable stallGuard I have to do some more work. (Solder some endstops and so on, I can do but need some time)

                                      if you disconnect the motors you could just attach some wires to the endstop signal pin and short them to ground to simulate real endstops. you might also want to reduce the feedrate to give you plenty of time to carefully simulate the switches with the short.

                                      smoki3undefined 1 Reply Last reply Reply Quote 0
                                      • smoki3undefined
                                        smoki3 @A Former User
                                        last edited by

                                        @bearer said in Duet 2 Ethernet and SBC:

                                        @smoki3 said in Duet 2 Ethernet and SBC:

                                        To disable stallGuard I have to do some more work. (Solder some endstops and so on, I can do but need some time)

                                        if you disconnect the motors you could just attach some wires to the endstop signal pin and short them to ground to simulate real endstops. you might also want to reduce the feedrate to give you plenty of time to carefully simulate the switches with the short.

                                        I now disabled stall detection in the config. But still not able to run a simulation.

                                        wilrikerundefined 1 Reply Last reply Reply Quote 0
                                        • wilrikerundefined
                                          wilriker @smoki3
                                          last edited by

                                          @smoki3 Can you then please post your config.g as well as your home*.g files?

                                          I was able to simulate a print as well as (air) print without issues. Basically everything worked for me except flashing new firmware so it must be something in your config that I do not have that might help to narrow down the problem further.

                                          Manuel
                                          Duet 3 6HC (v0.6) with RPi 4B on a custom Cartesian
                                          with probably always latest firmware/DWC (incl. betas or self-compiled)
                                          My Tool Collection

                                          smoki3undefined A Former User? 2 Replies Last reply Reply Quote 0
                                          • smoki3undefined
                                            smoki3 @wilriker
                                            last edited by smoki3

                                            @wilriker said in Duet 2 Ethernet and SBC:

                                            @smoki3 Can you then please post your config.g as well as your home*.g files?

                                            I was able to simulate a print as well as (air) print without issues. Basically everything worked for me except flashing new firmware so it must be something in your config that I do not have that might help to narrow down the problem further.

                                            I don't think it has something to do with the config. I believe that the issue is more randomly. Because I sometimes get a "hanging forever printer", sometimes the printer resets.

                                            config.g:

                                            ; General preferences
                                            G90                                                					; Send absolute coordinates
                                            M83                                                					; relative extruder moves
                                            
                                            ;Panel Due
                                            M575 P1 S1 B57600
                                            
                                            ; Drives
                                            M584 X7 Y8 Z0 E5:6:2:1 U9 V4 W3                         			; Map Drives to Axis
                                            M669 K1                                            					; Select CoreXY mode
                                            M569 P0 S0                                         					; Drive 0 goes forwards
                                            M569 P1 S0                                         					; Drive 1 goes forwards
                                            M569 P2 S0                                         					; Drive 2 goes forwards
                                            M569 P3 S1                                         					; Drive 3 goes forwards
                                            M569 P4 S1                                         					; Drive 4 goes forwards
                                            M569 P5 S0                                         					; Drive 5 goes forwards
                                            M569 P6 S1                                         					; Drive 6 goes forwards
                                            M569 P7 S0                                        					; Drive 7 goes forwards
                                            M569 P8 S0                                        					; Drive 8 goes forwards
                                            M569 P9 S0                                        					; Drive 9 goes forwards
                                            M350 X16 Y16 Z16 E16:16:16:16 V16 W16 I1                   			; Configure microstepping with interpolation
                                            M350 U8 I0					   		                    			; Configure microstepping without interpolation
                                            M92 X100 Y100 Z1600 U100 V400 W400 E420:420:420:420          		; Set steps per mm
                                            M566 X600 Y600 Z35 U2 V8 W8 E800:800:800:800         		        ; Set maximum instantaneous speed changes (mm/min)
                                            M203 X35000 Y35000 Z1200 U5000 V1200 W2400 E5000:5000:5000:5000    	; Set maximum speeds (mm/min)
                                            M201 X6000 Y6000 Z400 U500 V400 W400 E2500:2500:2500:2500         	; Set accelerations (mm/s^2)
                                            M906 X1650 Y1650 Z1100 U400 V1000 W1000 E1450:1000:1000:1450 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 U0 V0 W0 S1                          		    	; Set axis minima
                                            M208 X328.5 Y243 Z300 U500 V34 W34 S0                     			; Set axis maxima
                                            
                                            ; Thermal Sensors
                                            M308 S0 P"bedtemp" Y"thermistor" T100000 B3950                   	; Set thermistor + ADC parameters for heater 0
                                            M308 S1 P"duex.e2temp" Y"thermistor" T100000 B4725 C7.060000e-8     ; Set thermistor + ADC parameters for heater 1
                                            M308 S2 P"e0temp" Y"thermistor" T100000 B4725 C7.060000e-8       	; Set thermistor + ADC parameters for heater 2
                                            M308 S3 P"duex.e3temp" Y"thermistor" T100000 B4725 C7.060000e-8     ; Set thermistor + ADC parameters for heater 3
                                            M308 S4 P"duex.e4temp" Y"thermistor" T100000 B4725 C7.060000e-8     ; Set thermistor + ADC parameters for heater 4
                                            
                                            ; Hardware
                                            M950 H0 C"bedheat" T0							; Bed Heater
                                            M950 H1 C"duex.e2heat" T1						; Tool 0 Heater
                                            M950 H2 C"e0heat" T2							; Tool 1 Heater
                                            M950 H3 C"duex.e3heat" T3						; Tool 2 Heater
                                            M950 H4 C"duex.e4heat" T4						; Tool 3 Heater
                                            M950 F0 C"fan0"									; Tool 1 PCF
                                            M950 F1 C"fan1"									; Tool 1 HEF
                                            M950 F3 C"duex.fan3"							; Tool 0 PCF
                                            M950 F4 C"duex.fan4"							; Tool 0 HEF
                                            M950 F5 C"duex.fan5"							; Tool 2 PCF
                                            M950 F6 C"duex.fan6"							; Tool 2 HEF
                                            M950 F7 C"duex.fan7"							; Tool 3 PCF
                                            M950 F8 C"duex.fan8"							; Tool 3 HEF
                                            M950 F9 C"duex.e5heat"							; LED
                                            
                                            ; Max Temp Protection
                                            M140 H0
                                            M143 H0 S140                                   	; Set temperature limit for heater 0 to 140C
                                            M143 H1 S275                                   	; Set temperature limit for heater 1 to 270C
                                            M143 H2 S275                                   	; Set temperature limit for heater 2 to 270C
                                            M143 H3 S275                                   	; Set temperature limit for heater 3 to 270C
                                            M143 H4 S275                                   	; Set temperature limit for heater 4 to 270C
                                            
                                            ; Fanmapping
                                            M106 P3 S0 I0 F500 H-1 C"Tool 0"               	; Set fan 3 value, PWM signal inversion and frequency. Thermostatic control is turned off
                                            M106 P0 S0 I0 F500 H-1 C"Tool 1"               	; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
                                            M106 P5 S0 I0 F500 H-1 C"Tool 2"               	; Set fan 5 value, PWM signal inversion and frequency. Thermostatic control is turned off
                                            M106 P7 S0 I0 F500 H-1 C"Tool 3"               	; Set fan 7 value, PWM signal inversion and frequency. Thermostatic control is turned off
                                            M106 P9 S0 I0 F500 H-1 C"LED"               	; Set LED value, PWM signal inversion and frequency. Thermostatic control is turned off
                                            M106 P4 S1 I0 F500 H1 T75                      	; Set fan 4 value for Tool 0, PWM signal inversion and frequency. Thermostatic control is turned on
                                            M106 P1 S1 I0 F500 H2 T75                      	; Set fan 1 value for Tool 1, PWM signal inversion and frequency. Thermostatic control is turned on
                                            M106 P6 S1 I0 F500 H3 T75                      	; Set fan 6 value for Tool 2, PWM signal inversion and frequency. Thermostatic control is turned on
                                            M106 P8 S1 I0 F500 H4 T75                      	; Set fan 8 value for Tool 4, PWM signal inversion and frequency. Thermostatic control is turned on
                                            
                                            ; Endstops
                                            ;M915 H300 X Y S4 R0 F0 	    					; Set Stall detection sensitivity
                                            ;M915 V S2 H350 F0 R0                        	; Calibration
                                            ;M915 W S2 H350 F0 R0                          	; Cleaner
                                            ;M574 Y1 S3                           			; Set endstops controlled by motor load detection
                                            ;M574 X1 S3                            			; Set endstops controlled by motor load detection
                                            ;M574 U0                             			; Set endstops controlled by motor load detection
                                            ;M574 V1 S3                           			; Set endstops controlled by motor load detection
                                            ;M574 W1 S3                         				; Set endstops controlled by motor load detection
                                            
                                            ; Z-Probe
                                            M558 K0 P5 C"^!zprobe.in" H3 F180 T25000	   	; Z probe connected to Z endstop input
                                            G31 K0 X0 Y0 Z0.15 P500          	            ; Set Z probe offset + naher ran - weiter weg
                                            M557 X10:290 Y20:180 S40 					   	; Define mesh grid
                                            
                                            ; Tool Probe
                                            M558 K1 P8 C"!e0stop" H5 F80 T3000  		  	; Tool probe connected to Z endstop input
                                            G31 K1 X0 Y0 Z0 P500          	               	; Set Z probe offset + naher ran - weiter weg
                                            
                                            ; Tools
                                            M563 P0 D0 H1 F3                               	; Define tool 0, Fan 3
                                            M563 P1 D1 H2 F0                               	; Define tool 1, Fan 0
                                            M563 P2 D2 H3 F5                               	; Define tool 2, Fan 5
                                            M563 P3 D3 H4 F7                               	; Define tool 3, Fan 7
                                            
                                            ; PID Settings Tools
                                            M307 H1 A595.9 C199.5 D4.5 S1.00 V24.1 B0      	; Set PID settings tool 0
                                            M307 H2 A775.0 C252.4 D8.2 S1.00 V24.1 B0      	; Set PID settings tool 1
                                            M307 H3 A716.5 C237.1 D8.7 S1.00 V24.1 B0      	; Set PID settings tool 2
                                            M307 H4 A567.7 C241.0 D6.7 S0.80 V24.1 B0      	; Set PID settings tool 3
                                            M307 H0 A181.4 C631.5 D4.9 S1.00 V24.1 B0      	; Bed PID Settings
                                            
                                            ; Tools Temperatures
                                            G10 P0 R0 S0                                   	; Set initial tool 0 active and standby temperatures to 0C
                                            G10 P1 R0 S0                                   	; Set initial tool 1 active and standby temperatures to 0C
                                            G10 P2 R0 S0                                   	; Set initial tool 2 active and standby temperatures to 0C
                                            G10 P3 R0 S0                                   	; Set initial tool 3 active and standby temperatures to 0C
                                            
                                            ; Calibrate MCU Temperature
                                            M912 P0 S-8
                                            
                                            ; LED
                                            M106 P9 S0.5
                                            
                                            ; DAA
                                            M593 F50
                                            
                                            ; Pressure Advance
                                            ; M572 D0:3 S0.5
                                            M572 D1:2 S0.05
                                            
                                            ; Load config override
                                            M501
                                            

                                            homeall.g:

                                            ; homeall.g
                                            ; called to home all axes
                                            
                                            M98 P"/sys/homey.g"
                                            
                                            M98 P"/sys/homex.g"
                                            
                                            M98 P"/sys/homez.g"
                                            
                                            M98 P"/sys/homeu.g"
                                            
                                            M98 P"/sys/homev.g"
                                            
                                            M98 P"/sys/homew.g"
                                            

                                            homex.g:

                                                
                                            ; homex.g
                                            ; called to home the x axis
                                            
                                            G91 			; use relative positioning
                                            G1 H2 X0.5 Y-0.5 F10000		; energise
                                            
                                            M913 X25 Y25		; drop motor currents to 50%
                                            
                                            G1 H2 Z3 F5000		; lift Z 3mm
                                            G1 H1 X-400 F3200 	; move left 400mm, stopping at the endstop
                                            G4 P100
                                            G1 X2 F2000 		
                                            G1 H2 Z-3 F1200		; lower Z
                                            G90 			; back to absolute positioning
                                            
                                            M400 			; make sure everything has stopped before we reset the motor currents
                                            G4 P100			; wait 400ms
                                            M913 X100 Y100 		; motor currents back to 100%
                                            
                                            

                                            homey.g:

                                            
                                            ; homey.g
                                            ; called to home the Y axis
                                            
                                            G91 			; use relative positioning
                                            G1 H2 X0.5 Y-0.5 F10000		; energise
                                            
                                            M913 X25 Y25 		; drop motor currents to 25%
                                            
                                            
                                            G1 H2 Z3 F5000		; lift Z 3mm
                                            G1 H1 Y-400 F3200 	; move to the front 400mm, stopping at the endstop
                                            G4 P200
                                            G1 Y2 F2000 		
                                            G1 H2 Z-3 F1200		; lower Z
                                            G90 			; back to absolute positioning
                                            
                                            M400 			; make sure everything has stopped before we reset the motor currents
                                            G4 P100			; wait 400ms
                                            M913 X100 Y100 		; motor currents back to 100%
                                            

                                            homez.g:

                                            ; homez.g
                                            ; called to home the Z axis
                                            ;
                                            ; generated by RepRapFirmware Configuration Tool on Wed Sep 19 2018 21:12:53 GMT+0200 (Mitteleuropäische Sommerzeit)
                                            G29 S2
                                            G1 H2 Z3 F5000		; lift Z 3mm
                                            G1 X150 Y100 F25000 ; go to first probe point
                                            G30              ; home Z by probing the bed
                                            G91
                                            G1 Z20 F2500
                                            G90              ; absolute positioning
                                            G1 X0 Y-40 F25000
                                            

                                            homeu.g:

                                            ; homeu.g
                                            ; called to home the U axis (coupler)
                                            
                                            ;crashu
                                            G92 U500
                                            M913 U40
                                            G1 U-500 F2400
                                            M400
                                            M913 U100
                                            G1 U1 F5000
                                            G92 U0			
                                            
                                            ;Open Coupler
                                            M98 P"/macros/Toolhead/1. Toolhead unlock"
                                            

                                            homev.g:

                                            G91
                                            M913 V70		; drop motor currents to 50%
                                            
                                            G1 H1 V-50 F1000 	; move left 400mm, stopping at the endstop
                                            G4 P100
                                            G1 V2 F600 		
                                            G90 			; back to absolute positioning
                                            
                                            M400 			; make sure everything has stopped before we reset the motor currents
                                            G4 P100			; wait 400ms
                                            M913 V100 		; motor currents back to 100%
                                            

                                            homew.g:

                                            G91
                                            M913 W70		; drop motor currents to 50%
                                            
                                            G1 H1 W-50 F1000 	; move left 400mm, stopping at the endstop
                                            G4 P100
                                            G1 W2 F600 		
                                            G90 			; back to absolute positioning
                                            
                                            M400 			; make sure everything has stopped before we reset the motor currents
                                            G4 P100			; wait 400ms
                                            M913 W100 		; motor currents back to 100%
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA