Friday, June 17, 2011

Test Cube and Other Stuff

I merrily played with the manual controls in RepSnapper and calibrated as well as I could with my primitive ruler in terms of making sure the three movement axes roughly followed my commands. I think my timing was good relative to the releases of Skeinforge as others who are much more experienced than I already figured out how to adjust the firmware to handle SF40's new volumetric extruder control. So I followed the empirical method in one of the forums for figuring out how many steps it took on the extruder motor to feed one mm of filament into the extruder and plugged that into the firmware. That gave me some confidence that the extruder was working properly too.

I have to say I was somewhat concerned that the PEEK insulator on the MakerGear hot end I was using would get hot enough to melt or at least warp the extruder plastic or X carriage. I brought a nice calibrated thermometer home from work and was really pleased to find that the temperature of the PEEK seemed to be staying below 80°C without any kind of active cooling. I can't say enough about how happy I am with this hot end setup.

As much as I would have liked to jump right in and print a replacement gear for the really warped large one my extruder, I still needed to calibrate, and I'd probably need a heated bed so I could print with ABS. I don't think the PLA would hold in that situation.

First print
So I looked for a tried and true standard on thingiverse and found the 40mm test cube. I found some settings to use as a starting point in Skeinforge (I haven't the faintest idea where any more) and ran the thing through. I really didn't understand what most of the parameters meant, but I got greedy and decided to shoot for a 0.2mm layer height. Out popped the G code which I then fed to RepSnapper. I noticed that the object appeared to be centered at 0,0 on the preview grid, but since the starting point was also 0,0 I figured the printer would just end up being forced to adjust and the cube would print with a 20mm shift away from the origin. I think I forgot to carry the 1 or something ;) I ended up with the lovely thing you see to the right.

It tried to print each layer shifted 40mm in the positive Y direction. Not surprising I suppose. But it certainly seemed to be trying to do the right thing. So I cleaned up the mess and prepared for another go. Realizing that 40mm is pretty big, and not wanting to use that much plastic at this point, I ran the stl file through Skeinforge again but used the scale function to make it half as big. I also did a little searching and found out you can use the multiply function in Skeinforge to move the origin of the object, which I did. The next print almost worked, but the nozzle seemed to be dragging through the plastic and just making a mess. I stopped it after the second layer.

I was having a hard time figuring out how to deal with the ooze right before a print and I figured that was what was tripping me up. So using the same code, I tried again and just did my best to keep the nozzle clean before the actual print started. And the results were........ fantastic!

Printing my first thing!
First successful print - 20mm cube
 It was the best looking roughly 20mm cube of black plastic I had ever seen. Maybe my judgement was a little clouded by finally getting something approximating what I asked for after all that work Googling, and assembing, and testing, and Googling some more. (Just noticed Googling is not in the Blogger dictionary, or is it Chrome, hmmm).

Flushed with this success, I tried to do it again. No joy. Decided to pack it up for the day and try again tomorrow. The next day wasn't any better. I just couldn't get the PLA to stick. You may have noticed in the pictures, I was using Kapton tape on the bed. I thought maybe I had too much residual plastic on the nozzle and took the whole extruder off so I could clean it up properly. A coworker suggested I polish the nozzle so I did. Tried again and it still didn't work. I was getting really frustrated at this point.

I turned to the reprap channel on IRC for the first time and was advised that PLA doesn't stick so great to room temperature Kapton and that preheating it with a hair drier might do the trick. About the same time, I had a revelation that I hadn't cleaned the bed at all since applying the tape. So I used some alcohol to clean it up. I used the hair drier for good luck even though I don't think that had anything to do with my issue but sure enough, my next print stuck fine.

Misshapen baby octopus
Real progress
I really thought I had it licked at this point, and being bored with cubes already decided to go hunting for something more interesting on Thingiverse. That's when I discovered the Bucket O' Octopi. I was still being stingy with the plastic and left my scale settings at 50%. The result was less than overwhelming, even though it was recognizable. The double legs are because I bumped the print bed after the first layer.

Time to start learning what all those numbers mean in Skeinforge. But before doing that I decided to just take a stab at some parameters and try again. On the next G code export, I noticed some numbers fly by in the terminal window. I could have sworn it said the layer height was set to 0.1mm. Sure enough that is what it said. I double checked my layer height setting in SF and it said 0.2mm. Then it dawned on me that for some strange reason, scale affects the layer height, but not the width. While this is pretty clearly a mistake in the code, once aware of it, you can easily work around it. Rather than try for the half size octopus again, I decided to go for the adult size. And it worked! Well, mostly.

Somewhere near the top of the head, something happened. I couldn't see it very well not having a ring light and all. It looked to me like it might have been stretching the filament a little too much on the infill, and on a layer near the top it broke. The end of the strand pointed up and caused the subsequent layers to get a little messy in that area as the nozzle dragged through it. But again, I was very pleased anyway as it seemed like I was making real progress.

One other thing I realized after all this is that the first successful test cube I printed actually had a layer height of 0.1mm. I didn't think that was even possible.

As I was saying, now it's time to learn what all those Skeinforge parameters are for. But first, a beer.

Wednesday, June 1, 2011

Hardware Done, Time for Firmware and Software

So all this blogging about the hardware might lead you to think I was really patient about waiting until it was all finalized before loading up the brains with some code to make it actually move. Well, I may have left out a little bit. I loaded Tonokip's firmware once I had all three movement related axes ready and made sure they were moving using Repsnapper for manual control. I was floored that they not only moved, but in the proper directions. A big thanks to all the RepRappers who took the time to document various pieces of the puzzle.

While getting the extruder all put together, I did some more research on firmware and software on the RepRap site, various blogs, and by lurking on IRC for a while as well.  This is probably one of the hardest parts of the whole process. A thread in the forums had just spawned a new page on the wiki that was intended to list computer OS/printer electronics/firmware/host software combinations that were known to be working. I just rechecked and it appears this never really got off the ground. I'll add to it once I feel my combination is worthy. The best options for you depend on many things. The wiki has a decent rundown of the various tool chains that might work for you.

I was looking for firmware that worked easily with my RAMPS setup. Initially I looked at the Teacup firmware but found it too confusing for my first attempt. I found the Tonokip firmware much easier to understand and configure for my setup. I later changed to Klimentkip and will probably move further up the evolutionary ladder to sprinter in the near future. All I needed to do was copy the RAMPS config file, check the pins and end stop settings (I used mechanical end-stops), and uncomment the include statement for the correct thermistor table.

For host software I decided to use Repsnapper just for control and sending the G-code to my printer. From my research, I gathered that Skeinforge offered the most advanced options for G-code generation and also a proportionally steep learning curve. I decided not to try printing with Repsnapper directly fearing that I would just be disappointed with the results anyway. Probably an unfounded decision as I've since seen some pretty good results from other RepRappers. Skeinforge is really a bear to learn, but I'm making progress.

Nothing left to do but print stuff.