Marlin 2.x for a CR-10 V3

I’ve been wanting a 3D printer for a while and finally bought one. I ended up with a Creality CR-10 V3 based on a friends recommendation.

CR-10 V3

I added a BL Touch v3.1 to it and then, instead of using the Creality provided firmware based on Marlin 1.1.6 that still says “CR-10 V2” all over it, I built Marlin 2.0.6 for it with a lot of help from some friends.

Here’s my original Reddit post:

Here are my configuration files and some pre-compiled firmware if you want to use it “as is” and not have to build your own:

I’ve just completed a print and appears to have worked just fine so I think this firmware works.

114 thoughts on “Marlin 2.x for a CR-10 V3

  1. Thank you a lot!!! Working wonderfully. Why is the temperature is limited to 240 only? I used 260 for my PETG before on CR10-v3 Titanium Extruder, and now it’s limited to 240.

    • Looks like 240 might be a default in Marlin 2.x

      If you look in Configuration.h around line 469 these settings are commented out:

      // Above this temperature the heater will be switched off.
      // This can protect components from overheating, but NOT from shorts and failures.
      // (Use MINTEMP for thermistor short/failure protection.)
      #define HEATER_0_MAXTEMP 255
      #define HEATER_1_MAXTEMP 275
      #define HEATER_2_MAXTEMP 275
      #define HEATER_3_MAXTEMP 275
      #define HEATER_4_MAXTEMP 275
      #define HEATER_5_MAXTEMP 275
      #define HEATER_6_MAXTEMP 275
      #define HEATER_7_MAXTEMP 275
      #define BED_MAXTEMP 120

      I suspect if you changed this:

      #define HEATER_0_MAXTEMP 255

      to this:

      #define HEATER_0_MAXTEMP 260

      You’d get your max temp of 260c back.

      I can look into it when the next Marlin Firmware comes out. I don’t print that hot.

      Are you sure the Max is 240c and not 255c?

    • Ah ha, found the answer:

      MAXTEMP is defined as “if a heater reaches this temperature there’s something seriously wrong and we need to do an emergency stop”. By default you can only set a heater temperature to MAXTEMP minus 15 degrees – the extra is so the error condition doesn’t trigger when the temperature is converging to the set value. If you need to set the temperature to 250C you need to set MAXTEMP to 265.

      So 255 – 15 = 240

      You’d need to change:

      #define HEATER_0_MAXTEMP 255


      #define HEATER_0_MAXTEMP 275

      I will do this next Marlin update since our printers are rated for 260c.

  2. Hey Eric, This is awesome!
    I also recently got a BL touch from Creality and it kept bugging me that it had the V2 label instead of V3 (Just one of little details that makes a big difference haha) I tried downloading their source code, but then realised the status screen uses an image and not text for the top left corner.

    I was just curious, have you had any issues with the power recovery feature with this firmware? I was doing some searching of v1 vs v2 and it seems Marlin 2 uses more memory than v1 and on a few boards Marlin v2 doesn’t work correctly due to memory requirements. What I can’t seem to work out is if the V3 has an 8-bit board or not, as I found it strange that Creality was still using v1 on new printers. Thought perhaps this could have been a factor. (or they got lazy haha)

    Again, thanks heaps for this! I plan to try it out anyway once my current print is finished.


    • I believe the V3 uses an 8-bit board. When I compile the firmware I specify the build environment to be “mega2560”.

      A quick Google for “mega2560” comes up with this: which says “The 8-bit board with 54 digital pins, 16 analog inputs, and 4 serial ports.”

      I have not tested the power loss/resume function. I have my printer hooked up directly to a Octoprint VM and don’t use the SD card. I suspect for the resume function to work the print has to be on the SD card.

  3. Will this also work without BLTouch? I don’t currently have one but would like to upgrade to marlin 2.0.x since I think I am having issues with the stock version of the firmware.

    • I haven’t tested it but I don’t see why it wouldn’t work with out a BLTouch attached.

      Just don’t run any of the mesh leveling Gcode and you’re probably fine.

      You can always test and if it doesn’t work revert to the stock firmware. Low risk and doesn’t take long.

      If you want to alter the firmware yourself you basically want to comment out (add //) line 31 in configuration.h:

      //#define CR10V2_BLTOUCH

      With the next release of Marlin I will start compiling a BLTouch and non-BLTouch version of the firmware (if I remember).

      I highly recommend getting a BLTouch.

      • Thank you i will try that.

        I have one ordered but it will take a few days to arrive. But i am having issues with the stock firmware.
        Tough i think i received a lemon since my v3 keeps freezing and i have to hard reset.

        I figured it try another firmware and see if it might reset the pcb. Thanks for answering my question though. and having both versions is a great idea for those people like myself who don’t get bltouch right from the start.

      • Hi Eric,
        I first tried it with your precompiled version of 2.0.7. this did not properly work since i do not have the BLTouch.
        Then I recompiled a Version of your own code with the line changes:

        line #31 commented out
        // Is the BLTouch option installed?
        //#define CR10V2_BLTOUCH

        line # 665, 668 & 669 set to false and removed the ENABLED(CR10V2_BLTOUCH)
        // Mechanical endstop with COM to ground and NC to Signal uses “false” here (most common setup).
        #define X_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
        #define Y_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
        #define Z_MIN_ENDSTOP_INVERTING false // ENABLED(CR10V2_BLTOUCH) // Set to true to invert the logic of the endstop.
        #define X_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
        #define Y_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
        #define Z_MAX_ENDSTOP_INVERTING false // ENABLED(CR10V2_BLTOUCH) // Set to true to invert the logic of the endstop.
        #define Z_MIN_PROBE_ENDSTOP_INVERTING false // ENABLED(CR10V2_BLTOUCH) // Set to true to invert the logic of the probe.

        this runs Marlin 2.0.7 on CR10v3 without the BLTouch. Thanks for all your hardwork.

        • Thanks for the update! Odd you had to comment out multiple lines. I thought commenting out the bit on Line 31 automatically disabled all BLTouch related code in the firmware.

          Will keep an eye on it for the next release.

  4. Hi Eric

    Firstly, thanks for the pre-compiled. Saved me a lot of time in figuring out how to compiled i myself. While testing the resume on power failure feature, the screen went berserk and was showing weird large chinese characters. I realized the ‘The POWER_LOSS_RECOVERY’ flag is not uncommented in Configuration_adv.h. Would you please uncomment it and compile a build! This would be much appreciated.

  5. Hi Eric,

    thank you for this nice work and the constructive discussion! Most likely I will buy myself today an CR-10 V3 printer, and I will be able to follow up more with you.

    Do you still recommend this printer for small details (like mechanical parts), and for big prints as well? Does it give accurate and good quality prints?

    • Honestly I wouldn’t call myself an expert on any of this. I still have a TON to learn compared to those that have been doing it for years.

      Now that I’ve worked out the kinks in my CR-10 V3 and learned enough to troubleshoot basic printing problems I’m definitely happy with it. Should I have bought a Prusa instead? Maybe.

      I’d hit up some of the 3D Printing Subreddits if you’re looking for advice on what to buy.

  6. Hi there,
    I have upgraded my current Marlin 2.0.5 (that was having some jerk issues), with your latest, thru the Mattercontrol firmware updater. Fw upload went ok, the LCD is working and I can pester with settings.

    1. I can’t connect to the printer any longer :(
    2. Printer itself is more or less working, while it is clearly having some extrusion steps issues (wire is being janked in an out :D)
    3. I will try to revert to the previous version, or any other hex … do you have any recovery procedure?

    Bed leveling is working fine, a test print show the nozzle brushing the plate.

  7. Hello,
    Managed to recover access back using avrdude; quite a strange behavior indeed; I was not expecting this kind of connection issue!

    I flashed back my previous fw using AVRDude, now the app is working again.

    For everyone out there, AVRDude command line was the following:

    .\avr\bin\avrdude -p atmega2560 -C .\avr\etc\avrdude.conf -c wiring -P com4 -b 115200 -F -U flash:w:crealitylatest.hex -v

    1. – P com4 ; my printer is on COM4
    2. flash:w:crealitylatest.hex ; w is for write, followed by filename

    Luckyly I’m doing a backup each time I try a new firmware :)

    • Thanks for the tips. I’m sure someone will find this helpful if they run into the same problem.

      I use the ‘Firmware Updater‘ plugin in Octoprint to load up my firmware. I’ve yet to run into any issues like you described. Worst case I’ve had to power cycle/unplug/plug my printer to get it to be recognized again. I have yet to have to revert but obviously your mileage may vary.

      I also had a problem where my print head was being dragged across the print even with z-hop enabled and a very generous hop value. I ended up solving the problem (I think) by re-leveling my X arm. It was slightly lower on one side.

      • I am a windows user; still need to setup octoprint over Raspi 3 and dedicate it to printing: I have tried to run it in a container with no luck so far. I haven’t much time to dedicate to this project, unfortunately.

        Current issue with 2.0.5 – the jerk model for movement is not correct: the carriage is standing in the same place too much and the filament will ooze at each corner. I have read that is a known bug of that release; I should enable the standard jerk routine as the “advanced” is failing.

        Yep, that X arm issue happened to me too – I have another printer and can tell that those steppers are a bit underpowered. If you sligthly press the carriage bridge on one side, you will end up misaligning; this won’t happen with the other printer.

        note: bltouch bed leveling behavior from 2.0.5 to 2.0.6 has changed: with 2.0.5 at each point probed, the bltouch probe pin would stove; with >2.0.6, the pin will become red for an instant then the carriage move to the next point.

        I think we have a slightly different printer – I have the CR-10 V2 + Creality BLTouch; so a simple firmware drop-in would not work, I will prolly need to recompile from the basic; each toolchain I’m trying seems to have some bug at a certain step, I’m a bit p!ssed.

          • Update: I’m using the latest; with Creality V2 configs.

            Bugs solved:
            #define BAUDRATE 115200
            Serial disconnection was caused by a wrong serial speed; that was set to 250.000 in the default configs.

            Bugs still open:
            After a bed leveling, the nozzle is still around 10mm over the plate, printing on air – your firmware version was working fine.
            were you using the bugfix release?

          • Checking the configurations I’m using I have this:

            #define BAUDRATE 250000

            That being said my Octoprint is configured for ‘automatic’ when connecting to my printer, I think it negotiates 250000 and “just works”. Maybe you’ve got a bad USB cable or not enough bandwidth on your USB bus? There was one point where I was writing a ton of data to a USB HD using the same USB BUS as my printer and the printer kept dropping it’s connecting and rebooting.

            I can’t actually find anything in the manual or on the website about what the buad rate is supposed to be for the CR-10 V3.

            I wonder if your height issue has something to do with your z-offset?

            I’ve completed 2 prints using my firmware I built a few days ago. Previous to that I was using with no issue.

  8. Thank you, thank you, thank you!
    Lost filament runout abilities after installing Octoprint with original firmware. I really didn’t want to wire it directly to the Raspberry Pi as I thought it shouldn’t be necessary. Doing some research on Marlin 2.0 firmware I ran across your Reddit thread. I really haven’t seen anyone else attempt this yet for our particular printer and I don’t think it would be something I’d attempt on my own at this time. I made some adjustments to align the print with the bed properly and adjusted speed and distant values for the filament change in the advanced park feature (G600). I also adjusted the Park Point to my liking and of course changed Probe Z offset values to match my setup and including the probe to bed offset in that part.
    If you’d like I’m happy to share my changes with you.
    Thank you also for your clear instructions in setting up the Firmware Update Plugin, it was very helpful.
    Have a beer on me!
    Thanks again

    • You’re very welcome! and thank you for the tip!

      Please feel free to share and customization details here or via my e-mail.

      Not going to lie, I’ve just completely bypassed my filament run out sensor and have been relying on weighing my spool and printers and using Excel to keep track of where I think I’m at. Have yet to finish a spool to see how accurate this system is.

      • I was considering doing that exact same thing but the thought about having a bunch of end rolls kicking around turned me off of it!
        The runout sensor works great in Marlin 2.0 after the config changes, you should really try it out. You’ll be able to use those rolls up with confidence!
        Sent you my changelog.

  9. Hey guys, fantastic work here. I do have some questions. I have a brand new cr-10 v3 which I promptly upgraded with an authentic BLTouch. However, when trying your firmware I get a VERY strange sound from the z-stepper motors. I can manually move them via pronter, or disabled with no sound or issues. However, during print it occurs. Also after about 4 or 5 layers the z- appears to not be raising anymore or correctly as the nozzel begins dragging through the spent filament. I have rolled back to the cr-10 v2 w/ bltouch software on the website and the issue resolves. Any ideas what this could be?

    Thanks in advance.

    • I did have a similar issue but I didn’t think it was firmware related. I ended up re-leveling my z axis and I believe that cleared things up for me. I haven’t had any nozzle scraping since then.

      • I’ve done a bunch of tinkering and managed prints to cooperate rather nicely using your firmware, it was related to the x crossbar. I have narrowed down the weird goose honking (best I can describe). It is related to the titan direct drive. Once I noticed and figured it out it can been seen on every retraction. I will take it apart later today and see if I can lubricate anything or decipher the exact cause. This is my first go with a titan. I have 2 other micro-swiss direct drives on ender 3 pro machines.

        My guess is that there are some different values in the firmware possibly related to retraction? I have yet to look. Seems more likely the noise issue should or could be resolved with the physical direct drive itself and was just masked by settings.

        Thanks again for all your work.

        • This is great info. I think I know the honking you’re talking about.

          Let me know if you find any setting tweaks that help.

          Beyond the odd noise from time to time prints come out just fine for me.

        • Hi Kenny,
          Try changing the DEFAULT_RETRACT_ACCELERATION value (in Configuration.h) down to 500. Retraction movements are quite a bit smoother after that, I brought the other acceleration values down to 500 as well.

          • Hi there!
            On my CR-10 V3 there is the strange loud retraction noise, too! I made a short video so everyone is able to get to know this sound ;)


            I’m using the with BLTouch. Switching back to the stock firmware removes this nois an the retraction is slower an smoother.

            Does changing the DEFAULT_RETRACT_ACCELERATION value removes this nois?

          • I personally did not have that noise but slowing down the acceleration value definitely smoothed out the retraction for me. What were the retraction speed and distant setttings set at in the slicer software for that print? Hard to see from the video but it looks too far, too fast from what I can see.

          • Derek, i’m not sure… maybe around 80mm/s and 6mm. But i know that I haven’t changed it when i switched the firmware.

          • Hello Christian,
            Our direct drive extruders do not need that much retraction length and speed, I typically have mine set to 1 – 1.5mm for length and speeds are typically 30 – 40 mm/s. I believe what is causing this honking noise is the high acceleration value applied to retraction values that are too far/fast is possibly causing the filament to slip on the extruder gear (Just my theory).
            Acceleration values are stored in EEPROM so there is no need to modify and reflash the firmware. Send M204 R500 to the printer to set the retraction acceleration value to 500 then save with M500. You can see all the values stored in the EEPROM with the M503 command.
            Hope this works for you because this is great firmware!

  10. Hello,
    I have tested and thanks for this great work,
    My SDCard is not working and makes the CR10 V3 to freeze ? how do i solve this ?

    I do not have a printed holder for the BLTouch I have the regular bracket do I need to change something ?


      • Hello Eric,

        Actually with the formal firmware from creality my SDCARD is working but with this firmware it does not ?

        Do you have the same issue ?


        • Odd. I tested with a SD Card when I first got my printer and used this firmware but not since. I use OctoPrint so I don’t actually use a SD card for printing. Next time I print something I’ll see about testing with a SD card.

          • Thanks Eric,
            With this firmware and octo print do you have the filament sensor activated ?

          • I do not. I have my filament sensor bypassed at this time. I am considering putting it back in play with the next Marlin release and enabling the resume feature per someone elses suggestion in one of these comment threads.

  11. hello Eric, I have cr10 v3 and the same bl touch v3.1 ho w did you connect it to you cr 10 motherboard, do you have a diagram please?

  12. Hello Eric,

    i also own that CR-10 V3 with BL-Touch V3.1.
    Currently still with stock firmware.
    Must the bootloader also be flashed before I flash your firmware?



  13. Thanks for the firmware. Just loaded the latest on my new CR-10 V3. Worked like a charm! Really greateful.

  14. Hi guys. See lot is going on here and i appreciate your work. I bouth CR-10 V3 last month (2020.11) and upgrade it with BL touch that i get from creality store. From then till now only troubles began and i have enough of it and i want to go to stock firmware (with V3 logo) so i can sold that stupid machine. Does any body have that firmware because i can not find it on web. Thank you in advance.

    • Hi,

      I wrote to Creality Support and they sent me the firmware, but I have already deleted it.

      It was the same for me.

      With the Creality BL-Touch firmware the pressure was very bad. No matter what settings I tried. I wanted to remove the BL-Touch again, but with the Marlin firmware with Eric’s configuration my CR-10 prints really well. I just had to compile the firmware myself, because I couldn’t get a connection to the printer. Baud rate is 250000 and i need 115200.
      Otherwise best a mail to the support of creality.

      Greetings Jo

      • Hi Jo,
        thank you for a replay. I will definitely send an email to Creality and ask for .hex file, but because i made my mind to sold the “thing” i would like to be stock firmware onboard. Thank you all again. Regards..

  15. Hi Eric,

    Great work. I’m a relative noob to 3D printing but I’m learning fast, I have CR-10 V3 and your 2.0.7. it works pretty well for me so far (I won’t have exercised a good deal of it yet I’m sure).

    One issue I have seen and I think I know understand what the cause is/was. I found the direct extruder at times but particularly during load/unload/change of filament would grind away at the filament and misfeed (harder filaments) or just misfeed (tpu/soft filament). I believe the feedrate settings for those operations need to be adjust to much lower values to avoid this.

    // (mm/s) Unload filament feedrate. This can be pretty fast.
    // (mm/s) Load filament feedrate. This can be pretty fast.


    • Hello Gavin,
      I made the following adjustments to the filament change values for our configuration. I can confirm these are slow enough to work with softer filaments such as TPU, lengths are adjusted as well for our direct drive extruders.
      2100 #define PAUSE_PARK_RETRACT_FEEDRATE 60 to 5
      2101 #define PAUSE_PARK_RETRACT_LENGTH 4 to 1
      2103 #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 40 to 5
      2105 #define FILAMENT_CHANGE_UNLOAD_LENGTH 435 to 100
      2112 #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 30 to 5
      2114 #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 430 to 90
      2118 #define ADVANCED_PAUSE_PURGE_FEEDRATE 3 to 1
      2119 #define ADVANCED_PAUSE_PURGE_LENGTH 20 to 40
      2130 #define FILAMENT_UNLOAD_PURGE_FEEDRATE 25 to 5

      I also adjusted the park point (my personal preference) so the bed moved to the back with:
      1556 #define NOZZLE_PARK_POINT { (X_MIN_POS + 5), (Y_MAX_POS – 5), 10 } to { (X_MIN_POS), (Y_MIN_POS), 10 }

  16. Hi! That is great work! I will install a E3D V6 all metal hotend with a max temperature of 285ºC. Are there any “easy” tutorials on how to configure the firmware? Where did you put all the images and menus? It’s my first time compiling firmware and I don’t want to break anything. For now I want to compile it without the BL-touch. How could I start? I will use your config files, modifying them for my hotend.

    • The maximum temperatures are in Configuation.h on line 468-479. Remember to add 15c to your desired maximum, so for 285c you’d want to put 300c as your max temperature.

      The menus are all built into the firmware, I didn’t change any of that.

      The image I added is defined in _Statusscreen.h. You take a bitmap image and convert it to binary and then copy/paste that into the blob of text around line 39.

      • So, I put the files:

        in the “Marlin” folder, and add the 300c in the Configuration.h file?
        Thank you for the info and great work! Thanks to people like you, people like me may have a shot in programming haha

        • You can ignore the .gitignore folder.

          The max temperature setting is in Configuration.h on Line 471.

          You need Visual Studio Code and you’ll need to install some plugins. Start here: Once you make your configuration changes you have to compile the firmware and then upload it to your printer.

          You’ll probably also want the Version.h file as well but it’s not needed.

  17. Thank you for this excellent work that got me up and running really quickly.

    Just a very quick note, I may be unique but, for Octoprint 1.5.2 with Marlin running on a CR 10 V3 with a 2.5.2 mainboard – I needed to uncomment:

    #define SERIAL_PORT_2 1

    (and change the port from -1 to 1 as -1 is the virtual port)



  18. I noticed in your config file you had defined the bed size as 310 x 310 x 400 just wondering if there was a reason for the extra 10mm ?

  19. Hi Eric,
    I flashed my CR-10 V3 with I auto home and use move Z axis to find the z-offset point. But it doesn’t allow me to move Z below 0.00. Moving it up above 0.00 is fine. Any idea what caused this and how to overcome this limitation ?

    • Maybe try factory defaulting your printer and try again?

      Also check and see if your printer is hitting the z-stop which is preventing it from going lower.

      • I’ll try again with your suggestion. The Z limiting switch has been removed after I installed BLTouch. I was able to move Z below zero with the Creality firmware. Thanks.

  20. Hi Eric,
    I retried with your suggestion. Same phenomenon. I found on other forum this GCode “M211 S0”. I tried that and it worked. The machine is now printing happily. I wonder if I have to enter this command each time after I restart the printer, What can I do to make this permanent ?

    • That’s really weird. You’re the first to report it.

      Here is the documentation for M211:

      The docs say “Requires either MIN_SOFTWARE_ENDSTOPS or MAX_SOFTWARE_ENDSTOPS for the enable option.”

      I checked my Configuration.h file and both are enabled. Why your CR-10 defaults to M211 S1 and mine (and others) are defaulting to M211 S0? I don’t know.

      I checked my slicers GCode (IdeaMaker) and there is no M211 in there. My Octoprint is offline right now but it’s possible the command is in there.

  21. Hi! Thanks a lot for the compiled files!!! I used your in my cr-10 v3 and it works great except the power outrage feature. Except enabling in the LCD screen is there anything else i should do? Thanks!!!!

      • I found the solution. I compiled the latest Marlin bugfix2.x branch and i used the configuration files for cr-10 v2 and followed your instructions in github how to enable power loss recovery and also the stuff for the direct driver and filament sensor and it worked. i just commented some stuff about the bltouch because i don’t have one. Thanks

  22. Hey Eric! Thanks so much for the firmware, I flashed the normal non-bltouch 2.0.7 and it worked pretty well. I just upgraded to an e3d v6 and I’ve read that I need to modify settings in the firmware because of the thermistor. Is that true? I booted it up yesterday (haven’t really been able to use it since I made a mess of the splicing and am waiting on another thermistor) and heated it up to 50 and it seems to work. Not sure if 2.0.7 just has support for different kinds of thermistors or what. I’m very new to this.

    • I honestly do not know. You’re stepping outside the bounds of my experience with printers at this point. I’d recommend e-mailing E3D support and seeing what they have to say or asking on Reddit.

  23. Thanks for all this Eric,
    I’m hitting a non-starter sadly. My printer (on my 3rd V3 from amazon due to mechanical defects) didn’t come with a bootloader installed. Did yours? I have the TH3D bootloader kit and was following his wonderful tutorial, but my creality board (V2.5.2 with a 2560 chip) does not receive power and there is not a power jumper on the board that I can find. Did you run into this issue and if so do you know how to solve it?
    Thanks much!

    • Mine came with a bootloader installed and technically worked out of the box before I started working on Marlin 2.x firmware for it. I did not run into these issues so I can’t really be much help sorry.

  24. Hey Eric, thanks for the great firmware. I’ve been using it on my CR-10 V2 with the titan and bltouch upgrade. However i was wondering why the E steps/mms was set to 415? Creality themselfs say that 382.14 is recommended. And i do get better results with that setting.

    • Long story. I basically found someone on Reddit who was running into print quality issues and they said they changes their esteps to 415 and found it resulted in better prints so I just used that number.

      Someone else recently reached out to me on Reddit saying they did a calibration and came up with 441.48 using this guide:

      Do you have a source for Creality recommending 382.14?

      • Well the stock firmware has that setting. And this installation video from Creality also states that:

        The odd thing is is that I’ve also just calibrated my esteps and came to 399.7. Sooooo i think we can conclude that there is no perfect value

  25. Eric,
    Thanks for pulling this together. Major improvement over the Creality CR 10V3 BL Touch Firmware. I’m new to my CR10 and BL Touch and hope you can help me fix my current issue. I run the autolevel 25pt check using my LCD, save settings or M500 in Octo terminal. I have already set my Z offset in the middle (my case is approx -2.1) and saved too. My issue arises when I’m doing large prints, think like a plate or dish. I can see in the print that the bed isn’t level as I am too close in some spots and too far in others. I thought the bed leveling would measure and account for this….did I do something wrong?

    • I actually ran into a similar problem.

      Turned out my slicer (IdeaMaker) was adding GCode that disabled mesh leveling on print. Once I removed that code I was in business. At least I think it was the silcer, it could have been OctoPrint. I’d check both locations.

      • Thanks for sending me in that direction. I found the issue in my Cura Gcode at start of file. For those out there in the same boat.

        G28 ; auto home (already in your code, and should stay, but turns off usage of autolevel mesh)
        G29 ; initiate autoleveling process (this line not needed if you don’t want to wait each print for auto leveling to happen)
        M420 S1 ; turn on use of autolevel mesh using last saved value

  26. Please please please

    I need help

    Got got a CR 10 V3 with Direct Drive and bought a BL Touch. I don’t have a clue what I am doing

    Can you assist me

  27. Hello… I just received my CR10 v3 printer with the titan extruder. I had 2 or 3 good prints and now it will not print. It looks like the filament is not sticking to the bed, but on further inspection, it looks like the extruder pulls away from the bed when the print starts. I do the normal level process, so the setup is good to start, it just looks like it pulls away. Would the automatic bed levelling kit fix this problem? I am truly at a loss to figure out what is happening with my prints.

    • Unfortunately this level of troubleshooting is beyond me. I would suggest posting on the CR-10 subreddit or contacting the store you originally purchased from.

  28. Hey Eric, thanks a lot for sharing this. Much better than the Creality CR 10V3 BL Touch Firmware.
    I’m having a minor problem with the Firmware, when I try to set home offsets using M428 in the terminal the printer sends back: echo:Unknown command: “M428”
    Is this expected, maybe some option that disables the M428 command? I had no issues doing it with the original firmware.
    Thanks again for the great job!

  29. in octopi, i am not able to upload file to SD card or see files from sd card since power failure doesn’t work if it is saved in octopi

  30. Any clues on why after installing the precompiled hex, the printer shows “motion” instead of the “prepare” menu? tried off/on, hotend hot and extruder +10mm, nothing… i am missing something?

  31. Hello, testing the firmware now and it works great. Would it be possible to disable alphabetic sorting for SD cards? Normal sorting is by date, newest is on top, which is most convenient.
    Thank you!

  32. How can I update the firmware on The cr-10 V3. I have tried different usb wires and my computer still does not recognize the Cr-10. I have tried on both mac and windows. Also my Auto home has issues with the bed. Please help.

  33. Have you experienced any issues when doing the bed leveling process the probe gets to probe point 16 and fails?

  34. Hey eric thanks for the work you have done on this firmware couple of things i have noticed
    really the only main one anyhow is the stock filament load and unload is set at like 400+ mm at about 40mm/s (cant recall actual values) but ungodly high you may what to update that in your config

    found this to be more suiting and not filament chewy

    #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // (mm/s) Unload filament feedrate. This can be pretty fast.
    #define FILAMENT_CHANGE_UNLOAD_ACCEL 20 // (mm/s^2) Lower acceleration may allow a faster feedrate.
    #define FILAMENT_CHANGE_UNLOAD_LENGTH 10 // (mm) The length of filament for a complete unload.
    // For Bowden, the full length of the tube and nozzle.
    // For direct drive, the full length of the nozzle.
    // Set to 0 for manual unloading.
    #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 6 // (mm/s) Slow move when starting load.
    #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (mm) Slow length, to allow time to insert material.
    // 0 to disable start loading and skip to fast load only
    #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 10 // (mm/s) Load filament feedrate. This can be pretty fast.
    #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 15 // (mm/s^2) Lower acceleration may allow a faster feedrate.
    #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 20 // (mm) Load length of filament, from extruder gear to nozzle.

    The other question i had was your bl touch nozzle offset im curious how you came up with your measurement of
    44 / 7 ?

    the only reference to offset i see is in the comments and it states Probe offsets: X = 48, Y = 10

    thanks for all the work and clarifications


    • Thanks for the suggestion on the feed rate. I will look it over for the next release of the firmware. This rate might actually be controlled by my slicer for all I know which is why I don’t think I’ve run into any problems.

      My X,Y offset for my BLTouch was based on measuring with a ruler. I believe to figure out your offset you’re supposed to measure from the tip of your BLTouch to the tip of the nozzle. So in my case my nozzle is 48mm to the left of the nozzle 7mm forward if you’re looking at the front of the printer.

      Check out this article, it’s not what I used but I think it explains it:

      Do a CTRL-F for “3) Set a Nozzle to Probe Offset” to find the section you’re looking for.

      Please let me know if I did mine wrong :)

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.