I made a new Z-axis motor coupler, as I suspect the old one was slightly off-center & causing wobbles to show in printed parts. The new one seems better, but I still have a little bit of wobble from a still undetermined source.
new Z axis shaft coupler
Here are a few recent prints. I recently started using the “Dimension” module within Skeinforge to retract the feed-stock between moves, and it’s really helped reduce the “stringies” that’d happen between parts.
I'm six little teapots.
These rings printed fine, but a few lost their grip right as the print finished.
I thought the firmware I’ve been using had PID temperature control, but it turns out it was using a simple on/off thermostat routine that caused the extruder temperature to have big variations.
Here are some prints of a RepRap Mendel part, basically a small cylinder. Due to the small size of the part quality really suffers as the temperature swings up & down.
The cylinder on the left was printed with the simple On/Off temperature control, and the two on the right were printed with a On / Medium control, that instead of turning the heater entirely off when the temperature exceeded it’s set limit, just set the heater to a medium value. It’s not a real fix, but it was simple to implement, and still makes a pretty significant difference.
Worse, bad, bad.
The right-most part in this picture will probably be usable, but just barely.
Left = bad.
Here are some larger parts that show the effect in the ‘banding’ you see every couple of layers, and the lower layers that are %100 solid internally, are a bit wider, which they should not be.
Notice the horizontal banding.
The code I changed isn’t *much* better, but it helps some, if you’re using the tonok-MMM firmware fork look at the file Tonokip_Firmware.pde in the manage_heater() function:
The original code was this:
if(current_raw >= target_raw) digitalWrite(HEATER_0_PIN,LOW);
else digitalWrite(HEATER_0_PIN,HIGH);
and I replaced it with this:
if (target_raw <= 50) {
analogWrite(HEATER_0_PIN,HEATER_0_OFF);
} else {
if(current_raw >= target_raw) {
analogWrite(HEATER_0_PIN,HEATER_0_LOW);
} else {
analogWrite(HEATER_0_PIN, HEATER_0_HIGH);
}
and added these lines to configuration.h:
const char HEATER_0_LOW = 85;
const char HEATER_0_HIGH = 255;
const char HEATER_0_OFF = 0;
The HEATER_0_LOW value should be a number in the 0-255 range that allows your heater to cool from your usual print temperature, be careful not to set it too high, or your nozzle will never cool down. As mine sits now it will idle at about 165C when the heater is on ‘Low’.
I’ve managed to connect a webcam to the ArduinoMega that is controlling my 3D printer, so now I can trigger a picture from the G-code that the printer is reading to make the part.
This means I can take a picture at the beginning of each printed layer, and make time-lapse video like this:
After melting the PTFE insulator yet another time, I’ve built another hot end. This one doesn’t use the PTFE as a stress-bearing part, but only to contain any plastic that may ooze above the top of the heater barrel.
The heater barrel is threaded into the PTFE about 0.25″, just enough to keep it aligned. The PTFE isn’t attached anywhere else, just sandwiched between the washer and the aluminum mounting plate above it.
I also made modular heater and thermistor, ala Makergear.com HeatCore. (I know a good idea when I steal it).
non-load-bearing PTFE
I’ve also ditched the separate nozzle, and used the brass screw as a one-part barrel+nozzle. The opening was drilled with a 0.45mm drill.
No nozzle!
Print quality has improved by a lot, and I haven’t had any problems with the feed pinch-wheel teeth stripping the filament.
After trying to do some printing with a spool of White PLA 4042D, and being unable to replicate the quality level I’d got with Natural PLA 4042D, I started to look for possible differences in the composition of the filament.
After reading the datasheets, the only documented difference is %2-%4 pigment. I’d had decent results with green & black PLA, so I wasn’t convinced that the pigment was a factor. (Although at this point I was so frustrated that I wasn’t ruling it out, either).
Here’s a few objects I’ve printed. They came out mostly Ok, but I think I have a lot of tuning to do in Skeinforge, the software that generates the actual printing instructions. All the objects have been cleaned up with a razor, as there were some strings.
After melting the PTFE insulator on my RepStrap extruder twice, I went back to the drawing board and replaced the whole hot-end assembly.
I manually turned the new nozzle and barrel on my mini-lathe. The nichrome heater wire will wrap right around the nozzle, applying the heat as close as possible to the tip.
The heater-barrel has a reduced outer diameter, my theory being that less metal there will reduce the flow of heat up into the PTFE insulator.
The RepRap is a 3D printer that builds small objects out of plastics, by squirting layers of melted plastic out of a nozzle, on to a computer-controlled moving platform. Once a single layer is made, it moves to the next layer up from the bottom, repeating this process until your object is created.
This process is called “Fused Deposition Modeling”, or “Fused Filament Fabrication”.
The end result is a strong plastic part, with a slightly ridged surface.
This is basically the same method used by the Stratasys FDM rapid prototyping machine, which costs around $30,000.
The Chicken & Egg problem of building a RepRap machine is that many of the parts are actually made using a RepRap, so if you don’t already have access to one, you’re at a disadvantage.
I’ve been working on what’s called a RepStrap, that is, it’s not exactly following the plans for a RepRap machine, but can be used to ‘bootstrap’ construction of a RepRap. The end result is the same in that you have a 3D printer, but the construction plans & materials differ.
When starting my build I had a few design goals: appearance, cost, and functionality.
For years and years I’ve been facinated with CNC machinery. There’s something incredibly compelling about the idea that you can design something digitally, with all the “undo” you want, and then have a machine make it for you.
Of course, it’s really not that simple in practice, but it’s still an incredibly exciting thing.
For a couple of years now I’ve been picking up motion control parts whenever I see them available cheaply, even if I didn’t have a particular need for them, yet.
Mid-summer 2009 I found a surplus X/Y table on eBay, put in a minimum bid of $50, and won.
This gave me a pretty good starting point for a light-duty milling machine, I had two axis’s that were more accurate than I’d be able to make myself, with 2 stepper motors. I already had a few stepper motor drivers.
I built a ‘Z’ axis that used bronze bushings sliding on steel rods, driven by 10TPI acme threaded rod. The lead-nut was a chunk of Acetal plastic that I’d tapped threads into using a home made tap.
The first revision used a Bosch Colt 1.0HP router for the spindle, as I’d read online that they had very low runout(ie: wobble) in the spindle. I’d measured the Bosch’s runout at about 0.0035″, which seems pretty good for a consumer grade router.
After making a few circuit boards I realized that I’d need something even smoother, and after a little deliberation I ordered a Proxxon IB/E rotary tool. It was $110, which is a lot to pay for what’s essentially a Dremel(which would have been about 1/2 the price).
Once the Proxxon arrived all my hesitations vanished, I can’t speak highly enough about it. I measured the spindle runout at about 0.0005″. I can turn it all the way up to 20,000 RPM and put it down on the desk, and it just sits there. A Dremel would vibrate itself off the edge of the table within a few seconds. Also, even at full speed, it’s quiet enough that I can run it at night while everyone is asleep. The Bosch was loud enough that I didn’t even like to be in the same room with it.
I was incredibly lax about taking pictures of the build process, but did manage to snap a few after it was done. Please ignore the cardboard-box-dust-suppressor system, I haven’t had time to make a proper box.
A proper shaft coupler handles small misalignments:
Repurposed ps2 keyboard cables used for the motors: