Tag Archives: 3D printing

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.

Frank

 

Wall-E2 Charging Station Design, Part VI

Posted 09 Jan 2017

It’s been a while since I have posted on my evil plan to set my wall-following robot free to roam the house terrorizing cats, all without the need for charging assistance from mere humans ;-).  I have made a lot of progress – but unfortunately not all of it has been positive :-(.

Charging Platform:

I was able to complete and print the final design for the fixed part of the charging platform, as shown in the following images

The idea was that the robot would be captured by the lead-in rails and roll over the charging platform to a stop – thereby connecting to the platform via the contact array.  The status LEDs would be visible to a person standing behind the robot.  Unfortunately, when I got everything all hooked up, the beryllium-copper finger-stock fingers proved too stiff to allow connection across the contact array; a couple of fingers were just a bit higher than the others, and the robot wound up suspended from these, and not making contact with the others – BUMMER!!

So, it was (literally and figuratively) back to the drawing board on the whole charging station idea – what to do?

TE Connectivity Flexible Contacts:

When I first thought of the idea of a charging station with flexible contacts and an under-robot contact array, I did a fair bit of web research on flexible contacts, and wound up with the idea of using individual fingers from a length of beryllium-copper finger stock, which is readily available on eBay.  Now that this option has been ruled out, it was back to the web again for more research.  This time I found a company called TE Connectivity, and they have a line of flexible contacts for use in connecting PCBs to cases in mobile devices, among other things, as shown in the following images.  They have a huge variety of contacts, so I was able to find four good possibilities with uncompressed heights between 3 and 4mm.  Even better, The TE connectivity folks let me order samples – yay!!

 

I practically wet my pants when I found these, as I think they are the answer to my prayers; otherwise I would probably have to abandon the entire charging platform/contact array idea.

Automatic 5V Charging Connector Mating Option

When I installed the new battery pack in Wall-E2, I also re-installed the 5V power jack that came with the original kit.  I figured that I could use this jack to manually charge the batteries until I got the human-free option working.  While waiting for the connector fingers from TE to arrive, I started thinking that I just might be able to work up a way to have Wall-E automatically drive itself onto the mating 5V plug to charge, then back off of it when finished.  I had not pursued this in the past, as I thought it would be too hard to get the plug and jack lined up with any consistency, but now I was reconsidering it as possibly the only remaining option.  And, since I have a 3D printer sitting on my workbench, I started experimenting with coupling ideas.  The first challenge was to design and fabricate a ‘capture basket for the 5V jack, so that the initial alignment wouldn’t have to be perfect.  After the normal half-dozen or so failed designs (have I mentioned how much I love the ability to do short turn-around design/fabrication cycles?), I had a design that I thought would work, as shown in the following photos.

The ‘capture basket’ fits very snugly over the 5V power jack, and is designed such that the slanted sidewalls mate up seamlessly with the lip of the jack – no flat spots or corners to impede the plug on its way in.  I was a little bit worried about the granularity inherent in FDM prints, but this turned out to be a non-issue, as shown below.

After getting the capture basket designed and fabricated, it was time to work on the other end – the plug probe. I already had a tentative design for a part that would serve as a stop for the robot while also providing a mount for the IR beacon LED, so I decided to add the plug/probe to this fixture, as shown below

I was able to simply add a block of plastic onto the side of the original stop/IR LED holder to accommodate the plug/probe assembly. The probe was fabricated from NinjaFlex to allow for some flexibility as the plug mates with the jack.  As the following video clip shows, this arrangement seems to work quite well!

 

So, now I have what appears to be a viable alternative to the contact-finger/contact array strategy.  The jack/plug alternative has a significant drawback in that I can’t bring the battery charging status signals out for off-robot display.  If necessary that can be accommodated by constructing some sort of on-robot status LED strip (not sure where I would put it, but…), but it would certainly fulfill the primary requirement of allowing the robot to feed itself, and there’s no real need to keep those puny humans informed, anyway ;-).

Stay tuned!

Frank

 

 

Wall-E2 Charging Station Design, Part III

Posted 12/05/16

I’ve been making some progress with the planned charging station lead-in rails.  These rails (shown in yellow in the image below) are intended to guide the robot into the charging station, lining it up properly with the charging station so the contacts on the bottom of the robot will properly mate with the corresponding contacts on the top of the charging station platform.

1/2-scale robot chassis on the 1/2-scale charging station model

1/2-scale robot chassis on the 1/2-scale charging station model

These rails are too big to print in one piece on my PowerSpec PRO 3D printer, so I had to devise a way to print them in sections, which could then be plugged together to form the complete rail.  To do this, I designed a coupling geometry consisting of a ‘puzzle-piece’ connector and a slide-fit arrangement, as shown below:

Lead-in rail angle coupling design

Lead-in rail angle coupling design

Lead-in rail straight coupling design

Lead-in rail straight coupling design

After going through several iterations ‘on paper’, I printed out a 1/2 scale model to verify that I could indeed connect the pieces to make a whole lead-in rail, as shown below:

Half-size capture basket rail

Half-size capture basket rail

Half- and Full-size capture basket rails

Half- and Full-size capture basket rails

Full-size capture basket rails

Full-size capture basket rails

Now that I had the capture rails fabricated, it was time to find out whether or not the capture system would actually work.  I used double-sided tape to affix the two rails to one section of the heavy plastic desk-chair runner system in my lab/office, at the proper spacing to just pass the robot, assuming it was properly aligned with the capture gap, and then ran some tests, as shown in the attached video clip.

In the video clip, the first two trials were conducted with the ‘stock’ wheel guards with right-angle corners, and the remaining ones were conducted after filing a small bevel into the front corners to (hopefully) alleviate the sticking problem

 

Front wheel guard with filed bevel on outboard corner

After seeing that the filed bevel seemed to improve performance, I decided I would go ahead and redo the wheel guards to provide a more pronounced bevel.  Thanks to TinkerCad and my trusty 3D printer, this was a piece of cake.

Redesigned wheelguard to incorporate bevel on outboard corner

After changing out the wheel guards, I ran some more tests with my taped-down capture basket, but soon discovered yet another ‘capture failure mode’, as shown in the following image.

Robot stuck in capture basket

As you can see in the image, the rear part of the front wheel guard and the front part of the opposite wheel guard is just the right shape and spacing to form a stable lockup configuration.  To address this little problem, I decided to remove the rear portion of the front wheel guard on each side, but left the two rear wheel guards intact.  Then I ran some more capture basket tests, with very encouraging results.

 

So, at this point I’m pretty happy with the capture basket lead-in rail design (3 failures in 14 tries), and with the robot wheel guards.  Next, I’ll need to fabricate a full-scale charging platform for the robot to stop on, and also work on the new charging/battery setup in the robot itself.  Stay tuned!

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

 

3D Printed Terminal Strip Cover/LED Bracket

Posted 11/21/15

In the process of building up my 4 wheel drive replacement for Wall-E, I ran across a problem that turned out to be a perfect showcase for the power of home 3D printing.  The problem was what to do with a terminal strip mounted at the rear of the robot chassis, as shown in the photo below.  Interestingly, the terminal strip itself is sort of a story of its own; it is from the bygone era of point-to-point wired electronics, and they aren’t readily available anymore, even though they are perfect for this sort of robotics project.  I had this one left over from some 20-year old project, and when I tried to find a source for re-supply, I almost struck out entirely.  I finally found a source at Surplus Sales of Nebraska – add this one to your bookmarks!

4WD Robot with old-style terminal strip shown at the rear (right side in this photo) of the chassis

4WD Robot with old-style terminal strip shown at the rear (right side in this photo) of the chassis

OK, so the problem is – the terminal strip is great for what it is doing, but now I have Vbatt, +5V, and GND all exposed where an errant wire or screwdriver could cause real problems – what to do?  Moreover, I needed some way of labeling the strip, because I now had two sets of red wires (one from the battery pack, one from regulated +5), and without some obvious and permanent labeling scheme, I was for sure going to screw this up at some point.  Before the recent advent of 3D printing and the ‘maker’ revolution, this would have been a real show-stopper.  I could have maybe found a small plastic box that I could cut down or reform somehow, or milled something fancy from a block of Lexan, but the cut-down box wold be inelegant to say the least, and the fancy milled piece of Lexan would be exorbitantly expensive and time-consuming, even assuming that I got it right the first time (unlikely).  However, now that I have the super-power of 3D printing at my fingertips, I “don’t need no stinking Lexan!”.  All I need is my imagination, TinkerCad, and my PowerSpec 3D Pro dual-extruder printer!

So, using my imagination and TinkerCad, I rapidly sketched out a design for a U-shaped protective shroud for the terminal strip, and printed it out.  Once I had it mounted, I realized that I had only done half the job – literally!  The U-shaped shroud protected the terminal strip from the front, but not from the top – I needed a lid of some sort to finish the job.  Having a lid meant there had to be some way of keeping the lid on, while still being able to easily remove it to make changes to the strip wiring, so I needed some sort of snap-action latching mechanism.  This resulted in the design shown in the following photo.  The U-shaped shroud is shown in blue, with the lid shown in green.  the complementary groves allow the lid to snap onto the trough.

Early version of the power strip cover and lid

Early version of the power strip cover and lid

In another hour or so, I had both parts printed up and mounted on the robot – and it worked great!  However, as often happens when I design and print 3D parts, I immediately saw possibilities for improvements.  The first idea was to incorporate the labeling right into the shroud design, literally.  I have a dual-extruder printer, so that meant that I could put the ‘Vbat’, ‘GND’ and ‘+5’ labels directly into the material, in a contrasting color – cool!  In another hour or so, I had the labels incorporated into the design and another piece printed out, with the result shown below

View showing the bottom part of the two-part cover, with integrated terminal labels

View showing the bottom part of the two-part cover, with integrated terminal labels

Another view of the bottom part of the two-part cover

Another view of the bottom part of the two-part cover

After admiring my work with the integrated labeling, and the way the lid snapped on and off firmly but easily, I had another cool thought.  Wall-E has a set of 4-LED’s mounted at the rear of its chassis, and the software uses these to announce various program states, and I wanted to do the same thing for the new 4WD robot.  However, I had not yet figured out where I was going to put them, and it suddenly occurred to me that I could use my new terminal strip cover as the platform for some readout LED’s – cool!

So, in another hour or so I had yet another version designed and printed out and installed on the robot chassis, as shown in the photos below

 

Inside view of the top part of the two-part terminal strip cover, showing the LED array installation

Inside view of the top part of the two-part terminal strip cover, showing the LED array installation

LED Array/Terminal strip cover snapped onto the bottom half

LED Array/Terminal strip cover snapped onto the bottom half

4WD Robot rear view showing the completed cover/LED array bracket

4WD Robot rear view showing the completed cover/LED array bracket

So, in the space of a day or day-and-a-half, I went through a half-dozen or so design iterations, all the way from initial (incomplete) concept and (wrong) implementation, through several completely unforeseeable concept/idea mutations to a ‘final’ (to the extent that anything is final on one of my projects!) implementation that not only solved the original problem (covering the exposed wiring on the terminal strip, but also implemented integrated labeling AND added a completely new and desirable feature – the LED array bracket.

Although this little project is no great shakes in the grand scheme of things, it does serve to illustrate how the combination of essentially infinite computing power, easy-to-use design tools like TinkerCad, and cheap, capable 3D printing tool availability is revolutionizing the hardware/software development world.  40  years ago when I was a young electronics design engineer, there was a huge gap, in money and time, between a working prototype and a finished production design.  And, once the production process started, changes rapidly became impossible due to the cost and time penalties. So, everybody tried to ‘get it right’ the first time, and many really cool ideas didn’t get incorporated because they occurred too late in the design-production cycle.  Now, many of these constraints no longer apply, at least not for small production volumes; we now able to operate more like the ‘cut-and-try’ generation of the early 20th century.  No need to worry too much about which design alternative(s) is/are better when material costs are negligible and design-fabricate-test cycles are shorter than the time required to do a detailed analysis – just build them all and compare them ‘in the flesh’.

Many years ago when I was an active soaring (full-size glider) pilot, I wrote a book (“Cross Country Soaring With Condor”) about the use of a popular soaring simulator as a competition trainer.  When it came time to get the book published, I did a lot of research and eventually settled on an outfit called ‘DiggyPOD’, where the ‘POD’ stands for ‘Printing On Demand’. These folks had figured out how to eliminate most of the up-front publishing costs that made traditional book publishing inaccessible to all but established authors and professors with guaranteed markets. Consequently, I was able to get my book published in quantities and at prices that allowed me to make a profit selling into a very restrictive niche market.  I think the same sort of thing is now happening in the realm of small volume consumer products.  Not only is it now possible to conceive, design, and implement new products at very low cost and without any costly infrastructure, it is also possible to customize existing products in ways that would have been unimaginable 10 years ago.  For instance, I recently repaired a friend’s bicycle accessory.  This is something that would have been impossible before.  I think this ‘maker’ revolution is going to change our world in ways we can’t even begin to imagine!

Stay tuned,

Frank