Monthly Archives: June 2011


Perfecting Pulleys Redux

The self proclaimed “pulley nirvana” from a previous post didn’t last long. It seems that changing extruder, filament, or perhaps the weather, had caused a regression in the pulley prints I need for my upcoming Huxley/Mini-Mendel, even though the same gcode was used – with the cool setting and a slower feed/flow rate. The print goes fine until a third through the spurs of the gear, and then the flow splutters and starts, causing a very deformed (and unusable) gear.


At first I thought the cause might lie in too high a temperature, and so I reduced the hot end temperature to 180°C (from 195°C), and also placed a desktop fan adjacent to the bed, on the lowest setting. The results were still poor.

It seems that the Dimension module in Skeinforge was retracting the filament too much (because the speed was so much lower, it had more time to retract) and consequently the beginning of each layer on the spurs was receiving less and less material. Hence the deformity. Changing this value from 1.3 to 0.2 brought about much better results.

Not perfect, but usable, and a step in the right direction.

Below are the Skeinforge settings used in case they are useful.

Skeinforge Settings

Layer Thickness (mm): 0.4
Perimeter Width over Thickness (ratio): 1.4
Infill Solidity (ratio): 0.3
Feed Rate (mm/s): 25.0
Flow Rate Setting (float): 25.0
Absolute Extrusion Distance True
Relative Extrusion Distance False
Extruder Retraction Speed (mm/s): 20.0
Filament Diameter (mm): 2.85
Filament Packing Density (ratio): 1.0
Retraction Distance (millimeters): 0.2
Restart Extra Distance (millimeters): 0.0
Add Layer Template to SVG True
Extra Decimal Places (float): 2.0
Import Coarseness (ratio): 1.0
Infill in Direction of Bridge True
Layer Thickness (mm): 0.4
Layers From (index): 0
Layers To (index): 912345678
Correct Mesh True
Unproven Mesh False
Perimeter Width over Thickness (ratio): 1.4
SVG Viewer: webbrowser
Add Extra Top Layer if Necessary True
Add Layer Template to SVG True
Extra Decimal Places (float): 2.0
Import Coarseness (ratio): 1.0
Layer Thickness (mm): 10.0
Layers From (index): 0
Layers To (index): 999999999
Correct Mesh True
Unproven Mesh False
Perimeter Width (mm): 2.0
SVG Viewer: webbrowser
Activate Comb True
Activate Cool True
Bridge Cool (Celcius): 1.0
Orbit False
Slow Down True
Maximum Cool (Celcius): 2.0
Minimum Layer Time (seconds): 10.0
Minimum Orbital Radius (millimeters): 10.0
Name of Cool End File: cool_end.gcode
Name of Cool Start File: cool_start.gcode
Turn Fan On at Beginning True
Turn Fan Off at Ending True
Activate Dimension True
Absolute Extrusion Distance True
Relative Extrusion Distance False
Extruder Retraction Speed (mm/s): 20.0
Filament Diameter (mm): 2.85
Filament Packing Density (ratio): 1.0
Retraction Distance (millimeters): 0.2
Restart Extra Distance (millimeters): 0.0
Activate Fill: True
Diaphragm Period (layers): 100
Diaphragm Thickness (layers): 0
Extra Shells on Alternating Solid Layer (layers): 0
Extra Shells on Base (layers): 0
Extra Shells on Sparse Layer (layers): 0
Grid Circle Separation over Perimeter Width (ratio): 0.2
Grid Extra Overlap (ratio): 0.1
Grid Junction Separation Band Height (layers): 10
Grid Junction Separation over Octogon Radius At End (ratio): 0.0
Grid Junction Separation over Octogon Radius At Middle (ratio): 0.0
Infill Begin Rotation (degrees): 45.0
Infill Begin Rotation Repeat (layers): 1
Infill Odd Layer Extra Rotation (degrees): 90.0
Grid Circular False
Grid Hexagonal False
Grid Rectangular False
Line True
Infill Perimeter Overlap (ratio): 0.15
Infill Solidity (ratio): 0.3
Infill Width over Thickness (ratio): 1.3
Solid Surface Thickness (layers): 1
Lower Left True
Nearest False
Infill > Loops > Perimeter False
Infill > Perimeter > Loops False
Loops > Infill > Perimeter False
Loops > Perimeter > Infill True
Perimeter > Infill > Loops False
Perimeter > Loops > Infill False
Activate Home True
Name of Homing File: homing.gcode
Add Custom Code for Temperature Reading True
Bridge Width Multiplier (ratio): 1.0
Ascending Area True
Descending Area False
Overlap Removal Width over Perimeter Width (ratio): 0.6
Turn Extruder Heater Off at Shut Down True
Activate Limit True
Maximum Initial Feed Rate (mm/s): 80.0
Maximum Z Feed Rate (mm/s): 1.0
Activate Multiply: True
Center X (mm): 50.0
Center Y (mm): 50.0
Number of Columns (integer): 1
Number of Rows (integer): 1
Separation over Perimeter Width (ratio): 15.0
Name of End File: end.gcode
Name of Start File: startMendel05l04PLA.gcode
Set Positioning to Absolute True
Set Units to Millimeters True
Start at Home False
Turn Extruder Off at Shut Down False
Turn Extruder Off at Start Up False
Activate Raft True
Add Raft, Elevate Nozzle, Orbit: True
Base Feed Rate Multiplier (ratio): 1.0
Base Flow Rate Multiplier (ratio): 1.0
Base Infill Density (ratio): 0.5
Base Layer Thickness over Layer Thickness: 2.0
Base Layers (integer): 0
Base Nozzle Lift over Base Layer Thickness (ratio): 0.2
Initial Circling: False
Infill Overhang over Extrusion Width (ratio): 0.05
Interface Feed Rate Multiplier (ratio): 1.0
Interface Flow Rate Multiplier (ratio): 1.0
Interface Infill Density (ratio): 0.5
Interface Layer Thickness over Layer Thickness: 1.0
Interface Layers (integer): 0
Interface Nozzle Lift over Interface Layer Thickness (ratio): 0.45
Name of Support End File: support_end.gcode
Name of Support Start File: support_start.gcode
Object First Layer Feed Rate Infill Multiplier (ratio): 0.4
Object First Layer Feed Rate Perimeter Multiplier (ratio): 0.4
Object First Layer Flow Rate Infill Multiplier (ratio): 0.4
Object First Layer Flow Rate Perimeter Multiplier (ratio): 0.4
Operating Nozzle Lift over Layer Thickness (ratio): 0.5
Raft Additional Margin over Length (%): 1.0
Raft Margin (mm): 3.0
Support Cross Hatch False
Support Flow Rate over Operating Flow Rate (ratio): 1.0
Support Gap over Perimeter Extrusion Width (ratio): 1.0
None True
Empty Layers Only False
Everywhere False
Exterior Only False
Support Minimum Angle (degrees): 60.0
Activate Speed: True
Add Flow Rate: True
Bridge Feed Rate Multiplier (ratio): 1.0
Bridge Flow Rate Multiplier (ratio): 1.0
Duty Cyle at Beginning (portion): 1.0
Duty Cyle at Ending (portion): 0.0
Feed Rate (mm/s): 25.0
Flow Rate Setting (float): 25.0
Orbital Feed Rate over Operating Feed Rate (ratio): 0.5
Perimeter Feed Rate over Operating Feed Rate (ratio): 0.7
Perimeter Flow Rate over Operating Flow Rate (ratio): 0.7
Travel Feed Rate (mm/s): 30.0
Activate Stretch True
Cross Limit Distance Over Perimeter Width (ratio): 5.0
Loop Stretch Over Perimeter Width (ratio): 0.11
Path Stretch Over Perimeter Width (ratio): 0.0
Perimeter Inside Stretch Over Perimeter Width (ratio): 0.64
Perimeter Outside Stretch Over Perimeter Width (ratio): 0.1
Stretch From Distance Over Perimeter Width (ratio): 2.0



Hobbing nuts and bolts

Whilst printing an extruder for my huxley/mini-mendel test printer (NEMA 17 bowden extruder drive by jmgiacalone), I realised I didn’t have a “M4 toothed insert”. Not wanting to pay, nor wait, for one, I decided to hack something together from parts I already had.

Not being able to hob my own bolts has irked me for a while – I don’t own a slow enough drill, nor do I have shop tools to machine a part. However, the recent purchase of a Dremel brings with it many opportunities! My previous attempt at hobbing a M8 bolt had worked, but it was non too pretty, and I thought a M4 nut would be too fine to hob by hand.

Still I decided to give it a go – trying both standard M4 nuts and coupling nuts – which turned out to fit perfectly in the extruder.

First I ground the coupling nut a little to round off the edges, then slowly worked along the length with a fine cut-off attachment.

Bolstered by these results I then attempted another M8 bolt, with much better results.

The steel of the bolt was much harder on the attachments though.


Hacking Skeinforge Export Module

I decided to add a few features to the export module of Skeinforge which may also be useful to others.  I’ve committed these changes to my fork of the (unofficial) git repo.  If they seem popular then i’ll fire an email to Enrique with a patch.

Add Profile To File Extension

Simply adds the current profile to the file extension,  e.g. test.my_profile_name.gcode.

Archive Used Profile As Zip

Creates a Zip file archive of the current profile, e.g.

Export Profile Values As CSV File

Creates a Comma Separated Value file containing all profile values, e.g. test.my_profile_name.csv.

The format is: plugin,name,value, e.g. carve,Layer Thickness (mm):,0.4

Add Descriptive Extension

Because I am inconsistent in my profile management I often tweak a setting of a profile before printing.  This means the profile name usually does not reflect the actual profile values.  This option adds key profile values as an extension to the gcode file. If a module is turned off then the value is not added to the extension.

E.g. <filename>.04hx06w_33Ff_03fill.4off.gcode where:

  • 04h = “Layer Thickness (mm):” 0.4
  • x
  • 06w = 0.6 width i.e. 0.4 times “Perimeter Width over Thickness (ratio):” 1.5
  • _
  • 33Ff = “Flow Rate Setting (float):” 33.0 and “Feed Rate (mm/s):” 33.0.  If either value has a positive value after the decimal place then this is also shown, but if it is zero it is hidden.  Also, if the values differ (which they shouldn’t with 5D volumetrics) then each is displayed seperately, i.e. 30F35.2f = “Flow Rate Setting (float):” 30.0 and “Feed Rate (mm/s):” 35.2
  • _
  • 03fill = “Infill Solidity (ratio):” 0.3
  • 4off = “Number of Columns (integer):” x “Number of Rows (integer):” from the Multiply Tab, e.g. 2×2.  If these values are both 1 then this part is not shown.

Add Timestamp Extension

Adds the current date and time as an extension in format YYYYmmdd_HHMMSS (so it is sortable if one has many files), e.g. test.my_profile_name.20110613_220113.gcode


Using all the options together yields a few files with long names but it means that each time a STL is processed one can:

  • see which profile was used (from the filename),
  • see which key values were used  (from the filename),
  • see all the profile values (from the csv),
  • recreate the profile (from the zip),
  • and ensure sure that all gcode files are unique and not overwritten each time (with timestamp).



Lego Minifig

X2 Normal Size


Attempt at a Push-Fit Huxley Frame

One of the goals of my Mini-Mendel/Huxley build is to try and reduce the number of parts as much possible, so long as it does not make the build process too unwieldy. In the end I decided to abort the attempt but I wanted to document it here in case others find it useful.

For this reason, and also because the parts I am printing out are having under-sized holes, I decided to attempt to put the frame together without fastners at all.

Things got off pretty well with the construction of the two end triangles. The trick to attaching the final vertex corner being to screw the final rod into the penultimate vertex hole a bit further – the width of the vertex. Then when screwing the rod back, into the final vertex hole, the pieces align correctly.

The most challenging part is finding the technique/strength to turn the rods into the plastic when there are other parts of the frame getting in the way. Getting a grip can be quite hard, and using pliers tends to break the thread of the rod, so is best avoided. I found that using my table top, rubber padded visem together with spinning the whole frame around it, worked pretty well, but it started to become quite cumbersome as the frame grew (even though the frame is not that big really).

Likewise, screwing on the Y-axis motor mount, and idler, took a bit of forethought – having to stagger the position of the part so that when the other rod is turned into place the original part is screwed to the correct place too. The real difficulty was how tight the rods were too turn into the plastic, and I was loath to ream them in case they became too loose and ruined the experiment.

It was largely this that made me decide to call it a day and return to a more traditional construction technique. Spending several hours screwing in the rods makes you realise that a box of fastners really doesn’t cost much at all! There is the additional disadvantage of not being able to easily disassemble the frame should something break, or if you wish to test a new part.

Reverting to nuts and bolts was, of course, a lot quicker. But I did keep the two frame triangles without fasteners as they were the correct lengths and seem very stable. As a parting shot I utilised some bar clip fasteners I salvaged from an old Xerox printer in order to increase the width of the printer. It seems to me that the Mini-Mendel bar widths in the BOM I found are a little short – but I will wait to see the printer finished before I decide for sure.