Thursday, 7 February 2013

System test and new software.

The whole machine is now together and I'm working on the software.

The Reprap Gen2 host software seems to have some strange race conditions - sometimes extruder on/off gets stuck in the wrong position for the actual firmware state, and sometimes the temperature sensed jumps up and down by 25 degrees. After a few minutes unable to diagnose the problems in the (now very outdated) software, I decided to write my own firmware and host software.

So far my version doesn't print, but it does give me full and accurate control over all the hardware. Screenshot:

The dials and LEDs use a library called SteelSeries - you can find it here .
The emergency stop button works too - it stops all motors and turns off the heater.

Using this interface I tested all the min/max sensors, temperature control, stability, extruding parameters and can count the steps between the limits etc - all needed to calibrate the machine.

Next step will be to add the 3d printing functionality to the host software.
Here's a video showing the screen and hardware working together - first, the Z axis is lowered until it detects a limit and stops. Then it is ordered to rise until it hits the other limit. Finally, the heater is turned on and monitored as it rises to about 50 deg.

Rebuilt Z axis.

I've now mounted the new (working!) extruder on an improved Z axis. There's less (almost zero) play due to constant pressure on one side. I could probably reduce the height by mounting the extruder closer to the end of the moving section but at this stage it doesn't matter.

The min/max sensors are weakly attached so they break off if something goes wrong. A captive nut is used as before.

After a long break working on other projects, I've returned to the Lego reprap. I gave up for a while because the extruder just didn't work properly. I kept getting jams in the nozzle I'd made - actually this is a known problem with the very early design reprap nozzle.

This time I bought a J-head IV nozzle from .

I eventually came upon a good method of driving the filament using lego. I pinch the filament between two rollers. To work effectively the rollers have to be stiff enough to generate sufficient friction, but elastic enough to allow some slippage. They should rotate in opposite directions at the same (very slow) speed to pull the filament in.

I used two of the black lego driving shafts in adjacent holes as the rollers. They're driven by an old Lego technic motor. To achieve the extreme gearing in a small package with minimal friction losses, I've used worm gears to reduce the rotation speed. (I believe the lego motor has no internal reduction.)

The rollers have a section of grey Lego plastic tube slid over them to reduce the gap and because the tube is more flexible than the shafts. So it makes it tighter and gives some flexibility to the grip.

And.. finally, I have a working Lego extruder (albeit the nozzle is not lego, but lego was never going to survive the temperatures for extruding)!

I've included some pics and a video of the extruder working, hopefully the pics make it clear how this all works. Some of the pics show some plastic that's been extruded. The extruder is mounted on a temporary Lego frame for testing.