This is the vanilla version of Marlin Firmware 2.x pre-configured for Creality Ender 3 printers with original or generic BL Touch sensors. The standard configuration file from Marlin distribution was carefully reviewed to include the latest Ender 3 specific settings from the official Creality firmware and from Antclabs.
Please note that this is not the version I recommend for 8-bit boards like the one used in the Ender 3. The most stable and feature rich version of the firmware for this architecture is the 1.1.9 that I made available in another article. Marlin 2.x is aimed to a new generation of boards using 32-bit processors, the built in libraries are bigger and there is less space left for features. Anyway, if you want to try this you can be sure I did the best I could to configure it properly and fit the maximum amount of features possible. It was downloaded and installed more than 10000 times and I believe most of the users will find no problems with it.
Features
- Official "vanilla "Marlin firmware with all hardware settings from Creality latest official firmware.
- The maximum amount of Marlin features that I was able to fit in the small 128KB memory.
- BLTouch original/generic versions enabled by default. Compatible with BLTouch versions from 1.0 up to 3.x
- No need to remove any capacitors from the board
- Installs from the PlatformIO IDE that runs in several operating systems
- Source code modified to prevent releasing the BLTouch sensor during "beep" events triggered by LCD menus
- Thermal runway protection enabled
- Does not reset the bed level settings after the G28 (Home) command
- Custom menu with maintenance mode, emergency mode and full auto bed leveling sequence (warmup, wait, home, level and then save settings)
- Ultra-precise bilinerar bed leveling algorithm with 25 probing points, 3 slow probes per point (takes about 10 minutes to complete)
- Run and toggle the bed level and BLTouch tools from LCD menus
- Tuned PIDs for faster heating
- M503 enabled (reports all printer settings)
- Baby steps enabled and configured for the stepper driver "Magic Numbers"
- Fully compatible with OctoPrint
- All changes from the original Marlin config file were marked with the comment tag "Customized DBP"
- Due memory size limitations, the power resume function was disabled as well as the arc support
- LCD menus were changed to "slim mode" to save memory space
- Optional compiled files ready to upload to the board (no configuration, no compilation, no installation of any tools):
- Creality standard board
- Creality upgraded boards with TMC silent drivers (like the 1.1.5)
Note about the bed leveling strategy
There are two ways to perform the automatic bed leveling, the first is before every print and the second is only when necessary. Based on my experience with the Ender 3, it's better to do an extremely precise (slower) bed leveling when necessary than a simpler one before every print. This firmware configuration reflects this choice.
If you want to do quick/imprecise bed leveling before every print you will need to reconfigure the firmware.
Requirements
- BLTouch installed on pin 27
- Z stop switch removed (it can block the Z axis movement)
- IMPORTANT! BLTouch tip height must be adjusted according to the official instruction manuals. There are different BLTouch sensor clearences and the YouTube videos tips are wrong most of the times
- Bootloader installed
- Microsoft Visual Studio Code if you plan to install from the source code
- PlatformIO IDE extension installed on Visual Code if you plan to install from the source code
Instructions for installation from the Source Code
- Download and install Visual Studio Code.
- From Visual Studio Code extension menu, install the PlatformIO IDE.
- With all requirements running, unpack this entire Marlin source code downloaded from the link below to a folder.
- From Visual Studio Code select File->Open folder and select the folder where the platformio.ini file is located. Attention! Use the "open folder" command, not the"open file".
- Look for the configuration.h inside the "Marlin" sub-folder and edit the following configuration to the relative coordinates of your BLTouch mount to the Nozzle. This does not need to be too precise, the only purpose is avoiding the probe to test outside the bed. The default settings X = -42mm, Y= -5mm and Z=0 are for this mount:
#define NOZZLE_TO_PROBE_OFFSET { -42, -5, 0 }
- Save the file and then select Terminal->Run Task->Build . It will take a few minutes for the system to download all dependencies and compile the code.
- If the code compiled properly you will see something like this in the terminal: "=== 1 succeeded in 00:00:30.050 ===".
- Connect your printer to the computer using the USB cable.
- Go to the Visual Code menu Terminal->Run Task->Upload .
- If everything goes well another message like this "=== 1 succeeded in 00:00:55.010 ===" will be printed.
Installation using the pre-compiled HEX file
The pre-compiled firmware is also available here. You can simply burn the compiled HEX file directly to your Ender3 board without installing the Visual Studio Code or PlataformIO.
To upload the pre-compiled firmware you will need the AVRDUDE 6.3 tool. For your convenience I included the Windows version of this tool in the zip file that contains the HEX firmware but the tool is also shipped with the Arduino IDE and PlatformIO. The upload command in Windows PowerShell should look like this:
./avrdude -p atmega1284p -c arduino -P COM3 -b 115200 -v -U flash:w:firmware.hex:i
The serial port is something between COM1 and COM8, depending on where the USB driver is pointing to, and firmware.hex is the file you are uploading. If you are using other operating system like Linux the port address will be somehting like this /dev/ttyUSB0.
After initializing the board with the new firmware don't forget to reconfigure the probe offsets running the following command from any serial terminal. Replace the default offset values in the command (-42, -5, 0) with the ones for your probe mount.
M851 X-42 Y-5 Z0
M500
Post-installation configuration
- Manually pre-level the bed! This is important because the BLTouch has limited max/min detection ranges and the print quality can be affected if the Z-Axis moves too much.
- Cool down the bed and the nozzle. Heating should have little to no effect on this specific procedure.
- Disable stepper motors using the LCD menu command.
- Place a credit card on one the bed, the thickness of the card will be used as a reference distance.
- Turn the Z axis with your hand until the nozzle hits the credit card.
- Move hot end to several positions of the bed, starting from the 4 corners. For each position, adjust the bed level knobs to keep the nozzle at the credit card thickness distance from the nozzle. This is what you would do in manual calibration but instead of using a paper you will use the card for convenience. The card thickness does not matter because the BLTouch probe will redefine the Z reference.
- Heat the bed to the printing temperature and run the bed level command from the LCD (Motion -> Bed Leveling -> Level bed) or using the G29 gcode or using the Heat and Level command from the custom menu (recommended). Note that the Heat and Level command waits 2 minutes after the bed is hot to allow the mounted surfaces to expand/contract properly.
- Save the settings using the LCD menu or the M500 gcode (if you used the Heat and Level custom command, they will be automatically saved).
- Add the following gcode to the startup code of you slicer, right after the line of the G28 command to load the bed level configuration from the memory before every print:
M420 S1
- After enabling the bed level, print something large and flat to adjust the Z offset. The nozzle will always be far from the bed until you adjust the offset to a negative value (LCD -> Configuration -> Probe Z Offset). Don't forget to save the settings after the print to keep the offset in the memory.
Custom pre-compiled firmware versions for different BLTouch mounting brackets
If you have a different bracket for BLTouch and would like me to pre-compile the firmware for you please let me know in the comments below. The compiled firmware will be available for everyone so I need detailed information about the bracket manufacturer/model or the link to the site hosting the STL files.
Troubleshooting tips
- Disable serial port clients before flashing: If the COM ports are used by any other app, the flashing process will fail. Shutdown Cura, OctoPrint, any other slicer and any other Serial Monitor program like the Arduino IDE before compiling/flahsing the new ROM.
- Correct fuse settings: If you are using other software than AVRDUDE to upload the firmware make sure you are using the correct fuse settings. Apparently the Creality tutorial has the wrong settings and the board fails to boot afterwards.
- Reset the EEPROM: Sometimes the EEPROM memory is not reset during the Marlin reflash and this can cause problems. To reset manually use the following G-Codes from any Serial Terminal: M502 followed by M500.
- Blank screen after flashing: You did not flashed the firmware properly. Please use AVRDude according to the instructions above and if this does not work you might have to reflash the bootloader.
- Optiboot bootloader: To compile/flash the firmware forcing optiboot support, edit the file platformio.ini and replace the lines default_envs = melzi or default_envs = sanguino_atmega1284p with default_envs = melzi_optiboot . If you flashed your bootloader with Arduino IDE, that uses optiboot by default, you don't need to update this setting, it works perfectly out of the box.
- Serial Port Monitor for Windows: This small program allows you to send/receive GCode to the printer. If the characters look strange you are probably using the wrong baud rate (start with 115200bps).
- avrdude: stk500_getsync() attempt 1 of 10: not in sync: Wrong baud rate for the serial port or serial port already in use (OctoPrint, Cura, etc..). Try configuring the upload rate to 115200bps. If you are using PlatformIO to upload, make sure you are using the correct baud rate for your environment in the platformio.ini file.
- Reconfigure the BLTouch probe offsets: Use the following command replacing the -42, -5 and 0mm coordinates with the offsets of your actual mount:
M851 X-42 Y-5 Z0 M500
If you have problems compiling the firmware...
I can compile the firmware for you. Please see here for more details.
Comments
Stepper not available
There is a stepper available on another site. You'll need to change it in the ini file.
Unable to flash hex file
I am trying to flash the hex file to my ender 3 that has the 4.2.7 board, direct drive extruder, and bl touch. But the process hangs after it activates avrdude. What do I need to do to get the process to finish?
4.2.7
you can not flash a 8 bit .hex file to a 32bit board
PlatformIO compilation fix for Marlin 1.1.x
Hello,
I managed to get Marlin 1.1.x to compile for the Ender 3, with end-stop interrupts still enabled. You just have to specify an older version of toolchain-atmelavr in the platformio.ini file. See https://github.com/MarlinFirmware/Marlin/pull/24783
Hey man! Thanks for the nice…
Hey man! Thanks for the nice article and the firmware links! There is a small issue, the TMC26x stepper library has been removed, and someone else has uploaded it to github. Here is the correct link in case anyone else might need it:
https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/files/8306…
That was very helpful!!
Thanks for that link. It helped me get Marlin going on my Ener 3 1.1.4 BL Touch. Finally after 3 days miscompiling :)
Hey man!
Thanks for the link
Unable to compile
I can't figure out what I've done wrong. I want to enable the Linear Acceleration but when I try to compile I get an error about a non-constant condition for static assertion fir tge X_MIN_PIN, Y_MIN_PIN and Z_MIN_PIN
Leveling method
So I'm curious, as per your leveling method ( first precise and second, a little faster) should I remove auto bed leveling gcode from my slicer? I just ran a test print after doing an initial slow bed level via the printer menu, & and then went to print. my G-code on the file has bed leveling in it as well but its doing another really slow, precise probing. What method should I use to get the second ( pre print) probing to be faster? thanks!
Does this work with the new 4.2.2/4.2.7 boards?
I tried compiling this using the PlatformIO instructions on my 4.2.2 board. I've recently updated my usb drivers to connect via windows 10 but I get the same stk500_getsync() issue that other people had and I have all the baud at 115200 bps, 8 bit and no parity. Just as a sanity check, I booted up cura and octoprint and was able to control the printer from both of those. I also tried it with and without an SD card. I was having problems with the BLTouch's G29 command using the Marlin 1.1.2 so I was hoping recompiling with the latest version would fix this. Last thing to note, visual studio is yelling at me about a missing include folder but I assume that isn't important. Any help would be appreciated.
Yes. It works. Please make…
Yes. It works. Please make sure you have the bootloader installed properly, stk500 error could also happen if your bootloader is not accepting the connection.
Hi All, Here is a merge of…
Hi All,
Here is a merge of Dan's modifications with the latest version of Marlin (2.0.7.2). The only two changes that I made were I added Arc Support and removed SD Card Support. Thanks!
Download: https://mir.cr/0ZU8UZJ2, VirusTotal: https://www.virustotal.com/gui/file/f8f652888476aa79a3a5e4203789699508425808aa4b6f2fbe6915e3f5992328/detection
Thank you a lot!
Thank you a lot!
Ender 3
Will this code work on the new 32bit Ender 3 with new style board's? There's 2 versions believe mine is version 2.2.4 board? I noticed your link and took me here but yours says Ender 3 V2. I don't have touch screen.
Ender5pro
Apologies if this posted twice as I tried to comment but didn't see it posted. I can't compile marlin on both of my pcs. I know you shared the ender 3 hex but would you be kind to do the Ender 5 pro? Mine shipped with the 8mm lead screws that has z steps set to 800/mm. It also has the silent board v4.2.2 and it already has the bootloader. I also have the BlTouch v3. Thank you for your work in the community.
Hello Michael, To ensure…
Hello Michael,
To ensure the firmware I post here works well, I perform at least a few days of continuous printing in my devices until all problems are solved.
Unfortunately I don't have this specific hardware, It is impossible for me to know If the compiled firmware works or not without testing.
I suggest you try once again downloading and compiling Marlin for Ender 5 from scratch, once it works with the sample configuration files, it should work for any setting.
Regards,
Ender 5 Pro + BL-Touch
Hi Michael,
Did you manage to solve the issue with your Ender 5?
I have successfully compiled and updated my printer, but the BL-Touch does not work.
Ender5pro
I can't compile marlin on both of my pcs. I know you posted for the Ender 3 but could you kindly compile this for the Ender 5 pro. I have the silent 4.2.2 board that already has a bootloader. I also have the BlTouch v3. The Ender 5 has been shipped with 2 different lead screws for z, mine is the 8mm and the z steps/ mm is at 800. I would be most thankful if you could spare some time.
I think I must have screwed something up...
When I choose the heat and level option from the custom menu, everything heats up, the probe extends, and the process starts... but the z axis keeps going up, repositioning, going up, repositioning... it never goes down. Is there something obvious that would cause such a problem?
Blank Display
I installed this using the hex file on my Ender 3 with a v1.1.5 silent board. I am trying to set up a BLTouch 3.1. Now my screen is blank unless I connect to my computer via USB, and the display locks up when I'm using the menus. I have to cycle the printer to restore functionality. I tried flashing the firmware again, but get the message "not in sync" in Powershell. Any assistance would be greatly appreciated.
How did you flashed the…
How did you flashed the firmware to your board? Did you used Arduino IDE, PlatformIO or another tool?
AVRDUDE 6.3 via USB..
AVRDUDE 6.3 via USB..
Did you used AVRDUDE to…
Did you used AVRDUDE to flash the bootloader as well?
Please see the comment section of this article: https://www.danbp.org/p/en/node/136 . It appears that the 1.1.5 board has a faulty bootloader that gets corrupted when you flash the firmware for the first time. The solution is quite simple, just reflash the bootloader using ArduinoIDE, PlatformIO or AVRDUDE and then reflash the firmware.
skr mini E3 V1.2 with 3D Touch and custom bracket
Hi!
This guide seems wonderfull... I'm quite new in compiling my firmware (not due to difficulty, but due to lack of knowledge of every parameter...)
So, as you recommended, can you provide a firmware for this setting?
- Ender 3
- SKR Mini E3 V1.2
- 3D Touch always from Bigtreeetech
- This mount: https://www.thingiverse.com/thing:3383198
Thanks a lot for any help
There is a specific version…
There is a specific version for SKR Mini E3 v2.0
If you change the board settings it should work with SKR Mini E3 V1.2
Ender 3 + BLTouch 3.1 + Marlin 2.0.7
Hi, every time I set Auto Home (Ender-3), nozzle hits bed at first probe, only on first probe. Can you or anyone help me? Video: https://youtu.be/4vWUdRPmO70
Octoprint Reboot
Daniel,
I compiles Marlin 2.0.7 for a v1 board with a Creality BL Touch kit installed. All is well except when Octoprint connects, it reboots the printer once or twice and sometimes the printer freezes.
Is there a specific setting or set of settings you're setting to "make it compatible with Octorprint," as you say above?
Also, on line 629 in configuration.h, I don't think that does anything since line 620 enables endstoppullups & 621 only applies if 620 is disabled.
Thanks,
kazoo
Im getting this error when…
Im getting this error when compiling. Any thoughts?
Arduino: 1.8.12 (Windows 10), Placa:"Sanguino, ATmega1284 or ATmega1284P (16 MHz)"
C:\Users\Bruno\AppData\Local\Temp\arduino_build_781878\sketch\src\lcd\dogm\lcdprint_u8g.cpp: In function 'int lcd_put_wchar_max(uint32_t, pixel_len_t)':
C:\Users\Bruno\AppData\Local\Temp\arduino_build_781878\sketch\src\lcd\dogm\lcdprint_u8g.cpp:36:22: error: 'class U8GLIB_ST7920_128X64_RRD' has no member named 'getPrintCol'; did you mean 'setPrintPos'?
u8g_uint_t x = u8g.getPrintCol(), y = u8g.getPrintRow(),
^~~~~~~~~~~
setPrintPos
C:\Users\Bruno\AppData\Local\Temp\arduino_build_781878\sketch\src\lcd\dogm\lcdprint_u8g.cpp:38:23: error: 'ret' was not declared in this scope
u8g.setPrintPos(x + ret, y);
^~~
C:\Users\Bruno\AppData\Local\Temp\arduino_build_781878\sketch\src\lcd\dogm\lcdprint_u8g.cpp:38:23: note: suggested alternative: 'reti'
u8g.setPrintPos(x + ret, y);
^~~
reti
C:\Users\Bruno\AppData\Local\Temp\arduino_build_781878\sketch\src\lcd\dogm\lcdprint_u8g.cpp:38:28: error: 'y' was not declared in this scope
u8g.setPrintPos(x + ret, y);
^
C:\Users\Bruno\AppData\Local\Temp\arduino_build_781878\sketch\src\lcd\dogm\lcdprint_u8g.cpp: In function 'int lcd_put_u8str_max(const char*, pixel_len_t)':
C:\Users\Bruno\AppData\Local\Temp\arduino_build_781878\sketch\src\lcd\dogm\lcdprint_u8g.cpp:43:22: error: 'class U8GLIB_ST7920_128X64_RRD' has no member named 'getPrintCol'; did you mean 'setPrintPos'?
u8g_uint_t x = u8g.getPrintCol(), y = u8g.getPrintRow(),
^~~~~~~~~~~
setPrintPos
C:\Users\Bruno\AppData\Local\Temp\arduino_build_781878\sketch\src\lcd\dogm\lcdprint_u8g.cpp:45:23: error: 'ret' was not declared in this scope
u8g.setPrintPos(x + ret, y);
^~~
C:\Users\Bruno\AppData\Local\Temp\arduino_build_781878\sketch\src\lcd\dogm\lcdprint_u8g.cpp:45:23: note: suggested alternative: 'reti'
u8g.setPrintPos(x + ret, y);
^~~
reti
C:\Users\Bruno\AppData\Local\Temp\arduino_build_781878\sketch\src\lcd\dogm\lcdprint_u8g.cpp:45:28: error: 'y' was not declared in this scope
u8g.setPrintPos(x + ret, y);
^
C:\Users\Bruno\AppData\Local\Temp\arduino_build_781878\sketch\src\lcd\dogm\lcdprint_u8g.cpp: In function 'int lcd_put_u8str_max_P(const char*, pixel_len_t)':
C:\Users\Bruno\AppData\Local\Temp\arduino_build_781878\sketch\src\lcd\dogm\lcdprint_u8g.cpp:50:22: error: 'class U8GLIB_ST7920_128X64_RRD' has no member named 'getPrintCol'; did you mean 'setPrintPos'?
u8g_uint_t x = u8g.getPrintCol(), y = u8g.getPrintRow(),
^~~~~~~~~~~
setPrintPos
C:\Users\Bruno\AppData\Local\Temp\arduino_build_781878\sketch\src\lcd\dogm\lcdprint_u8g.cpp:52:23: error: 'ret' was not declared in this scope
u8g.setPrintPos(x + ret, y);
^~~
C:\Users\Bruno\AppData\Local\Temp\arduino_build_781878\sketch\src\lcd\dogm\lcdprint_u8g.cpp:52:23: note: suggested alternative: 'reti'
u8g.setPrintPos(x + ret, y);
^~~
reti
C:\Users\Bruno\AppData\Local\Temp\arduino_build_781878\sketch\src\lcd\dogm\lcdprint_u8g.cpp:52:28: error: 'y' was not declared in this scope
u8g.setPrintPos(x + ret, y);
^
"C:\\Users\\Bruno\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega1284p -DF_CPU=16000000L -DARDUINO=10812 -DARDUINO_AVR_SANGUINO -DARDUINO_ARCH_AVR "-IC:\\Users\\Bruno\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.3\\cores\\arduino" "-IC:\\Users\\Bruno\\AppData\\Local\\Arduino15\\packages\\Sanguino\\hardware\\avr\\1.0.3\\variants\\sanguino" "-IC:\\Users\\Bruno\\Documents\\Arduino\\libraries\\U8glib" "C:\\Users\\Bruno\\AppData\\Local\\Temp\\arduino_build_781878\\sketch\\src\\lcd\\dogm\\u8g_dev_st7920_128x64_HAL.cpp" -o "C:\\Users\\Bruno\\AppData\\Local\\Temp\\arduino_build_781878\\sketch\\src\\lcd\\dogm\\u8g_dev_st7920_128x64_HAL.cpp.o"
Usando biblioteca U8glib na pasta: C:\Users\Bruno\Documents\Arduino\libraries\U8glib (legacy)
exit status 1
Erro compilando para a placa Sanguino
Won't build for BigTreeTech skr-mini 3 v2
I downloaded the sources, and opened the project from Visual Studio Code with the platformio extension.
The build produces a build for "sanguino_atmega1284p". I'm assuming the build should be "BIGTREE_BTT002", because this is the only bigtreetech environment in platformio.ini.
When I set the environment to this (default_envs = BIGTREE_BTT002 at line 21), I get an unhelpful error
"Converting Marlin.ino TypeError: object of type 'NoneType' has no len()
...
return _SConscript(self.fs, *files, **subst_kw)
File "C:\Users\adrians\.platformio\packages\tool-scons\script\..\engine\SCons\Script\SConscript.py", line 250:
exec _file_ in call_stack[-1].globals
File "C:\users\adrians\.platformio\packages\framework-arduinoststm32\tools\platformio-build.py", line 35:
CMSIS_DIR = join(platform.get_package_dir("framework-cmsis"), "CMSIS")
File "c:\users\adrians\.platformio\penv\lib\ntpath.py", line 65:
result_drive, result_path = splitdrive(path)
File "c:\users\adrians\.platformio\penv\lib\ntpath.py", line 115:
if len(p) > 1:
"
Could you publish the bin files, I'm not sure I know how to convert the prebuilt hex files to bin, or publish instructions? Many thanks.
This is not for SKR Mini. I…
This is not for SKR Mini. I am glad it didn't compiled because it could damage your board.
When I get a SKR Mini board I will be able to compile a special firmware, right now I only have the 8-bit standard board.
32 bit boards
Do announce when this happens.
New version for SKR Mini E3 v2 Boards
After weeks of testing I am finally releasing the firmware for SKR Mini E3 v2 boards.
This firmware enabled all features Marlin could offer to this printer and was carefully tuned for the Ender 3 hardware.
SD card support
I could not find any info about if your Marlin 2.0 file has SD card support enabled or disabled?
Also, can it be compiled with Arduino, i only saw Visual Studio Code mentioned?
SD card support
I think it does come with sd card support enabled, I disabled to save space for the compile to work. Also, yes it is possible to do it with Arduino, they are the same instructions as the 1.1.9, you just have to figure out the small nuances about it, as an example, Marlin 2.0 uses a different folder structure.
Marlin 2.0 DBP custom heat and level code + Bed Visualizer
Hey,
I wanted to get the bed visualizer plugin in sync with the custom heat and level PLA custom command.
Looking at source code, its clear to me the commands to use.
#define USER_DESC_3 "Heat + Level " PREHEAT_1_LABEL //Customized DBP
#define USER_GCODE_3 "M190 R" STRINGIFY(PREHEAT_1_TEMP_BED) "\nG4 S60\nG28\nG29\nM500\nG28\nM140 S0" //Customized DBP
In bed visualizer I currently have the following for obtaining mesh:
G28
M155 S30
@BEDLEVELVISUALIZER
G29 T
M155 S3
So, hopefully, bed visualizer can be configured with the following.
M190 R60 //heat bed and wait for 60C
G4 S60 // Wait for 60 Seconds
M155 S30 // Report temp every 60 seconds now
G28 // home
@BEDLEVELVISUALIZER
G29 T // Bed level plus mesh reporting
M155 S3 // return temp reporting to every 3 seconds
M500 // Save
G28 // Home
M140 S0 // Turn off bed temp and no need to wait for it to cool before proceed.
Makes sense ?
Yes. It should work.
Yes. It should work.
I have tried everything but can't get my BLTOUCH v3.1 working
In the past few days i have learned and tried a few things.
I have an ender 3 pro, just bought June 2020, it has a Melzi board v1.1.4. I recently bought a BLTouch (not knowing different versions), and it was a V3.1
Once plugged in to the board, with the pin27 board to the lcd extension, as soon as the printer is on a very dimmed red led keeps flashing. I say very dimmed because it is not the bright big red light that i see in videos of bltouch, its is a much smaller red led light.
So, i figured i had the problem with the capacitor. Learned the bootloader thing, bought an arduino uno, flashed and became acquainted with the process. Finally tried marlin 1.9.1 (https://www.danbp.org/p/en/node/136) tried it out and BLTouch was doing the same thing.
Note: It does not do anything than the red led flashing. does not pop out, in, test, reset nothing. Tried all the suggestions in the above article it does not respond to anything.
So after reading some comments of people saying they can get it working with 2.0 without hardware change, i decided to try. Had a few issues using vs code (it was trying thru different serial on my mac) I finally decided to go back and learn it the arduinoIDE way which was the way i had learned how to flash bootloader and other verions of marlin.
To my frustration, BLTouch behaves the same way. It is just flashing and it does nothing other than being a dead weight.
Anything else you can suggest I try at this point ?
TIA!!
BLTouch 3.1 has an internal…
BLTouch 3.1 has an internal firmware that must be programmed for the 5V logic to work with Ender 3. There are several ways of changing this setting, refer to the the BLTouch manual.
I have tried that and after…
I have tried that and after posting what i just posted now, i just tried the wires reversed on the board and VOILA! BLTOUCH is working.... i cant believe it was this ... i followed the direction in the bltouch for the 3pin .... i just decided to reverse it after reading comments about investigating the wires ....
Now i am wondering if it will work on 1.1.9 or if i should just stay with 2.0.1 .... I want to do mesh leveling so need to compile the sketch again anyway ... i think its worth trying.
Thank you for the feedback.
Thank you for the feedback.
No, thank you
No, thank you for putting together such great articles. Only when i got to your articles i started to really understand what i needed and how i needed to get it done.
Very very helpful
still high (nozzle)
q1/all setting work fine for me on (ender3 pro +bltouch v3.1 +marlin 2) but something missing on setting it feel not working (high nozzle ) did i need to (fade high setting) and whats it for if not??how i fix that
q2/ any g-code can help me to (not aotu leveling every time) ((from start to end)
did you adjust your Z offset…
did you adjust your Z offset while printing a test ?? did you base level your bed before ??
i think i found the problem,…
i think i found the problem, aouto home setting some times on 19.x high and some times on 20 high so i keep change the (z offset) many times
Buzzer screaming...
After compiling and uploading the fw, the buzzer is giving a very loud tone. I just tested motion etc and I don't have the BL touch attached and the thermistor is broken (waiting for a replacement).
Could that be the issue?
You can't use this Firmware…
You can't use this Firmware without a BLTouch. Please use this one instead.
How to increase the max temperature to 300?
Everything works great (thank you). My only issues is that I have a full metal hotend and the max temp is 260. With my hot end I can go up to 310 If need be and would like to adjust the max temp of this firmware. What's the best way to go about doing that?
Hi, you need to change…
Hi, you need to change limits in the configuration.h file and recompile the firmware. It takes less than 5 minutes.
Cr10-v2
I absolutely love it thank you very much!
Can you also do that for the cr10-v2?
What need to be changed if I can do it myself
Homing Z not working
Hey,
First of All thank you for this manual to get the BL Touch working with the Ender 3.
I built in the BL Touch on my Ender 3 like written in this manual. http://jonathanlundstrom.me/2017/10/23/cr-10-bltouch-firmware/
When i try to Home Z the Probe pint is not coming out and i cant control the bl touch. Is it cause of the wiring or is there a problem in the firmware?