Installing E3D Hemera Extruder on FFCP (+Duet WiFi)



  • Sharing my Extruder installation.
    Hope it will helps others who are considering to install Hemera extruder.

    Custom designed parts:
    https://www.thingiverse.com/thing:4165038
    https://www.thingiverse.com/thing:4173393

    Original Box
    20200210_174110-0001.jpg

    20200210_174116-0002.jpg

    Extruder out of the box
    20200210_174252-0006.jpg 20200210_174240-0005.jpg 20200210_174214-0003.jpg

    Included parts
    20200210_210049-0008.jpg !20200210_174422-0007.jpg

    Installation process begins
    20200210_210413-0009.jpg
    20200210_210958-0012.jpg
    Thermistor
    20200210_211229-0014.jpg
    Heater
    20200210_211419-0015.jpg
    20200210_211726-0016.jpg

    Fan threads
    20200210_213541-0017.jpg
    20200210_213546-0018.jpg
    Thermal paste
    20200213_102345-0020.jpg
    20200213_102537-0021.jpg

    Installing Hotend - Heat block and Nozzle
    20200213_103948-0000.jpg

    Mounting the extruder on teh XY carrige
    20200213_122418-0022.jpg
    Wiring the extruder to Duet board
    20200213_135129-0023.jpg
    20200213_135136-0024.jpg

    Finally, all set
    20200213_135627-0025.jpg

    Editing config file:
    (showing only relevant commands, not the entire config file)

    M569 P3 S1; 				Set (E0) motor drive 3 (P3) goes Forward (S1) 
    M350  E16 I1; 				Set microstepping to x16 step, Interpolation enabled (I1)
    M92 E409; 		                Set axis steps/mm
    M906  E1000 I20; 	                Set motor currents [mA] and motor idle factor in percent (20%)
    M84 S30; 			        Set idle timeout to 30[sec] (S10)
    
    ; Axis kinematics
    M201  E600; 				Set axis maximum accelerations [mm/s^2]
    M566 E120; 				Set axis maximum instantaneous speed changes [mm/min]
    M203  E1200; 				Set axis maximum speeds [mm/min]
    
    ; Heaters & Thermistors
    M305 P1 T100000 B4725 C7.06e-8;		Set thermistor and ADC parameters				
    M143 S285; 							Set maximum heater temperature to 285C
    M307 H1 A346.2 C189.8 D4.3 S1.0; 		Set heating process parameters, Heater1 (H1),Gain (A), time constant (C), Dead time (D), Max PWM 100% (S1.0)
    
    ; Fans
    M106 P1 S0 I0 F250 H1 T35 L1; 	Set fan 1 value, PWM signal inversion and frequency, Thermostatic control is turned on (Extruder0 Fan)
    
    ; Tools
    M563 P0 D0 H1 F0; 		      Define tool 0 (P0), uses Extruder 0(E0) (D0), uses Heater 1 (Actually Heater E0), uses Fan 0 (F0)
    


  • As requested, here is an update, with the new config file, to match RepRap Firmware V3.0

    Note: I completely removed the Z-axis endstop, and I am using Stall detection to home the Z axis.

    ; Configuration file for Duet WiFi V1.0 
    ; Executed by the firmware on start-up
    ; Firmware Version 3.0
    ; Duet Web Control 2.1.4
    ; Last edited on 26.04.2020 by Guyaros
    
    ; General preferences
    G90                                                    ; Set absolute coordinates
    M83                                                    ; Set relative extruder moves
    M550 P"Guyaros Creator Pro"                       ; Set printer name
    
    ; Network
    M552 P"ABCD" S1				         ; Set SSID of network to connect to (P) ,Enable networking as a client (S1)
    M586 P0 S1                                             ; Enable HTTP
    M586 P1 S0                                             ; Disable FTP
    M586 P2 S0                                             ; Disable Telnet
    
    ; Motor Drives
    M569 P0 S1                                             ; physical drive 0 goes forwards
    M569 P1 S1                                             ; physical drive 1 goes forwards
    M569 P2 S1                                             ; physical drive 2 goes forwards
    M569 P3 S1                                             ; physical drive 3 goes forwards
    M584 X0 Y1 Z2 E3                                       ; set drive mapping
    M350 X16 Y16 Z16 E16 I1                                ; configure microstepping with interpolation
    M92 X94.12 Y94.11 Z400.00 E409.00                      ; Set axis steps/mm (Z axis 8x8 TR, XY Pulley 10.82[mm])
    M566 X840.00 Y840.00 Z600.00 E120.00                   ; set maximum instantaneous speed changes (Jerk) (mm/min)
    M203 X9000.00 Y9000.00 Z720.00 E1200.00                ; set maximum speeds (mm/min)
    M201 X5000.00 Y5000.00 Z300.00 E600.00                 ; set accelerations (mm/s^2)
    M204 P1200 T1800				       ; Set print and travel accelrations [mm/s^2] 
    M906 X750 Y750 Z400 E1000 I20                          ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                                ; Set idle timeout to 30[sec]
    
    ; Axis Limits
    M208 X-115 Y-70 Z0 S1                                  ; set axis minima
    M208 X137.6 Y67 Z175.6 S0                              ; set axis maxima
    M564 H0						       ; Allow axis movement before homing
    
    ; Endstops
    M574 X2 S1 P"xstop"                                    ; Configure active-high endstop for high end on X via pin xstop
    M574 Y2 S1 P"^!ystop"                                  ; Configure active-low endstop for high end on Y via pin ystop, Pull up resistor, Invert pin, 
    M574 Z2 S3                                             ; Configure sensorless endstop for high end on Z
    M915 P2 Z S10 F0 				       ; Configure motor stall detection, Z motor, Stall detection threshold, Stall detection filter mode disabled
    
    ; Z-Probe
    ;M558 P0 H10 F120 T5400                                 ; disable Z probe but set dive height, probe speed and travel speed
    ;M557 X-100:130 Y-50:60 S20                             ; define mesh grid
    
    ; Heaters
    ; Bed
    M308 S0 P"bedtemp" Y"thermistor" T94573 B4230          ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0                                  ; create bed heater output on bedheat and map it to sensor 0
    M143 H0 S120                                           ; set temperature limit for heater 0 to 120C
    M307 H0 B0 S1.00                                       ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                                ; map heated bed to heater 0
    M307 H0 A242.2 C901.9 D1.5 S1.0			       ; Set heating process parametersheater, Heater0 (H0), Gain (A242.2), time Constant (C901.9), Dead time (D1.5), maximum PWM 100% (S1.0)
    
    ; Extruder E0 Hotend (E3D Hemera)
    M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1                                   ; create nozzle heater output on e0heat and map it to sensor 1
    M143 H1 S285                                           ; set temperature limit for heater 1 to 285C
    M307 H1 B0 A346.2 C189.8 D4.3 S1.0 		       ; Set heating process parameters, Heater1 (H1),Gain (A), time constant (C), Dead time (D), Max PWM 100% (S1.0)
    
    ; CPU Temp
    M912 P0 S-16.1					 	; Calibrate CPU temp sensor
    
    
    ; Fans
    M950 F0 C"fan0" Q250                                   ; create fan 0 on pin fan0 and set its frequency
    M106 P0 C"BlowerLayerCooling" S0 H-1                   ; set fan 0 name and value. Thermostatic control is turned off
    M950 F1 C"fan1" Q250                                   ; create fan 1 on pin fan1 and set its frequency
    M106 P1 C"HemeraExtruderFan" S1 H1 T40                 ; set fan 1 name and value. Thermostatic control is turned on
    M950 F2 C"fan2" Q250                                   ; create fan 2 on pin fan2 and set its frequency
    M106 P2 C"DuetBoardFan" S0 H-1                         ; set fan 2 name and value. Thermostatic control is turned off
    M950 F3 C"!e1heat" Q250                                ; create fan 3 on pin Heater E1 and set its frequency
    M106 P3 C"RearCoolingFans" S0 H-1                      ; set fan 3 name and value. Thermostatic control is turned off
    
    
    ; Resurrect routine (Power failure)
    M911 S23 R25 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"     ; set voltage thresholds and actions to run on power loss
    
    
    ; Tools
    M563 P0 S"ExtruderE0" 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
    T0                                                     ; select first tool
    
    ; homex.g
    ; called to home the X axis
    ; Edited by Guyaros on 25.04.2020
    
    
    G91                		  ; Set Relative positioning
    M913 X30 				  ; Set X motor current to 30% of its normal current, to avoid ramming in case of crash
    
    ; First pass (Corse movement)
    G1 H1 X290 F3600 		   ; Move quickly to X axis endstop and stop there (first pass)
    G1 H2 X-5 F600    		   ; Go back a few mm
    
    ; Second pass (Fine movement)
    G1 H1 X10 F300  		  ; Move slowly to X axis endstop once more (second pass)
    
    ; Finish
    G90               		  ; Set bsolute positioning
    M913 X100 					; Reset X motor current to normal current 100%
    
    ; homey.g
    ; called to home the Y axis
    ; Edited by Guyaros on 25.04.2020
    
    
    M913 Y40 			 ; Set Y motor current to 40% of its normal current, to avoid ramming in case of crash
    
    ; First pass (Coarse movement)
    G91             		 ; Set Relative positioning
    G1 H1 Y165 F3600 		 ; Move quickly to Y axis endstop and stop there (first pass)
    G1 H2 Y-5 F600  		 ; Go back a few mm
    
    ; Second pass (Fine movement)
    G1 H1 Y10 F300 			 ; Move slowly to Y axis endstop once more (second pass)
    
    ; Finish
    G90            	 		 ; Set Absolute positioning
    M913 Y100 			 ; Reset Y motor current to normal current 100%
    
    ; homez.g
    ; called to home the Z-axis
    ; Edited by Guyaros on 25.04.2020
    
    M98 P"homeZMaxUsingStallDetection.g";		Call to script
    
    ; Script homeZMaxUsingStallDetection.g
    ; Edited by Guyaros on 25.04.2020
    
    M913 Z70				; Reduce current of Z motor to 70%
    
    G91					; Switch to Relative positioning
    G1 H1 Z200 F1200  			; Lower bed all the way down, untill motor stalls	
    
    M913 Z100				; Reset motor currents back to normal 100%
    


  • Thanks Guyaros,

    I was able to do the same conversion on my newer FFCP. Installed the Hemera and Duet Wifi and your configs worked very well. I ended up adding a BLTouch as well which has made homing the Z-axis more accurate plus adds all the benefits of bed levelling and mesh.

    I remixed your Hemera mount to add a mount for the BLTouch and a 5cm post to tie the wiring to. Seems to work very well. I’ll post the remix on Thingiverse.

    Thanks so much for your efforts. Much appreciated!


Log in to reply