Installing E3D Hemera Extruder on FFCP (+Duet WiFi)
Guyaros last edited by Guyaros
Sharing my Extruder installation.
Hope it will helps others who are considering to install Hemera extruder.
Extruder out of the box
Installation process begins
Installing Hotend - Heat block and Nozzle
Mounting the extruder on teh XY carrige
Wiring the extruder to Duet board
Finally, all set
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)
Guyaros last edited by
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%
Zebble last edited by
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!