How to convert to Klipper firmware: 8 bit CR-10 step by step

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
if you've wanted to try out clipper firmware but didn't know how then this video is for you as i take you step by step through converting this creality cr10 max [Music] clipper is a 3d printer firmware gaining a lot of popularity for good reason when i was building my rap rig vehicle 3 there was a lot of comments asking if clipper would be just as effective on their own printers i actually made some conversion videos a couple of years ago but they're due to be updated i was going to cover how to convert both of these printers into one video but it was just becoming too long and too messy so i'm splitting them into two sister videos in this series we'll also cover some user interface options as well as advanced features such as input shaping but for now let's start by exploring exactly what clipper is and why you might want to try it over your current firmware a typical 3d printer runs marlin firmware it's free open source and quite frankly fantastic inside your 3d printer will be a main board and myelin will be compiled to suit that main board and the rest of the printer's hardware typically gcode is stored on an sd card is processed by marlin which then controls the movement and extrusion of the printer to make our parts we can of course change the main board or other printer hardware and recompile marlin to suit we can also add a raspberry pi and introduce octoprint the pi will connect to the 3d printer giving us remote web access and allowing us to connect things like webcams and use a vast array of amazing plugins octoprint lets us manage our printer and sends the g-code through to marlin which still controls the printer so how is clipper different with clipper we need a raspberry pi no matter what and that's because a component of clipper is installed on the raspberry pi as well as the main board however the powerful raspberry pi becomes the main brain of the 3d printer processing and sending through gcode commands relegating the main board to have the simple job of receiving these commands and then controlling the printer's hardware the clipper components on the pi and main board work together to create the movement and extrusion that we need for 3d printing perhaps clippers main advantage is its fast and very precise control of stepper motor movement it's ideal for printing fast and advanced features such as input shaping allow that high speed printing to be completed with minimal surface artifacts this technology was demonstrated to great effect on my v core 3 rat rig build with that printer able to produce this benchy in only 23 minutes another thing really attractive about clipper is that the printer's configuration resides in a single file if you want to update something on your printer update this file save and then restart the machine no firmware recompilation required in addition to the clipper advantages i've already outlined i am slowly converting all of my printers over to having wireless functionality so clipper achieves that too the target for this video is the creality cr10 max it's got the biggest heaviest bed of any printer i own ideal for testing input shaping and due to the way the creality board is set up i can't run linear advance and that means with my large nozzle i get significant bulges on the edges of my prints i've wanted to change the main board for a while but to do so i would need to separate and work out the pins for this ribbon cable system back to the main board by using clipper i can leave all wiring intact creality boards use tmc 2208 stepper drivers but in standalone mode which means we can't use any of the smart features previously clipper was completely incompatible with these boards but an update in march 2020 has not only made it compatible but on this printer pressure advance is working too which just isn't possible currently with marlin in the sister video the target will be a delta printer running a 32-bit main board and i'll be using octoprint rather than fluid as my underlying web ui let's start our conversion guide by outlining the required hardware and software the main component we'll need is a raspberry pi and i'm using a raspberry pi for model b we'll also need a high speed sd card which will reside inside the pi we'll need a short usb cable to connect the pi to the main board with the plug to match your main board's usb port and you'll also need a high amp 5 volt power source for the raspberry pi besides a wall plug you could also use a buck converter and i've also used a car 24 volt to usb converter on another printer now on to software the first piece of software we're going to download is called velena etcher it flashes an operating system image to an sd card that we'll use in the raspberry pi the next one we're going to download is called putty and this lets us connect to a raspberry pi and issue direct commands similarly when scp will let us connect directly to the pi but rather than a text interface it gives us a side-by-side window interface so we can swap files back and forth between the pi and our computer finally we have notepad plus plus this is simply a text editor that won't ruin the formatting of our important files with everything ready to go we'll list the steps and then get started besides installing clipper on the pi and the main board there is one more component relevant we need to discuss and that's adding a web user interface to the raspberry pi some options include octoprint fluid and mainsail and each of these provide an easy way to control the printer upload and start print jobs update clipper configuration files and extend functionality with plugins these options have strengths and weaknesses with octoprint compatible with any 3d printer whereas fluid and mainsail are built from the ground up for clipper and therefore optimized the downside is they're not as extensible as octoprint which has an amazing array of free plugins for the cr-10 max i'm going with fluid in the sister video i'm using octoprint simply because i need a specific plugin if you compare the two you'll see that fluid is much more streamlined to set up whichever you're using it's the first step in our installation linked in the description is this page to download and install fluid pi which is fluid and clipper pre-packaged ready to flash to an sd card we click the link to go to github and then download the zip then we extract the image file and select it in bellina etcher we now select our target which should be your sd card make sure you don't accidentally override a hard drive and once we're sure we can click flash which will initiate the process a few minutes later it will say it's done and we're going to cancel any warnings from windows to format the sd card in windows navigate to the sd card which should be called boot and we're locating the file called fluid wpa supplicant dot text which we're going to open in notepad plus plus down the bottom of the file we can set our correct country and then scroll to midway up the file where we delete the hashes to uncomment the four lines to set our network and then substitute in both our ssid and password followed by a save at this point we can remove the sd card from our computer insert it into the raspberry pi apply power and wait a minute or so for it to boot up in your browser if you enter the ip address of the pi you'll be presented with the main interface of fluid and we will have an error message at the top rightly saying that we haven't yet set up a printed configuration file a good first step is to come up to the top right and view any updates which are available this slick interface is one of the main advantages of using fluid over octoprint we're now finished with step 1 and in the sister video you'll notice there's additional steps for installing clipper but fluid has it all pre-packaged so we can move on next up is installing clipper on our main board which means overriding our existing firmware before we do this i'd recommend sending m503 in the terminal and copying and pasting the output into a text file this will give us many settings our printer was currently running which will help with configuring clipper later on an alternative to this is having the firmware source for the firmware you're currently running not only can you retrieve the settings from here but it means you can revert back to marlin or whatever else you're running later on if you feel the need we're now going to use the clipper installation instructions which are linked in the description in this video we're showing how to do this process with an 8-bit main board please refer to the sister video to see the process for a 32-bit main board we'll start by connecting the pi to our main board using a usb cable we're going to open putty and then note the ip address for our pi listed in the browser and insert it into the field labeled hostname in putty before clicking open the default login is username pi password raspberry and as prompted it's highly recommended to type in past wd to change from the default password immediately we're going to copy and paste commands from the instructions to do this we highlight in the browser and copy and then in putty to paste we simply right click we press enter to run the command and then repeat for the next one this will bring up a basic gui that allows us to set the flashing options for our main board and you need to research beforehand to find out what microcontroller has this creality board is 8-bit therefore the micro controller is at mega avr and our processor model is ramps compatible which means it's at mega 2560 we now press q to quit yes to save our configuration and type the command make this is the equivalent of when our firmware is compiled in marlin we can see down the bottom confirmation that the hex file has been created we'll now copy the next command from the instructions and that should list the name of the main board on the pi serial port we'll now stop the clipper service from running on the pi copy the first part of the instructions up to the equal sign right click to paste that in and now for the remainder we'll highlight our device serial address this will automatically put it on the clipboard so we simply right click to paste and hit enter to start flashing the main board with the clipper component finally we copy our last command and we paste it in and run it to restart the clipper service and that completes flashing clipper to our 8-bit main board that's a generic installation done so now we need to set up a specific printer configuration file for our machine and that is going to be the hardest part for most people we'll start with where to find essential resources and then i'll take you step by step how i formulated my configuration step 4 is the all-important printer.cfg file and this can be quite daunting as we have this extremely long and detailed reference with all of the possible settings to match our printer so instead as a starting point i'd highly recommend starting with the example configuration files we have files for different kinematic structures such as cartesian core xy and delta then we have files to suit specific main boards and they'll have all of the pin assignments we need and finally if you're lucky we have configuration files already set up for specific printers my aim is to use bits and pieces from these to put together the required settings for my particular printer the other thing that's incredibly handy is if you can find the pin out for your particular main board if the manufacturer hasn't released such a diagram you can also use the pins file in marlin which should list most of the pins it's just not quite as straightforward to read before we flesh out this file we firstly need to create it so we'll come to the configuration tab click the plus add file and then name this file printer.cfg before clicking save anytime in future we want to edit this we come to the tab right click and select edit let's fast forward to my finished configuration file and then look at how i put it together step by step unfortunately for us the sample configuration files are either to suit the creality version for 32-bit mainboard or the older version 1 8-bit main board therefore as our configuration basis we're going to start with a sample for an ender 3 max this has the wrong main board but it does have setup configuration for a bl touch a bed mesh and a filament run out switch so we're going to copy everything from this file and paste it into our printer.cfg we know all of our pins are wrong so where are we going to get the correct values the creality version 2 boards are based on ramps therefore i've come to the ramps pen file in marlin as well as the more specific ramps creality file this part was pretty tedious but for each pin value we look up what it is for instance the x stepper pin we take the equivalent value from marlin and paste it into place we add the letters ar on the front which tells clipper to use the arduino pin names just like marlin does this will only work if we add pin underscore map arduino underneath mcu we need to replace every pin definition in the printer configuration file and i found it's much more efficient if you put the two windows side by side the only other thing to note is that analog inputs are used for the thermistors and they're specified as analog 13 and analog 14. if you prefer not to use the arduino pin names i've linked this page in the description that translates between the two the config at this point is almost done we still need to go through and update the dimensions to match the cr10 max as well as parameters like homing speed since this printer doesn't use an lcd display i've simply commented out all of those lines because we're using fluid there are some specific commands we need to make sure we have in our configuration this is really straightforward we just copy and paste them one at a time until they're all in place in your configuration one of the final mandatory steps requires us to retrieve our serial port address to do this we can repeat the steps for when we flash the mcu this time highlighting the serial address in putty which will automatically copy it to the clipboard and then coming back to our printer configuration file and pasting that serial address over the top after we save and restart the firmware we can switch to the main tab and see that it's now connected and we're reading some temperatures if there's no off-the-shelf clipper configuration file for your printer hopefully that will demonstrate how you can use what is there to get yourself going let's add some more detail technically our printer can now move but we haven't actually calibrated the steps per unit in clipper this is called rotation distance and if we know our existing values from myelin we can easily convert linked below is a clipper dock with the formula that we need and the formula is full steps per rotation which is 200 on most stepper motors times microsteps which is typically 16 divided by your old steps per unit which for me was 80 and that gives a resultant number of 40. back in clipper the values were already correctly set because we used a similar printer as our basis this printer is converted to run a hammer extruder so i did need to calculate that one independently which gave me a value of approximately 7.824 we come to the extruder section of our printer configuration file and simply paste in this number over what was previously there this printer came with the filament runout sensor so here's how i set that up there is a section in the clipper docks that outlines the available parameters for a filament switch sensor the configure i started with already had this in place so all i did was specify pause on our equals true my run out gcode to m600 then i pasted in this m600 macro that's straight from the clipper docs and linked below one of the key features of this printer compared to that in the sister video is the use of a bl touch once again the clipper docks supply a list of available parameters as well as a guide to setting it up and a command reference which we'll use later once again i was very fortunate that i had started with this example config because all of this was in place so all i had to do was to uncomment the relevant sections safe set home bl touch bed mesh and gcode macro g29 some settings under stepper z will need tweaking if you're gonna use a bltouch instead of a zmin endstop instead of specifying an end stop pin we comment out those lines and instead set up the probe as a zed virtual endstop to complete the bltouch config setup you'll also need to update the position you want for safe homing your probe offsets which you can find in your m503 output from marlin you'll also want to set the parameters for the probing grid including the min and max coordinates and the probe count that's how i finished setting up my config so now we'll move on to some checks and tests to make sure everything is working as it should be this is a really important step and make sure that you don't skip it clipper provides a configuration check page which you should work through step by step it covers things like manually turning the heaters on and off to make sure they're responding as they should be sending the emergency stop command to make sure the printer shuts down pid auto tuning your hot end in bed this is done by entering the simple text commands from the instruction page and once we can see the process is done we click on save config and send it this will save the config restart the printer and if we check our printer configuration file we can see the old pid values have been commented out and scrolling to the bottom will reveal the new ones tuned from our test have been added perhaps some of the most important steps on the page are verifying your end stops and the direction of your motors in the fluid terminal we can send query end stops that will report back if they're triggered if you manually press one of the end stops and send the same command this will let you verify that a change has occurred if your end stop was working in reverse you would either add or remove an exclamation mark which will invert the logic similar commands such as query probe and query filament sensor exist to test whether those are connected correctly as well the other useful command is stepper buzz where you then specify the stepper that matches your config in my case stepper x y and z this will move just one axis back and forth one millimeter at a time and the initial move will be in the positive direction so for the x-axis you're seeing here that should be to the right away from the end stop we repeat this command for each axis and for any we find moving in the wrong direction we find that stepper go to the direction pin and either add or remove the exclamation mark to invert the logic on this printer we have a vltouch so now let's check everything for that clipper provides a testing procedure to make sure that the signals are getting to and from the bl touch and this page is linked in the description the first commands we're going to enter into the console a bl touch debug command pin up and pin down these will manually move the pin of the br touch up and down to verify that the signal pin is correct after this we leave the pin down and then send the command touch mode followed by query probe which should report the probe is open if we gently push up the probe either with your finger or by stacking awkward objects underneath resending query probe should now report the probe as triggered and this should confirm that both the control and signal pins to the bltouch are working as they should be and you should now be safe to home your printer finally we'll confirm our probes at offset by using clippers probe calibrate command we home the machine and then send this in the terminal this will probe the current location move the nozzle sideways to account for the x and y offset and then we follow up with test z z equals followed by the distance in millimeters that you'd like the head to move in this example minus one the aim is to move the nozzle down bit by bit and in smaller and smaller increments until the nozzle applies just a little bit of pressure on a piece of paper sitting on the bed once we find this value we copy it from the terminal head to our configuration and find the bltouch section where we enter it in under z offset please note that if the value is negative we still enter our z offset as a positive save and restart and we're done one thing to note is that clipper doesn't recognize the g29 command on marlin to probe an abl mesh and instead uses bed mesh calibrate however we have a macro called g29 in our printer config and that runs the bed mesh calibrate command followed by moving the printhead to the front left corner and having this here means we don't need to change anything in our slicer as all of the normal printing commands are exactly the same between marlin and clipper everything is finally ready so now we can do our first test print as we've already set up our g29 macro we can continue printing with no slicer changes here's my baseline cube printed with marlin and here's another cube printed with the same g code in clipper as you can see they're more or less identical but as we previewed earlier once pressure advance is tuned we can have a significant improvement with the same g-code so far we've established a like for like bass line which we're going to build on in future videos by using more advanced features such as input shaping another problem we have is that the original touchscreen is now completely useless so in a future dedicated video we'll be covering multiple options for a clipper interface if you're following along at home and modifying this exact printer you'll find a link in the description to my github where i've put up the configuration file for this machine remember that there's more than one way to skin a cat so please consult the sister video to see some variations for different hardware and software if this video has given you the courage to give clipper a try let me know in the comments section thank you so much for watching and until next time happy 3d printing g'day it's michael again if you like the video then please click like if you want to see more content like this in future click subscribe and make sure you click on the bell to receive every notification if you really want to support the channel and see exclusive content become a patron visit my patreon page see you next time
Info
Channel: Teaching Tech
Views: 26,503
Rating: 4.919436 out of 5
Keywords: 3d printing, 3d printer, 3d print, 3d printed, klipper, marlin, how to, guide, convert, conversion, step by step, beginner, tutorial, flsun, super race, delta, calibration, setup, installation, octoprint, octoklipper, process, lesson, flash, balena etcher, raspberry pi, software, hardware, input shaping, pressure advance, part cooling, filament runout, endstops, checks, tests, gcode, probe, bltouch, pid tune, 32 bit, skr v1.3, btt, 8bit, creality, ender 3, cr-10 max, cr-10, rotation distance, explained
Id: 3DWqJeXK7yc
Channel Id: undefined
Length: 22min 8sec (1328 seconds)
Published: Tue Aug 24 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.