Adventures in 3D printing
May. 30th, 2017 10:35 amFor my birthday
random_c apparently once again despairing of what to get me went and hit my Amazon wishlist, which I mostly maintain as a reminder to myself, but anyway, and bought me a 3D printer, which was a bit unexpected!
The printer in question was an Anycubic Kossel Pro, which for those of you who care is a Delta style printer with linear bearings - so, mechanically quite tidy. The "Pro" means it has a 230mm print plate rather than the 180mm for the non-pro, so bigger prints, and it can print up to 300mm vertically. - so, in theory it can print a cylinder 8" wide by a foot tall.
This arrives as a kit of bits, including aluminium rails, lots of nuts and bolts, a hot end and a load of servos.
8 hours later I'd put it together mechanically, and was plugging in the included control board which is a thing called a Trigorilla Mega - it's actually an Arduino/RAMPS setup on a single board with stepper controllers on separate boards.
And then I did something wrong, which a lot of people do wrong - there are a series of limit switches that stop the mechanism trying to go beyond the top of the assembly - they're just microswitches with 2 wires, which unfortunately plug into 3 pin sockets - the 3rd pin is to allow for more intelligent switches such as infra red interrupters which need power. Unfortunately, if you plug the limit switches between Vcc and GND rather than Vcc and Sense what happens is you put a dead short across the power regulator which then blows pretty holes in the casing of the regulator and fails to work ever again.
So, at that point I hit Amazon and order the cheapest Arduino/RAMPS combo I can find with Prime delivery, and the next day I carry on.
Next day I've finally got it all working, and then it starts doing wierd things along with a burning smell.
I cut the power and go looking, and discover that the heatsink on one of the stepper drivers has managed to dislodge itself and has shorted live/ground, blowing both the stepper driver, and the voltage regulator on the Arduino.
So, on to Amazon again, and order a replacement Arduino Mega and a few spare voltage regulator, and a pack of stepper controllers with a good review rating, along with some spare voltage regulators to let me resurrect the dead Arduino.
Anyway, this all arrives, and I get the printer working and then the pain starts.
On a standard "X-Y" printer, you have a flat print bed which moves under a print head which can move left/right and up/down - everything happens in straight lines, so the maths involved in printing is pretty simple - it's Cartesian geometry at its purest, and it's dead easy to calibrate as long as you get your print bed level relative to the print head.
Not so with a Delta - because this is 3 arms which move up and down on towers, allowing the print head to move freely inside a cylindrical volume every movement is actually an arc, so the maths are rather more complicated.
Now, the Arduino is perfectly capable of driving an X-Y printer, as it doesn't have to do much, but the maths for a Delta printer are rather more challenging, and the poor little Arduino struggles - this manifests in a few ways - one is that the movements aren't fully fluid, there's occasional jerkiness as the CPU lags, and also the rate that it moves the steppers at is limited. Steppers work by sending alternating pulses to the motor, allowing the shaft to move one "step" at a time, however if you are doing this slowly what will happen is that the steppers will "sing", which is to say that they will make crunchy stereotypical "Motor under load" noises while running, which is distracting when you're sitting in the same room as the device.
At this point I decided I should just jump ahead and give up on Arduino/RAMPS drivers as they would never quite do what I wanted, in addition to requiring a PC to be connected most of the time to drive the printer.
So, I bought a new controller - this one was a Duet Wifi made in the UK, and is based on a fairly quick ARM CPU, with much better stepper drivers than are available for RAMPS and with a Wifi network connection allowing full control of the printer by a web interface. I also acquired the "IR Lite" bed calibration sensor from the same place to allow the printer to probe the printbed and automatically adjust for any irregularities.
And the result of this is a hugely quieter printer that runs fluidly and just "works".
The next trick was to get the printer fully calibrated, which is a complicated iterative process involving making sure that the endstops on each tower are set so that when you place the print head at various predefined spots on the printbed the head is the same distance from the bed, and then once that's done seeing if you can do various moves across the bed and still have the head land the same distance from the bed - this involves a *lot* of manual work setting the head location, testing the friction between the head and the bed with a piece of paper and then retesting everything you'd done to that point - this took nearly 2 weeks to get the printer running properly and actually calibrated to know that 10mm is 10mm and not some random other number - just because the printer is accurate relative to itself, doesn't mean that it's accurate relative to the rest of reality - go and watch "Jimbo and the Jetset" to see what happens when you get that wrong.
During this, the cheap hotend that came with the printer managed to ooze around every joint in it, despite having been assembled and tightened properly, resulting in a hotend covered in charred gloop, as it had also displaced the thermistor which monitors the hotend temperature.
I tried to clean it, but it wasn't having it - burning it clean didn't help, mechanical cleaning was a non-starter at the sizes we're looking at, so I went to look for a replacement hotend and found the E3d v6 lite which seems to be the standard for Deltas these days.
When it arrived, I went to fit it, and I discovered that the previous head was a odd clone of the E3d V6, but was a half inch longer - cue a visit to B&Q to acquire some washers and some M3 machine screws to extend the E3d head to where it needed to be.
At this point I have it all working, and it will mostly print objects I tell it to, and I go and buy more filament for it as I've gone through a lot in testing.
And the print goes to crap - won't stick to the bed and is all over the place blobby.
So, I go read the reviews for the filament and discover that where most PLA wants to be printed around 190-210 degrees, this stuff wants 230 degrees, and if you have a heated print bed, set that to 60 degrees too - these numbers would be more typical for printing ABS rather than PLA, and I didn't have a heated bed.
Back to Amazon, and a day later an adhesive bed heater arrives, which I attach to my printer and hook into the outlet on the control board.
And I try and print.
And my printer appears to be having a fit - stuttering and moving in strange random directions.
Of course, this hadn't originally come with a hotbed, and doing the calculations for the heater I'd acquired I discovered that the hotbed wanted 240W, along with 40W for the hotend itself, and about 8W for the controller and the steppers - so, 288W - the printer had come with a 12V/6A supply - 72W in total. I needed at least 12V/24A
I was a bit frustrated, and wanted it working today, not tomorrow and started digging around for possible other PSUs.
The standard for this is apparently LED drivers for the linked strip lighting which are available up to about 40A fairly cheaply, but the ones available anywhere near me (read "B&Q") had reviews saying that they are fine for LED loads, but really hate bursty inductive loads like heaters and motors, and would most likely trip their safety circuit.
So, on to the next idea - lots of people use PC ATX power supplies which are available at various degrees of chunkiness - go looking and discover that near me the cheapest is PC World, and they have a 430W Corsair available, so go and get that.
The DuetWifi is a very nicely designed control board, and knows about ATX PSUs - once chunk of snip and solder later, I have the permanent 5V from the PSU into the control board, the "ATX ON" line wired to elsewhere on the control board, and one set of 12V connections into the main terminal on the board.
Works lovely, and can turn the PSU on to do a print, and off straight afterwards.
I now seem to have a setup that can reliably print objects one after another, and should be capable of printing most rigid filaments.
I say rigid, as there flexible filaments which print out to flexible objects - filaments such as Ninjaflex, but reading up it looks like I'd be in for a world of hurt trying to print these, as the extruder drive I have is what is referred to as a Bowden drive, with a toothed pulley which pulls filament in and then pushes it through a tube to the hotend, but because it's partially open it stands a strong chance of simply pushing flexible filament sideways and causing a blockage - there are ways around this but for now I'll stick with PLA and maybe ABS.
The printer in question was an Anycubic Kossel Pro, which for those of you who care is a Delta style printer with linear bearings - so, mechanically quite tidy. The "Pro" means it has a 230mm print plate rather than the 180mm for the non-pro, so bigger prints, and it can print up to 300mm vertically. - so, in theory it can print a cylinder 8" wide by a foot tall.
This arrives as a kit of bits, including aluminium rails, lots of nuts and bolts, a hot end and a load of servos.
8 hours later I'd put it together mechanically, and was plugging in the included control board which is a thing called a Trigorilla Mega - it's actually an Arduino/RAMPS setup on a single board with stepper controllers on separate boards.
And then I did something wrong, which a lot of people do wrong - there are a series of limit switches that stop the mechanism trying to go beyond the top of the assembly - they're just microswitches with 2 wires, which unfortunately plug into 3 pin sockets - the 3rd pin is to allow for more intelligent switches such as infra red interrupters which need power. Unfortunately, if you plug the limit switches between Vcc and GND rather than Vcc and Sense what happens is you put a dead short across the power regulator which then blows pretty holes in the casing of the regulator and fails to work ever again.
So, at that point I hit Amazon and order the cheapest Arduino/RAMPS combo I can find with Prime delivery, and the next day I carry on.
Next day I've finally got it all working, and then it starts doing wierd things along with a burning smell.
I cut the power and go looking, and discover that the heatsink on one of the stepper drivers has managed to dislodge itself and has shorted live/ground, blowing both the stepper driver, and the voltage regulator on the Arduino.
So, on to Amazon again, and order a replacement Arduino Mega and a few spare voltage regulator, and a pack of stepper controllers with a good review rating, along with some spare voltage regulators to let me resurrect the dead Arduino.
Anyway, this all arrives, and I get the printer working and then the pain starts.
On a standard "X-Y" printer, you have a flat print bed which moves under a print head which can move left/right and up/down - everything happens in straight lines, so the maths involved in printing is pretty simple - it's Cartesian geometry at its purest, and it's dead easy to calibrate as long as you get your print bed level relative to the print head.
Not so with a Delta - because this is 3 arms which move up and down on towers, allowing the print head to move freely inside a cylindrical volume every movement is actually an arc, so the maths are rather more complicated.
Now, the Arduino is perfectly capable of driving an X-Y printer, as it doesn't have to do much, but the maths for a Delta printer are rather more challenging, and the poor little Arduino struggles - this manifests in a few ways - one is that the movements aren't fully fluid, there's occasional jerkiness as the CPU lags, and also the rate that it moves the steppers at is limited. Steppers work by sending alternating pulses to the motor, allowing the shaft to move one "step" at a time, however if you are doing this slowly what will happen is that the steppers will "sing", which is to say that they will make crunchy stereotypical "Motor under load" noises while running, which is distracting when you're sitting in the same room as the device.
At this point I decided I should just jump ahead and give up on Arduino/RAMPS drivers as they would never quite do what I wanted, in addition to requiring a PC to be connected most of the time to drive the printer.
So, I bought a new controller - this one was a Duet Wifi made in the UK, and is based on a fairly quick ARM CPU, with much better stepper drivers than are available for RAMPS and with a Wifi network connection allowing full control of the printer by a web interface. I also acquired the "IR Lite" bed calibration sensor from the same place to allow the printer to probe the printbed and automatically adjust for any irregularities.
And the result of this is a hugely quieter printer that runs fluidly and just "works".
The next trick was to get the printer fully calibrated, which is a complicated iterative process involving making sure that the endstops on each tower are set so that when you place the print head at various predefined spots on the printbed the head is the same distance from the bed, and then once that's done seeing if you can do various moves across the bed and still have the head land the same distance from the bed - this involves a *lot* of manual work setting the head location, testing the friction between the head and the bed with a piece of paper and then retesting everything you'd done to that point - this took nearly 2 weeks to get the printer running properly and actually calibrated to know that 10mm is 10mm and not some random other number - just because the printer is accurate relative to itself, doesn't mean that it's accurate relative to the rest of reality - go and watch "Jimbo and the Jetset" to see what happens when you get that wrong.
During this, the cheap hotend that came with the printer managed to ooze around every joint in it, despite having been assembled and tightened properly, resulting in a hotend covered in charred gloop, as it had also displaced the thermistor which monitors the hotend temperature.
I tried to clean it, but it wasn't having it - burning it clean didn't help, mechanical cleaning was a non-starter at the sizes we're looking at, so I went to look for a replacement hotend and found the E3d v6 lite which seems to be the standard for Deltas these days.
When it arrived, I went to fit it, and I discovered that the previous head was a odd clone of the E3d V6, but was a half inch longer - cue a visit to B&Q to acquire some washers and some M3 machine screws to extend the E3d head to where it needed to be.
At this point I have it all working, and it will mostly print objects I tell it to, and I go and buy more filament for it as I've gone through a lot in testing.
And the print goes to crap - won't stick to the bed and is all over the place blobby.
So, I go read the reviews for the filament and discover that where most PLA wants to be printed around 190-210 degrees, this stuff wants 230 degrees, and if you have a heated print bed, set that to 60 degrees too - these numbers would be more typical for printing ABS rather than PLA, and I didn't have a heated bed.
Back to Amazon, and a day later an adhesive bed heater arrives, which I attach to my printer and hook into the outlet on the control board.
And I try and print.
And my printer appears to be having a fit - stuttering and moving in strange random directions.
Of course, this hadn't originally come with a hotbed, and doing the calculations for the heater I'd acquired I discovered that the hotbed wanted 240W, along with 40W for the hotend itself, and about 8W for the controller and the steppers - so, 288W - the printer had come with a 12V/6A supply - 72W in total. I needed at least 12V/24A
I was a bit frustrated, and wanted it working today, not tomorrow and started digging around for possible other PSUs.
The standard for this is apparently LED drivers for the linked strip lighting which are available up to about 40A fairly cheaply, but the ones available anywhere near me (read "B&Q") had reviews saying that they are fine for LED loads, but really hate bursty inductive loads like heaters and motors, and would most likely trip their safety circuit.
So, on to the next idea - lots of people use PC ATX power supplies which are available at various degrees of chunkiness - go looking and discover that near me the cheapest is PC World, and they have a 430W Corsair available, so go and get that.
The DuetWifi is a very nicely designed control board, and knows about ATX PSUs - once chunk of snip and solder later, I have the permanent 5V from the PSU into the control board, the "ATX ON" line wired to elsewhere on the control board, and one set of 12V connections into the main terminal on the board.
Works lovely, and can turn the PSU on to do a print, and off straight afterwards.
I now seem to have a setup that can reliably print objects one after another, and should be capable of printing most rigid filaments.
I say rigid, as there flexible filaments which print out to flexible objects - filaments such as Ninjaflex, but reading up it looks like I'd be in for a world of hurt trying to print these, as the extruder drive I have is what is referred to as a Bowden drive, with a toothed pulley which pulls filament in and then pushes it through a tube to the hotend, but because it's partially open it stands a strong chance of simply pushing flexible filament sideways and causing a blockage - there are ways around this but for now I'll stick with PLA and maybe ABS.