Category Archives: Skeinforge

Host Skeinforge

Hacking Printrun: Skeinforge Quick-Edit and Profile Selector

I recently forked Kliment’s Printrun and added a couple of features that others will perhaps find handy.  One of these has been pulled back into the original project, but is modified to use SFACT rather than the original Skeinforge.  In case people would prefer to use the full Skeinforge I will outline the modifications here.
 
The first mod is a Quick Edit screen for the currently active Skeinforge profile. This shows what I think are some key settings all on one page, and thus saves opening Skeinforge and hunting though the tabs.
 
 
The second mod is having the ability to change profile from a menu list within Printrun.
 
 
So far these seem to work on my setup – but please backup any important profiles before giving this version a go.
 
The modified version is at https://github.com/garyhodgson/Printrun.
 
Skeinforge

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. test.my_profile_name.zip

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

 

Printing Skeinforge

Skeinforge 40

After a good few evenings of wrangling with the latest version of Skeinforge 40 (11.02.23) I have finally got it working. Here are a few details in case others find themselves having problems too.

After upgrading, the extruder seemed not to move during a print.

The core problem boiled down to a change in how version 40 calculates feedstock throughput, the solution being to modify the e_steps_per_mm setting in the firmware (in my case from 22 to 539), and tweak the skeinforge settings.  The e_steps_per_mm calculation is micro steps per rev * gear ratio / ( pinch wheel diameter * 3.14), and in my case 3200 * (39/11) / (6.7 * 3.14) = 539.  The forum actually had a lengthy thread about this (which I annoyingly overlooked at first), but the suggestions there didn’t seem to solve my problem.

After much searching, and many test attempts, I finally delved into the gcode itself.  There I found that the start gcode of the preface module had a command which set the e_steps_per_mm value back to 22! (gcode: “M92 E22”) This gcode file was originally part of the Skeinforge pack that Prusa bundled as part of his introduction. I tried setting the value to E539, to match the firmware, but this seemed to send the extruder crazy, so I left it at E22 and added a command at the end to set it to E539.  The complete gcode segment is:

M140 S60 ; bed temp
M92 E22 ; custom code to set extruder steps!!
G92 X0 Y0 Z0  E0.0
G1 Z2.0 F150.0
G1 X-250.0 F2100.0
G1 X-249.0 F300.0
G1 X-251.0 F100.0
G92 X10.0
G1 Y-250.0 F2100.0
G1 Y-249.0 F300.0
G1 Y-251.0 F300.0
G92 Y0.0
G1 Y70.0 F2100.0
G1 Z-250.0 F150.0
G1 Z-249.0 F50.0
G1 Z-251.0 F50.0
G1 Y75.0 E100.0  F1000.0
G1 Y100.0 E130.0  F1000.0
G92 Z0.2
G92 E0.0
M92 E554 ; custom code to set extruder steps!!

Another gotcha was that the movement at the start of the print, to set the initial position of the print head, was very slow.  By the time the print started enough PLA had dribbled out to affect the quality.  This was caused by the “Maximum Initial Feed Rate” setting in the limit module being set to 1. I’m not sure if I set this or it was defaulted to it, but setting it to 75 sped things up.

The bright side of all this fiddling is that I now have a much better understanding of Skeinforge and gcodes, and the 20mm calibration print I fired off tonight is the best one so far!

Below are the Skeinforge settings that got the result. There is still some fine tuning to go, but perhaps they are useful for someone. I extract them to html using a groovy script at the moment, but I hope to develop something useful so people can easily record, share and compare skeinforge settings.


Toolchain

Firmware
tonokip via prusasw bundle
Repsnapper
Version 04.09.11
Skeinforge
Version 11.02.23
Layer Thickness (mm): 0.4
Perimeter Width over Thickness (ratio): 1.35
Infill Solidity (ratio): 1.0
Feed Rate (mm/s): 30.0
Flow Rate Setting (float): 30.0
Object Next Layers Temperature (Celcius): 200.0
More Skeinforge Settings
bottom
Activate Bottom True
Additional Height over Layer Thickness (ratio): 0.5
Altitude (mm): 0.0
SVG Viewer: webbrowser
carve
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.35
SVG Viewer: webbrowser
chamber
Activate Chamber: False
Bed Temperature (Celcius): 60.0
Chamber Temperature (Celcius): 30.0
Holding Force (bar): 0.0
clip
Activate Clip True
Clip Over Perimeter Width (ratio): 0.15
Maximum Connection Distance Over Perimeter Width (ratio): 10.0
comb
Activate Comb False
comment
cool
Activate Cool False
Bridge Cool (Celcius): 1.0
Orbit True
Slow Down False
Maximum Cool (Celcius): 2.0
Minimum Layer Time (seconds): 60.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
dimension
Activate Dimension True
Absolute Extrusion Distance True
Relative Extrusion Distance False
Extruder Retraction Speed (mm/s): 10.0
Filament Diameter (mm): 2.8
Filament Packing Density (ratio): 0.95
Retraction Distance (millimeters): 1.0
Restart Extra Distance (millimeters): 0.0
export
Activate Export True
Add Export Suffix True
Do Not Delete Comments False
Delete Crafting Comments False
Delete All Comments True
Do Not Change Output True
binary_16_byte False
gcode_step False
gcode_time_segment False
gcode_small False
File Extension: gcode
Name of Replace File: replace.csv
Save Penultimate Gcode False
fill
Activate Fill: True
Diaphragm Period (layers): 100
Diaphragm Thickness (layers): 0
Extra Shells on Alternating Solid Layer (layers): 2
Extra Shells on Base (layers): 1
Extra Shells on Sparse Layer (layers): 1
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): 1.0
Infill Width over Thickness (ratio): 1.5
Solid Surface Thickness (layers): 3
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
fillet
Activate Fillet True
Arc Point False
Arc Radius False
Arc Segment False
Bevel True
Corner Feed Rate over Operating Feed Rate (ratio): 1.0
Fillet Radius over Perimeter Width (ratio): 0.35
Reversal Slowdown Distance over Perimeter Width (ratio): 0.5
Use Intermediate Feed Rate in Corners True
home
Activate Home False
Name of Homing File: homing.gcode
hop
Activate Hop False
Hop Over Layer Thickness (ratio): 1.0
Minimum Hop Angle (degrees): 30.0
inset
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
interpret
Activate Interpret False
Print Interpretion False
Text Program: webbrowser
jitter
Activate Jitter True
Jitter Over Perimeter Width (ratio): 2.0
lash
Activate Lash False
X Backlash (mm): 0.2
Y Backlash (mm): 0.3
limit
Activate Limit True
Maximum Initial Feed Rate (mm/s): 75.0
Maximum Z Feed Rate (mm/s): 1.0
multiply
Activate Multiply: True
Center X (mm): 100.0
Center Y (mm): 100.0
Number of Columns (integer): 1
Number of Rows (integer): 1
Separation over Perimeter Width (ratio): 15.0
oozebane
Activate Oozebane False
After Startup Distance (millimeters): 1.2
Early Shutdown Distance (millimeters): 1.2
Early Startup Distance Constant (millimeters): 20.0
Early Startup Maximum Distance (millimeters): 1.2
First Early Startup Distance (millimeters): 25.0
Minimum Distance for Early Startup (millimeters): 0.0
Minimum Distance for Early Shutdown (millimeters): 0.0
Slowdown Startup Steps (positive integer): 3
polyfile
Execute File True
preface
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
raft
Activate Raft False
Add Raft, Elevate Nozzle, Orbit: False
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): 1
Base Nozzle Lift over Base Layer Thickness (ratio): 0.4
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): 2
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
scale
Activate Scale: False
XY Plane Scale (ratio): 1.01
Z Axis Scale (ratio): 1.0
SVG Viewer: webbrowser
skeinforge
analyze False
craft False
help False
meta False
profile True
skeinforge_analyze
comment False
interpret False
skeiniso False
skeinlayer True
statistic False
vectorwrite False
skeinforge_craft
bottom False
carve False
chamber False
chop False
cleave False
clip False
coil False
comb False
cool False
dimension False
drill False
export False
feed False
fill False
fillet False
flow False
home False
hop False
inset False
jitter False
lash False
lift False
limit False
mill False
multiply False
oozebane False
outset False
preface False
raft False
scale False
skirt False
speed False
splodge False
stretch False
temperature True
tower False
unpause False
whittle False
widen False
wipe False
skeinforge_help
skeiniso
Activate Skeiniso False
Animation Line Quickening (ratio): 1.0
Animation Slide Show Rate (layers/second): 2.0
Axis Rulings True
Band Height (layers): 5
Bottom Band Brightness (ratio): 0.7
Bottom Layer Brightness (ratio): 1.0
From the Bottom False
From the Top True
Draw Arrows False
Go Around Extruder Off Travel False
Layer (index): 0
Layer Extra Span (integer): 912345678
Line (index): 0
Display Line True
View Move False
View Rotate False
Number of Fill Bottom Layers (integer): 1
Number of Fill Top Layers (integer): 1
Scale (pixels per millimeter): 15.0
Screen Horizontal Inset (pixels): 100
Screen Vertical Inset (pixels): 220
Show Gcode True
Viewpoint Latitude (degrees): 15.0
Viewpoint Longitude (degrees): 210.0
Width of Axis Negative Side (pixels): 2
Width of Axis Positive Side (pixels): 6
Width of Fill Bottom Thread (pixels): 2
Width of Fill Top Thread (pixels): 2
Width of Infill Thread (pixels): 1
Width of Loop Thread (pixels): 2
Width of Perimeter Inside Thread (pixels): 8
Width of Perimeter Outside Thread (pixels): 8
Width of Raft Thread (pixels): 1
Width of Selection Thread (pixels): 6
Width of Travel Thread (pixels): 0
skeinlayer
Activate Skeinlayer True
Animation Line Quickening (ratio): 1.0
Animation Slide Show Rate (layers/second): 2.0
Draw Arrows True
Go Around Extruder Off Travel False
Layer (index): 0
Layer Extra Span (integer): 0
Line (index): 0
Display Line True
View Move False
Scale (pixels per millimeter): 15.0
Screen Horizontal Inset (pixels): 100
Screen Vertical Inset (pixels): 220
Show Gcode True
Show Position True
Width of Extrusion Thread (pixels): 3
Width of Selection Thread (pixels): 6
Width of Travel Thread (pixels): 1
skirt
Activate Skirt: False
Gap over Perimeter Width (ratio): 1.0
Layers To (index): 1
speed
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): 30.0
Flow Rate Setting (float): 30.0
Orbital Feed Rate over Operating Feed Rate (ratio): 0.5
Perimeter Feed Rate over Operating Feed Rate (ratio): 0.6
Perimeter Flow Rate over Operating Flow Rate (ratio): 0.6
Travel Feed Rate (mm/s): 30.0
splodge
Activate Splodge False
Initial Lift over Extra Thickness (ratio): 1.0
Initial Splodge Feed Rate (mm/s): 1.0
Initial Splodge Quantity Length (millimeters): 30.0
Operating Lift over Extra Thickness (ratio): 1.0
Operating Splodge Feed Rate (mm/s): 1.0
Operating Splodge Quantity Length (millimeters): 1.0
statistic
Machine Time ($/hour): 1.0
Material ($/kg): 10.0
Density (kg/m3): 930.0
Extrusion Diameter over Thickness (ratio): 1.25
Print Statistics True
Save Statistics False
stretch
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.32
Perimeter Outside Stretch Over Perimeter Width (ratio): 0.1
Stretch From Distance Over Perimeter Width (ratio): 2.0
temperature
Activate Temperature: True
Cooling Rate (Celcius/second): 3.0
Heating Rate (Celcius/second): 10.0
Base Temperature (Celcius): 200.0
Interface Temperature (Celcius): 200.0
Object First Layer Infill Temperature (Celcius): 200.0
Object First Layer Perimeter Temperature (Celcius): 200.0
Object Next Layers Temperature (Celcius): 200.0
Support Layers Temperature (Celcius): 200.0
Supported Layers Temperature (Celcius): 200.0
tower
Activate Tower False
Extruder Possible Collision Cone Angle (degrees): 60.0
Maximum Tower Height (layers): 5
Tower Start Layer (integer): 1
unpause
Activate Unpause False
Delay (milliseconds): 28.0
Maximum Speed (ratio): 1.3
vectorwrite
Add Loops True
Add Paths True
Add Perimeters True
Layers From (index): 0
Layers To (index): 912345678
SVG Viewer: webbrowser
widen
Activate Widen: False
wipe
Activate Wipe False
Location Arrival X (mm): -70.0
Location Arrival Y (mm): -50.0
Location Arrival Z (mm): 50.0
Location Departure X (mm): -70.0
Location Departure Y (mm): -40.0
Location Departure Z (mm): 50.0
Location Wipe X (mm): -70.0
Location Wipe Y (mm): -70.0
Location Wipe Z (mm): 50.0
Wipe Period (layers): 3