A couple of questions

  • Hello fellow makers, I’ve some questions that have been bothering me for some time. I will ask them all here to avoid making lots of threads. If you have the time to answer any of them, I would really appreciate it.

    1). What does it mean M555 P2 “output to look like Marlin”? I’ve it like this at the moment, but what changes if I set it to RepRap Firmware?

    2). For a 750w 220v Silicone Bed Heater, what type SSR should I look for?
    2A). A 10a one is fine or with more amps?
    2.B) Does it need to have some special requirements like the DC-DC ones? The one that I’m using atm for my 24v DC heated bed is an Auber with a low voltage drop.

    3). PID or Bang Bang for the AC heated bed?

    4). If I remove the M301 code from the config.g file, what happens? It changes to bang bang or uses PID but self calibrated?

    5). I’ve a 4” PanelDue. Is the “M575 P1 B57600 S1” code necessary for it to work properly?

    6). Why the extruder is written like this “M92 E810:810”? I’ve one btw and copied the config.g from another user when I first commissioned the printer. Should it be “M92 E810” instead? I’m guessing that the : is for 2 extruders right?

    Thanks for the help.

  • administrators

    1. Without M555 P2, USB host programs such as Pronterface may have trouble understanding replies that the Duet sends. That command only affects the format of replies sent to USB or via Telnet.

    2a. 10A should be OK, or you can use 25A.
    2b. Any zero-crossing (not random fire) DC-AC SSR with 10A or more capacity should be OK. Almost all DC-AC SSRs are zero-crossing unless otherwise stated.

    3. PID is OK.

    4. You shouldn't use M301. Use M307 instead.

    5. For the highest reliability, you should always use that line if you have a PanelDue. It does no harm even if you don't have one.

    6. Yes, the E810:810 is for 2 extruders.

  • Amazing as always David, thanks for the answers.

  • This is the SSR I use:


    At $5, can't beat the price. Has an indicator light (so it's obvious when it's on). I mounted it to a heat sink, but it does not get warm in my use, so that is probably over kill.

    Will handle 24-380VAC for the heater and can be switched by 3-32VDC. It is rated at 25A so this should work for practically anyone.

    I assume it is made in China so is probably available outside the US easily.

  • One word of caution, terminals 1 & 2 are LIVE MAINS VOLTAGE. So make sure kiddies cannot get their fingers on them!

  • I'm forcing myself into understanding this firmware and how to properly adjust it to my needs. So, the CoreXY build is currently on hold, first I want to be able to create a config.g file from scratch for my Delta using the RRF Tool. But… some things are confusing me.

    1) Using the RRF Tool, Finish tab, FAN1.
    “Initial value of this fan when turned on”

    If I set here a value of 50% and set this fan a thermostatic one, when I set an operating temperature, it starts heating but the fan never achieves full power. Measured with the multimeter and it reads 6vDc. EDIT//// This is a 12vDC system.

    Is this tab for limiting the max current? Or this shouldn’t happen at all?

    2) When setting the bed as PID instead of bang-bang, the RRF Tool generates this gcode:
    [c]M301 H0 S1.00 P10 I0.1 D200 T0.4 W180 B30 ; Use PID on bed heater (may require further tuning).[/c]

    Should I delete this line and then run a PID tune?

    What I would do:
    1. Run: “M303 H0 P1 S100”
    2. Add the “M307” line to config.g with the values obtained.

    3) For both the Bed and Hotend, do I need to add B0 at the end of the M307?

    4) I don’t use any sort of probe or auto leveling, nor bed or axis compensation.
    Can this lines be removed from the config.g?

    [c]M208 Z0 S1 ; Set minimum Z
    M558 P5 X0 Y0 Z1 H5 F1200 T2400 ; Z probe and compensation definition
    M557 R110 S15 ; grid compensation
    G31 X0 Y0 Z-.05 ; Set the zprobe offset and threshold (determine your printer's Z offset value).
    M556 S78 X0 Y0 Z0 ; Axis compensation here[/c]

    5) Considering question 4.
    Can I delete bed.g, deployprobe.g and retractprobe.g?

    6) What are tfree0.g, tpost0.g and tpre0.g for? Delete them too?

    7) Inside the sys folder, I’ve iap.bin and iap4e.bin. Do I need them both?

    😎 This is my current config.g file, still need to tweak PID for hotend and bed.
    Can someone take a look? I wonder if something is missing.

    ; Configuration file for Duet Delta 
    ; General Preferences <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    M111 S0 					; Debugging off
    G21 						; Work in millimetres
    G90 						; Send absolute coordinates...
    M83 						; ...but relative extruder moves
    M555 P2 					; Set firmware compatibility to look like Marlin
    M665 R136.1 L292.5 B120 H293.55 		; Set delta radius, diagonal rod length, printable radius and homed height
    ; Drives Direction <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    M569 P0 S1 					; Drive 0 goes forwards (X)
    M569 P1 S1 					; Drive 1 goes forwards (Y)
    M569 P2 S1 					; Drive 2 goes forwards (Z)
    M569 P3 S0 					; Drive 3 goes backwards (E0) E3D TitanAero
    M569 P4 S0 					; Drive 4 goes backwards (E1) SIN USAR
    ; Endstops <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    M574 X2 Y2 Z2 S1 				; All endstops at high end, active high
    M666 X0 Y0 Z0 					; Put your endstop adjustments here, or let auto calibration find them
    ; Acceleration, Jerk and Speeds <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    M201 X500 Y500 Z500 E1000 			; Set accelerations (mm/s^2)
    M566 X900 Y900 Z900 E1200 			; Set maximum instantaneous speed changes (mm/min)
    M203 X18000 Y18000 Z18000 E3600 		; Set maximum speeds (mm/min)
    ; Motor Steps, Microstepping and Current <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    M92 X160 Y160 Z160 E810 			; XYZ and E0 steps per mm
    M350 X32 Y32 Z32 E16	 			; XYZ and E0 microstepping
    M906 X1500 Y1500 Z1500 E900 I60 		; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 					; Set idle timeout
    ; Thermistors and Heaters <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    M143 H1 S290 					; Set maximum heater temperature to 290c
    M143 H0 S120 					; Set maximum bed temperature to 120c
    M305 P0 T100000 B3950 C0 R4700 			; P=0 Bed Thermistor
    M305 P1 T100000 B4138 C7.06e-8 R4700 		; P=1 Extruder Thermistor 104GT
    ; M301 H0 S1.00 P10 I0.1 D200 T0.4 W180 B30 	; Use PID on bed heater (may require further tuning). STOCK FROM RRF CONFIG TOOL
    ; Tool Head <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    M563 P0 D0 H1 					; Tool 0 uses extruder drive 0 and heater 1 (and Fan0)
    G10 P0 X0 Y0 Z0 				; Set tool 0 axis offsets
    G10 P0 R0 S0 					; Set initial tool 0 active and standby temperatures to 0C
    ; WiFi Network <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    M550 PDuetDelta 				; Set machine name
    M552 S1 					; Enable network
    M587 STinArnt P"30041446martin" 		; Configure access point and IP addresses.
    M586 P0 S1 					; Enable HTTP
    M586 P1 S0 					; Disable FTP
    M586 P2 S0 					; Disable Telnet
    M575 P1 B57600 S1				; Comms parameters for PanelDue
    ; Fans <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    M106 P0 S0 I0 F500 H-1 				; FAN0, Layer Fan, Thermostatic control OFF
    M106 P1 S1 I0 F500 H1 T45 			; FAN1, Hotend Fan, Thermostatic control ON
    M106 P2 S1 I0 F500 H-1	 			; FAN2, SIN USAR, Thermostatic control OFF
    ; Miscellaneous <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    T0 						; Select first tool

    Thanks for the patience.

  • administrators

    1. For thermostatic fans you normally want 100%. This is the speed that the fan will run at when the temperature is above the threshold.
    2. Yes, delete the M301 line and run a heater tune.
    3. I think that should be added automatically.
    4. Use P0 in the M558 command, that allows you to use manual probing.
    5. Delete deployprobe and retractprobe, but if you generate a bed.g file for your printer then you will be able to auto calibrate it using manual probing.
    6. They are for tool changing, not needed on a single extruder printer.
    7. You need only iap4e.bin only for the Duet WiFi/Ethernet, and iap.bin for the older Duets.

  • Thanks again David.
    One thing though, it seems that when setting steps/mm other than x16 it is necessary to first use M350 and then M92.

    This works:

    ; Motor Steps, Microstepping and Current <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    M350 X32 Y32 Z32 E16 I1	 			; XYZ and E0 microstepping
    M92 X160 Y160 Z160 E810 			; XYZ and E0 steps per mm
    This does not. It still uses the x16 stock microstepping:

    ; Motor Steps, Microstepping and Current <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    M92 X160 Y160 Z160 E810 ; XYZ and E0 steps per mm
    M350 X32 Y32 Z32 E16 I1 ; XYZ and E0 microstepping

    I've checked the wiki: [https://duet3d.com/wiki/G-code#M350:_Set_microstepping_mode](https://duet3d.com/wiki/G-code#M350:_Set_microstepping_mode)
    Not trying to be harsh, it kinda does explain it, but it's confusing. Maybe add a note?
    BTW, don't know if it's firmware related, just in case.
    Firmware Version: 1.20beta2
    WiFi Server Version: 1.20beta2
    Web Interface Version: 1.19.3

  • administrators

    I'm sorry, which part of the M350 description don't you understand?

  • Sorry, it must be me due to my difficulty of reading in another language. What lead me to confusion was that I didn’t know that it was imperative to use M350 before M92. Wiki example A) shows first M92 with settings for x16 microstepping (which actually changes nothing) and then M350. If the M92 is deleted there, it still works with x16 miscrostepping, right?. So why add that line in that order? It could be written like example B) and it will work the same.

    But well, it was my fault for messing with the RRF config file. It was just too tempting to reorganize all the g-codes and add different titles and such 🙂

    Thanks for the quick reply.

  • administrators

    The point is that when you use M350 to change the microstepping, the steps/mm that you already had at that point are automatically changed accordingly. So both examples and up using x128 microstepping and 640 steps/mm for X and Y.


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