Ender 3 V2 BLTouch Firmware Installation Guide by Smith3D [Updated –13 November 2022]

Ender 3 v2 bltouch firmware installation guide by smith3d.com [updated –13 november 2022]

BLTouch Installation

Ender 3 v2 bltouch firmware installation guide by smith3d.com [updated –13 november 2022]
Ender 3 v2 bltouch firmware installation guide by smith3d.com [updated –13 november 2022]
If you are using a different extension wire, please pay attention to the wire colors above.

BLTouch Mount

BLTouch Mount for Ender3 V2 Link here (Use the two screws provided by BLTouch to screw it in.)

Firmware

* Last Update from Jyers has been 1 year ago, Professional Firmware has more features but setup guide maybe different.

The very first thing you should to is go into Control > Advanced and adjust Probe Offset X to -42 & Probe Y Offset -10 (Printed Mount). and Control > Store Setting.

If you are using Creality official BL-Touch set, you have to set it to Probe X Offset -44 & Probe Y Offset -6.

MountProbe X OffsetProbe Y Offset
Custom Mount V3-42-10
Creality Official Mount-44-6

Video Guide by CHEP : https://www.youtube.com/watch?v=TroPjdkSEOY (Video guide doesn’t include manual leveling, do make sure you do manual bed leveling after adjust the z offset)

Unless your system is well tuned, please use the firmware above instead of high speed. Slow Probe & 5 x 5, which is great for first time tuning.

[8th April] As for Smith3D firmware, we have depreciated our firmware & move on to Jyer firmware as it offer much better features & functionality.

For BTT Filament Sensor & Standard Filament sensor, do enable them
inside Control > Advanced > Filament Sensor/Runout Distance

If you have never change your motherboard, it’s 4.2.2 by default

For 4.2.2 5×5 (High Speed) – download here
For 4.2.7 Board 5×5 (High Speed) – download here
For more info regarding this release
For people who’s suffering random probe fails, please refer to the FAQ below for z switch port firmware.

If flashed & auto leveling doesn’t work, please reset configuration (Control > Restore Default) or try to flash again with different filename. If you are getting Black screen, do format your MicroSD Card to FAT32 and rename the firmware & try again.

Older Build (V1.3.5b)

If you are facing issue on newer builds, you may try the older build

What’s BL Touch High Speed Mode?

  • The high speed mode probes multiple points without stowing the needle, making it much much faster. But also prone to crashes if your bed is severely slanted. Please make good use of Manual leveling before you try this.

For Ender 3 V2 no bootloader installation is required. Copy the firmware into your SD card and then slot it in, the printer will begin flashing once you reboot it. Do remember that you need a different filename each time you flash a new firmware eg. firmware1.1bin > firmware1.2bin, else the system will ignore it.

For user who would prefer official firmware from Creality, you may check this guide here

Some UI customizations the community has added

Ender 3 v2 bltouch firmware installation guide by smith3d.com [updated –13 november 2022]
For Manual Leveling, please refer to CHEP guide https://www.youtube.com/watch?v=_EfWVUJjBdA

Some other features were offered compared to Stock firmware

  • Turn on and off display during printing
  • PID Autotune Menu
  • Change Filament menu
  • Adjust probe offset, filament sensor in the menu
  • __h__m Time Format Setting

And remember to add “M420 S1” in Cura!

Ender 3 v2 bltouch firmware installation guide by smith3d.com [updated –13 november 2022]
VERY IMPORTANT Add M420 S1; after the G28 in your start G-code in the starting G-code of your cura profile. To enable leveling on every prints. As the current marlin for Ender 3 V2 is unable to make “leveling enabled” persistent after reboot. M420 S1; Enable ABL (If you are getting error for Fade Height) This line of code always appear in other printer profile such as CR10SProV2/Ender5Plus where there is BLTouch built in.

You can also add G29 for Bed Leveling before every prints

Instead of adding the M420 S1 command above. You can replace it with G29 (Place it after G28). G29 basically starts a new round of auto bed leveling , good for users who would prefer a fresh bed leveling before every prints.

Nozzle Crashing Into Bed?

Ender 3 v2 bltouch firmware installation guide by smith3d.com [updated –13 november 2022]

Steps to produce a good leveling

  • Once you setup the Probe Offset X & Probe Offset Y, Store Setting and go to Prepare > Auto Home. Make sure your probe is directly at the center of the bed.
Ender 3 v2 bltouch firmware installation guide by smith3d.com [updated –13 november 2022]
Picture by CHEP
  • Start with Manual leveling to make sure the bed is leveled as much as you can, by manually adjusting bed spring. This is to reduce the amount of Z compensation ABL will need to apply when printing. Please refer to CHEP’s guide for how you can level your bed with a piece of paper. The firmware has included the buttons needed for printer to go to all 4 corners + center so you don’t have to do it via a gcode print file.
  • After the bed is leveled, get a good Z-offset by using the Prepare > Z-Offset. Remember to pre-heat your nozzle while using this as any remaining material stuck on nozzle tip might interfere the result while gauging with A4 paper. This tool will Auto home and then move Z to 0 to show actual Z offset. Prepare a paper to put between nozzle and bed, then try sliding it in and out, Microstep Up/Down & adjust Z offset until you feel a little friction between paper and nozzle. Use Home Z-Axis to double confirm if the z offset is the right one.
Ender 3 v2 bltouch firmware installation guide by smith3d.com [updated –13 november 2022]
Picture by CHEP
  • Once you got your Z offset, go to main menu and press “Leveling”. It will probe 5×5 points and save the mesh to your printer.
  • Done and start printing!
  • Again, it’s very important to heat up nozzle to 180-200 while using Z-offset (if there is PLA in nozzle) Else the Z-offset will vary a lot depending on the leftover material stuck on nozzle tip.

What if you are not getting an accurate Z Offset from the Tool? (Live Adjust Z Offset)

Sometimes moving the Z axis up and down bit by bit might cause a little slippages, which makes the Z-Offset gauging with A4 paper inaccurate.

Ender 3 v2 bltouch firmware installation guide by smith3d.com [updated –13 november 2022]
Picture by CHEP

If you want a better gauging result. We recommend user to adjust Z Offset via Tune during printing

FAQ

Z-axis won’t budge

Pay attention to the wiring color, some wires are inverted. If you are using 3rd party wiring, most probably the last two orange and yellow are inverted. You have to manually revert it back using a tweezer.

Black Screen of Death after flashed

Please follow this reddit link for full guide on how to do a proper flash
In summary
– Use newly formated sd card, with only bin file
– Rename bin file
– Unplug & reconnect power cord

Bltouch probe not centered / change probe offset

adjust Control > Advanced > Probe Offset X & Probe Offset Y

Manual Leveled & still printing in mid air or nozzle hitting the bed

Use slow probe 5×5 firmware to see if the situation is improving, if not check if your M420/G29 is added inside the start of gcode. Use either G29 or M420. Remember to save setting after leveled.

Sometimes Probe doesn’t finish during leveling

Solution 1:
Some users has issue with the bltouch port. the trigger signal or ground is not attached properly. Connect the two pin to the z switch stop & flash the firmware below.

Ender 3 v2 bltouch firmware installation guide by smith3d.com [updated –13 november 2022]

Download 2.0.x.17 ZSwitchStop 5×5 Fast Smith3d Marlin Firmware

Solution 2:
Try connect via Pronterface and check what’s the error code returned.

Summary (this reddit link explained in detail)
– Make sure bed not totally out of level, probe may out of reach or nozzle hit the bed first
– Check if your bed is badly warped
– Check if your bltouch pin is bent
– Check the XY axis wheel tension
– Check the Z axis for binding

Solution 3:
There is a resistor fix for this, you can solder a resistor and use the bltouch port.

Ender 3 v2 bltouch firmware installation guide by smith3d.com [updated –13 november 2022]

Setting is not saved

Remember to click “Control > Store Setting” everytime you setup completed. Check if eeprom is deleted in SD Card.

OctoPrint Settings

Power Lose Recovery doesn’t work

Power Lose Recovery only works when it reached certain layer. check your SD card if there is a PLR file exist. PLR determine if to display the Resume Printing message.

Motor making noises and freeze during print.

This will happen if you just flashed the firmware & does not reset the configuration. Just turn off and on your printer will do, restore default setting. Another possible issue is the dupont connectors on the motherboard loosen, do hot glue the connectors in place or upgrade it to 5 pin JST connector.

Sometimes UI/ print progress bar does not reflect to the latest

Known marlin bug. Restart, press back, will do.

Can I use 3DTouch or BLTouch older than v3.1?

May not compatible, this firmware is optimized for BLTouch v3.1.

Where can I get the source code? How to compile?

Github Repository is here.

If you are having issue compiling your own marlin, remember to set default_envs = STM32F103RET6_creality in platform.ini

How to donate?

Please donate to Marlin Firmware & https://www.paypal.com/paypalme/jyers. Without them, there will be no great firmware for Ender 3 V2

What happens If I don’t want a BLTouch anymore?

You may revert your firmware to the official non-BLTouch firmware downloadable via this link – https://www.creality.com/pages/download-ender-3-v2

3D Printer Repair Service by Smith3D

If you are around Kuala Lumpur, Malaysia and would prefer an expert to service your Creality 3D Printer, check out our repair 3D printer service.

1,297 thoughts on “Ender 3 V2 BLTouch Firmware Installation Guide by Smith3D [Updated –13 November 2022]

  1. Schuhbacca says:

    Hey Smith3D Team,

    thx for your great Firmwares. This helped me really out, because my 4.2.2 Board on Ender 3 V2 was damaged and I had to replace it with 4.2.7.

    Is there any chance, that you do more variants of the 4.2.7 Firmware like 4.2.2. Especially a slow probe version and a version without BL touch would be great. I think more and more peaole have to use the reülace 4.2.7 boards…Thank you very much!

    Greetings from Germany
    Dennis

  2. Niels van der Schaaf says:

    After aplying the firmware my Z-axis won’t move down, it only goes up.
    On the official firmware of Creality it was ok.

  3. Niels van der Schaaf says:

    After installing this firmware my Z-axis won’t move anymore. With the official firmware of creality it did!

    What I’m supposed to do?

  4. zeke.amoranto says:

    Thank you for all your efforts with the firmware. I have been using it for a while now and it works great. But i recently changed to direct drive with the BLTouch mount on the right side of the hotend assembly. Now it can’t level becausethe last point is going out of the bed area. What is the solution for this. I hope you can help me. Thanks

  5. LebaneseMo says:

    Thanks for continuing to work on this and for your great firmware. Feel I need to say this each time 🙂

    I am however back on version 2.0.x.9 as found 2.0.x.13 had some of the bugs that have appeared since 2.0.x.9, which for me is still the best version at present.

    2.0.x.13 issues…
    – The issue of the print recovery file remaining on the SD after a cancelled print and power recycle has returned. Had to manually delete the file before it would stop prompting me on the interrupted print job

    – Z offset live adjust is broken again. When I try to increase by -0.01 it moved the nozzle a lot more than that and pressed it right against the glass bed, damaging it. This happened to me twice before I decided to downgrade back to 2.0.x.9.

    Love the new features/fixes on 2.0.x.13, such as the SD card refresh for example, however I found the bugs mentioned above were not worth the trade off for me in versions after 2.0.x.9.

    Again really appreciate all of your hard work and hope this feedback helps with improvements 🙂

    • Weirder says:

      “– Z offset live adjust is broken again. When I try to increase by -0.01 it moved the nozzle a lot more than that and pressed it right against the glass bed, damaging it. This happened to me twice before I decided to downgrade back to 2.0.x.9.

      Second this, just damaged the bed. I look forward to a fix. Thanks for the work.

        • weirder says:

          A bit afraid to do again as I dont want to damage the bed more. If you know a way to test without bed damage, let me know and i’ll try and reproduce. But if i remember correctly: during a live print (1 layer, bed level test squares) i moved the z offset down slightly a few times, then moved it up by 0.01 or 0.02 steps, then moved it back down by 0.01 steps which is when it moved down maybe 0.1 or 0.2 steps instead of 0.01.

      • decesare.rob says:

        Same, everything is working fine except live Z adjust. And also print recovery fails in Z-height when restarting (e.g. starting from a higher Z level from the Z it stopped)

          • decesare.rob says:

            Yeah print recovery works fine but live Z-adjust doesn’t. It seems like if you do a bed level, then store the settings, load settings and then start a new print, it seems not be saving the mesh correctly. Because as soon you try to adjust the z live offset, it will go down in the bed no matter what value you selected. Don’t know if going in negative Z is a problem in the firmware. When checked at Z offset = 0 everything was working properly.

  6. RebelPine says:

    Hello, I have E3V2 with 4.2.7 board and everything seems to be setup correctly. I’ve compiled my own non-bltouch software and it works perfectly, tried compiling from your source but the BLtouch pin will not trigger on homing. It triggers when first booting up. Will not react to M119 command though. Very strange. I have my bltouch wired up like your diagram so in theory it should work right? I have a feeling if I wired the two last wires to the z-stop pins and made some firmware changes it will work, but I would like to use the BLtouch port like in your diagram if possible. I used your ‘Smith3D-E3V2-2.0.x.13-5×5-V427.bin’ with no luck. Any theories? Why would it fire on startup but not with the M119 command? Thank you, love the UI changes

    • Smith3D says:

      is your last two wire inverted? make sure the color sequence is correct. for 4.2.7 we only changed the board name in the configuration, everything remain the same

  7. Rusty says:

    I have BLTouch v3.1 and Ender 3 v2 4.2.2. I have tried firmware versions c2.0.X.9 through 13, currently using v13 for 4.2.2 Filament Sensor 5×5 (High Speed) firmware , but all have performed the same way. After leveling the board with Aux leveling and setting z-offset, when I choose Leveling, it will randomly stop midway through the leveling process. It might stop at 1st point, last point, or anywhere in between. Sometimes it does complete the leveling without issue, all without making any other changes whatsoever. I do have the code added to gcode file. I have restored defaults, deleted eeprom stored on the SD card as well. Any ideas what else I can check? Thanks!

    • Smith3D says:

      Your bltouch could be faulty. What leveling does is, calling a marlin command, nothing that related to the firmware,therefore you may have to check your bltouch, if it’s deploying the pin everytime

    • Stuart Robinson says:

      I have similiar problems on an Ender 3v2 where it stops levelling randomly, but will every so often complete absolutely fine

      • David says:

        I’ve also reported the same behavior in a previous comment. Now that several people have reported this, it is unlikely that the bltouch itself is faulty.

          • Paolo says:

            Same random behaviour during leveling for me, too.
            Just additional information as follows:

            I added levelling before every print (M29 command) and this produces the following effects:

            – if print is sent directly by the printer, printing continues, but result is always messy
            – if print is sent by Octoprint, a message of communication problem occurs on Octo and I am forced to restart everything (Octo and printer as well).

            I supposed (due to the fact I had installing BLTouch) to loosely connection on the board, too.

            Thanks for your great job.
            Best regards.

  8. Glenn Dahl says:

    I did the install and everything worked fine with one exception. The manual and auto bed leveling finished fine. I also added the correct G code to the start of my file. I was able to dial in a perfect z offset. However, when I watch the z axis arm, it never moves until it goes to the NeXT layer. And this is with a test print that covers the whole bed. So, either my bed is 100% perfectly flat or the firmware isn’t actually making any z adjustments as it moves around the bed. Shouldn’t I see some movement of the z motors/wheels etc, as the extruder works across the bed?

  9. An Danh says:

    Hi, it seems that jerk control settings through LCD cannot be saved 🙁
    I think setting probe offset position to X-42, Y-10 working better for me somehow 😀 Aux leveling leave the bed a gap too large to adjust by knobs if I don’t add a spacer, so I prefer NOZZLE_TO_PROBE_OFFSET { -42, -10, -2 }
    BTW, thanks for very thoughful, refined firmware.

  10. DanielR says:

    I’ve a small problem with the area used for bed leveling.

    The 5×5 probe area is not centered on the glass.
    Almost the same problem discribed in this post :
    https://3dprinting.stackexchange.com/questions/7395/how-to-set-the-boundaries-for-bltouch-probing

    I use this BL-Touch holder, but this is not the source of the problem :
    https://www.thingiverse.com/thing:4563093/remixes

    I’ve compiled your code 2.0.x.12-5×5 and 2.0.x.13-5×5 with the values for the NOZZLE_TO_PROBE_OFFSET { -45, -20, 0 }
    But the problem is still present… any idea how to solve this?

  11. FEC says:

    You say you’ve customized the display but there’s no DWIN_SET folder here to download. Your additions aren’t showing up in the UI just by flashing the firmware – that’s for sure.

  12. Cristian Hamie says:

    Hi, thanks again. I continue to use your firmware!

    Two times has my printer started bashing the nozzle against the glass, in separate occasions. I think it was related to me adjusting slightly the Z offset before the print or in the start. That left some marks on my glass so i took it off for cleaning.
    Weirdly enough, i used to have -1,73, but after removing the bed and re leveling (only BL no moving of the yellow springs) I have to use -1,83 or more. Im not sure if the numbers displayed carry any direct meaning, could i measure it with a caliper?
    Also the layer fan, after a failed print only stops when i remove the SD card. Normally i would expect it to stop with the print.

    Thank you for your continued work on this, really appreciate it.

  13. DrSnakeCZ says:

    I had problem with filament sensor/filament smart sensor/
    After edit yours
    #define Z_MIN_PROBE_PIN Z_PROBE_PIN
    to
    #define Z_MIN_PROBE_PIN PB1
    is probable all OK

  14. Bogdan says:

    Hi,

    I notice that your source code on repo for 2.0.x.13 do not have creality_LCD enabled in configuration.h and still have atmega set as target. Could you please upload the exact source code from which you’ve build your default binary (5×5 grid, no filament sensor I guess)? I am used to tweak a little bit in the config and build firmware on my own, however I’m not sure what else is commented out in your files and what’s uncommented.

    Cheers,
    B

  15. David says:

    Thank you for this firmware! I just experience 1 issue with it. Sometimes it does start the bed levelling before a print with G29. Sometimes it completely skips the bed levelling. And sometimes the bed levelling gets interrupted and it starts printing. What could cause this irratic behavior?

  16. luchs says:

    One thing I noticed. You set the probe offset to #define NOZZLE_TO_PROBE_OFFSET { -42, -12, 0 }. I just looked at the thingiverse page for the referenced mount. The author states an offset of “probe offset: X-42.00 Y-10.00” there. Which one is accurate?

    • Smith3D says:

      X-42.00 Y-10.00 is the correct offset, but there are many more other kind of mounts, therefore making Y -12 to make it much more compatible with all mounts. so far -42, -12 is fine to me.

  17. ordor2k says:

    I tried to change the z-offset in the beginning of a print and the nozzle scraped the bed.
    I just changed it with 0.01 degree.

      • ordor2k says:

        Could you PLEASE also post the new version in github when you will have one?
        I would like to add filament run-out sensor and add some offset changes to the X/Y (Hero Me Gen5).

          • Dimitris says:

            I appreciate your effort. I’ll flash v13 tomorrow and report if I have any issues.
            Also, for those complaining about the offset, I’d like to state that with “M851” command in pronterface they can set the exact probe offset with a precision of two decimal points. Actually, they are supposed to do that since it is an essential step in the calibration process of an accurate mesh bed levelling. I would recommend using the move command from the printer interface of X,Y while Z=0, until bltouch touches the point of the nozzle at X=Y=0 and then reversing the X and Y values. The point of reference could be a stamp of PLA from the nozzle on a post it stuck on the bed. You can include a mini how-to in your tutorial.

  18. Steve Rosburg says:

    Hi,

    I bought a BLTouch and flashed using the latest Smith3D firmware (Smith3D-E3V2-2.0.x.12-5×5-SlowProbe.bin) with my 4.2.7 board. First of all, I love the UI customizations!

    Unfortunately, things are working correctly for me after applying this firmware. I have nozzle and bed temperature, plus fan control, but the stepper motors don’t move. I flashed back to Creality’s latest E3 V2 firmware for 4.2.7 without BLTouch (Ender-3 V2_4.2.7_Firmware_Marlin-2.0.1_V1.0.1_TMC2225) and everything is working, except the BLTouch, of course.

    Any ideas?

        • luchs says:

          From what I’ve read so far the pins for the steppers are different between V4.2.2 and V4.2.7. You can change #define MOTHERBOARD BOARD_CREALITY_V4 to #define MOTHERBOARD BOARD_CREALITY_V427 This will take care of that automatically, so that it should be pretty straight forward to add V4.2.7 support 🙂

          • Smith3D says:

            that’s good to hear, I’m preparing a newer version which support better power resume feature, will update together with v4.2.7 when it’s ready.

        • luchs says:

          Technically the TMC2208 and TMC2225 are the same thing. Therefore your should be able to keep the driver type set to TMC2208, as there isn’t even an option for the TMC2225 as far as I know.

        • Steve Rosburg says:

          Got it, thank you. My machine came with the 4.2.2 board, but the fans stopped working and it turns out they weren’t getting any voltage, so I replaced the board with the latest 4.2.7 version.

  19. Bodays says:

    Hello guys,
    Thanks for your great marlin version but unfortunately none of your tools are working for me (V2.0.X.12).
    I do see the menus “aux levelling” & “Z-offset tool”, and can enter in, but inside none of the options are working :
    Inside “aux leveling” (test is done successfully… I guess) whatever option I choose it’s not doing anything
    Inside “Z-offset tool”, after “finding” home position, the nozzle stay high, and when changing the “Z-Offset” value nothing is happening 🙁
    – I used this file : Smith3D-E3V2-2.0.x.12-5×5-SlowProbe.bin
    – I did a restore to default
    – I tried reflash by changing the name and restore the default immediately but same behavior… 🙁
    Do you have any idea ?
    Many thanks,
    Bodays

  20. Dimitris says:

    Hi, and thank you for your reply.
    Correct me if I am wrong, but this is included in the default (Ender3 V2) configuration:

    // Enable pullup for all endstops to prevent a floating state
    #define ENDSTOPPULLUPS
    #if DISABLED(ENDSTOPPULLUPS)
    // Disable ENDSTOPPULLUPS to set pullups individually
    //#define ENDSTOPPULLUP_XMAX
    //#define ENDSTOPPULLUP_YMAX
    //#define ENDSTOPPULLUP_ZMAX
    //#define ENDSTOPPULLUP_XMIN
    //#define ENDSTOPPULLUP_YMIN
    //#define ENDSTOPPULLUP_ZMIN
    //#define ENDSTOPPULLUP_ZMIN_PROBE
    #endif

    It seems that you made a change to enable #define ENDSTOPPULLUP_ZMIN_PROBE, but in order for that part of the code to work, you also commented out #define ENDSTOPPULLUPS to enable manual control and disable the default behaviour, which I am assuming, taking account the first comment, is to enable pullup resistor for every pin.

    Commenting out everything in the manual control, or at least everything about MIN (depending on the motherboard), would make more sense to me. Even if a switch is not connented, it is still an open circuit there, so it should need a pull up resistor to keep the controller pin from floating. The only reason to disable a pullup would be if a smart sensor is connected, which is able to keep the state of the pin by itself.

    Again, I’m not a Marlin expert and I definately don’t want to introduce you any bugs. I’ve been programming microcontrollers some years now and this is my understanding of the code. I am just trying to help.

    • luchs says:

      After seeing your comment I cloned the X.12 repo and reenabled #define ENDSTOPPULLUPS, as it seems to be the default configuration for the Ender 3 V2 (as you stated) as well as for the BLTouch V3.1 (https://www.antclabs.com/bltouch-v3). I compiled the new firmware and put it on my V2 without any problems (as expected). So I think this should be changed back to default in the next revision of this firmware 🙂

      • Dimitris says:

        Thank you luchs.
        I’ll wait a couple of days for Smith3d to release a new revision, Else, I’ll have to compile my own, because, technically, floating pins during homing could lead to a crash of an axis to the endstop switch, if the voltage drops for some reason.

          • Dimitris says:

            Thank you Smith3D. I’ll wait for your version then.
            As luchs mentioned, you’d better stick to the default setup by enabling #define ENDSTOPPULLUPS, if that doesn’t lead to any issues with z probe.

        • Cristian Hamie says:

          Would that look like the printer head bashing against the left side and making a strong motor sound? that happened to me while homing.

          • BaronS says:

            This is happening to me too randomly. On either the X or Y axis, sometimes if I do a bed level or preheat or aux level and then autohome after (like when starting a print), the motor just crashes past the limit switch very fast and grinds the belt until I shut off the printer.

          • Dimitris says:

            @Cristian Hamie @BaronS Exactly. A floating pin is when the voltage is not forced to stay within the highest or lowest limit of which the microcontroller recognizes the state of the pin as HIGH or LOW. When not pushed, the endstop switch is constantly “pulling” the voltage to LOW by keeping the circuit closed to the “ground” (low voltage). That’s a normally-closed (NC) switch. But when the switch is pushed the circuit now opens and there’s nothing to “pull” the voltage to. By enabling the “PULLUP resistor” on that pin, you now have something to pull and keep the pin to HIGH voltage level, as long as the circuit is open at the switch and that’s how to microcontroller is recognizing the switch’s state. By not enabling the PULLUP, the voltage can randomly float at different values, but sometimes, random factors like temperature or a voltage at a different pin could make the voltage float just above the threshold making the pin seem like it’s working ok and a lot harder to detect the issue. What BaronS described was exactly what could happen if voltage at the endstop pin does not change at the very same moment the switch is pushed in. It could be rare, but it could cause some serious damage to the printer itself. I myself, for example, didn’t have any issue with v11, but after spotting the issue in the configuration file I decided to wait for v13 before turning on my printer again. So, if you haven’t yet, I really recommend upgrading to at least v13 as soon as possible!

  21. Dimitris says:

    Hello again,
    Since I didn’t get an answer to my post at 20/9, I’m posting another comment to clarify the previous one. The following code is part of the configuration.h. As you see “ENDSTOPPULLUPS” has been commented out, enabling manual control of endstop pullup resistors. Inside the #if, ENDSTOPPULLUP_ZMIN_PROBE has been commented out, also enabling the pullup for probe’s zmin.
    At this state, only the endstop pin of the probe is connected to a pullup resistor. Which means that, since endstop switches on Ender3 are normally-closed, whenever one axis reaches minimum, triggering the switch, there will be a floating pin on the controller, which is never a good idea.
    I haven’t checked the motherboard, neither I know exactly how Marlin works. I may be wrong and sorry for doubleposting about it, but floating pins can cause serious issues. So please make sure it is the correct configuration.
    Again, thank you for a great firmware!

    // Enable pullup for all endstops to prevent a floating state
    //#define ENDSTOPPULLUPS
    #if DISABLED(ENDSTOPPULLUPS)
    // Disable ENDSTOPPULLUPS to set pullups individually
    //#define ENDSTOPPULLUP_XMAX
    //#define ENDSTOPPULLUP_YMAX
    //#define ENDSTOPPULLUP_ZMAX
    //#define ENDSTOPPULLUP_XMIN
    //#define ENDSTOPPULLUP_YMIN
    //#define ENDSTOPPULLUP_ZMIN
    #define ENDSTOPPULLUP_ZMIN_PROBE
    #endif

    • Smith3D says:

      Thanks Dimitris,

      Sorry for late reply, just checked the code, the commented #define ENDSTOPPULLDOWN_ZMIN_PROBE was the default configuration.
      And we disabled the z switch, so far we haven’t have any floating issue. I will check if enabling the #define ENDSTOPPULLDOWN_ZMIN_PROBE will helps or affecting some algos.

      • luchs says:

        I just checked the default configuration for the Ender 3 V2 from here (https://github.com/MarlinFirmware/Marlin/tree/bugfix-2.0.x/config). I found that the #define ENDSTOPPULLUPS is enabled by default. You commented this line and only uncommented #define ENDSTOPPULLDOWN_ZMIN_PROBE. This way a pullup is only enabled for the ZMIN_PROBE. But by default there is a pullup enabled for every ENDSTOP if I’m not mistaken here. And this is also the thing Dimitris mentioned. So I think you can leave this section untouched and therefore #define ENDSTOPPULLUPS uncommented, which should enable a pullup for all the ENDSTOPs, including the ZMIN_PROBE.

Leave a Reply

Your email address will not be published. Required fields are marked *