Ender 5 Pro Hemera Bltouch upgrade to Duet Wifi Firmware 3



  • This is my detailed guide to upgrade a Ender 5pro with Hemera and Bltouch from Creality silent board 1.15 to Duet 2 Wifi with Firmware 3.0
    The printer used to run silently and without major issues, but the reduced menus and lack of wifi connectivity were enough reasons to upgrade.
    I had the printer for only 4 months.
    The upgrade was not simple and I have several configuration questions.
    Thanks to Phaedrux and Mitch for the great discussions posted in the forum

    I am struggling with several things

    Endstops (When homing the machine crush against the endstops)
    Homing (If the printing head is away from the home position, multiple homing makes the head move around the bed, never to the home place)
    Bed Compensation (Probing goes out of the bed)

    I am trying to offer as many details as possible. Once we made it right I plant to post this guide corrected for others that like to follow later

    Let's start with a picture.
    I have extended the X axis by displacing the front bar of the printer to recover the space lost by the hemera volume
    By Bed dimensions are 220 X 220 X 300 mm

    Ender 5 Pro Hemera Bltouch Duet 2 wifi.jpg





  • ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sat Apr 18 2020 11:08:21 GMT-0400 (Eastern Daylight Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"Daniel's Ender 5 pro" ; set printer name

    ; Network
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S1 ; physical drive 0 goes forwards
    M569 P1 S1 ; physical drive 1 goes forwards
    M569 P2 S0 ; physical drive 2 goes backwards
    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 X80.00 Y80.00 Z792.00 E409.00 ; set steps per mm
    M566 X600.00 Y600.00 Z18.00 E300.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X30000.00 Y30000.00 Z300.00 E1500.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z100.00 E5000.00 ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z0 S1 ; set axis minima
    M208 X220 Y220 Z300 S0 ; set axis maxima

    ; Endstops
    M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
    M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop
    M574 Z1 S2 ; configure Z-probe endstop for low end on Z

    ; Z-Probe
    M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch
    M558 P9 C"zprobe.in+zprobe.mod" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X-45 Y3 Z2.5 ; set Z probe trigger value, offset and trigger height
    M557 X15:160 Y15:200 S20 ; define mesh grid

    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; 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
    M308 S1 P"e0temp" Y"pt1000" R4700 ; configure sensor 1 as PT1000 on pin e0temp
    M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
    M143 H1 S300 ; set temperature limit for heater 1 to 300C
    M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit

    ; Fans
    M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
    M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
    M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on

    ; Tools
    M563 P0 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

    ; Custom settings are not defined

    ; Miscellaneous
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss


  • Moderator

    Hi Daniel, lets see if we can get it sorted out. That looks like a very nice build/conversion.

    @Daniel said in Ender 5 Pro Hemera Bltouch upgrade to Duet Wifi Firmware 3:

    M558 P9 C"zprobe.in+zprobe.mod" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds

    Part of the problem for the BLTouch is the C value for the pins. You should remove the +zprobe.mod. The configurator has it selected by default, but it is not required for most probe types. The rest of the command looks fine.

    Can you also post your deployprobe and retractprobe macros? Does the probe pin deploy and retract when you send M401 and M402?

    Also post your homing macros so we can see what it's trying to do during homing.

    You may find this guide useful for testing your printer during commissioning, from endstops to motor directions, etc..

    https://duet3d.dozuki.com/Guide/Ender+3+Pro+and+Duet+Maestro+Guide+Part+3:+Commissioning/39



  • Phaedrux, I am a chemical engineer by trade. 3D printing is a hobby for me. I Am 53 years old and I speak 4 languages. To be said, I have never been so frustrated with a toy in my whole life. Not even as a kid.
    I cant get anything to work with this Duet 2Wifi. Nice lights, good file management and wifi stability. But It made my chinese printer a brick
    You suggested before for me to go back to 2.05
    After much of the last four days trying to make this work, The system can not see the endstops. The lights on the mother board turn red, when the endstops close the circuit, but as far as the software goes, it is like raining in timbuktu.

    Is any stable firmware that I can go back to?
    Is any configuration for an ender 5 pro that I can copy to at least get this thing to work?
    How do you go back to a 0 installation?

    Thanks D


  • Moderator

    Can you send M122 in the console and post the response? That will help us verify the versions currently installed.

    Firmware version 3 is fine. The config just has to match. So please post your homing files so we can see what's up with the endstops.

    @Phaedrux said in Ender 5 Pro Hemera Bltouch upgrade to Duet Wifi Firmware 3:

    Can you also post your deployprobe and retractprobe macros? Does the probe pin deploy and retract when you send M401 and M402?
    Also post your homing macros so we can see what it's trying to do during homing.



  • @Phaedrux
    This is the response to M122 command
    4/18/2020, 7:55:22 PM M122
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 3.0 running on Duet WiFi 1.02 or later
    Board ID: 08DJM-9178L-L4MSN-6J9FD-3S86T-180LP
    Used output buffers: 3 of 24 (15 max)
    === RTOS ===
    Static ram: 30516
    Dynamic ram: 91712 of which 0 recycled
    Exception stack ram used: 264
    Never used ram: 8580
    Tasks: NETWORK(ready,688) HEAT(blocked,1240) MAIN(running,3740) IDLE(ready,156)
    Owned mutexes:
    === Platform ===
    Last reset 00:03:20 ago, cause: software
    Last software reset at 2020-04-18 19:51, reason: User, spinning module GCodes, available RAM 8764 bytes (slot 3)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d
    Error status: 0
    Free file entries: 10
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest block write time: 0.0ms, max retries 0
    MCU temperature: min 13.7, current 14.6, max 14.9
    Supply voltage: min 23.8, current 24.0, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, SG min/max not available
    Driver 1: standstill, SG min/max not available
    Driver 2: standstill, SG min/max not available
    Driver 3: standstill, SG min/max not available
    Driver 4: standstill, SG min/max not available
    Date/time: 2020-04-18 19:55:21
    Cache data hit count 542714382
    Slowest loop: 5.70ms; fastest: 0.09ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Move ===
    Hiccups: 0(0), FreeDm: 169, MinFreeDm: 169, MaxWait: 0ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    === GCodes ===
    Segments left: 0
    Stack records: 1 allocated, 0 in use
    Movement lock held by null
    http is idle in state(s) 0
    telnet is idle in state(s) 0
    file is idle in state(s) 0
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon is idle in state(s) 0
    queue is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 15.52ms; fastest: 0.00ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
    HTTP sessions: 1 of 8

    • WiFi -
      Network state is running
      WiFi module is connected to access point
      Failed messages: pending 0, notready 0, noresp 0
      WiFi firmware version 1.23
      WiFi MAC address bc:dd:c2:2d:35:93
      WiFi Vcc 3.40, reset reason Turned on by main processor
      WiFi flash size 4194304, free heap 25184
      WiFi IP address 192.168.1.66
      WiFi signal strength -51dBm, reconnections 0, sleep mode modem
      Socket states: 0 0 0 0 0 0 0 0


  • This is the deploy Macro

    ; deployprobe.g
    ; called to deploy a physical Z probe
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sat Apr 18 2020 19:50:27 GMT-0400 (Eastern Daylight Time)
    M280 P0 S10 ; deploy BLTouch



  • @Phaedrux

    This is the retractprobe macro

    ; retractprobe.g
    ; called to retract a physical Z probe
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sat Apr 18 2020 19:50:27 GMT-0400 (Eastern Daylight Time)
    M280 P0 S90 ; retract BLTouch



  • @Phaedrux
    This is the home all macro

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sat Apr 18 2020 19:50:27 GMT-0400 (Eastern Daylight Time)
    G91 ; relative positioning
    G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 X-225 Y-225 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
    G1 H2 X5 Y5 F6000 ; go back a few mm
    G1 H1 X-225 Y-225 F360 ; move slowly to X and Y axis endstops once more (second pass)
    G90 ; absolute positioning
    G1 X60 Y12 F6000 ; go to first bed probe point and home Z
    G30 ; home Z by probing the bed

    ; Uncomment the following lines to lift Z after probing
    ;G91 ; relative positioning
    ;G1 Z5 F100 ; lift Z relative to current position
    ;G90 ; absolute positioning



  • @Phaedrux

    In my brain, Standing in front of the printer, the 0 x and 0 y is where the end of the run switches are. Meaning, back right corner. When those switches are closed, the lights in the motherboard turn red.
    When the printer turns on, the Bl touch goes up and down 2 times and then the light remains red and the prob is retracted.



  • @Phaedrux

    M401 and M402 work fine deploying and retracting the probe.


  • Moderator

    @Daniel said in Ender 5 Pro Hemera Bltouch upgrade to Duet Wifi Firmware 3:

    In my brain, Standing in front of the printer, the 0 x and 0 y is where the end of the run switches are. Meaning, back right corner.

    Ok, this is fine. We'll roll with that mental model. Technically this is a 180 degree rotation of the "normal" way of doing it, but it's all relative.

    Your config is currently setup to work this way, but the one thing we need to verify is the direction of the motors so that when you send a negative movement command they move to the right and rear towards the endstops.

    So can you do a test for me?

    With the printer powered off, manually move the print head to the center in X and Y.

    When the printer is freshly powered on, go to the gcode console.

    Send these commands:

    G92 X100 Y100
    G91
    G1 X-10
    G1 Y-10

    Does the print head move towards the endstops in both cases?

    @Daniel said in Ender 5 Pro Hemera Bltouch upgrade to Duet Wifi Firmware 3:

    M401 and M402 work fine deploying and retracting the probe.

    That's good. Did you also remove the +zprobe.mod from the M558 command in config.g?



  • @Phaedrux
    This is the last config file matching all the other files you see above.
    I promise not to touch anything else until you return to me.

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sat Apr 18 2020 19:50:27 GMT-0400 (Eastern Daylight Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"Daniel Ender 5" ; set printer name

    ; Network
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S1 ; physical drive 0 goes forwards
    M569 P1 S1 ; physical drive 1 goes forwards
    M569 P2 S0 ; physical drive 2 goes backwards
    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 X80.00 Y80.00 Z800.00 E409.00 ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E300.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X18000.00 Y18000.00 Z600.00 E1200.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z50.00 E5000.00 ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z0 S1 ; set axis minima
    M208 X220 Y220 Z300 S0 ; set axis maxima

    ; Endstops
    M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
    M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop
    M574 Z1 S2 ; configure Z-probe endstop for low end on Z

    ; Z-Probe
    M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch
    M558 P9 C"zprobe.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X-45 Y3 Z2.5 ; set Z probe trigger value, offset and trigger height
    M557 X15:160 Y15:200 S20 ; define mesh grid

    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; 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
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; 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 S280 ; set temperature limit for heater 1 to 280C
    M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit

    ; Fans
    M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
    M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
    M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on

    ; Tools
    M563 P0 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

    ; Custom settings are not defined


  • Moderator

    @Daniel said in Ender 5 Pro Hemera Bltouch upgrade to Duet Wifi Firmware 3:

    M92 X80.00 Y80.00 Z800.00 E409.00 ; set steps per mm

    Also we should test that your z axis steps per mm is correct at 800. In addition to the test above in the console, send the following making sure that your bed is safely away from your nozzle.

    G92 Z0
    G91
    G1 Z10

    This should move the bed 10mm down away from the nozzle. If it does anything else, kill the power.

    Measure how far it actually moves.



  • @Phaedrux
    From me standing in front of the printer

    G1 X-10 moved right
    G1 Y-10 moved back


  • Moderator

    Ok, now what happens if you test the endstops as described here: https://duet3d.dozuki.com/Guide/Ender+3+Pro+and+Duet+Maestro+Guide+Part+3:+Commissioning/39#s145



  • @Phaedrux

    The G1 Z10 moved the bed exactly 10.27mm downwards



  • Before I moved anything, with the head in the center of the bed (approx) the endstops look like this
    402528a9-ac2d-48c9-ba5c-dc459b372105-image.png

    What it is basically wrong. They are opened.



  • @Phaedrux
    When I close the circuit by pushing the trigger, both Circuits change to "No"

    This is really confusing, Triggered means closed or open?



  • @Phaedrux
    What would be the right switch to choose between all this?
    0ee16afa-a0e4-410b-906f-ae9dd57b1829-image.png



  • @Phaedrux

    xstop,
    Xstop inverted
    xstop pull up
    xstop inverted pull up

    or should I changed in the next page?



  • @Phaedrux
    4885e28b-3ff6-493e-b5d7-7cdc778b2872-image.png

    You also said my logic was inverted 180 degrees. How should I look at all this (I am left handed and brain washed) 😉



  • @Phaedrux

    I believe we should choose in this last screen, Active low, High end to reverse the screen and finally change the direction of the motors by selecting reverse direction in X and Y.

    What say you? I am going to give it a try....
    Then - X would be with the motor moving to the left and -Y would be with the motor moving towards the front....and it will match the deviation of the bltouch probe in -x (45 and 3) +y


  • Moderator

    Sorry for the delay.

    For the endstops we can change them in config.g

    M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
    M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop
    

    Change the S1 to S2 for both. Then test the endstops again.


Log in to reply