Topic: Slice once, print with any filament! (SOPAF?)
So after a while that my Solidoodle 2 was sitting in a corner because of some Real Life (tm) events (including moving home), I finally went back to my Arduino environment and pimped up the firmware a bit more. This time the novelty is called Filament-Independent GCode.
I always found quite tedious to reslice a part in order to print it with a different filament, so I made a small mod that allows you to specify the characteristics of the filament through a GCode command, before you start the print... You just need to slice the part once with a "generic" profile and you are good to go with any color and any material! (I printed ABS and T-Glase with the same GCode, but nobody stops you from using PLA for example).
Getting the new firmware
At the moment the firmware is available from my Github: https://github.com/fsantini/solidoodle2-marlin - The firmware is in sync with Adrian's version, except for this patch, and with the latest Marlin, so you should be able to find all the configuration options that you are used to.
After a few people test it, I will merge it into Adrian's repo (and then into Lawsy's).
Slicing
You need to set up a filament profile with the following characteristics:
Diameter: 1.1284mm (important!)[1]
Extrusion temperature: anything >0 (e.g. 200)
Bed temperature: anything >0 (e.g. 100)
Then just slice as usual
Printing
Before the print issue the command:
M200 D<actual_diameter> F<extrusion_multiplier> S<extrusion_temp> B<bed_temp>E.g.
M200 D1.75 F0.9 S220 B100The printer will use these values for your print. In practice for any temperature command where temperature is >0, the actual temperature will be set to what you passed with the M200 command, and the flow rate will be adjusted internally. Temperature commands with temperature = 0 will disable the heater as usual.
To reset a parameter, pass a value of 0 to it. The command M200 D0 resets everything (undefines the filament)
Shortcomings
You won't be able to define multiple temperatures (e.g. first layer temperature, or different temperatures at different heights for laywood)
If you want to print with a cold bed, you should define M200 B1 or something like that (M200 B0 would just reset the bed temperature override)
Footnotes
[1] The diameter of 1.1284 is convenient because it corresponds to an area of 1mm^2, so 1 mm of extruded filament is equal to 1mm^3. It's just a convenient reference.
Thanks for reading this far! Feedback is appreciated!
