Introduction: Turn an Old 3D Printer Into a CNC Machine
Turn an old 3D printer into a CNC machine
Well yes…But there are issues…
I made a video sponsored by Banggood who have given me a $100 CNC spindle and some tooling to try and make my old Prusa i3 3D printer into a CNC.
The 3D printer I’ve a few years now just sitting in the shed
as I have my nice Lulzbot Taz 3 so its about time I gave it a new lease of life.
It was a good printer for its time and as I built it myself I’m very familiar with the design so it’ll lend itself perfectly to this project.
My first thought as I’m sure many have considered before, there isn’t much difference between a 3D printer and a small CNC machine.
They typically both have small stepper motors that drive a tool end of some kind along several axis to reproduce a digital file.
3D printers do additive manufacturing using a plastic extruder usually and CNC machines a rotary cutting tool to do subtractive manufacturing by carving away the unwanted material.
Surely it’s as simple as swapping out the extruder with the spindle right?
On both a CNC or 3D printer something needs to tell the motors exactly what to do.
In this case an old RAMPS board with an Arduino mega controls the various motor directions as well as telling the extruder motor how much plastic to squirt out and when.
This would probably work just fine with a bit of reconfiguration.
Step 1: Unboxing and Testing the Spindle
Lets look at the spindle first. It comes well packaged and 2 has 2 short wires with bare ends as well as a nice aluminium mounting block.
If you want to check it out you can buy it here:
This code will also get you 15% off: BGMotor003
You also get a power supply and variable speed controller allowing the spindle to be ran at anywhere between 1-3000 RPM.
I knew immediately the cables would not be long enough so I soldered on some additional length and then set about testing the spindle to make sure it worked well.
And it did. Amazingly well in fact.
I did have some trouble with the connections, partly because the PSU labels were in Chinese but this was nothing a quick google couldn’t fix. I'll post a picture showing what wires go where.
Step 2: Testing the Old Printer
I needed to know the old 3D printer still worked after all it had been in a damp shed for a few years now.
It sorta worked and the print is recognisable it’s the logo from old makerspace So Make It.
Probably needs recalibrating but I didn’t bother with all that as I was about to completely reconfigure this machine.
Plus I must admit I was a little intimidated by the tidy wiring that I would need to deal with.
(it was a state)
For now I’m going to run the spindle in isolation at a set speed using the provided power supply and speed controller rather than doing anything clever like letting the electronics handle the speed.
It’s just one less thing to go wrong!
Step 3: Reconfiguring
The glass print bed is great for holding down your 3D prints but the idea of a rotating carbide endmill crashing down on it scared me a little so I knew this had to go.
Look at that image, an Ikea mirror tile, this thing is pretty sophisticated!
I got rid of it and replaced it with a piece of plywood so its cheap enough to cope with a few holes and be replaced if necessary as well as being fairly dimensionally stable.
The extruder also had to be removed as well as all the associated wiring like the heater cables and temperate probes which made things a bit easier to deal with.
The banggood spindle comes with a nice mounting bracket that means I just need to drill a few holes in the existing mounting plate.
But I’m impatient and a bodger so I used some of this awesome Gorilla tape to make a temporary mounting.
There. Looks proper good that as you can see! ;)
The current firmware on this board was on old version of Marlin since as awesome as Marlin is, it was designed for 3D printers not CNC mills.
Ordinarily you would expect something on this machine called GRBL.
I used some firmware that already been written called GrblforRAMPS by Per Ivar Nerseth but had limited sucess and messed around with the latest Marlin build with some tweaks.
This was easy enough to download from Github and install onto the board using the Arduino IDE.
As there is no longer an extruder or hot bed as well as all the temperature probes that come with that, I removed any references to them in the code.
Step 4: Initial Testing
I used Repetier to drive the machine as that what I used on this printer before and I know it works. Its free and fairly easy to use.
And for the first cut I inserted a 3mm end mill piece also from banggood. I’ve not used any of their tool bits before but have found them to be great value if you don’t mind waiting a little longer for them to arrive.
Some scrap pine was stuck down to the bed with carpet tape.
I love this stuff, double sided, cheap and grips really well but not so well that you cant remove stuff afterwards.
OK what could go wrong I thought.....
Well a lot it turns out. My steps per inch was off and I had a major crash of the spindle into the bed causing lots of smoke :(
This was a quick fix in the code using the Arduino IDE
Seems to work OK.
I used Estlcam to generate the toolpaths as it can generate Marlin compatible gcode and again, its free and easy to use.
I still wasn't happy however and things were just not working as well as I had hoped.
Step 5: Changing the RAMPs Electronics
I really wanted to make this work with the printers existing electronics and it kinda’ does. It’s not easy to reconfigure however and the software I’ve got loaded is nearly five years out of date.
I could probably muddle through but there’s an easier way.
I ditched the RAMPs board and the Arduino and switched to a dedicated CNC board that runs the latest builds of GRBL, runs 3 axis and is of course available from Banggood (sorry if this reads like a giant ad, I just buy a lot of my stuff from them!)
Step 6: Adding a Proper Spindle Mount
The flex in my tape mounted spindle was pretty bad during that though so I should probably make a more serious mounting bracket.
I measured up a bit of walnut, cut to size and drilled holes to fit the existing x carriage and holes for the aluminium mounting block.
Fantastic, that looks a little more professional, I could almost call this thing a fancy name and launch a kickstarter.
Step 7: Final Tests
It made sense to use a shape I’m familiar with so I used the makerspace logo again, but scaled it up a bit so you can see the detail with a 3mm bit. I didn’t have anything smaller at this time.
I thought some limewood would be ideal for the first cuts since its fairly soft and I made sure it was extra secure on the bed this time.
You can see from the image I have a recognisable cut! The Southampton makerspace logo (the shape of a spanner)
I switched from Estlcam to Inventables Easel as its free and extremely easy to use, much simpler than anything else I've used so far.
You can just I just pick what material you're, using, tell it how big it is, add a pattern or something that you want to cut, tell it the depth and can generate the tool paths.
I also switched to something that’s designed to run a CNC, the openbuilds control software. Again this is free and easy to use.
Oh and you can control your machine with your phone too which is pretty cool.
I just move my spindle to a reference point, say the bottom left corner on top of what I want to cut, set this as my home position and then start.
I then tried to something a bit deeper this time, a smiley face 😊 You can see from the images it turned out OK!
I then tried a stamp. I used rubber material at first designed for laser cutting but this was too soft and didn't work well so I switched to something a little harder; linoleum.
That worked great and made a functional stamp.
I tried acrylic with a little cut of Olaf from Frozen. It was a bit too melty as I was using cheap dremel bits but still was a good recognisable cut.
The final test was aluminium.
I found it cut but bit of a weird step feature which I knew was not missing steps or a sliped belt as the artifact was not repeated. After some comments from my subscribers I think this was down to the flex of the bed.
But it cuts! - so success! (sorta)
Step 8: Summary
So I learned loads making this thing, for light cuts and engraving its actually a useful machine but you can see from the wobble its not really suitable as a serious CNC.
I can say the spindle does not need to be changed, this things pretty good for a small machine. Banggood do more powerful ones as well if you need it.
I bet I could modify some stuff to improve things though.
I've considered adding some powerful motors, changing the plastic parts out for something more rigid, change the belts to lead screws and maybe redesign the structure to add to its rigidity.
No I’m not even that crazy when you can just buy a fairly well designed little machine for around £150-200
So thanks very much all for reading and please check out the video if you want to see some of the disasters and fun I had. If you have any questions please shoot!