Wednesday 14 August 2019

Geekery 102


Original post March 2019

The move to running my 3D printer through Octoprint running on a Raspberry Pi did solve one problem I was having of the printer killing SD cards at regular intervals.

There was a downside however in that though the serial communication between the Raspberry Pi and the printer is nominally at 115,000 baud the handshaking when sending G-code (those are the instructions for positioning the print head and extruding filament)  relies on the printer sending back the string 'OK' before the next code can be sent.  This drops the actual speed significantly to about what a touch typist could manage.  Print times increased by 100% or more.

Enter Klipper!   This is a two part software system.  A host programme runs alongside Octoprint  on the Raspberry Pi and carries out pre-processing of the G-code to send to the printer.  On the printer a custom Klipper firmware replaces the standard Marlin firmware.  As the host programme is doing more of the calculations (the Pi being much more powerful than the ATmega1284 built into the printer) and leaving the printer processor as just a motor and display control unit this speeds things up.

This move did speed up printing towards what was possible using SD cards plugged into the printer while still allowing me to monitor the print progress from elsewhere.  Then I stumbled on a simple 2 line option in the Klipper configuration file that allowed the Pi to act a virtual SD Card.  Now my printing is back to the original speed (and with testing could possibly be higher as Klipper can control motors faster),  I won't have anymore broken SD cards and I learnt some Python into the bargain.

UPDATE  2 April 2019


While working well for normal printing there are a couple of 'Gochas' with Klipper - the one that just got me is the lack of support for the M600 (change filament) G-code which has a couple of uses, with a filament sensor lets you reload if you run out and the main one to let you change colour for text effects or layers. Klipper does not do that and despite several requests the main developer does not see it as a worthwhile activity (for him).  At the moment I'll live with the limitation but if I need the M600 feature I'll have to ditch Klipper, re-install a clean Octoprint installation and re-flash the printer firmware.

Update August 2019

Finally worked out how to implement M600 for filament change - as the main developer has added it but finding it and how to set it up took a little searching.




Saturday 2 March 2019

Geekery 101

So this silver haired geek just SSH'd into his new Raspberry Pi running Octoprint to set up the webcam so he can watch and control his 3D printer from anywhere in the house.

Yes, I will move the Pi once I start printing.


Monday 4 February 2019