Uncategorized

Modding an i3 to support five axis printing

five axis printing

I’d like to mod my i3 to try five axis printing. I have a Reprap i3 and a RUMBA board that support six steppers. I see in Marlin RUMBA is set up for 3 axies and 3 extruders. The axies would be X,Y,Z,U, and V. I’m wondering what is the best approach. Here are my thoughts so far.

Credit where credit is due

I’ve been greatly inspired by Øyvind Kallevik Grutle’s 5 axis printer, which I first saw in Reddit’s 3D printing group.

Hardware

For reference, here’s a picture of a Prusa i3 I found on flickr

Prusa i3

I have to fit everything between the two Z screws on the sides of the frame. I plan to remove the heated bed for simplicity, which means I must also switch to printing PLA or some other material that doesn’t require a heated bed.

A U shaped clip – probably printed in two pieces – will be mounted to a modified Y carriage. One side of the U clip will have a 608 bearing, and the other side will have a 3D printed planetary gear. It may be necessary to print two and load them against each other with a spring, later. The motor + the U clips + sundry will eat maybe 6-8cm off the original 20cm bed width, leaving ~12cm for the circular rotating V axis print bed.

An i3 can print up to 20cm tall, which means the U clips can be almost 10cm tall. If the bed is only 12cm diameter That leaves me room to play with. I can fit a lot under the V bed before I hit the U or Y carriages.

For the V axis I would like to use a couple of 52x35x12 thrust bearings like I did in the Arm3 robot. The wider the point of rotation, the more stable it will be. The underside of the printing table can be a big gear, with the stepper touching the edge. Something like 15:1 reduction going there.

Because the V axis is a circle, I don’t see a need for a limit switch or encoder. Wherever it starts is good enough. For the U axis I only need to turn 90 degrees one way. I’ll stick a limit switch as far from the U axis as possible – the further away, the greater the precision. I’d also put an adjustment screw so that bed leveling will be easier.

All in all, I think the mechanical part will be pretty straightforward, maybe three or four iterations to get it good. Bed leveling will be an even bigger challenge than before.

Software

Now here is where things get tricky. There are two parts: the firmware that runs inside the 3d printer’s brain, and the slicer software that runs in the PC. The slicer explains to the printer how to move to create a shape. Slicing takes a lot of computing power. Running the printer requires minimal power but very precise timing.

Firmware

The firmware most printers use is called Marlin. Marlin currently supports the RUMBA boards we sell. In the Marlin code it labels each axis as X, Y, Z, E0, E1, and E2. I haven’t dug very far into the code yet but I’m pretty sure I can’t just use E1 and E2 as they stand in the code right now. If I say I’m using E1 and E2 then Marlin will start looking for the temperature sensor to go with those extruders. The sensors don’t exist because I’m not extruding hot plastic, so it will give an error message and refuse to proceed. All that logic will have to change.

The RUMBA already supports six limit switches. Normally these would be min & max for each X, Y, and Z. I’ve never used more than the min switches on each axis. I think I can recode Z max to be the U min limit switch.

Slicer

The slicer software is where I slow to a halt. I have lots of experience with image conversion in the Makelangelo software, which is a lot like 3D slicing. 3D slicing in a 3 axis printer isn’t that hard. It’s like stacking layers of Makelangelo drawings one on top of the other.

Five axis printing adds all new layers of complexity and new considerations. For example: You want to put plastic in a certain spot from your nozzle. You can reach that spot from a wide range of angles. Which angle is best? Or suppose you print a cup and then you want to reach inside and print on the bottom of the cup. How to d you make sure the nozzle doesn’t hit the sides of the cup?

Discuss!

There’s more to talk about and figure out. I’m sure I’ve missed all kinds of problems that will seem obvious after the fact. Join me in the CNC + Arduino forum and let’s figure it out together.