Building Marlin 2.0 for the Ender 3 Max
@DooKuu, the wiring is not your issue. The symptom you describe is that of the probe pin sticking. You may be able to fix it by inserting a small (I forget the exact size) hex key into the small hole at the top of the BLTouch and either loosening or tightening the magnet (that's what it connects to) just a bit. Try it both ways. If that doesn't help, dismount the BLTouch, use the hex key to completely unscrew the magnet, pull it and the probe pin out. Clean the probe pin with alcohol and reinsert. Tighten the magnet but not too much. I found this helped when I had that symptom, and the BLTouch has been 100% reliable ever since.
I am glad to hear that the firmware I provided helped you.
So I did try and clean/even replace the BLTouch pin with a spare pin I had and it took away some of the oddities and weird behaviour but the probe still sometimes fails during certain parts of the 3x3 leveling and also still sometimes causes the nozzle to crash.
So we are sure the wiring is correct, could it be that I had to extend the cable with breadboard jumper cables which adds in extra connection points between the BLTouch and 4.2.2 motherboard that could be lose or wonky?
I have tried putting some insulation tape over the male and female connectors as well as at the end of the BLTouch official extension cable with the 3+2 pin connectors together to help it sit more snuggly in the dedicated 5 pin BLTouch port.
I did not have a glue gun to glue them in place but maybe it's a lose connection somewhere but then why would the probing sometimes do all 9 points and complete and then randomly fail at other points? Would it not always just fail if a wire were a miss or something lose?
Also sorry for the long post but could it also be electrical interference from the other electronics ion the machine interfering with the probe? If so what would be the best way to isolate the wiring and probe to prevent interference?
Last but not least after a few tests my extruder is making a weird buzzing odd noise when unloading with or without filament inserted but when retracting the noise is not there but when printing the noise is there only when extruding or the motor is moving even without filament... Could this be the firmware related? Or VREF maybe?
Sorry for the long posts and questions but I appreciate the help and all the effort, it's really greatly appreciated!
@dookuu Sorry, but I have no idea on the various issues you mention. I did try extender cables for a while - my biggest issue there was that the end that plugged into the motherboard was very loose. When I finally figured out that the long five-conductor cable that came with the BLtouch was long enough for the Max, that issue went away. I'm skeptical of interference being a problem.
first of all, thanks so much for your guide, I was able to compile a version for the stock board using most of your settings that I will be flashing on my printer once it arrives, however I did have one question, I tried compiling a new .bin with the latest marlin firmware 220.127.116.11 and I keep getting errors or unable to compile. Ive attached a link to my marlin files for compiling including the config's and a log of the errors I'm getting. Appreciate any help you can provide, thanks again!
Edit: Is this because the newest marlin is incompatible with ender 3 max configuration?
Edit2: Managed to compile firmware 18.104.22.168 for BL Touch for stock 4.2.2 board. I used theSTM32F103RET6_creality environment which seems to have been the issue. I dropped the file in the bin, it has all the settings from copied over from holmes4 it us untested, if anyone can give it a go let us know, once my printer is in ill test it and update you all.
Edit3: forgot to update driver settings for the 4.2.2 board, file is currently updated and should now work I hope.
EDIT4: Should be last one but who knows, ok so the current files in the drive link below have Marlin 22.214.171.124 compiled for both the 4.2.2 board and 4.2.7. I moved over most of Holmes4's settings to the newer version with the changes he specified in his opening post. You will also find the work folder for Marlin 126.96.36.199 so you can make changes if you need to. If anyone tests this please let me know!
So I'm back after some testing and troubleshooting.
It seems I have finally got my BLTouch to consistently to Auto Home and Auto Bed level 100% of the time for a more than fair amount of work and testing.
So my setup was the standard Ender 3 Max 4.2.2 stock motherboard (Using Holmes "with" BLTouch bin firmware as is on Marlin 2.0, except I did calibrate e-steps and the other steps for the other 3 axis). BLTouch V3.1 with the Official 1m Antclabs extension which was still to small.
So I had to extended it further with standard breadboard jumpers with dupont connectors. I originally had 4 extra dupont connection points coming off the original Antclabs extension cable to the motherboard, but was able to remove 1 of each male-to-male and female-to-female dupont wire extenders reducing the total number of extension and connection points from 4 to 2 extra points to worry about before reaching the dedicated BLTouch 5pin motherboard connection.
My wiring was correct from the first installation as I made sure to research that extensively before installation due to the notorious problem that if wired incorrectly can short out and fry your motherboard. Which on a side not is ridiculous to me considering how Creality claim upgrades and installations on their machines are so "easy" to preform as their machines are so "modular".
After shortening and removing the excess connection points I made sure all the dupont connections were tightly and properly inserted and connected into each other and also properly connected to the the official antclabs cable... Make sure they're tight and properly inserted.
I then got a hot glue gun and glued all the dupont connections tightly and securely to each other and then I also had to glue the small dupont connectors directly into the 5pin dedicated BLTouch port as they were extremely loose and easy o move, fall out or anything of the sort. I must warn you though that if you do have to glue your connectors to your motherboard do not use to much glue and before trying to remove the connectors try pory and cut off as much glue as possible with a tweezer and a glad, as I literally pulled the whole connector and plastic shroud off my motherboard trying to remove the BLTouch... Luckily the pins did not bend so I could pull the glue off the plug and connectors and then reattach the plastic shroud back on.
While all of this was going on I did notice that there was a horrible electrically, clicking/vibrating sound coming from my extruder whether is had filament in or not... It the extruder gear moves it makes a noise. I have taken apart the whole printer to try make it as square as possible and also uninstalled the extruder and reinstalled it but to no avail the extruder continues to make the same noise.
I am still new to printing so for now still intimidated to config my own .h file, hence why I use "optimized" bin files and adjust what I can through the LCD or sometimes prontface which barely seems to work.
Now I heard that the 4.2.2 and 4.2.7 Creality motherboards do not support Linear Advance and even if they do apparently they do not work or play nicely with junction deviation and it has been reported by a few user that enabling Linear Advance in Marlin 2.0 and the 4.2.2 and 4.2.7 could cause this noise to come from the extruder.
The posts and solutions I have read range from completely disabling Linear Advance or to higher or lower the K values of Linear Advance, neither of those I actually know how to do or a comfortable doing yet. I do not know if Linear Advance is enabled in the .bin folder Holmes posted but if it is, that could be the culprit to the weird extruder noise when active.
Also during all the trouble shooting and fixing my plan was to buy the Ender 3 Max and turn it into a little pocket beast so I bought parts and upgrades I wanted for it similar to my CR10-MAX which I absolutely love compared to any other printer I have or use.
This is currently my machine and what is all running on it I would love it if someone would be able to complie me a config/bin file that could help me get better results with my machine as even with all the step calibrations and test's I am struggling to get consistent and good looking prints.
I would like a type of firmware for the Ender 3 Max similar to that of the CR10-MAX tiny machines firmware. It allows everything Holmes firmware does but also I prefer the way the BLTouch levels on that machine where it takes a probing test before each print and then saves those values, encase something has happened and ensures you get a good first layer. So the Cr10-MAX TM firmware does a 25 point probing before each print which I would not mind something similar on my E3M to make sure the BLTouch is always in action and compensating for my slight errors.
Also I would love to be able to level the 4 corners manually sometimes just to get it so the BLTouch can do the rest but the only way I found which is semi useful and convenient but inaccurate was the CHEF's Leveling_Kobs.Gode because it's basically starting a print and is honestly not worth it and does not yield good results for me and there is no option to manually level the bed either.
Also would it be possible to up the temperatures on the hotend and the printing bed due to upgrades I will mention at the end... Something to 285-290 for the Micro Swiss hotend and 120 for the printing bed.
Last but not least would it be possible to also either try disabling Linear Advance or to up the K Values or lower the to stop the horrible noise it causes due to compatibility issues with the drivers and junction deviation.
Now I will list my current machine setup and specs with a TL:DR.
Fixed BLTouch Auto Homing. Bed Levelling. Nozzle crashing into bed. I did this by reducing the amount of connectors and connection between the BLTouch and motherboard. Made sure all extra connectors and connections were extremely well connected and tight, followed by using a hot glue gun to glue all connections together to ensure no loose connections or movement. Followed by finally gluing wires and dupont connectors snuggly and in the correct order on the motherboard to ensure no movement or false connections are made. Followed by pression down firmly on the BLTouch's connector holding the 5pin extension cored followed by a DAB of hot glue... NOT A LOT! (make sure the grub screw in the BLTouch is not to loose or tight either must be just right)
I also added some Kapton tape to each joint connection to try prevent any electrical interference.
Now BLTouch has not failed during probing, levelling, or homing out of dozens and dozens of tests.
Ender 3 Max
MicroSwiss All Metal Hotend
4mm Saftey glass or sometimes regular 3mm glass (I do not want to use my Carborundum coated bed yet till I'm 100% sure of no nozzle crashes or BLTouch probing failures)
Dual Lead Screw Upgrade kit. I installed the CR10S Dual lead screw kit onto the printer as the right side was always moving a few milliseconds behind the left hand side. So in the Z port on the motherboard I have a cable that splits into two and plugs into the original Z motor and the new Z motor... Results have increased 10 fold, considering I was basically unable to print due to sagging on the right hand side of the gantry.
Metal Creality Levelling wheels to keep the bed as stiff as possible.
I have CR10'S replacement springs (Blue ones but they look shorter than the current stock yellow ender 3 Max bed springs, so not sure if that would help or not)
Standard E3M All metal Extruder
Custom Calibration Settings:
X Steps/mm: 80.1
y Steps/mm: 80.1
Z Steps/mm: 400.9
E Steps/mm: 99.0
PID-P E: +30.0
PID-I E1: +002.97
PID-D E1: +075.7
PID Autotune E1: 210
PID-P Bed: +113.3
PID-I Bed: +009.75
PID-D Bed: +878.0
That was all that was calibrated and tuned on my part was bed leveling, PID tuing and Steps the rest of the firmware options from the bin file were default.
Firmware Requirements and Specs: *IF POSSIBLE PLEASE*
Higher Max Temps for MicroSiwss All Metal Hotend (285-290 if possible more)
Higher Max Temps for print bed (120-125 if possible I know 120 is on the CR10-MAX)
Either Lower or higher K values for Linear Advance to prevent horrible noise from the extruder/stepper motor OR Disable Linear Advance all together and adjust other settings accordingly to accommodate no Linear Advance.
Get an option to manually level the printer even if you have the BLTouch just to get the bed "mostly" level and let the BLTouch compensate for the rest.
Lastly would to replace the current Auto Bed levelling with the one similar to the CR10-Max TionyMachines firmware, where it probes 25 points before each print and save those settings to ensure if anything has changed or you've bumped or moved a lead screw it will compensate slightly for it. I know it takes long to probe before each print but I would rather have a 19-21point probe test done before each print to increase the chances of nice first layers than probe it once save those settings and hope thermal expansion and nature works in my favour... I don't like just probing once because I believe things move and change when the printer is in action so the bed will never always be in the same spot.
P.S On a side not my X stepper motor is getting very hot very quickly during printing and I can touch it but dang is it hot! Aslo it gets hot very early into the prints maybe 5 mins and it's hot plus I have checked that it's not rubbing or catching on anything. Also if there is any recommendations for the dual lead screw firmware wise please let me know as my other 2 printers were stock dual lead screw printers and I am happy with those but the E3M even without dual lead was basically unusable for me due to the delayed movement in the right side.
I might have to reflash firmware as I had a real power outage during a print and now whenever I turn on the printer I ALWAYS get promted to resume or cancel the print even though I selected cancel multiple times now already.
So I might give LTSpenny's FW a test go and see how that runs but I would really love firmware that have the requirements needed and I am trying to learn to compile and edit my own configs for my printers as I know eventually this will not be optional anymore but necessary but for now I would actually like to use my printers to well... Uhm print things and upgrades for my other printers.
Thanks for all the help, hardwork and advice peeps! 😀
You are correct that the Creality boards do not support Linear Advance. If you have done an M900 K0, then LA is off and should not affect anything.
Once you have done a G29 to do the leveling, followed by an M500 to save, you can just use M420 S1 to recall the leveling mesh rather than doing the probes again. I don't recommend this if you are using the springs, as things will move between prints.
Use G29 P5 to do a 5x5 level - you can put this in your start gcode.
If you follow the instructions in my first post, you can tweak Marlin to your desire. Try it - it's not hard.
I love the new firmware (especially since I didn't have to compile it!). However, it seems that on my stock board for Ender 3 Max the progress indicator stays at 100%. The bar and everything else on the display is accurate. Didn't look too long but couldn't find anyone having this same problem. It's not a deal-breaker, but an accurate percentage would be nice.
I notice the progress indicator staying at 100% as well. Everything else looks good, and the BL-Touch is behaving (something it wasn't doing with the Creality version). I can live with that for now since everything else looks to be working well (although I am finding I'm babysitting my printer more until I'm more comfortable with the firmware).
@holmes4 - thanks for all your work on this!
After a restart, everything looks to be displaying properly. I think it's actually working better than the stock firmware.
I just installed my BLTouch on my E3 Max and am having one heckuva time with it. The only real progress I've had is using the file @holmes4 posted. That being said, the 'progress' is that the bltouch now actually has some motion with the probe and blinks the red light. When I try to auto-home, it will move to the center and just stop. After a couple of minutes, the screen will say "Homing Failed - Reset". I'm not sure what the issue is, I don't really understand Marlin I've just followed what instructions I can find.
I do also have an E3 v2 with a bltouch and I don't have any of these issues with it.
Help me OB @Holmes Kenobi, you're my only hope.
The first thing I suggest in cases such as this is to remove the probe tip, clean it, then replace. To remove, dismount the BLtouch from the bracket and use a small hex wrench to unscrew the magnet from the top - the probe will come with it. Wipe down the probe with IPA, replace, and then screw in the magnet. You may have to experiment with how tightly you screw it down (not too tight - it's into plastic!)