Wednesday, February 23, 2011



The bitcoin project, is a an open source way of saving and transferring currency without paying fees. From the bitcoin wiki:

"Bitcoin is a digital currency created in 2009 by Satoshi Nakamoto.
It is designed around the idea of using computed solutions to mathematical problems as money, independent of any central issuing authority."

With bitcoin, reprappers could buy printed parts without paying Paypal fees and/or currency exchange fees. Reprappers could also offer printed parts for sale on a bitcoin auction site:

without paying Ebay fees. The site is small, but you've got to start somewhere.


Filament settings have been added to dimension. This is very loosely based on Rob Giseburt's Volumetric 5D plugin:

The 'Filament Diameter' should simply be set to the measured filament diameter in millimeters.

The tricky setting is the 'Filament Packing Density'. The default is 0.85, this is for ABS.

The default value is so low for ABS because ABS is relatively soft and with a pinch wheel extruder the teeth of the pinch dig in farther, so it sees a smaller effective diameter. With a hard plastic like PLA the teeth of the pinch wheel don't dig in as far, so it sees a larger effective diameter, so feeds faster, so for PLA the value should be around 0.97. This is with Wade's hobbed bolt. The effect is less significant with larger pinch wheels.

Overall, you'll have to find the optimal effective 'Filament Packing Density' by experiment.


The license is being changed from the GLP 3 to the more restrictive GNU Affero General Public License:

The major difference is that the GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public.

The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.

Object First Layer

The first layer in raft has been changed so that now you can set the first layer infill flow rate & perimeter flow rate independently.

If your 'Object First Layer' flow rate setting is not default, you must update your 'Object First Layer' settings accordingly.


Skirt is a script to give the extruder some extra time to begin extruding properly before beginning the object, and to put a baffle around the model in order to keep the extrusion warm.

It is loosely based on Lenbook's outline plugin:

it is also loosely based on the outline that Nophead sometimes uses:

and also loosely based on the baffles that Nophead made to keep corners warm:

If you want only an outline, set 'Layers To' to one. This gives the extruder some extra time to begin extruding properly before beginning your object, and gives you an early verification of where your object will be extruded.

If you also want an insulating skirt around the entire object, set 'Layers To' to a huge number, like 9876554321. This will additionally make an insulating baffle around the object; to prevent moving air from cooling the object, which increases warping, especially in corners.

Thread Sequence

Fill has been changed so that the thread sequence for the first layer is now 'Perimeter > Loops > Infill'. The thread sequence for the second and higher layers is as before.

You do not need to alter any settings because of this change.

The stable cached skeinforge is the latest file at:

the unstable skeinforge is on my website at:

the infrequently updated subversion version is at:


  1. I like your reason for your license change :)

    good to see volumetric and skirt are available now, those will be very helpful I'm sure!

  2. Hi Triffid Hunter,

    > I like your reason for your license change :)

    Thanks, but actually it is just copied from the license page:


  3. I already had a bitcoin account, so I figured why the hell not. I'm now selling prusa metal parts on the bitcoin auction site as a test.

    Also, have you got a bitcoin public receiving address? From memory you can just put it out and I can send, like paypal minus the fee. I use skeinforge all the time (including for machines that I print and then sell) so I'd like to send a BC or two your way.

  4. Yay! Been waiting for some of this - I especially like the new 1st layer stuff and Robs volumetric 5D, which I've been playing messing with in other ways.

    Any comment on rpmify? I really don't know python but it looks like the only M108 lines that get written are 'M108 S' commands. Is it a MakerBot-specific thing to want 'M108 R' for setting an RPM flow rate instead of a PWM one? Should I be nagging MBI instead of you??

    Thanks for all your work on this stuff, Enrique!

  5. Hi Peter,

    Thanks for the offer of a donation. From the demozendium page:

    the donation address is:

    All contributors get a fair share of the donated bitcoins at the end of each month. You, and everyone else, are also welcome to write or edit the encyclopedia. The articles can be about anything.


    The recommended extruder speed commands are listed at:

    From that page the deprecated extruder speed commands should actually be M108 Snnn. So MBI should update their commands. In the meantime, you can use a replace.csv file, as described in the documentation, to convert M108 Snnn to the Makerbot M108 Rnnn or whatever.

    Eventually, people should all switch over to 5D, and maybe to some kind of 5D distance or time code. This is in progress and the thread is at:,33082,page=22

  6. Have you ever considered using single config file, or a single config file per profile; while storing data in config file using XML format so you can have each plugin have his node in the xml?

    One more question that I just must ask :D .. any chance of ever introducing some parallelism into skeinforge? It is not the fastest slicer out there (it is the best imho) and it uses single cpu only ... with 8 cores desktop boxes being more common it might be a cool idea to process few layers in parallel?

  7. latest skeinforge uses G3 code a lot. None of my machines knows how to deal with G3 code :(. There is no G3 code defined on the ... I can't seem to find out how to tell skeinforge not to produce G3 code :(

  8. Hi Bogdan,

    > Have you ever considered using a single config file..

    If I was making skeinforge today, I would probably use an xml config file, however, when I started it I did not have a good xml parser, so I used the csv format. Now that it is using the csv format, it would be a lot of effort to change, so I don't currently plan on changing it.

    > any chance of ever introducing some
    > parallelism into skeinforge?..

    Not for most of skeinforge. Skeinforge does a lot of stuff sequentially and it often looks at the layers around the layer it is generating. The only parts that could be parallelized with reasonable difficulty would be the in the carve tool. However, I do not currently plan on doing this.

    To speed up skeinforge, people have had some success with pypy:

    and psyco:

    I also read that someone ran skeinforge on several objects in parallel. To do this, I believe they made a shell script and ran an instance of skeinforge for each object. Unfortunately, I couldn't find the post mentioning that.

    > latest skeinforge uses G3 code a lot.

    Skeinforge only generates arc gcode (which includes G2 and G3 commands) in Fillet, if it is activated and the 'Fillet Procedure Choice' is 'Arc Radius' or 'Arc Point'. It may that when you upgraded to the latest skeinforge somehow the Fillet settings were changed. I suggest either turning Fillet off or setting the 'Fillet Procedure Choice' to 'Arc Segment' or Bevel.

  9. wrt paralelisation - too bad :(

    as for the config files - well, we just have to live with it as is then

    as for the G3 - I found the monster the 2 minutes after I posted the comment :) .. the upgrade messed up the config files (I really hate that after every upgrade I have to go trough all config files again :( )


  10. - pyppy didn't speed up anything
    - psyco is still not compatible with python that comes with recent linux distro's (2.7)

    so both are pretty useless :(

  11. Some problems I noticed with skirt:

    1) it doesn't seem to obey the first layer speed settings
    2) if the object being printed has concavities (e.g. the grip on a metabrik) it also seems to happily produce internal loops when surely it should just be a bounding-type shape.
    3) if support material is turned on, the skirt and support can print over the top of each other.

  12. Hi Peter,

    Thanks for the bitcoin donation.


    For skirt issue (1), I'm looking into that.

    For skirt issue (2), I'll add an option to generate internal loops.

    For skirt issue (3), please send me the shape and your settings, so I can reproduce the bug.

  13. I have a small patch for skeinforge 40 that adds a "Place object bottom at zero" checkbox to the carve tab. If checked, the object is automatically moved up/down the z axis such that the lowest vertex is placed at z==0. Would you be interested in the patch? You could probably code it faster than I could send it to you, but I'd be happy to send it if you are interested. I coded it because I got tired of forgetting to check the z position of objects and running my nozzle into the bed. Best way to contact me is a PM to madscifi on the reprap forum or respond here. Sorry for posting here but I could not find a more appropriate place.

  14. Hi Madscifi,

    There is already the bottom plugin which does what you are describing.

    For future reference, for patches, it is best to email me at:
    perez_enrique At

  15. I feel really silly now :) Obviously I should have read the release notes more carefully. Sometimes writing new code is not the best approach to solving a problem...

  16. Great work Enrique.
    Wondering if you have considered an enhancement to the Limit plugin that limits oscillation frequency so that if a machine has a resonance, it can be avoided. I have found that I can get greatly increased print speeds using the new Sprinter firmware with accelleration, however I still ocassionally get issues with narrow sections of infill where the oscillation to do the the fill cause a resonance to build up and my y axis or x axis skips a step. Reducing the speed in just those sections by limiting the oscillation frequency would mean I could maintain fast print speeds that work for the rest of the print whilst aboiding skipping steps in those difficult sections.

  17. Hi Enrique.

    I'm looking at making a new plug-in for Skeinforge. I'm fairly proficient with Python, but with such a large application, it would be good to get some pointers from the author on where to start.

    The plug-in would essentially modify the GCode to change the outer layers to half the carve height. I.e. if you are carving at 0.5mm, it would print the outer perimeter at 0.25mm first, two layers high and two threads deep, before reverting back to the normal carve height. This way you can get great looking external faces, but without marathon printing sessions.

    I was thinking about starting from the skirt function, since that already identifies the outer perimeter, but there may be a better starting place.

    Thanks for all your hard work on this great tool.

  18. James, Josef Prusa already did something like that:

    I would be good to have it formally incorporated, but Prusa's work would be a good place for you to start looking.

  19. Hi James,

    Thanks for the offer of a new plugin. Please contact me directly at:
    perez_enrique At

    so we can chat about this some more.

  20. Hi Enrique.

    Could you please add a first layer speed/infill adjustment for support? I'm trying to use a thin walled support structure but can't get the first layer to stick (without a raft) because the flow is too slow.

    Thanks for all the hard work!

  21. Thanks for this great piece of software! But I'd like to aked something:

    Your quote:

    The 'Retract Within Island' feature has been added to dimension, the default is off.
    Note, in a recent version of skeinforge this was called Retract When Crossing Boundary or something, with the opposite value of 'Retract Within Island'. So if you're using Dimension, you must set 'Retract Within Island', even if you want the default. Otherwise because dimension would read the profile, it would be set on.

    My comment:
    How can this make any sense? I don't want the extruder to retract filament when the extruder stays inside the structure. I just want the extruder to retract when leaving the structure. Now, you renamed the setting, but I have to set it to the oppisite meening?

  22. Either way, my extruder pulls back filament when inside the part. This is especially slow when the current vector hits a perimenter during fill and the angle is to small. Then, the extruder recracts material, moves 1mm, pushes filament out again, extrudes 2mm.... and so on. If this would be gone, the process would speed up significantly. :)