Saturday, May 1, 2010

FiveD MakerBot Mishaps

Well, not to start out unhappy, but I've been working a lot on trying to get this thing to work right. It's not easy, let me tell you. I've had a few successes, but it seems I've run into every problem possible while doing this.

Now I've got my machine set up with the endstops and motor directions (by moving endstops and reversing motor cables) so that from the front, it plots in the same direction as all the software we use shows us things. i.e., origin is closest to viewer, left. (Bottom-left). This helps not build parts backwards, and makes visualizing the platform and x/y movements a bit easier.

The geared extruder is hooked up and running well. Haven't had many issues so far with the extruder itself; as a matter of fact it's gone quite well. The big part has been getting the table and software to work well.

A lot of the issues I had tonight dealt with Skeinforge. I'm using the latest version as of the time of this writing (2010-04-26). The RepRap host software (once I figured out some decent settings, which I'll post tomorrow) works good enough to get out a demo print. It's not perfect, but it will build an object.. roughly.

The objective here is to use Skeinforge's Gcode creation to build objects, since it's much more developed than the other. We still use RepRap Host software to send the gcode to the printer, but Skeinforge is doing the creation. I'd like to try/use RepSnapper soon, but it has issues with the 3d on this laptop.. seems the Intel drivers on here aren't really up to par for 3d stuff. We'll have to wait until they fix that. It doesn't run all that hot in the VM on here.

Had an issue earlier with the Z axis not working correctly. Turns out, Skeinforge's Z feedrate needs to be set quite low.. mine's set to 1.5mm/sec. Set anywhere higher and it freaks out a lot..

My main problem was that I had issues with it doing odd things.. I tried printing calibration blocks, but they definitely were not correct, and when I tried printing a 20mm solid block, I knew we had an issue.. Here are the photos:

Three calibration blocks. That triangle is there instead of the second shell on the other two sides..

20mm solid calibration block. This one's outline was extruded as huge blobs in the corners for some reason.
With these two, they have very different and odd issues. Mainly, the extrusions are not working properly. Visualizing the Gcode in RepSnapper shows that the code is proper.. somewhere between the code and the machine, something's not getting interpreted correctly.

So I did some investigating.. I loaded up the same object in Skeinforge and RepRap Host, and generated gcode files, and tested printing them. The RepRap Host file printed properly, and the Skeinforge file didn't. I then opened up the Gcode files side by side and tried looking for differences between the two.

In the Skeinforge file, whenever the extruder starts and stops, the file issues M101 and M103 codes. These are extruder start/stop commands, usually used with DC gearmotors. They tell the controller "start extruding, stop extruding" all at the preset speed. However, with stepper motor extruder drives, the extruder is treated as another axis, and therefore does not need on/off commands, as the stepper routines and controller take care of positioning the stepper appropriately.

One would think that these commands would be ignored, then. However, the RepRap Host file did not contain these codes. When I removed them from the Skeinforge file and reprinted (using the RepRap Host software), the file printed properly. I don't know what is causing this, the firmware or the host software, but one of the two just can't seem to handle those codes when it's using a stepper extruder. I used a simple find/replace command to delete them, and the files Skeinforge produces are working now.