Can't configure external drivers, Pt100 boards and tools

  • I am new to the DuetWifi and is trying to set up a configuration with the following components:

    • 3 Teknic step/dir servos (CPM-SDSK-2311S-ELS) for xyz using the Duet Expansion Header Breakout. It is a cartesian machine
    • 2 stepper motors for extruders using the built in drivers on the DuetWifi using a 24V power supply.
    • 3 Pt100 sensors using two stacked Pt100 boards from Duet3D and the E3D Pt100 sensors used for bed and extruders.

    1 - In the M569 command I have to use R0 = enable is a LOW signal. The servo driver has a enable at HIGH and works that way when tested with an Arduino Uno. This works but is strange. I have connected + on the Expansion Board to + on the servo. Is correct to assume that R0 = enable at LOW?

    2 - The temperature for the thee Pt100 does not show up when connected to the DuetWiFi. Tools shows one line:
    -Bed, Heater 0 and 22.9C.

    Heaters show one line:
    -Bed and 22.8C.

    When I disconnect by clicking the topLeft button in the web interface Tools show three lines:

    • Tool 0 ,Heater 1, n/a
    • Tool 1, Heater 2, n/a
    • Bed, Heater 0, n/a

    Heaters show three lines:
    Heater 1, n/a
    Heater 2, n/a
    Bed, n/a

    My intent was to define MyBed, MyHeater1 and MyHeater2 with [c]M305 P0 X200 SMyBed[/c] command.

    3 - When I try to test extrude there is no tools defined. This is also true when I look under Settings in the web interface and select Tool. No tools are shown. I used the [c]M563 P0 SMyTool_0 D3 H1[/c] command.

    If someone have any advice it would be greatly appreciated.

    I am using the web interface for tests. The hardware and firmware are:

    Firmware Electronics:	        Duet WiFi 1.0
    Firmware Version:	        1.20 (2017-12-23)
    WiFi Server Version:            1.20
    Web Interface Version:          1.20

    I have included the config.g file that I made starting from a Prusai3 file that I found. I have followed the guide for how to set up a machine but currently it does not work.

    ; Black Ghost 3DP printer 2
    ; ***** Delete ****** Prusa i3 config file for dc42 Duet firmware
    ; Prologue and  comms section
    M111 S1                                                 ; Debug off=S0 0n=S1
    M550 PBlackGhost3DP	                                ; Machine name (can be anything you like)
    ;M551 Pxxxxxxxx                                         ; Machine password
    ;*** If you have more than one Duet on your network, they must all have different MAC addresses, so change the last digits
    M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED                     ; MAC Address
    ;*** ;*** Wifi Networking
    M552 S1			                                ; Enable WiFi
    M555 P2                                                 ; Set output to look like Marlin
    M575 P1 B57600 S1	                                ; Comms parameters for PanelDue
    ;Remap drives
    M584 X5 Y6 Z7 E3:4			                ;Map the x,y,z to the external drives that start on 5, Default extruders, five axes
    ; Movement section
    M569 P5 S1 R0 T2                                        ; Drive 5 goes forwards (change to S0 to reverse it) R1=High Enable T2=2 micros pulse for external driver
    M569 P6 S1 R0 T2                                        ; Drive 6 goes forwards
    M569 P7 S1 R0 T2                                        ; Drive 7 goes forwards
    M569 P3 S1 R0                                           ; Drive 3 goes forwards
    M569 P4 S1 R0                                           ; Drive 4 goes forwards
    M574 X1 Y1 Z0 S1					; set endstop configuration (X and Y endstops only, at low end, active high)
    M906 E500:500						;Set motor current for extruder stepper (mA)
    ;									M906 X800 Y800 Z800 E1000           ; Set motor currents (mA)
    M201 X800 Y800 Z15 E1000                                ; Accelerations (mm/s^2)
    M203 X15000 Y15000 Z15000 E15000                        ; Maximum speeds (mm/min)
    M566 X600 Y600 Z30 E20                                  ; Minimum speed change mm/minute
    M208 X200 Y200 Z200					; set axis maxima (adjust to suit your machine)
    M208 X0 Y0 Z-0.2 S1					; set axis minimum (adjust to make X=0 and Y=0 the edge of the bed)
    M350 X1 Y1 Z1 E16:16 I1                                 ; Set no micro steps for servos and 16 for extruders, turn on interpolation
    ;									M350 X16 Y16 E16 I1  		  		; Set 16x microstepping with interpolation
    M92 X160 Y160 Z640					; Set axis steps/mm. 3200 steps/turn. 20mm lead for x and y and 5mm for z.
    M92 E420:420                       			; Set extruder steps per mm
    G21                                                     ; Work in millimetres
    G90                                                     ; Send absolute coordinates...
    M83                                                     ; ...but relative extruder moves
    ; Z probe section
    ;							M558 P1 X0 Y0 Z1 H3 F200 T5000		; Smart IR Z probe, used for homing Z axis, dive height 3mm, probe speed 200mm/min, travel speed 5000mm/min
    ;							G31 X11.0 Y0.5 Z1.20 P500           ; Set the probe height and threshold (put your own values here)
    ; Heater and thermistor section
    M305 P0 X200 SMyBed					; RTD1 Lower board pt100
    M305 P1 X201 SMyHeater1					; RTD2 Lower Board pt100
    M305 P2 X202 SMyHeater2					; RTD1 Higher Board pt100
    ;M301 H1 P10 I0.10 D100 T0.50 S1.0	                ; PID settings for extruder 0
    ;M301 H2 P10 I0.10 D100 T0.50 S1.0	                ; PID settings for extruder 1
    M570 S120						; Increase to allow extra heating time if needed
    ; M141 for chamber heater
    ; Tool definition section
    M563 P0 SMyTool_0 D3 H1                                 ; Define tool 0 to use extruder drive 3 and heater 1
    G10 P0 S0 R0                                            ; Set tool 0 operating and standby temperatures
    ;*** If you have a dual-nozzle build, un-comment the following 2 lines
    M563 P1 SMyTool_1 D4 H2                                 ; Define tool 1
    G10 P1 S0 R0                                            ; Set tool 1 operating and standby temperatures
    ; Bed probe section (not needed if you use a bed.g file)
    ;*** Adjust the XY coordinates in the following M557 commands to suit your build and the position of your Z probe
    ;							M557 P0 X60 Y0                      ; Four... 
    ;							M557 P1 X60 Y165                    ; ...probe points...
    ;							M557 P2 X200 Y165                   ; ...for bed...
    ;							M557 P3 X200 Y0                     ; ...levelling
    ;							M557 P4 X141 Y82.5                 ; 5th probe point for levelling (un-comment this to get a 5th point at the centre of the bed)
    ; Epilogue
    ;*** If you are using axis compensation, put the figures in the following command
    M556 S78 X0 Y0 Z0                                       ; Axis compensation here
    T0							; select first hot end

  • administrators

    1. Yes, we invert the enable signal on the stepper expansion breakout board so that the default active low enable works with external drivers.

    2. In the M305 commands the tool names after the S parameter letter must be enclosed in double quotes e.g.

    M305 P2 X202 S"MyHeater2" ; comment

    3. See 2.

  • 1 . OK
    2 and 3. Should the S be within the double quotes, or is it S"MyHeater2". Yes, I saw that when I tested each individual code manually. It is different for the M550 and M551
    4. It still does not work. Both the M305 and M563 does not work. M563 says that there is no such driver. Is the M584 correct?
    5. Is it possible to turn on micro stepping using the M92 command when you have external drivers with one step per micro step (Hmmm….)? The M92 is not happy with the Z-driver.

  • administrators

    2 and 3. The S should be outside the quotes - my example was incorrect.

    4. You should use D0 and D1 in the M563 commands.

    5. If you use external drivers then the microstepping it determined by the settings of those drivers and is not under the control of the Duet.

  • 2 and 3. OK
    4. Works fine, thank you. The logic between physical and logical declarations are not quite clear to me and I have found no description of it.
    5. In the config file I now use [c]M350 X1 Y1 Z1 E16:16 I1[/c]. Should it be replaced with [c]E16:16 I1[/c]?
    6. The temperature for the lower Pt100 board (bed and heater 1) shows room temperature. The temperature for the top Pt100 board shows 2000C. This is an old board that I bought from Duet3D a year ago, with soldering pads to connect 2-wire Pt100. I have connected and measured the outer screw connections. I use E3D Pt100 from Duet3D. The sensor measures 100 Ohm. The config.g sections is

    ; Heater and thermistor section
    M305 P0 X200 S"MyBed"	              ; RTD1 Lower board pt100
    M305 P1 X201 S"MyHeater1"             ; RTD2 Lower Board pt100
    M305 P2 X202 S"MyHeater2"             ; RTD1 Higher Board pt100
    ;M301 H1 P10 I0.10 D100 T0.50 S1.0    ; PID settings for extruder 0
    ;M301 H2 P10 I0.10 D100 T0.50 S1.0    ; PID settings for extruder 1
    M570 S120			      ; Increase to allow extra heating time if needed

    Am I missing something?

  • administrators

    5. If your X and Y drivers are external then E16:16 I1 is correct. But this is the default anyway.

    6. Are you sure you are using the correct input on the second PT100 board, the one labelled RTD1 to match the X202 in your M305 command? Have you tried using RTD2 and X203 instead?

    Also your M570 command format is obsolete.

  • 6. Yes, the connection is correct. I have now tried several version of shifting Pt100 and assigning sensors to different channels. I have also shifted the stacking order of the two boards and then all sensors show 2000C. I think that I can say quite certain that it is a hardware problem, probably the top board or the connection between the boards. I think the best would be to have two new boards in case the connection on the board showing correct temperatures is correct. Do you regard one board as a warranty?

    Thank you for the information about the M570 command!

  • I placed an order for two new boards.

  • administrators

    Did you try taking the upper board and fitting it as the only board, with the PT100 sensors that were working with the original lower board connected to it? If you did and that didn't work, then claim a warranty replacement for that board.

  • OK, I can try that. What is the logic behind doing that?
    For a short while I got a reading of around 60C.
    You already shipped two new boards that I ordered, so that is fine.

  • administrators

    If both channels (X200 and X201) on a board work when you have it correctly jumpered and it is the only board plugged into the daughter board connector and you don't also have a PanelDue (or other external SD card) connected via the CONN_SD connector, then the board is almost certainly OK. Whereas if it doesn't work in that configuration, then either it is incorrectly jumpered, or there is a fault in your PT100 wiring (but we know it worked with your other board), or the board is faulty.

    Future PT100 board shipments will include a separate 100R resistor to make it easier for users to test them, but existing stocks of PT100 boards don't include this resistor.

  • I tried with only the faulty Pt100 board connected and two Pt100 and both read 2000C. I also tried with and without the display connected and it did not make a difference.

    Now I under stand what there was a resistor in the package to the newer Pt100 board:)

    I will have the new Pt100 boards tomorrow so I can test that it works on Friday.

  • I got the new boards yesterday and installed one new. Everything is working fine now. Do you want the faulty board back for analysis or should I toss it? I could put it in a normal letter.

  • administrators

    I'm glad you got it working. Please keep the faulty board until your warranty claim is approved. I'll discuss with my colleagues whether we want it back.


Looks like your connection to Duet3D was lost, please wait while we try to reconnect.