Vanilla Marlin Firmware configured for Ender 3 + BLTouch

This is the 1.1.9 version of vanilla Marlin Firmware pre-configured for Creality Ender 3 printers with the 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. If you don't have a BLTouch sensor please use this version of Marlin that supports Mesh Bed Leveling.

I made avaliable the 2.x versions of Marlin for the same board and printer but I recommend using the 1.1.9.x because it is much more stable and has more features. The 2.x versions of Marlin are too big for the board memory and several features had to be removed in order to fit the firmware.

There are three installation options available, the traditional with Arduino IDE, the new method using Visual Studio Code + PlatformIO and the third one that is uploading the compiled firmware directly to the board. I recommend the PlatformIO option for most of the users, once the software is downloaded, the firmware can be upgraded in less than 5 minutes.

This firmware was made for 8-bit boards and will not work on 32-bit boards.

Features

  • Official Marlin firmware + bugfix with all hardware settings from Creality latest official firmware (April 2020).
  • BLTouch original/generic up to 3.x. enabled by default (BLTouch 3.x might need the 5V logic enabled from the LCD menu).
  • No need to remove any capacitors from the board.
  • Installs from the original Arduino IDE (smaller download and frequent updates from Arduino team).
  • Source code was 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 and slow probing (takes around 5 minutes to complete, 10 including the bed heating).
  • Run and toggle the bed level and BLTouch tools from LCD menus.
  • BLTouch voltage/logic settings from the LCD menu.
  • Slim menus enabled.
  • Baby steps enabled and configured for the "Magic Numbers".
  • Emergency parser enabled.
  • All changes from the original Marlin config file were marked with the comment  "//Customized DBP"

Requirements

  • 8-bit boards only! This will not work with 32-bit boards.
  • 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 sensors and the YouTube videos tips are most of the times wrong
  • Bootloader installed in your board
  • Arduino IDE for installation option 1
  • Visual Studio Code for installation option 2
  • AVRDude for installation option 3 in Linux or MacOS (AVRDude for Windows is included in the package)

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.

Instructions using Arduino IDE (option 1)

  1. Install the Arduino IDE
  2. Quit any software that could try to access the printer from the USB port (Cura, Serial Monitor, OctoPrint, etc...).
  3. Run the Arduino IDE and configure to download the Sanguino board. Add the following URL to the board manager (File->Preferences->Additional boards manager):
    https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json

     

  4. Install the following libraries/boards in the Arduino IDE:
    • U8Glib
    • Sanguino
  5. With all requirements in place unpack this entire Marlin distribution to a folder and open the "Marlin.ino" file from the Arduino IDE.
  6. Look for the configuration.h file and change the following lines to the relative coordinates of your BLTouch mount to the Nozzle. The actual settings are for this mount. If you don't have the measurements now you can configure it later with the M851 GCode (see instructions below).
    #define X_PROBE_OFFSET_FROM_EXTRUDER -42
    #define Y_PROBE_OFFSET_FROM_EXTRUDER -5
    #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 

  7. Disable the endstop interrupts feature by commenting (//) the following line in configuration.h. This feature needs to be disabled only if you are using Arduino IDE, with PlatformIO this problem does not exist.

    //#define ENDSTOP_INTERRUPTS_FEATURE
    

     

  8. Compile and upload the firmware. Make sure you are using the following settings.
    • Board configuration: ATMega 1284P 16Mhz
    • Programmer configuration: AVRISP MKII
    • COM Port: Depends of your computer. Usually only one is available for selection.
  9. Follow the post-installation instructions below.

Instructions using Visual Studio Code + PlatformIO (option 2)

  1. Download and install Visual Studio Code.
  2. From Visual Studio Code extension menu, install the PlatformIO IDE extension.
  3. With all requirements running, unpack the entire Marlin source code downloaded from the link below to a folder.
  4. 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".
  5. 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 X_PROBE_OFFSET_FROM_EXTRUDER -42
    #define Y_PROBE_OFFSET_FROM_EXTRUDER -5
    #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 
  6. 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.
  7. If the code compiled properly you will see something like this in the terminal: "=== 1 succeeded in 00:00:30.050 ===".
  8. Connect your printer to the computer using the USB cable.
  9. Go to the Visual Code menu Terminal->Run Task->Upload .
  10. If everything goes well another message like this "=== 1 succeeded in 00:00:55.010 ===" will be printed.

Installing the pre-compiled HEX (option 3)

The pre-compiled firmware is also available here. You can simply burn the compiled HEX file directly to your Ender3 board without installing the Arduino IDE or Visual Studio Code.

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. 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

Finally, follow the post-installation instructions below.

Post-installation configuration

  1. 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.
     
    1. Cool down the bed and the nozzle. Heating should have little to no effect on this specific procedure.
    2. Disable stepper motors using the LCD menu command.
    3. Place a credit card on one the bed, the thickness of the card will be used as a reference distance.
    4. Turn the Z axis with your hand until the nozzle hits the credit card.
    5. 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.
       
  2. Heat the bed to the printing temperature and run the bed level command from the LCD (Prepare -> 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.
  3. 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).
  4. 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

     
  5. 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 -> Prepare -> Bed Leveling -> Z Offset). Don't forget to save the settings after the print to keep the offset in the memory, you can use the LCD or the M500 GCode for this.

Troubleshooting tips

  • No serial COM port appears when connecting to the board: Download the FTDI Drivers
  • Bed level failing:
    • 1st - make sure you manually leveled the bed, the probing tends to fail if any part of the bed is >2mm lower or higher than the home level.
    • 2nd - make sure you have the M420 S1 command AFTER the G28 line in your print initialization GCode.
    • 3rd - make sure your probe was installed properly, there are maximum and minimum height clearences between the BLTouch tip and the nozzle tip and that changes for each version of BLTouch.
    • 4th - check the wiring! Sometimes the wires are inverted in the default connector setup.
    • 5th - if you are using BLTouch 3.x see the next topic.
  • BLTouch 3.x failing to probe: Be aware that this is rare contition, the vast majority of the users run BLTouch 3.x without problems. I suspect this is related with the hardware (probe/board components, etc) and there is little we can do from the firmware side:
    • 1st - Enable the 5V logic in the LCD menu (LCD -> Control-> BLTouch). BLTouch versions 1.x and 2.x don't have voltage modulation do not require this setting.
    • 2nd - If the previous does not work, enable SW mode (LCD -> Control-> BLTouch).
    • 3rd - Enable and adjust the delay setting in configuration_adv.h (requires recompiling the source). This is trial an error but try values from 300 to 700 increasing/decreasing by 100.
    • 4th - If the BLTouch is version 3.0 (not 3.1, 3.x...) enable BLTOUCH_FORCE_MODE_SET setting in the configuration_adv.h.
    • 5th - If none of the above work you either have a faulty probe or a problem with the capacitor in the board.
#define BLTOUCH_DELAY 500
  • Error "..._PIN is not interrupt-capable..." in Arduino IDE: This is an Arduino IDE bug, disable the feature in the configuration.h file according to the example below to fix (put "//"). If you are using PlaformIO you should leave this option enabled.
//#define ENDSTOP_INTERRUPTS_FEATURE
  • 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 (PROGISP, for example) 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.
  • 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.

Other Marlin downloads for Ender 3

Files
Version
1.1.9.1+ Bugfix + BLTouch for Ender 3 (Aug 3rd, 2020)
Platforms
Arduino IDE or PlatformIO
File size
4.2 MB
Checksum
File 1 SHA256: 1DCD5D998C999C80D72A4153BDF27D3A2682FA5F6E869029EEB282FEE2842739
File 2 SHA256: C69961C0E223D1189FFBC2258DD30D49557BE986C5505011ABBFD479CCE61169
File 3 SHA256: D3CEFC5D5EB7C6536EFDBCED861201DA5E59272FFB0193549E2B469740452F44
Screenshots

Post Categories

Comments

Earlier in the terminal window I see-

Looking for LiquidCrystal_I2C library in registry

Conflict: More than one library has been found by request {"name": "LiquidCrystal_I2C", "requirements": "1.1.2"}:

LiquidCrystal_I2C

=====Automatically chose the first available library (use `--interactive` option to make a choice)==

Just done a clean install on my laptop of Visual Studio Code, PlatformIO IDE and Python as reqested by PlatformIO IDE and I get exactly the same looking for a windows x86 version.

In both cases the operating system is Windows 10 Pro.

There is a platformio folder in your Windows user folder. That's where the shared libraries are installed. It will not be deleted during the uninstall.

Try erasing it and reinstalling Platformio. If it does not work let me know because I will try to runa clean install in a Virtual Machine to see if I can replicate.

Just installed on my husband's desktop and I get the same issue and reference to windows_x86

I've taken a copy of the complete terminal output if that could help.

I'm happy to accept that I might be missing something, but then I'm doing it wrong on every install

Friends,

Thank you for the patience. I found out that PlatformIO is using an updated version of the LCD Library and therefore when the build tries to download a different version we end up with a conflict. There are two solutions for this problem:

1. Download the new zip file with the source I just posted. It includes the older version of the lib.

2. Edit PlatformIO.ini and change [email protected] to LiquidCrystal_I2C~1.1.2

Submitted by Niamh on Sat, 08/01/2020 Permalink

#define NOZZLE_TO_PROBE_OFFSET { -42, -5, 0 } is not present in configuration.h to edit. 

Do I change these lines instead(45mm was what I measured)?

#define X_PROBE_OFFSET_FROM_EXTRUDER -45  // X offset: -left  +right  [of the nozzle] Customized DBP

#define Y_PROBE_OFFSET_FROM_EXTRUDER -5  // Y offset: -front +behind [the nozzle] Customized DBP

#define Z_PROBE_OFFSET_FROM_EXTRUDER 0   // Z offset: -below +above  [the nozzle] Customized DBP

Submitted by Niamh on Tue, 07/28/2020 Permalink

Is there any reason not to do it the "Creality way" by autohoming then moving Z to get a nice drag on paper and then using the value to get the offset?

Submitted by Emerson on Fri, 07/24/2020 Permalink

Is there anything I have to do for this to work with the better drivers in the silent board?

Submitted by Chris on Mon, 07/20/2020 Permalink

I'm using this on a Creality 1.1.5 Silent Board (on an Ender 3). Works absolutely fantastic! I've run into a problem which might be hardware related instead of firmware, but looking for some help.



Every time I shut the printer down, when I turn it back on, I get the blue screen and it won't boot up. The only fix I've found is to reload the firmware every time I turn the printer back on (tedious!). It always runs great, but it won't retain the firmware. It's absolutely fine as long as I never shut the printer down. Thoughts?

I am using the ISP Burner and Pinboard that came with my BLTouch. Simply using the same method as to when I first installed it with different firmware.



I also picked up a second machine. This one with a 1.1.4 board. Doing the same thing. With the 4, I can shut down and turn it on about 5-6 times and it will boot up correctly once. With the 5, it takes about 10-15 tries.

I also have a Creality 1.1.5 Silent Board on an Ender 3 and I can see the same thing: most of the time, the board doesn't boot once shuted down after the firmware loading.

Actually I need to shut down and power off the board a couple of time before the board boots as it should.

One other thing I have find out: in order to be able to reflash the firmware I need to first reflash the bootloader otherwise I only get:

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x65

avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x63

avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x68

avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x6f

avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x3a

avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x53

avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x44

avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x20

avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x63

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x61

avrdude done.  Thank you.

 

This is really insane. I first thought that using melzi as the target instead of melzi_optiboot would be the reason of hving to reflash first the bootloader, so I made my own build with melzi_optiboot as the target but it doesn't seem to change anything.

Before installing the BL Touch and using your firmware I was successfully compiling and flashing Marlin myself on the 1.1.5 silent board with the default Ender3 configuration files and never had such an issue (either the boot one or having to reflash the bootloader), so I'm a bit puzzled here...

getsync error is usually related with uncompatible upload speed. This speed can be configured in Platformio.ini. Melzi_optiboot uses a higher speed, that's the only difference with melzi.

Users also got this error with corrupted bootloaders. Bootloaders get corrupted if the firmware update software overwrites part of the bootloader code. If this happens the board behaves weird and could refuse to boot or accept further writing.

AVRDude, the official firmware upload tool in Arduino IDE and Platformio uses optiboot as it's native bootloader. Unfortunately several OEM boards are factory loaded with other bootloaders. If either the board bootloader is not compatible with the update software or vice versa you can end up with corrupted code.

In order to fix this problem you need to reinstall the bootloader. I recommend using optiboot because it is the most updated and actively supported. There are several tutorials online that demonstrate how to to this, the only inconvenience is opening the control box and wiring the ISP cables but after doing the physical connection it takes less than one minute.

Regards

 

 

 

 

Ok, I started again from scratch and flashed (once again) the bootloader with an usbasp device for ISP but using the Arduino IDE way this time :



avrdude -v -patmega1284p -cusbasp -Pusb -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m

avrdude -v -patmega1284p -cusbasp -Pusb -Uflash:w:optiboot_atmega1284p.hex:i -Ulock:w:0x0F:m

 

Note:

1. the bootloader can be downloaded here: https://github.com/Lauszus/Sanguino/raw/master/bootloaders/optiboot/opt…

2. For those who are interested, please mind the fuse values....

 

Then I flashed the firmware the Platformio way:

avrdude -p atmega1284p -c arduino -b 115200 -D -P /dev/cu.wchusbserial1420 -U flash:w:firmware-1.1.9.1+Fix_TMC2208.hex:i

 

And now I'm back in business :)

- The board boots correctly every time

- No more issue with flashing another software after a power-off / power-on cycle as I had previously.

 

Cherry on the cake: I did build my own version with fr_utf8 as the language (but I had to disable the Volumetric extrusion options for this to fit) and was able to flash it without any issue.

 

Hi,

 

I've just got my Ender 3 v1, which is using old 8-bit board v1.1.4, and Creality BLTouch kit, which I think is v3.1. I sure had a lot of troubles over last 2 days getting it working, so far the only way was to use Marlin1.1.9.1_bugfix firmware. However I'm facing the issue with firmware not booting up most of the times, I have to do quite a few on/off cycles to get it working.

I'm wondering if maybe the fuse/lock codes are issue ?

I have used USBISP dongle to write optiboot_atmega1284p_bootloader using progisp.exe, with fuse values from creality booklet : Low: D6, High: DC, Ext: FD. Then connected USB cable and used avrdude.exe to write firmware.hex. I did not see any problems there, no syncing errors.

 

I tried searching for possible solution, and one thing I have noticed is different fuse codes. Now, I would assume yours would be due to your board being 1.1.5, which is 32-bit one afaik, but I have seen some youtube videos where authors used the values as above, only with reverted low/high values, so Low: DC, High: D6, Ext: FD.

 

I have no idea what they mean, so can't judge if they are correct or not. Would rather live with this troublesome on/off cycle before printing than brick my board.

 

Any idea how to debug this issue, or how to search for possible reason ?

 

One odd thing I have noticed is that if I connect my USB cable from board to laptop with Windows, it seems to wake up firmware, with "resume printing/stop printing" menu, while it was not printing anything before powering it down.

 

Regards,

Piotr

This is for 8-bit boards only. it works well from 1.1.3 to 1.1.5 versions.

Please use AVRDude to burn the bootloader and the firmware. Progisp is a very old software that loads very old bootloaders and causes a series of compatiblity problems.

Hi,

 

Thanks for your response, in fact your work here saved me lots of troubles after I have got BLTouch in a version that was not compatible with my Ender 3 board.

 

I think I have it under control now, it seems there's no need for power cycling today, so fingers crossed.

 

I had to use progisp for the first ever flash, as there was no way to use USB then since board does not have the bootloader originally. I have flashed bootloader file from sanguino, so it should be ok, I guess.

 

I have used it again yesterday, while trying to follow fixing procedure in this thread, and I have to say I had no idea how to tell avrdude / Arduino IDE to use the usb cable (which should be possible even for bootloader since I did first flash of optiboot via progisp).

 

I guess my main problem is with those fuse codes, I have no idea what they mean, but kind of expecting them to be different for different boards, so the ones OlivierP uses here https://www.danbp.org/p/en/comment/1149#comment-1149 may be not the ones I need, and that was core of my question above :)

 

Now, while It seems that reflashing bootloader via progisp and then firmware via avrdude over usb seemed to help (I also did every operation twice for good measure :) ), I would be interested in understanding what those fuse codes are and what they do.  Do you have any link that would cover that, or can explain it ?

 

Regards,

Piotr

Hi,

 

That is great info on fuses, thanks.

 

As for ISP, I have one which seems to be special (got it with creality bltouch kit), avrdude did not want to acknowledge it in any way, and I've found some info about it that explains how to cut some connections and flash with firmware to make it AVRDude compatible. (https://www.sbprojects.net/knowledge/review/usbisp/index.php)

 

I hope that next time I will be fiddling with the board will be when I will be exchanging it for 32-bit one, so no need to do anything with that ISP I have.

 

Again, thanks for your time and work.

 

Regards,

Piotr

Submitted by Maria Henderson on Sat, 07/18/2020 Permalink

I started on the journey of adding a BLTouch to my printer about 5 days ago. 

I had to learn how to flash a bootloader (from a Mac) Found out that the USB ISP that came with my Creality Kit BLTouch wasn't working.. I used a borrowed windows laptop to try it thinking I just didn't have what I needed. 

I picked up an Arduino UNO Kit.. got it all the way home (45 minute drive to pick it up) and realized that I didn't have the right jumpers. It only came with male jumpers. Back to MicroCenter again, purchased the correct jumpers  and had success and an adult beverage to celebrate. .. Now on to finding just the right version of Marlin and get it fto compile. 

It was still bothering me that Creality was pointing me to a .hex file. What am I supposed to do with that?  

I finally got a vanilla version of Marlin reinstalled and I felt like I was back to square one. 

There are so many recipes out there.. so many videos that are old and bad. So many failures. I also also learned along the way that the Octoprint that I was using (yep learned all about raspberry pi.. but that was two weeks ago.) could indeed with a plugin install that .hex file. 

Hazzah.. uploaded that sucker and then followed the directions to manage the Z offset. WOULD NOT BEHAVE. 

Back again to search the web. Again I found some bad ideas.. and Then I FOUND YOU! You had a .hex file All tied up in a bow for me. I managed the Z offset and held my breath. 

After 5 evenings of being glued to my maker space while my hubs was off lounging in the pool VICTORY IS MINE (and yours)

Thank you so very much for taking the time to share your learnings.

Now I can actually print something!!!

 

 

 

 

Submitted by ^Malte on Tue, 06/30/2020 Permalink

Hello,

Your version of Marlin is very good and saved my BLTouch from trash.

Since everything is going so well, I have also installed a filament runout, can I post the version online, with a link here?

Thank you for this good guide

Best regards

Malte

Submitted by John on Thu, 06/25/2020 Permalink

So what is the correct fuse values, if those provided by Creality is wrong? The ones from Creality is D6-DC-FD, those are also the ones that are already on the board from factory and working with the original Creality firmware. Are those fuse values not the correct ones? I flashed this firmware with the above mentioned fuse values and i could boot normally.

Submitted by Jose on Thu, 06/04/2020 Permalink

First of all thanks for sharing this and taking time to answer and help others. 



I have followed everything multiple times, flashed the last version but I'm getting a weird problem when printing: some side of the bed is super close while the other side is far, not by much but enough so it doesn't stick and enough so nothing or close to nothing gets extruded, printing at the center somewhat works but trying to use the full bed simply fails. 



Any idea what could be wrong? 



Thanks

Actually just read the comments and someone had the same issue, it feels the compensation is inverted, it goes up where it should go down and the oposite for the other side of the bed, trying 5V, see if that fixes it

Had difficulty initially then changed board to Sanguino with processor ATmega 1284 or 1284p 16mhz and got the sketch to compile fine. With board set as ATmega 1284P got a compile error indicating not enough space on processor.

Had to download a couple of times to get my printer going...first time lcd screen stayed blue and wouldn't boot etc. but after another try or two everything came up great into Marlin1.19

Thanks much to Daniel for all his great support!

After leveling my bed I'm amazed at how well the prints are coming out. The mesh leveling is excellent!

I have a BL Touch installed and use the Ender 3 LCD to do the bed leveling then store the settings. Is it necessary to store the settings?

Is bed mesh leveling different? The leveling procedure I am using takes some time and covers the whole bed.

I print using Octoprint and have been getting excellent prints and adhesion with very little need for manual levelling

Had to download a couple of times to get my printer going...first time lcd screen stayed blue and wouldn't boot etc. but after another try or two everything came up great into Marlin1.19

How do you fix this?

Reload the firmware? or else?

Submitted by jonas silva on Wed, 06/03/2020 Permalink

ola daniel boa noite tudo bem consegui gracas a voce , muito obrigado .

queria pergunta se tem como mostra no display da ender a configuracao de STEPS no menu pois antes eu configurava no lcd agora tem que ser so no arduino ide né .

des de ja muito obrigado .

 

Ola,

Você pode criar um arquivo GCode (setesteps.gcode) com o código abaixo e mandar imprimir através cartão SD ou enviar diretamente pelo serial monitor. Não é preciso recompilar o código fonte. Substituir o 93 pelo valor calibrado:

M92 E93 ; Set extruder steps to 93
M500 ; Save settings to EEPROM