Digital Tension Scale, Part IV

Posted 25 December 2018

In my copious free time I have been refining the design for a low power battery operated tensionometer.  In my last post on the subject, I had described the components I had planned to use, and in the ensuing weeks I have been working on implementing this design.  There are several challenges in this project:

Bluetooth Link:

There are a huge number of Bluetooth products out there in the Maker-verse, with varying degrees of Arduino support, and widely varying performance characteristics.  To add to the confusion, there is ‘regular’ Bluetooth and the more recent ‘BLE’ (Bluetooth Low Energy) which are completely incompatible with each other.  As I now understand it, BLE is synonymous with Bluetooth 4.0+ (the iPhone 4S was the first smartphone to implement the new standard).  However, the most common product in use in the Arduino world seems to be the venerable HC-05 ‘regular’ Bluetooth module, available from your local grocery store (well, not quite, but from almost everywhere else!) for not much more than a few pennies

I had no previous experience with BT modules, so this part of the project took some time, and was the last major part to be accomplished.  After receiving my HC-05 modules from China, I used this tutorial to get started.  The real challenge for this part of the project wasn’t getting the HC-05 hooked up to the microcontroller – it was sorting through all the layers of BT-related settings on my Win 10 laptop to pair with the HC-05 device and determine which serial port did what.

  • In Windows 10, I used the ‘Bluetooth and other devices settings’ panel (Settings -> Devices -> Bluetooth and other devices) to find and pair to the HC-05.  The device shows up as ‘HC-05’ and the default pairing password is “1234”.
  • When the HC-05 is paired it automatically sets up at least two serial ports that show up in device manager as ‘Standard Serial over Bluetooth’ ports, as shown below.  However, only one of these ports is actually usable for two-way communication, and it isn’t clear to me why, or how to tell which is which;  I had to experiment with each available ‘SSoB’ port to figure out which to use (so far, it seems like the highest-numbered port is the proper one).
  • After the HC-05 is paired and the com ports are set up, then any serial terminal app (I used RealTerm) can be used to communicate between the PC and the microcontroller via the HC-05.
  • On the microcontroller (I used a Teensy 3.2 with multiple hardware serial ports), I wired the HC-05 to Serial1 leaving Serial (Serial0) available for normal communication between the Teensy and my Visual Studio 2017 Community Edition/Visual Micro add-on for Arduino development platform.

Physical Layout:

The original idea behind this project was to create a self-contained battery-operated digital weight scale that could display weight values on a local display, but could also stream the data live to a remote recording station like a laptop or smartphone. The ‘self-contained’ part requires that all the electronics be mounted on the S-shaped load cell assembly itself, and to that end I designed a housing that connects to the two bolts that hold the arms of the load cell.  The idea is that all the electronics save the LCD display and the battery will be mounted to the underside of the box lid so that servicing would be easier.  Also, by mounting everything to the lid, I can make cutouts for the charger and Teensy USB connectors for easy charging and reprogramming.  After several iterations in TinkerCad, I came up with the following design

Looking up at the underside of the box lid, showing all modules except the battery and the LCD display

Showing the top of the lid with the mounting bracket for the load cell

Isometric view with transparent box walls. The LCD display module is under the battery.  Note the cutouts for the charging and programming USB-C connections

Module Integration:

I had previously tested each module individually, but hadn’t had all of them working at the same time.  I had tested the HC-05 with an Arduino Mega, and I had tested the load cell with both a Sparkfun Pro Micro and with a Teensy 3.2, and I had tested the Nokia LCD display with a Teensy 3.2, but I hadn’t put everything together.  So I wired everything up on my half-size ASP plugboard and got it all working together with a simple program (included below) that exercised the LCD Display, the load cell, the BT module, and the battery charger, as shown in the following photos

RealTerm Serial Terminal Program showing load cell readouts collected wirelessly via the Bluetooth HC-05 modules

HC-05 Bluetooth, HX-711 Load Cell Amp, Sparkfun Charger, and Teensy Microcontroller modules integrated together. Note disconnected USB cable showing that the circuit is running on battery power. The scale is currently measuring 1.8 liters of water in the suspended plastic bag (note the ‘1.8 Kg’ reading on the LCD display)



The software used for the above integration tests is a reasonably complete sketch for day-to-day use of the digital weight scale.  It displays the measured weight on the LCD display, and also sends it to the USB serial port for display on a directly connected PC, and to the HC-05 Bluetooth module for display/capture via a BT-connected laptop or smartphone.  This program is shown below:

However, this program depends on the proper calibration of the load cell, which I have been doing with a separate sketch (also included below):

What I need to do now is to combine these two programs into a single sketch with ‘operating’ and ‘calibration’ modes.  My calibration program already does this to some degree, as it waits 5 seconds on startup for the operator to send the ‘y’ key via the direct-connect serial port. If the ‘y’ character is detected within this window, then the program starts the calibration sequence; otherwise it starts taking measurements as normal.  This behavior needs to be expanded somewhat in that it should accept a calibration command either through the direct-connect serial port (Serial) or via the BT port (Serial1).

Low Power Operation:

I have already done some experimentation on low-power operation of the Teensy 3.2, using Colin Duffy’s fine ‘Snooze’ library, and have determined that I can easily drop the Teensy’s operating current from around 20-30 mA to about 1-2 mA by putting it to sleep during periods of load cell inactivity.  Assuming I get the full 2500 mA hours out of the battery, then I can expect something like 1000 hours or about 40 days between recharges.  However, more work needs to be done to get the low power mode fully operational.


Stay Tuned!



Digital Tension Scale

Posted 27 October 2018

I recently underwent rotator cuff repair surgery on my left (dominant) shoulder, and am now starting the rehab process.  My PT person was adamant that I not re-start my normal rowing routine for at least six weeks post-op, due to the possibility that I could re-tear the tendon.  This made me curious as to what the tension really was on my arms when rowing, so I decided to try and build a digital dynamic tension sensor, capable of plotting rowing strap tension in real time.

To start, I had to educate myself on the world of strain gauges and load cells, and what the differences are.  As I came to understand, what I wanted was a load cell configured for tension measurement, with a strain gauge as the active sensing element in the load cell.  So, I started searching for load cells, and was immediately inundated with ‘too much information’.  This deluge is certainly better than the old days where I had to search through paper (really, no internet!) magazines and catalogs, but at least you didn’t have to worry about overload headaches! ;-).

Anyway, I found this item ‘Degraw 40Kg Tension Load Cell and HX711 Combo Pack Kit‘, as shown in the screenshot below

Amazon catalog item for Degraw load cell

This looked perfect for my intended use, as I could hook one end onto my rowing machine strap, and connect some sort of handle to the other end.  Now all I had to do was figure out how to hook the thing up and get it to work.  Fortunately Degraw also provided a sketch of the hookup using an Arduino Uno, so that part was pretty easy.

Degraw-provided hookup diagram

After a bit more research, I found a nice HX711 library by bogde and some example programs, and got the whole thing to work using an Arduino Mega 2560.  Once I got a program running with some preliminary (but believable) results, I started thinking about how I was going to manage the physical aspects of hooking this assemblage to the rowing machine and recording dynamic tension.  I couldn’t really just let the HX711 board hang by the strain gauge wires while connected with jumpers to the Mega board, as the #28 strain gauge leads would surely break.  So, I came up with the idea of somehow attaching the HX711 board and a small microcontroller to the load cell assembly, and then connecting the whole thing to my laptop with a USB cable.  Hopefully the USB cable would be long enough to allow full extension of the rowing machine strap so I could collect full rowing cycle data.

After some digging around in my parts cabinets, I came up with two candidates for the ‘small microcontroller’ part of the plan; a 3.3V Teensy 3.2, and a 5V/16MHz Sparkfun Pro Micro.  I tried the Pro Micro at first, and almost immediately went down the rabbit hole (my term for getting lost in some technical wonderland without a clue how to get back) trying to figure out how to program the device – a challenge due to the way it handles com ports through the USB connector (it actually implements two different ones, depending on whether the boot loader or the user firmware is running – yowie!).  After climbing my way out of the rabbit hole, I decided to try the Teensy 3.2 instead, as I familiar with it from several other projects.  With the Teensy, I got a test program running and started taking data with known weights attached to the load cell. The way I did this was to suspend a plastic bucket from the load cell, and poured water into the bucket one liter (1Kg) at a time while recording data.  This was successful because I got good data, but unsuccessful because the data didn’t make much sense, as shown in the plot below

Results of pouring 1L (1Kg) water at a time into bucket suspended from load cell, using a 3.3VTeensy 3.2

As can be seen, the data was anything but the stairstep function I was expecting to see.  At this point I wasn’t sure if I had a hardware problem or a software problem, or something else entirely, so I sent an email to Degraw Product support with the above plot attached, asking if they had any insight into the problem.  Amazingly, they replied almost immediately, and offered to send me another load cell unit gratis so I could eliminate their hardware as the cause of the problem.  Although I was quite pleased with their offer of support, I thought maybe the 3.3V supply of the Teensy 3.2 might be causing the non-linearity (the HX711 advertises 2.7-5V operation but the lower voltage might be causing output linearity problems).  So, I tried again with the Sparkfun Pro Micro, and this time I managed to make the programming magic work. Then when I did the same test as above with the 5V Pro Micro instead of the 3.3V Teensy, I got the plot shown below.

Tension vs time plot created by pouring 1L (1Kg) of water at a time into bucket suspended from load cell, using Sparkfun 5V Pro Micro

So, now that I had the software and microcontroller problems solved, I started working on the mounting issue.  After a few minutes in TinkerCad and some quality time with my PowerSpec 3D PRO 3D printer, I had a mounting platform that clipped onto the two vertical rods in the ‘S-shaped’ tension load cell, as shown in the images below.

Reverse side of assembly, showing mounting plate clips attached to load cell vertical members

Sparkfun Pro Micro and HX711 board mounted on load cell

After getting all this set up, it was time to take some real data. Since I was still in the ‘no rowing’ zone after my surgery, I enlisted my lovely wife to do the honors while I recorded the data.  We have an Avari magnetic rowing machine, which thankfully doesn’t make much noise.  I recorded a total of 12 rowing cycles on two different ‘wave’ settings (I’m still not sure what the different ‘wave’ settings mean) at the lowest tension level, with the results shown below

As shown in the above plot, the peak tension reading was around 18Kg (about 40 lbs).   I’ve included a short video of the test below.

Dawes Lightning 1500 Stem Bracket

Posted 13 June 2018

A friend got a new Dawes Lightning 1500 bike, and wants to install a ‘Swing Grip’ handle accessory on the piece (the ‘stem’) that connects the front fork post to the handlebars.  I had printed up a similar bracket for Ray in the past, and so he asked if I could do one for this bike too.

I had him bring the bike over so I could get a good look at the ‘stem’ shape and then built up a prototype in ABS.  I had a lot of difficulty with getting the ABS to print without lifting off the heated bed, and so eventually had to use a raft, which sucked because the raft stuck to the part too well.  When I got the part done I tried it on the bike, and of course it didn’t fit, but it did allow me to see where the design had to be changed.

Printing Notes:

I printed the PLA part with

layer height:  0.2mm

extruder temp: 205 for layer 1, 195 for 3 & up

print bed temp: 70C

speed: 30mm/sec

Z-offset: -0.05mm

I had to work a bit to get the PLA to stick to the bed, and the right combination was the above settings, plus attention to getting the bed levelled properly and the correct Z-axis offset so the first layer was ‘squished’ significantly.



Printing an ABS Shaft Adaptor for 80mm Wheel

Posted 25 January 2018

Over the last few days I have been struggling with a project to 3D print a small adaptor to allow me to mount some 80mm wheels I bought some time ago to my Wall-E2 autonomous wall-following 4-wheel drive robot.

The original robot came with 56mm wheels and this gave Wall-E2 very little ground clearance.  I found some 80mm wheels that I thought would do the trick nicely, but when I tried them, it quickly became apparent that the shaft receptacle on the wheel was significantly larger than the motor shaft, leading to a very bad wobble and catastrophic wheel departures – oops!

Lightweight 4WD Drive Aluminum Mobile Dolly Car Robot Platform for Arduino


original 56mm wheel and companion motor

Ebay ‘Arduino Robot’ motor dimensions

80mm wheel

After some troubleshooting, I discovered that the new 80mm wheels have a shaft receptacle that measures 5.9mm long and 3.6mm wide, while the motor shafts are 5.4mm long and 3.5mm wide.  The width is OK, but the longer length is causing the problem.

After thinking (and cursing) a bit, I decided to try printing an adaptor.  The larger diameter wheels are also considerably thinner (20mm or so vs 30mm), so there should be room for an adaptor part, as shown below

shaft adaptor for 80mm wheel

And threw it on my PowerSpec 3D PRO (Flashforge Creator Pro knockoff).  After just a little fiddling, I got some nice parts, and thought I was done.  A couple of days later, I noticed one of the parts was just a little loose on its shaft, so I said to myself – “I’ll just print off another one”.  Unfortunately, what came off the printer was really ugly, and completely unusable, even though that same printer had produced nice parts just a few days ago – WTF!?  Clearly I had forgotten what magic I had wrought the first time, so now I had to go back and recreate it – bummer.  As part of my penance for this crime, I am writing this post so the next time I want to do this, I’ll have the print settings recorded.

Print Settings for ABS

The significant factors in how to get good prints with ABS on this printer appear to be

  • Print speed
  • Extrusion factor

The first thing I did was slow the print speed down, but this had only a minor effect on print quality.  Going slower helped, but even very slow speeds (like 10mm/sec) didn’t result in clean edges on the male part of the adapter. However, the female portion was very clean, which left me a bit puzzled – why one part but not the other?  I finally realized that the difference was that the female piece was perfect because the hole perimeter was the first thing laid down at each slice, then the outside perimeter, and finally the fill material was added last.  This meant that the hole perimeter had a chance to cool and solidify before the fill material impinged on its outer surface, and this meant that the perimeter stayed in the same shape as originally laid down.  When printing the male part, however, the outer perimeter was laid down first, and then the fill material was immediately added, before the outer perimeter had a chance to cool and solidify, even at the slower speeds.  The material making up the fill was pushing the outer perimeter out of shape.

This led me to focus on the extrusion factor.  Reducing the extrusion factor from 1.00 to 0.95 had a significant positive impact on the print quality of the male portion of the adaptor.  Reducing it again to 0.90 resulted in an even better print, as did a further reduction to 0.85.  However, at the 0.85 value, I started to see some degradation in the quality of the female portion, so I backed off to 0.90 as the final value.  The following image shows the last seven prints.  All were printed at either 20mm/sec or 10mm/sec, and the last three on the right were printed with 10mm/sec and extrusion factors of 0.95, 0.90, and 0.85 respectively.

The last seven prints. the last three on the right were printed at 10mm/sec and with extrusion factors of 0.95, 0.90, and 0.85 respectively

Original and new wheels, with completed adaptor shown

Bottom Line (PowerSpec 3D Pro, Simplify3D):

  • Material: Gray ABS
  • Extruder temp: 230 (not critical 220-240 should be OK)
  • Bed temp: 110 (not critical, 100 should do too)
  • Speed: 20 or 10mm/sec (maybe faster would be OK, but not much)
  • Extrusion factor: 0.95 or 0.90





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 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  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!



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


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,





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 (  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.



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.



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