PowerSpec 3D PRO Build Plate LED Lamps

Posted 03 April 2017

In the year or so since I started printing with my trusty PowerSpec 3D PRO (Microcenter clone of the FlashForge Creator PRO), I have struggled to see what was happening in the first few layers of problem prints.  The extruder/feed motor assembly is so big that it blocks most of the sight line to the build surface.  What is left is a very shallow viewing angle, which is mostly shadowed by the print assembly.  Over time, I have found that hanging one of my goose-neck LED bench lamps over the top edge of the cabinet on either the left or the right side gave me a much better view – the restricted viewing angle was unchanged, but a lot more light was thrown on the subject, literally.  However, this was an inelegant solution to say the least, as the lamp was apt to fall off the printer at the most inopportune times.

As usual, I kept thinking of ways to improve this situation, and finally came up with the idea of seeing if I could find some small LED work lights that I could permanently attach to the printer.  After some Googling around, I came up with a 2-lamp LED Auxiliary Light Kit (p/n DRL-CW3-SM-9) offered by superbrightleds.com for $24.95/pair – nice!

DRL-NW3-SM 12-24V 9W Auxiliary LED Light Kit (2 lamps)

After some fiddling around and some goofs, I arrived at an arrangement I liked.  The lamps are mounted at the top of the cabinet and are pointed down so they illuminate the entire build surface, but are physically offset enough so the plastic top closure assembly can still be removed and put back on without problems (this was one of the goofs – the first arrangement I tried made removing/replacing this piece very tedious).  The shots below show the setup.

To power the lamps, I used a ‘Mean Well’ APC-25-1050 24VDC constant-current LED driver supply from ledsupply.com.  This is an incredibly cheap switch-mode power supply that delivers 1.05A constant current, with an output voltage from 12-24V.  This matched well with the 12-24V input spec for the LED auxiliary lamp, so I was in good shape.   I had a couple of these hanging around from a previous project where I converted a crappy Lowe’s LED clip-lamp to a robust high-power LED lamp, so I got a two-fer (didn’t have to research/buy a power supply, and used up some of my excess stock – yay!).

For control, I decided to use individual power switches, mounted at the rear left & right of the cabinet.  I had some small SPDT power switches available, so I printed up a nice little housing with integrated zip-tie anchor points for cable strain relief, and then ran a common power run down the back center of the cabinet to the power supply mounted on the back of the cabinet, below the right filament spool.

The following photos show the arrangement, and the build plate illumination during the first few layers of a test print.  Enjoy

Old vs New. Hanging bench lamp in foreground, new permanently mounted LED lamp in background

New LED lamps in action. Note the build plate illumination.

View from back of printer showing both LED lamps and ON/OFF switches

Mean Well APC-25-1050 1A constant-current LED power supply mounted at rear bottom of the cabinet

Build plate illumination with both LED lamps ON

Test print with both LED lamps ON

Test print with both LEDs OFF

View from top during test print, both LED lamps ON

 

 

Coffee pot filter holder handle repair with CFPETG

Posted 2 April 2017

No, this is not an April Fools prank – but an actual geek-type 3D printer project using 3DXTECH’s carbon fiber impregnated PETG filament.

A day or so ago I was preparing my morning coffee as usual, when I discovered the little plastic ‘milk pail handle’ handle on the coffee filter holder had somehow gotten broken, as shown in the following photos

broken handle – note the missing tip on the left side

broken handle in action (or in this case, INaction)

So, since I hate defective products like this, and since I happened to have a 3D printer and some CF-PETG handy, I decided to see if I could 3D print a replacement.  Designing the replacement in TinkerCad turned out to be pretty straightforward, using a rectangular cross-section for the handle rather than the original circular design.  The two retainer tips are cylinder sections (actually they are the ends of the same cylinder – with the middle removed along with the center of the disk making up the handle.  The TinkerCad design is shown in the following screenshots

Finished design

exploded view

After the usual 2-3 tries to get the printing parameters tuned up (seems they change slightly for every job), I got a very good print, as shown in the following photo

Broken handle and CF-PETG replacement. I only went through about 4 iterations over a few hours to get this right

When installed on the coffee pot filter holder, it seemed to work very well – it allows me to pick up the holder by the ‘milk pail handle’ and it also stows away just like the original – yay!!

Replacement handle in action – lifting the filter holder as intended

Replacement handle in stowed position

B3DP (Before 3D Printers), it would basically have been impossible to repair this part.  Now, that’s not really a disaster, as it is perfectly feasible to use the holder forever without the little ‘milk pail handle’ but if you are a guy like me who hates defective equipment, this would have been a burr under my saddle every time I used the coffee pot.  I might have been able to find a replacement part somewhere, at some exorbitant cost (probably more than the entire coffee brewer) with a 6 week delivery lag time, but that would just be a choice between two bad options; deal with a broken system every day, or just buy another brewer because of the failure of some 10-cent part 🙁

However, with my new 3D printer super power, the cost to repair is a few pennies of filament and a few hours of my time in my lab, which I love to do anyway – such a deal! 😉

Stay tuned!

Frank

 

Printing with 3DXTech Carbon-Fiber PETG – Solved!

A couple of months ago, I got some 3DXTech carbon fiber PETG filament to play with, and I have been having mixed success printing with it on my PowerSpec 3D PRO (FlashForge Creator PRO clone) dual-extruder machine.  My first few prints were pretty nice, but lately I’ve been having problems.  The prints turn out messy and stringy, with almost no strength – as if the layers aren’t fusing at all. I can easily snap pieces apart, where before they were quite robust.

In an effort to troubleshoot the problem, I have done the following:

  • Replaced both nozzles with 3DxTech hardened steel models
  • Re-leveled the build plate
  • Gone through the excellent XYZFABS PETG printing tips here.
  • Set the z-axis offset to 0.02mm in S3D gcode
  • Set the filament feed multiplier to 0.88 as recommended
  • Set the extruder temp to 220, bed temp to 100

With the above settings, I tried a 20mm cal cube, but it started ‘air-printing’ after about 15mm from the base (filament under feeding?).

  • Set the filament feed multiplier to 1.20 and tried again.  This time I got a nicer print, but it still failed at 15mm with a feed jam and obvious gear tooth wear on the filament – clearly over-feeding.
  • Set feed multiplier back to 1.10 and tried again.  This time it started ‘air-printing’ at about 4mm up.
  • Changed extruder temp to 230 and tried again.  This time it failed to adhere 1st layer to print bed.  This caused a ‘blob’ on the extruder tip, which resulted in sidewalls that were over-printed and ragged.
  • Changed print multiplier to 1.00 and tried again.  This time the print didn’t adhere to the print bed at all
  • Changed z-axis offset back to 0.00.  This resulted in an almost perfect print.  Sidewalls were very nice, and although there was some ‘globbing’ during bridging on the top, the final top layer was almost perfect.

So, the final settings for a good print are: Feed multiplier = 1.00, Bed temp = 100, extruder temp 230, z-axis offset 0.00, unused extruder temp set to 25 (can’t set to 0, as this gets overwritten by printer), as shown below in the S3D process settings screenshots

23 March Update:

Last night I printed a second 20mm cal cube using the same settings as above, and this time the bottom layers did not print correctly (sides and top did OK).  So I tried again this morning, with the following change:

  • Changed z-axis offset from 0.00 to +0.01mm, and changed the unused extruder temp from 25 to 75 (this last settings change is an attempt to fool the printer into showing percentage completion as normal. With an unused extruder setting of 25, the top line of the display shows ‘heating’ continuously)

With the above changes, I got an essentially perfect cal cube print, *and* the top line of the display showed percentage completion instead of just ‘heating’ (the right extruder temp display showed 75/75, so that pretty much confirms my theory about the printer having to match actual and requested temps in order to progress to the ‘percentage completion’ display mode)

Essentially perfect 20mm cal cube print with 3DXTech Carbon Fiber PETG filament

Unfortunately, when I tried to print the TinkerCad model shown below (it’s the front right wheel bumper for my robot), I could not get a decent print no matter what I did.  Either the first layer wouldn’t adhere, or the filament feed failed partway through the print, or the finished print was way to fragile for use.  I finally had to give up on the 3DXTech filament entirely and print the bumper using ABS (which printed perfectly the first time!).  This was very disappointing to me, as I had previously successfully printed two of these wheelguards using the 3DXTech filament – so I’m not sure what changed to make it difficult/impossible to do it now 🙁

Right wheel guard for Wall-E2 (blue material is support). Printed perfectly the first time with ABS, but not with 3DXTech Carbon Fiber

ABS with ABS support printed perfectly on the first try

Frank

25 March Update:

Yesterday I did what I should have done when I first started having problems with the filament, namely shooting off an email to 3DXTECH.  I quickly got a response back from Matt Howlett, the company’s founder, with a what looks like their stock reply for people having problems.  Most of the stuff in the list I had already covered, but there were a couple I hadn’t tried, and one of them was raising the extruder temp from 230 to 240-245.

So, I reloaded the carbon fiber PETG on my printer, and printed a 20 mm cal cube with Matt’s recommended settings, except for a bed temp of 90 vs 65 (because I have a PEI bed and don’t want to use hairspray, and print speed of 3000mm/min vs 4000.  This time the cal cube printed perfectly, and I could not damage the finished cube with finger pressure like I could before.

Next, I tried a full print of my right wheel guard model for Wall-E2.  To simplify things, I used the carbon fiber PETG filament for both the model and the support material (I was having trouble before getting the support material to stick at the bed temperature I was using for the carbon fiber PETG material), and lo-and-behold, this print also turned out perfectly, as shown in the following shots.

Just starting the print

About 1/4 the way through, printing nicely

About 2/3 of the way. Note how well both the model and the support area adhered to the bed

Finished print!

Finished product – and quite strong.

When I made this one change, all of a sudden I was getting almost perfect prints!  Now I feel like an idiot for going through all this wailing and gnashing of teeth when all I needed to do was raise the extruder temp 10 deg!  Now I have been forced to ‘eat my hat’ (and my complaints to 3DXTECH!) – OOPS!!  However, since I am now back to being able to make strong carbon fiber prints, I’m more than willing to accept the trade-off! ;-))))

Stay tuned,

Frank

 

 

 

Twisted Heart 3D Print Using Magenta PETG

A little over a year ago, in December 2015, I printed a ‘twisted heart’ vase for my wife, using  Gyrobot’s ‘Twisted_Heart_Vase_Hollow_-_Hi_Res.stl’ file from Thingiverse (http://www.thingiverse.com/thing:42570/#files).  At the time, I had been 3D printing for about a year using a Printrbot Simple Metal and I had just purchased some bright Magenta PETG 3D filament.  As usual I printed several versions to get the one I (actually, my wife) wanted, and wound up with a small 30% scale model that my wife used as her daily pill cup.

As it happens, this model wound up in the hands of a grand-daughter, so my wife asked me to print her a new one.  “Piece of cake” I thought; after all, I have a better printer – a dual extruder PowerSpec 3DPRO (FlashForge 3D Creator Pro knockoff) with enclosed build space and a heated print bed with PEI, the top-of-the-line Simplify3D plater/slicer, and plenty of PETG magenta filament remaining – what could go wrong? 😉

So, I tracked down the print file I used last time, threw it into S3D, scaled it down to 30%, and voila – NOTHING – WTF!!??  After some experimentation, I found that any time I scaled the print below 50%, the sidewalls disappeared – ugh!  After some due-diligence Googling, I finally gave up and posted to the S3D support forum, and in very short order I had a couple of replies. Turns out the answer was that the sidewall thickness was getting scaled with everything else, and once it got below about 1/2 extruder thickness – it got rounded down to zero thickness – duh!  Fortunately, poster Brian had the answer – tell S3D to make the object a solid model, and then set the infill to 0% and the sidewalls to 1 perimeter width – yay!

So, this got me to the point where I could actually slice the model and send it off to the printer, where I discovered an entirely different set of problems.  I don’t remember having any real problems with my old trusty Printrbot, but I sure was having them with the PowerSpec.  The PETG filament was sometimes refusing to stick to my PEI print bed surface, and when it did stick, it had a tendency to stick to itself and ball up in to a huge blob after several to many layers.  When it didn’t do any of these bad things, I would get ugly inclusions and/or voids in the sidewalls – not the kind of thing I wanted to show my wife – yuk!!

So, back to Google, looking for advice on printing with PETG.  Fortunately, after just a short hunt I came across a very detailed treatment for PETG printing by ‘Jules’ at XYZFabs.  The good news – it was very detailed and thorough, so it was very likely to cover my problem; the bad news – it was very detailed and thorough, and so required a lot of concentrated study to follow.

In my case, the problem resolution was to do the following, as suggested in the above article

  • Modified the Z-axis calibration in S3D’s G-code section to move the extruder another 0.02mm away from the print bed, to accommodate PETG’s enhanced stickiness.
  • Enabled the ‘wiping’ feature, and confirmed that I had ‘retraction’ enabled
  • Set the extrusion multiplier to 0.88 to significantly under-extrude.  Before reading this article, I had had other occasions to over-extrude slightly with others filaments, but this was the first time I had a reason to under-extrude.
  • Switched back from ‘high resolution’ (0.1mm layer height) to ‘medium’ (0.2mm layer height).  Not sure this was really necessary, but it seemed that the theme for PETG was ‘keep the layer separation as high as possible without actually air-printing’, so…
  • Slowed the print speeds down slightly.  Again, not sure this was absolutely necessary, but the combination of this and all the above were definitely going in the right direction.

As a result of these changes, print quality improved dramatically, to the point where my next 30% scale print was a ‘winner’  – one that I could proudly present to my wife and accept my reward (“well, it’s not as good as the one I had before, but I guess it’ll have to do”) ;-).  Hey, after almost 50 years of marriage, that’s about as good as it gets!!

I have included some photos of some of the failed versions, and a couple of the successful one.

The twisted-heart menagerie. The successful print is shown on the far right

Successful 30% scale twisted heart print, using magenta PETG

Successful 30% scale twisted heart print, using magenta PETG

I have also included screenshots from my S3D setup for the successful print.

Frank

 

3D Printer Filament De-Humidifier Bin

Posted 11 January 2017

I’ve had at least one 3D printer in my home laboratory for well over 2 years now, and having the ability to print up arbitrary 3D shapes has been a complete creative game-changer for me.  Now when I have an idea about something I want to build or try, I don’t have to spend days in my shop trying to fabricate something out of wood or sheet metal – I can design it in TinkerCad and print it on my 3D printer.  Moreover (and this is where it gets really cool!), I don’t have to get it right the first time – I can make an unlimited number of versions of the idea, improving and/or changing it as I go.  Each iteration takes a few hours at most, and costs just a few pennies in terms of power and filament usage – what a deal!

Anyway, I have accumulated a number of rolls of different filaments, all of which degrade in greater or lesser degree over time due to moisture absorption (hygroscopic tendency).  I

haven’t worried too much about this up to now, mostly because my lab is in an air-conditioned house in the midwest, where humidity levels are low to begin with.  However, I recently started seeing some printing problems that led me to believe that I may need to address this issue.  In my typically over-the-top fashion, I decided that if I was going to work this problem, I needed a way to monitor the actual temperature & humidity in whatever arrangement I tried.

First, as usual, I did some web research, and found a solution implemented by the folks at the Taulman specialty 3D filament fabrication house.  Their solution was a 5-gallon plastic bucket with some air-holes, a 40-60 Watt lightbulb, and a wooden dowel.  This allowed them to combine a dehumidifier with a filament delivery system.  I fabricated one of these myself, but wasn’t particularly happy with the results.  While it worked fine, there was only room for two rolls of filament at a time, while I have literally dozens of rolls of different filaments.  In addition, I had no way of knowing what the actual temperature and relative humidity were inside the bucket – for all I knew, it could be doing nothing but wasting 40 watts of electricity!

So, I decided to combine my pile of 3D filaments, my 3D printing super-powers, and my Electrical Engineering Mad Scientist background to come up with a better solution to the filament drying problem.

Temperature/Humidity Sensors

The DIY/Robotics/Hobbyist market has spawned all sorts of new capabilities, so I was not at all surprised to find that temperature/humidity sensors were cheap and readily available.  I started with the cheaper DHT11  (I figured I would kill at least one sensor before getting it right), but later moved on to the DH22.  The DH11 humidity measurement range stops at 20% on the low end, and since I am trying to obtain humidities at or below that value, I decided to blow out my sensor budget from around $5/unit to around $10 – a real budget-breaker (not)!

DHT11 Temp/Humidity sensor, shown here from Adafruit.  20-80% RH range with +/- 5% accuracy

DHT22 Temp/Humidity sensor, shown here from Adafruit.  O-100% RH range with +/- 2.5% accuracy

Arduino Uno Controller

In order to effectively use the RH sensors, I needed a controller of some sort.  Happily for me, there was already a DHT11/22 library available for the wonderful Arduino line of controllers, and I happened to have several Arduino Uno’s lying around waiting for something to do.  Connecting up the sensor, and getting a program working was a matter of just a few lines, most of which had already been written in the form of an example program

8-Character LCD Display

When I first started this project, I thought it would be adequate to simply connect the arduino to my PC to readout the data.  This worked, but turned out to be cumbersome;  I had to have a physical connection to the controller, which was located inside the dehumidifier bin.  Later I tried a Wixel connection, which also worked, but still meant that I had to bring up a serial port app on my PC to find out what my dehumidifier bin was doing.  What I really wanted was a completely self-contained system, so I could simply look at some sort of display on or in the bin and tell whether or not things were working.  After doing a bit more web research, I found the Sparkfun ‘Basic 8-character LCD display’ for all of $4.95 (plus shipping).  In addition, this display (plus a number of others with different character arrangements) were easily integrated into an Arduino program by means of the built-in ‘LiquidCrystal’ Library – nice!!

So now I had all the pieces – a sensor (DHT22), a controller (Arduino Uno), and a display for readout (Sparkfun 8×2 LCD).  Now what I needed was a nice, custom-made box to house them, and just coincidentally I had 3D printer and LOTS of filament hanging around just waiting for a project! ;-).  As usual, I went through several iterations (you would think that it would be pretty hard to screw up a simple box design, but I’m highly creative when it comes to finding new ways!).  When I was finished, I had a nice little box with enough room for everything, a recessed lid, and appropriately placed holes for the power connector, the USB connector, and the sensor cable, as shown below

To complete the project, all I had to do was drill some holes in a handy transparent storage bin, load it up with filament rolls and a 40-watt trouble light, and set the sensor box inside where the readout would be visible from the outside.  The whole thing was installed on a shelf over my workbench, so I can simply walk up to the bin and see the readout from eye level – neat!

Now all I have to do is wait a day or so to see where the system stabilizes, and make whatever airflow adjustments are necessary.  For anyone who cares, I have included below the Arduino sketch for the project.

15 January 2017 Update: After 24 hours, the system stabilized to around 85º F (29.4C) and about 26%, which I thought wasn’t enough better than room environment to make a difference, so I closed off about half of the air-holes.  After another 24 hours or so, the system re-stabilized at about 90º F (32.2C) and 21% humidity – much nicer!

17 February 2017 Cleanup: Here is the code to display temperature & humidity on the LCD display, and also make the data available at the serial port.



// DHT Temperature & Humidity Sensor
// DHT Temperature & Humidity Sensor
// Unified Sensor Library Example
// Written by Tony DiCola for Adafruit Industries
// Released under an MIT license.

// Depends on the following Arduino libraries:
// - Adafruit Unified Sensor Library: https://github.com/adafruit/Adafruit_Sensor
// - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library

#include<LiquidCrystal.h> // include the LCD library code:
#include<Adafruit_Sensor.h>
#include<DHT.h>
#include<DHT_U.h>

// initialize the library with the numbers of the interface pins
//01/07/17 gfp: my setup is:
//LCD pin name RS EN DB4 DB5 DB6 DB7
//Arduino pin # 7 6 5 4 3 2
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

#define DHTPIN 8 // Pin which is connected to the DHT sensor.

// Uncomment the type of sensor in use:
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)

// See guide for details on sensor wiring and usage:
// https://learn.adafruit.com/dht/overview

DHT_Unified dht(DHTPIN, DHTTYPE);

uint32_t delayMS;
double tempF = 0; //holds temperature returned from DHT22
double RelHumPct = 0; //holds relative humidity returned from DHT22

void setup() {
Serial.begin(115200);

// Initialize Temp/Humidity sensor.
dht.begin();
Serial.println("DHTxx Unified Sensor Example");

// Print temperature sensor details.
sensor_t sensor;
dht.temperature().getSensor(&sensor);
Serial.println("------------------------------------");
Serial.println("Temperature");
Serial.print("Sensor: "); Serial.println(sensor.name);
Serial.print("Driver Ver: "); Serial.println(sensor.version);
Serial.print("Unique ID: "); Serial.println(sensor.sensor_id);
Serial.print("Max Value: "); Serial.print(sensor.max_value); Serial.println(" *C");
Serial.print("Min Value: "); Serial.print(sensor.min_value); Serial.println(" *C");
Serial.print("Resolution: "); Serial.print(sensor.resolution); Serial.println(" *C");
Serial.println("------------------------------------");
// Print humidity sensor details.
dht.humidity().getSensor(&sensor);
Serial.println("------------------------------------");
Serial.println("Humidity");
Serial.print("Sensor: "); Serial.println(sensor.name);
Serial.print("Driver Ver: "); Serial.println(sensor.version);
Serial.print("Unique ID: "); Serial.println(sensor.sensor_id);
Serial.print("Max Value: "); Serial.print(sensor.max_value); Serial.println("%");
Serial.print("Min Value: "); Serial.print(sensor.min_value); Serial.println("%");
Serial.print("Resolution: "); Serial.print(sensor.resolution); Serial.println("%");
Serial.println("------------------------------------");
// Set delay between sensor readings based on sensor details.
delayMS = sensor.min_delay / 1000;

// set up the LCD's number of columns and rows:
//lcd.begin(16, 2);
lcd.begin(8, 2);

// Print a message to the LCD.
//lcd.print("hello, world!");
//String str = "Temp: ";
//str += "43";
//lcd.print(str);
}

void loop()
{
// Delay between measurements.
delay(delayMS);

// Get temperature event and print its value.
sensors_event_t event;
dht.temperature().getEvent(&event);
if (isnan(event.temperature))
{
Serial.println("Error reading temperature!");
}
else //good data
{
//12/07/16 temp is in C - convert to F
tempF = event.temperature * (9.0 / 5.0) + 32;
Serial.print("Temp/Humidity: ");
Serial.print(tempF);
Serial.print(" F\t");
}

// Get humidity event and print its value.
dht.humidity().getEvent(&event);
if (isnan(event.relative_humidity))
{
Serial.println("Error reading humidity!");
}
else //good data
{
RelHumPct = event.relative_humidity;
//Serial.print(event.relative_humidity);
Serial.print(RelHumPct);
Serial.println(" %");
}

//// set the LCD cursor to column 0, line 1
//// (note: line 1 is the second row, since counting begins with 0):
//lcd.setCursor(0, 1);

//// print the number of seconds since reset:
//lcd.print(millis() / 1000);

//set the LCD cursor to column 0, line 0 (1st line)
lcd.setCursor(0, 0);
String str = "T: ";
str += String(tempF,1);
lcd.print(str);

//set the LCD cursor to column 0, line 1 (2nd line)
lcd.setCursor(0, 1);
str = "RH:";
str += String(RelHumPct,0);
lcd.print(str);
}

Frank

 

Evolution of a ‘Thank You’ Present

Posted January 22, 2016

As I have noted in previous posts, one of the really cool things about current 3D printing technology is the way it allows me to rapidly iterate through design options to arrive at an ‘optimum’ (where the definition of ‘optimum’ can be somewhat arbitrary) solution.

In this particular case, my wife Jo Anne was planning a trip to Florida to do some serious dressage training.  When Jo is in Florida she stays at the house of our good friends Mike and Pauline Hall, and she wanted some sort of ‘Thank You’ present for them.  She had seen something on the inet about filling a small round plastic globe with candy and putting it on top of an inverted plastic cup, and this struck a resonance; she knew that Pauline Hall was a retired ‘Martian’ – the term used by long time dedicated Mars employees to describe themselves, and the most famous Mars product is ‘M & M’ candies.  So, she commissioned me to create a customized M&M candy stand, with the words “Mars” and “Hall” inscribed somehow.

As I have learned through previous design/print iterations, the fastest way to get from idea to finished product is to simply start building prototypes; it doesn’t take long, is incredibly cheap, and the process usually rapidly converges to a very good (if not necessarily ‘optimum’) solution.  As I do in many of my designs, I first created a model in TinkerCad and then printed it at half (50%) scale.  Jo Anne was able to look at the half-scale model and see right away whether or not I was on the right track.  In this case she liked the first model, so I printed a full-scale one, and thought I was done.  Unfortunately, I had forgotten about the inscribed “Mars” and “Pauline” text, so I was assuredly NOT done!  So, I simply had my wife write the text on the full-scale model with a Sharpie, and partied on.

Next was a full-scale model with the text cut out of the material, but this turned out to be a disaster; I had used ‘support’ structures to keep the text edges sharp, but the support material got so well attached to the main body that I couldn’t get it off (In the past I have tried dissolvable support material, but with very limited success).  So, I suggested that we try a two-color model, with the body in red and the text in white, and Jo agreed.

Next was a half-scale two-color model to prove the concept, followed by a full-scale ‘finished’ product.  Unfortunately, a “time-saving” modification I had made to the text portion of the design caused the text to ‘run’, and I had to make another print to get a real ‘finished’ item.

In the end I got something that looked very good, and is now a completely unique gift for the Halls; it may not be super expensive or jewel-encrusted or anything, but it is something that says “Thank You” in a uniquely Paynter-ish way 😉

The image below shows the evolution of the design from plastic cup through the half-scale models to the final product on the left, shown in front of the PowerSpec 3D printer used for the work.

Hall present design evolution, shown in front of my PowerSpec dual-extruder 3D printer

Hall present design evolution, shown in front of my PowerSpec dual-extruder 3D printer

 

New Front Wheel Guards for Wall-E2

Posted 12/25/15

So, it’s Christmas day and I’m on a Southwest flight from Columbus, OH to Kansas City (via Chicago) to play in a bridge tournament.  On the way, I’m taking the opportunity to work on my latest blog post – describing Wall-E2’s new front wheel guard design.

The impetus for a front wheel guard comes from Wall-E2’s tendency to re-enact the ‘Tractor-tipping’ scene from the ‘Cars’ movie.  On occasion Wall-E2 encounters an obstacle like a chair leg with one front wheel or the other at just the right orientation so that it is able to climb up the leg with it’s 4-wheel drive, and, when it achieves a high enough angle, it’s relatively high CG does the rest.  So, after the novelty wore off, I decided it was time to do something about the situation.  After discussing options with my grandson Danny in a Skype session, we decided that two small wheel guards would probably work better than one big one, so that was the design direction we took.

In the year or so I have been working with TinkerCad and my 3D printing setup, I have learned that it is usually much faster and more effective to rapidly ‘evolve’ a design rather than trying to get it right the first time.  A complete design-print-evaluate cycle only takes about 30 minutes, with negligible material cost – so why not!?

In the case of the front wheel guard, the design evolution went through about a half-dozen iterations, (not counting the initial one done ‘on the fly’ with Danny during the Skype session using my pocket knife and a section of a cardboard box).  The ‘Evolution of a modern wheel guard’ is shown in the following photo, proceeding from ‘proto-guard’ on the left to ‘fully modern wheel guard’ on the right.

Side view of guard installation with wheel removed for better visibility

Bumper evolution from ‘slime-mold’ to ‘fully evolved’ versions

The ‘finished’ (as if anything is ever ‘finished’ on Wall-E2) wheel guard is shown at the far right in the above photo, and the following shots show the installed result.

Side view of guard installation with wheel removed for better visibility

Side view of guard installation with wheel removed for better visibility

'Fully Evolved' wheel guard installed on left front wheel

‘Fully Evolved’ wheel guard installed on left front wheel

Both wheel guards installed

Both wheel guards installed

I haven’t had a chance to try the new wheel guards out in practice, but I am quite confident they’ll do the job, and end Wall-E2’s short stint as a ‘Tractor-Tipping’ mimic! ;-).

Stay Tuned,

Frank

 

Glass Print Bed for Printrbot Simple Metal – Part V

Posted 12/17/15

In my last post on this subject I described my (ultimately successful) efforts to level my new glass print bed and disable Printrbot’s ‘auto leveling’ feature so I could get decent prints everywhere on my print bed.

During this project I had been posting results and questions on the ‘PrintrbotTalk’ forum (see this post), and one responder suggested the use of a cheap dial indicator from Harbor Freight to level the bed, independent of Printrbot’s Z-axis probe.  After some initial missteps I was able to get one (item #623 on Harbor Freight’s website) and figure out a way to mount it on the extruder carriage. The following photos show the mounting arrangement, using the handy mounting tab on the back of the dial indicator.

Dial indicator mounted to the extruder carriage. Note ground-down portion of the carriage .

Dial indicator mounted to the extruder carriage. Note ground-down portion of the carriage .

1/4" by 1/4" bushing fit nicely inside the 1/4" I.D. mounting hole.

1/4″ by 1/4″ bushing fit nicely inside the 1/4″ I.D. mounting hole.

Dial indicator mounting tab and mounting screw/bushing

Dial indicator mounting tab and mounting screw/bushing

Dial indicator mounted, with carriage height adjusted to achieve a zero reading

Dial indicator mounted, with carriage height adjusted to achieve a zero reading

With this arrangement, I was able to simply move the carriage around by hand, noting the needle excursions from zero.  Then painter’s tape was added to the low side (or removed from the high side) to minimize the differential across the printing area.  A 1mm height difference equates to about 40 small divisions on the indicator, and after shimming I was able to achieve a height differential of  +/- 5 small divisions (about 0.125mm) across the print area.

After getting the glass plate all shimmed up, I decided that because I was no longer using the ‘auto-leveling’ (actually more like ’tilt correction’) feature, I could now remove the copper foil layer from beneath the painter’s tape – BIG MISTAKE!!  On the very first test print after doing this, I realized to my horror that the Printrbot still needed to find the Z-axis ‘home’ position, and the only way to do that was with the Z-axis metal-sensing probe.  Fortunately I was able to pull the power plug before the extruder tip had a chance to shatter my nice new glass plate!

After beating myself up for a while over such a bonehead move, I realized I had just two choices; I could laboriously replace the copper foil layer (one quarter-inch strip at a time), or I would have to find some way of replacing the metal-sensing probe with something else.  I did not want to go through the agony of replacing the foil layer, so I was left (I thought) with option 2.  Someone on PrinterbotTalk had mentioned a mechanical switch replacement for the Z-axis probe, and said there was at least one Thingiverse design for a bracket that mounted to one of the vertical carriage posts.  I took a look at this and decided I could adapt it for one of the normally-open pushbutton switches I had in my electronics parts bins.  After some further Googling, I realized that the replacement project might be a bit more involved than I originally thought, as there was an issue with later rev motherboards requiring a pullup resistor and some extra wiring to make the mechanical switch idea work.

Then I had an uncharacteristically brilliant idea, if I do say so myself.  Rather than removing the Z-axis probe and replacing it with a mechanical switch mounted on the vertical slide assembly, why not combine the two ideas and simply mount the Z-axis probe itself on the vertical slide assembly?  Then I get the best of both worlds – I don’t have to screw with the wiring at all, and the metal carriage base is perfect for the Z-axis probe to sense – voila!

Looking around a bit, I found that if I mounted the probe on the rear vertical slide post bushing, it would have a clear shot at a nice, flat open spot on the carriage base.  All I needed was a right-angle bracket to attach the probe to the bushing.  A few minutes in TinkerCad produced a printable design, and after a few minutes more I had the bracket printed up (I had to fake the Z-home a bit to get the bracket printed, but who’s counting).  I super-glued the bracket to the slide bushing as shown in the following photo, and simply adjusted the height of the probe in the bracket so the extruder just ‘grabbed’ a sheet of printer paper when the Z axis was ‘homed’.

Z-axis probe relocated to the rear vertical post bushing

Z-axis probe relocated to the rear vertical post bushing

OK, so now I have a really cool glass print bed, with no ugly copper foil layer, and the Printerbot is no longer trying to murder my glass plate.   I’ve only done a couple of test prints so far, mostly to figure out what M212 offset is required now with all the changes.  However, I am looking forward to consistent prints with the new setup.

Stay tuned!

Frank

 

 

Glass Print Bed for Printrbot Simple Metal – Part IV

Posted 11/25/2015

In my last episode of “The Perils of Pauline” (aka Printrbot Simple Metal Glass Print Bed Issues), I described a set of measurements and print tests that ultimately led exactly nowhere, except maybe to the conclusion that Printrbot’s vaunted ‘Auto-leveling’ (more accurately ‘bed tilt correction’) wasn’t all that effective, and might even be part of the problem rather than part of the solution.

So, in this episode, I decided to manually level the glass print bed with painter’s tape shims, to see if I could get better prints that way.  To do this, I used the existing Z-axis probe, the G29 ‘auto-level’ command, and the G30 ‘Z-axis probe here’ command.  The G29 command tells the Printrbot to probe the Z-axis at three pre-configured points ( (10, 150), (10,10) and (150,10) in my case), and the G30 command tells it to probe the Z-axis wherever it happens to be (I used this to probe the bed at (150,10) – the rear right corner).  Between these two commands, I could measure the print bed surface height at all 4 corners and adjust accordingly.

From previous measurements I knew that the bed tilted upwards from the rear to the front, and from left to right.  Therefore I started out by moving the single layer tape shim from the front edge, and adding a single layer shim along the left edge.  After three or four iterations, I wound up with two tape layers on the left and rear edges, and the resulting probe measurements were within 0.2mm everywhere. It’s hard to get much closer than that, due to variations in the probe results.

Initial painter's tape shim layout

Initial painter’s tape shim layout

After getting the bed as level as I could, I ran another set of test prints.  As shown in the photo below, all 5 positions printed successfully.  I also noticed that the Z-axis worm gear moved noticeably less during print operations, providing an additional indication that the print bed was in fact pretty darned level.

 

All positions printed successfully

All positions printed successfully, although the front right (Position 5) print was very lightly attached

When I removed the test prints from the bed, I noticed that the near-right (Position 5) print was less well attached than the others, and in fact the attachment quality improved as I went from Position 5 to 4 and then to 3.  Positions 3, 2, and 1 (all in the same vertical line) seemed to all be nicely attached.  So, the actual print results indicate that the extruder tip is getting farther away from the print bed as it progresses to the right, but the Z-axis probe measurements indicate the exact opposite situation – the print bed actually gets higher as it goes from left to right!  How can this be?  Well, based on everything I have learned to date, I now strongly suspect that the answer is that the tilt correction algorithm is correcting the wrong way somehow.  Maybe the fact that the Printrbot’s ‘home’ position is at (Xmin, Ymax) rather than (Xmin, Ymin) is causing a sign error somewhere, and this is causing the Printrbot to correct the Z-axis up for movements in the positive X and negative Y directions when it should be correcting it down.  This theory tracks with what I have experienced so far, as it would imply that the closer I can get the plate to absolute level, the smaller the error would be, ultimately going to zero error for a perfectly flat plate. Of course, if I’m right, I should be able to somehow track down and correct this sign issue, and therefore convert what is now a force for evil into a force for good – arggghhhh!!!!

Late addition:  After posting this to the ‘Printrbot Talk’ forum, I got a note from ‘Retiree Jay’ to the effect that I could disable the tilt correction function entirely by omitting the ‘G29’ command from the startup script, leaving only the ‘G28 X0 Y0 Z0’ command. So, I did this and ran another series of test prints as shown in the following photo.  As you can see, all prints were successful, even the added Position at the right rear of the print bed.  And even better, Retiree Jay was correct in that the Z-axis motor did not run at all (up or down) during prints of a specific layer (since I printed only one layer for each position, this means that the Z-axis motor didn’t run at all during the entire print series.  This pretty much proves that my new glass plate is flat across the entire print area; “Tilt Correction?  We don’t need no stinkin Tilt Correction!” ;-))

Print series with tilt correction disabled.  "Tilt Correction?  We don't need no stinkin Tilt Correction!"

Print series with tilt correction disabled. “Tilt Correction? We don’t need no stinkin Tilt Correction!”

Stay tuned,

Frank

 

 

Glass Print Bed for Printrbot Simple Metal – Part III

Posted 11/24/2015

A few days ago I posted a long account of my attempt to add a glass plate printing surface to my Printrbot Simple Metal, to address printing problems due to non-planar warping issues with the original print bed.  As described in the post, I was able to satisfy myself that the glass plate was much flatter than the original bed, but I still couldn’t get consistent prints except in a very small area – printing the same part at the same Z-axis offset resulted in either a print that wouldn’t adhere, or gouges in the painter’s tape.  My conclusion at the time was that maybe the vaunted ‘auto-leveling’ feature (actually just 3-point tilt correction) has been inadvertently disabled in my firmware version, or maybe it wasn’t ever functional in the first place.

So, in this post I describe my efforts to manually level the glass plate print bed.  Based on the results from the previous post, I know that the bed must slope downward from the back to the front, as the print was more or less OK at the back, but became separated from the bed as the print positions progressed toward the front.  So, I put down a layer of painter’s tape underneath the glass plate at the front edge of the original print bed, and then ran the same series of prints, starting at the rear right corner as before.

The following two photos show the painter’s tape shim installation

Painter's tape shim installation

Painter’s tape shim installation

Painter's tape shim installation

Painter’s tape shim installation

With this setup, I started by printing the 20mm cal cube at the extreme left rear corner of the print area, what I’m calling ‘Position 1’.  The first print failed partway through when the piece detached from the bed, indicating the Z-axis offset was too high, at Z = -1.1.  This was interesting all by itself, as Z = -1.1 was the offset I used for the entire first experiment a few days ago; I speculate that the addition of the painter’s tape shim may have lowered the plate very slightly at the back corner.  I changed the offset to Z = -1.2, and this gave me a good Position 1 print, as shown below.

Position 1 print with Z = -1.1. Note the detachment

Position 1 print with Z = -1.1. Note the detachment

Position 1 print with Z = -1.2

Position 1 print with Z = -1.2

Then I moved on to Position 2 (still at extreme left edge, but midway from back to front) and tried again.  As shown in the following photo, I got a good print here as well.

Position 2 print with Z = -1.2

Position 2 print with Z = -1.2

From there I moved on to Position 3 (extreme front left corner of the print area), and Position 4 (front edge, midway from left to right).  As shown in the following photo, I got a very good print at Position 3, but the Position 4 print detached immediately.

Positions 3 and 4. Position 3 printed OK, but Position 4 detached immediately

Positions 3 and 4. Position 3 printed OK, but Position 4 detached immediately

So, it appears at the moment like I have the plate leveled in the front-to-back direction, but not in the left-to-right direction.  Next I’m going to try adding a layer of tape from front to back at the extreme right edge and see what this does.  Note in all this that Printrbot’s ‘Auto-level’ feature should already be compensating, but it appears to be AWOL.

With one layer of tape added, I was still getting very poor results in the X (left to right) direction, so I added a second layer of tape.  After this, I was able to get all 5 prints to stick, although as the photo below shows,  the last two were ‘iffy’

With two layers of tape front to back at the extreme right edge

With two layers of tape front to back at the extreme right edge

So, I added a third layer of tape, and ran another print series, and got almost identical results!  How can this be?  I’ve added three layers of tape, and I’m still not able to print in the near right-hand corner – this just doesn’t make any sense.

OK, the only possible way it could make any sense at all, is if the Printrbot ’tilt-correction’ algorithm IS enabled, but not functioning correctly, either due to the algorithm itself, or due to incorrect Z-axis sensor readings from the probe.  So did another test print, but this time I concentrated solely on the Z-axis servo worm gear.  At first I simply put my fingers on the worm gear so I could feel if there was any Z-axis movement during lateral head moves, and sure-nuff, there was some!  Then I put a painter’s tape ‘flag’ on the worm gear and I can easily see Z-axis movement during even small lateral head moves.  The clear indication is that the tilt-correction algorithm is working, but for prints near the right-hand edge of the print bed, the correction is wrong.  I wonder if the errors are due to scaling based on inaccurate print bed dimensions in the printer setup dialogs; this would seem inconceivable, but what do I know?

On a recent print at the near right edge, with 3 layers of tape, the probe measurements were:

(10,143,1.46), (10,10,1.79), (143,10,2.32)

with the tape removed, the measurements are

(10,143,1.35), (10,10,1.59), (143,10,1.94).

This seems to indicate that positive Z is ‘up’ and that lower positive Z values indicate a surface that is actually closer to the bottom of the printrbot.  This, in turn, should mean that I could achieve what I want by putting tape under the left edge, not the right, even though the print performance indicated just the opposite! Oh, I have a headache!

with the right-edge 3-layer tape shim removed entirely, I re-ran the original test print series.  Instead of the mess I got the first time, printing at all 5 positions succeeded as shown in the following photo – huh?????

All three tape shim layers removed from the right edge

All three tape shim layers removed from the right edge

OK, so this just should not be happening!  When I started this post, with no shimming at all, I could print to position 1, 2 & 3 (along the left edge, from rear to front), but not positions 4 or 5 (along the front edge, from left to right).  This behavior is what led me to shim along the right edge, but although I thought I was making the situation better, increasing the shim height from 2 to 3 layers didn’t help at all, and now I find that with no shim layers I get really nice prints at all 5 positions – what gives?

Thinking back through everything I did this evening, I realized there was one thing I did that could maybe have affected the situation – I changed the printer extents via the Repetier ‘Printer Settings’ dialog.  This should not affect tilt correction calculations at all, since the Printrbot already knows the absolute coordinates for all three Z-axis probe points, so why would it care (or even know) what extents have been set in Repetier?

As a test of this wild and zany idea, I set the Y-Max value in Repetier to 350, basically twice what it should be, and set up for another print series.  When the probe results came in, they were:

(10,143,-1.06), (10,10,-0.85), (143,10,-0.5) – whoa!  How can that possibly be?  Clearly there is some coupling from the values set in Repetier’s Printer Settings dialog, but why?

For position 2, the Z-axis probe reports (10,143,1.42), (10,10,1.56), (143,10,1.90)

– Oh, now I have an even bigger headache!  How can this be?  Negative values one time, and positive values the next – with exactly the same hardware and software configuration (including the same – bogus – Y Max value)??

For position 3, I get:  (10,143,1.46), (10,10,1.72), (143,10,2.03) – print was fully successful

For position 4, I get:  (10,143,1.44), (10,10,1.70), (143,10,2.02) – print was successful, but marginal

For position 5, I get:  (10,143,1.44), (10,10,1.71), (143,10,2.02) – print fully successful

All three tape shim layers removed from the right edge

All three tape shim layers removed from the right edge

OK, I give up – I’m officially baffled.  Everything I have done has had either no effect, or an effect opposite to what I expected.  Then returning the experimental setup to its baseline condition did not restore baseline results – WTFO@!!@#$%^&*(

Frank