Using a 32 bit Raspberry Pi to boost your 3D printer mainboard - Klipper Ender 3 guide

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
did you know that you could upgrade your mainboard by simply handing off all of the heavy calculations to a raspberry pie meat clipper and today we've got a guide for the end of three recently I've been covering some upgrades to 32-bit main boards for 3d printing if you want to know why this might be advantageous I've got a primer on that that you might enjoy I've also got a guide on the SKR version 1.3 which is proving to be one of the most popular cheap 32-bit boards around but what if you could improve your performance greatly with nothing more than a Raspberry Pi which you might already have normally when we 3d print Mullen is on our main board it processes a decode and converts it into movement of the 3d printer traditionally we introduce a Raspberry Pi with octoprint but that's simply sending g-code commands to marlon for the same processing and movement to occur clipper is different it offloads all of the heavy lifting to the Raspberry Pi leaving the main board no calculations and the simplified task of controlling the hardware its main claim is very precise stepper motor timing and that means a much higher ceiling in terms of speed in this video I'll be providing a guide to installing it on the end of three and I've reverted my end of three back to the factory main board with a bale touch there are other mods but nothing that requires adjustment of the firmware without any further delay let's get started with our setup we start at clip of 3d org and that's the launch page for this software there's a link to the github page where you can see all of the source and most importantly a link to the installation page which will take us through step by step and that's what I'm going to be following now a lot of this installation is done over the command line by directly talking to the Raspberry Pi and on a Windows machine there's a piece of software that makes that much easier connecting wirelessly to a Linux device is called SSH unfortunately putty is a free program to achieve just this once you download it it's pretty simple to set up you set it to SSH you can leave the port at 22 and then you enter your local IP address this is location that you would access your octoprint instance from in your web browser after that we simply click open our first job is to log in and the username will be PI and hopefully you've changed your password from the default through my Windows computer I'm now connected wirelessly to the filesystem of the Raspberry Pi everything has to be done via this terminal so let's go through some commands that will help you out firstly we have LS that will list the contents of the current directory sometimes however we need to view some hidden files LS space - al will list all including any hidden files anything in blue is a directory that we can go inside the command CD is used to do this here we've told it to choose directory o print and when we hit enter we'll see that the command-line changes to tell us where in that directory if we want to go up one directory its CD yeah dot dot so we can see in the installation our first step is to install octa-pie because that's the image we need to run octoprint if you haven't done this i've got a previous video on this and don't worry it's super easy to do we can also see that we need to be upgraded to the newest version which what I login it tells me that I am we're now up to our main scripts to start the process to avoid errors we can copy and paste but it's slightly unusual after we highlight our text in the browser we can do ctrl C to copy and then in putty we simply right click to paste it in let's press ENTER to run this first command now that that's done let's run the second line now you might have noticed before that commanded us from my password and that's because it ran a script with the pseudo keyword and that stands for super user think of it like an administrator that gives you greater privileges to change system files pseudo commands are very powerful so just be careful everytime you use them that you know exactly what you're trying to achieve we can now continue with building and flashing the microcontroller and normally we're used to doing this from the Arduino IDE and then flashing it via USB direct to the main board but clipart we instead flash via USB directly from the Raspberry Pi now funnily enough I've just got an error for this not working and since my display is too small so I guess I have to go full screen with this and then run the command again if you want to cycle through your previous commands you can use up and down on the keyboard and that will get you back to them quickly because I'm doing this on an end of three I think the obvious thing I need to change is my processor model and the end of three comes with an 18 mega 1284 P after this I'm going to come to exit and yes of course I will save my new configuration now we can simply type in make our firmware for the mainboard has been compiled into a hex file and just like how do we know we now need to flush it instead of doing it from our computer we're going to do it directly from the PI but first we need to find out the serial port let's copy this line and paste it in and when we hit Enter it should tell us our serial port our result down here is very similar to the example given in the instructions so let's proceed we now need to stop clipper from running in the background and then we're going to copy the front part of this line up to device equals we're now going to highlight what was returned when we search for our serial port come back to the green cursor and right click that will paste our correct device into place and we should be able to hit enter to now flash to the mainboard if you're having issues with that please make sure that back in octoprint that you're actually disconnected we can now enter this line here to start up clipper service again now in our instructions were going to edit a configuration file and we can do it via the command line in putty but I think I agree with the instructions when they suggest that it's easier to use a separate program therefore we're going to use winscp this is another free download and will let us connect to the file system of the raspberry pi but present us with a graphical interface like windows so once we open winscp it's very similar to putty we put in our IP address as the hostname leave the port number is 22 and then click login if you're doing it for the first time you'll have this warning that's perfectly fine just click yes and then we need to enter our username and password just like we did with putty the interface is as follows on the left hand side of the screen we have our windows computer and on the right hand side of the screen we have the file structure of our Raspberry Pi back to our instructions and we need to go to the config directory on github and either start with the example configuration file or since we're using an ender 3 download that one we can see in here that we have example configuration files for specific main boards and if we scroll further we've got them set up for exact printers as well so I'm going to click on ender 3 and then I'm going to click on raw and then I should be able to go control s and save this file to a special clipper directory that I've set up we can see it appears here but we need to delete the dot txt off the end so we'll come to rename remove that and now we can drag it over to the PI directory if we right-click and come to edit we can see that all of the pin mappings inside the file are set up for our standard micro controller of a 1280 for P and all of the hard work should have been done for us if we scroll down there's one more thing that needs to be set and that's our serial port I've scrolled back up in putty and I'm going to highlight the text highlight here as well and then click control V we can now save this file we can see in the instructions we need to rename the file to simply printer dot CFG so this will be our final step we're going to right click select rename and then delete the end to leave printer dot CFG for the file setup for our printer and now having the correct file name we can head back over to octoprint and type in restart in the terminal now at this stage it's probably worth mentioning there's an optional but easier way to control this by installing the clipper plugin for octoprint if we search for clipper in our plugin manager we should find it very easily with the plug-in installed and octoprint restarted we now notice that we have some slightly different buttons here but we also have a clipper tab let's try a click status to begin and these other options we will explore those in time our base installation is now complete and you might notice a new interface on your LCD screen it has the usual options for heating homing and moving but now has commands for interacting with octoprint from the printer which is new and definitely cool you should now verify that your configuration is correct by following the guidelines on the config check page I found the pre-made configuration for the end of 3 was spot-on so I undertook some PID tuning of the hot end this was very easy because it was fun and setup for this inside the octoprint plugin one thing that I really like is that when you want to change the firmware configuration you don't need to compile anything and flush it to the printer you simply edit the file in win SCP save it and restart clipper through octoprint there's also a page on slicer settings for clipper but I found that there was nothing really relevant for me apart from making sure that Koston was turned off now if my printer was completely stock I'd be ready to go but remember I've got that VL touch on so let's have a look at how to set up for that on the overview page you will see that part way down there is a link for BL touch and that's what we're going to follow back in winscp we need to right click and edit our configuration file because this is where we'll be putting the changes for the BL touch the first thing we need to do is to copy and paste this line and and insert it into our configuration file we can see we're not meant to edit below this block so let's put it underneath the display now of course we have to change which two pins that the BL touch is connected to the control pin is usually pin 27 just like you use in a pin 27 board if we look in our Arduino code for the sanguis no 12 84 P will see that digital 27 is really called PA 4 so that's what we're going to enter here and that's consistent with the naming of the other pins throughout now the sense of pin is the one that plugs in whether said n stop used to be so we'll scroll up to that section and here we can see it's PC 4 so we'll copy this come back down and paste it over the top next up under the z-axis we need to tell it that the N stock pin is now a probe z virtual end stop so we'll copy this head back up to that section and paste in this text over the top since we're using a B I'll touch we also need to delete this line here position underscore n stop now you'll notice we have a position max here it's a good idea to also put in a position min you might think this needs to be zero but remember our probing results might be either side of 0 so something like minus 1 or minus 1.5 is a good idea now at this point I'm going to deviate from these instructions because I found after a bit of testing they leave some things out a really useful document I found that's linked in the description is the example extras configuration file as you can see it has a much larger veil touch section with a lot more of the parameters that we can input it's also worth noting that if you have a veil touch version 3 or 3.1 or a clone to be R touch there's two extra parameters that you can experiment with to get them working correctly with AK reality mainboard and a BL touch version 3 you still might need to move the resistor as outlined in my three fixes for BL touch version 3 video over in my configuration file you can see I've set up an XY and Z offset just like with Marlin you can measure the distance between the tip of the BL touch and the nozzle with the ruler or you can take it from the information provided when you download your mount now the Z offset initially I would recommend leaving at zero after a print starts you can use the baby stepping menu from the LCD on your printer to lower it down until you have the perfect first layer squish even though that number will likely be a minus enter it here under Zed offset as a positive the last parameter I bought over was the pin move time I found the default of 0.675 a little bit slow so I dropped mine to 0.4 to show you how I calculated my min and Max points for the mesh I've made this little diagram now in Marlin we put in our probe offsets and the boundaries of the grid and it will work out the rest for us but in cliff how we have to do it manually for my hero me melt my nozzle is here and my bill touch is ten millimeters to the front and 45 to the left and that's why we need to have safe homing on because when the nozzle is at zero zero the BL touch will be hanging over the edge missed the bed as that goes down therefore making a collision I find it easiest to start with calculating the Max position if we move the nozzle the whole way to the back corner of the bed at 235 235 we can say that a BL touch will be minus 45 from there and 10 in from the re edge therefore we'll calculate our max point as 235 235 now this is the type of probing grid that I'm aiming for it's going to zigzag starting in the left-hand corner and eventually ending up in the right rear hand corner you'll notice here that mine is symmetrical therefore I need to know that when the BL touch is lined up with this front corner that's symmetrical to my rear corner the nozzle is actually further over to the right than you might expect we know the distance to the edge is symmetrical to this one at 45 and we know that our mount adds a further 45 therefore our X is 90 and we have a similar case on the way a 10 gap will attend offset to equal 20 therefore for the hero touch BL touch mount suggested for clipper min and Max values are 90 20 and 235 235 the next section I have here is called g-code macro and we need this because clipper doesn't use g29 like Mullin for levelling instead it uses a command called bed mesh calibrate fortunately we can simply enter g-code underscore macro followed by G 29 and then RG code with indented bed mesh calibrate and every time we enter a G 29 clipper knows that it wants us to run this command instead our final piece of the puzzle is safe homing and there's some suggested code to add to the configuration file to manually program the printhead to move up to millimeters to a specific spot and then home the set separately when I tried this however I found that even when it entered at G 28 XY which should be safe to use in ng code because it doesn't home the z-axis the entire homing procedure took place and therefore the printhead would come down and attempt to crush what I just printed I found elsewhere on the docks that we could declare safes at home with a couple of key parameters my home position is 155 120 and that's using that same offset system to move the beyond touch into the very center of the bed the speed to move there is eighty millimeters per second it'll lift up 10 millimeters before doing so at a speed of 10 millimeters per second you can see I have all of this commented out but since I no longer need it I'm now going to delete it the end result of all of this is the safe homing occurring in the very middle of the print bed and then a 3x3 symmetrical grid of BL touch probing before printing commences and this has ensured that my first layers have gone down perfectly in a consistent and repeatable way so with that I finally had the Bale touch working and although it's convenient to have all of its parameters in one place in that configuration document it was kind of frustrating having to reference so many other places to find out what I needed the last thing that I like to cover in this video is called pressure advanced unfortunately it's a lot easier to set up so let's have a look at how that's done pressure advanced is called linear advance in mullen and it aims to do two things it reduces use during non extrude moves and it reduces blobbing during cornering to set it up in clipper we need to download a square STL file and to now slice it printed at 100 millimeters per second with a layer height of 0.3 on an end of three and a infill of 10% in our configuration file under the extruder section we need to add the liens pressure underscore advance and set it to zero and pressure underscore advance underscore look-ahead underscore time and set it to 0.01 Oh from the documents will now copy and paste some parameters into the terminal in octoprint now that we've done that we can run our first version of the square after printing one we can then repeat the last line of code to change the pressure advance number the instructions suggest starting at 0.05 printing again and repeating this until you get good results so what are good results well we're inspecting the corners on these and you'll find that there's a little bulge on the worst ones and the better ones have a nice crisp edge and a nice sharp angle we can also look for the same thing on these little internal directional changes for further reference is a really nice set of diagrams on the pressure advance page of their documentation if you're having trouble finding a value that works there are some important notes on the document for pressure advance typically the number will be higher on a Bowden extruder but I'm using direct drive some one was only 0.06 one of the thing is that despite setting it's a zero for our testing we should return our pressure advance look ahead time back to 0.01 when we have our final results we can update them in the main configuration and then when we save this file and restart the clipper service they will remain persistent for future prints with my limited testing the printer seems to be performing well and some things do seem a bit strange to me but we have to remember that I'm mainly used to Marlin and you're gonna have some inevitable bias there in the next video we're gonna have a follow-up on clipper and we're gonna look at doing some different hardware such as TMC stepper motor drivers the other thing we're going to test is this print hat from Rick labs it's a purpose-made board to go with your Raspberry Pi so you don't even need the factory mainboard from the printer at this point to me clipper seems a bit like an acquired taste so I'd love to hear from you if you've tried it and how you found the results to be thank you so much for watching and until next time happy ready printing g'day it's Michael again if you liked 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: 255,055
Rating: undefined out of 5
Keywords: 3d printing, 3d printer, 3d printed, 3d print, klipper, firmware, marlin, guide, step by step, walkthrough, walk through, creality, ender 3, bltouch, bl touch, linear advance, pressure advance, probe, lesson, installation, putty, winscp, how to, beginner, problem, printhat, wrecklab, octoprint, plugin, ssh, linux, raspberry pi, rpi, raspi, octopi, z offset, tested, antclabs, documentation
Id: yAfalR7-Tvw
Channel Id: undefined
Length: 19min 51sec (1191 seconds)
Published: Sun Aug 25 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.