Oct 11, 2014

DIY 3d printers controlled with Raspberry Pi ONLY

I will get a Raspberrry Pi soon so I wanted to see what can bt done with it beside using it as a server, so I found that you could use a Pi and its GPIOs to directly control the stepper drivers, fan, heater and other aspect of a 3d printer without any additional processing electronics. So, entire 3d printer is controlled by a single Raspberry Pi only.

First project I found was the one by  Owen Jeffreys who actually calls it "The World's First Raspberry PI 3D Printer" and it was reported on many 3d printing blogs.

Owen's project description:
This video briefly outlines the building and testing of a unique, home-built, 3D printer which uses a Raspberry PI as its "brain" or CPU.
If you Google (or Bing!) Raspberry PI 3D printer you will find several people who claim to have made "Raspberry PI *Powered* 3D Printers", but if you examine them in detail, they are not actually *powered* by the Raspberry PI at all. These people use the standard firmware which comes with the 3D printer and replace the PC interface with the Raspberry PI - hence the PI is not controlling/powering the printer at all, but simply sending buffered GCODE commands to the pre-built printer and acting as a neat user interface to display print progress etc. This unique 3D printer is not like those; the PI actually controls every part of the machine including, but limited to the motors, heaters and temperature sensors. The 800MHz PI runs the time-critical (virtually real-time), dedicated program with great ease making it possible for a 3-dimensional, plastic (ABS or PLA) model to be printed layer by layer.
This 3D printer was designed and built as an individual, level 3, engineering project, chosen by me as I owned a PI and wanted to do something useful and unique with it which would help people who dismiss the PI to realise that it is capable of a lot more than they could possible imagine. It was a very challenging task covering a whole range of engineering fields. Almost every part of the 3D printer was made from scratch, including, but not limited to, the circuit board, the aluminium framework, the drive system and the C++ program to run on the PI.
The PI can be hooked up to a HDTV or laptop to display the print progress and other useful information, or it can run completely stand-alone. The 3D printer runs at around ¼ speed compared to a typical, hobby 3D printer (e.g. RapMan, Cube or Touch), taking around 25 hours to print a 60mm high chess piece – the speed only limited by the stepper motor choice and gearing.
It took approximately eight months to complete and would not have been possible without the help from family, friends, teachers and instructors. In particular, the help from an exceptional teacher and project supervisor, Laurence Hyett, was invaluable and very much appreciated. Although this 3D printer works, the project is not entirely complete - there is still room for improvement. One such improvement which is underway is to modify the interface board used to connect the PI to the 3D printer from a hand-etched, double-sided PCB to a compact “shield” which will stack neatly on top of any PI. Faster print speeds and a twin print head are also being considered.
Any common 3D CAD package can be used to create a 3D model which can be sent to the PI to be printed, alternatively a 3D model from a collection of many thousands can be downloaded from Thingiverse for free. The test piece in this video was designed by me using a professional 3D modelling package widely used in the CG film world, but there are a number of cheap or even free packages which are just as good. I'd personally recommend "Blender" for those that are interested, as it is a completely free, open source, community contributed project which is unbelievingly powerful
Owen has not yet released any code with his project.
In response to this claim, Colin aka. "Wallacoloo" commented that there are probably three projects developed earlier and one of them is his called the Printipi.

Printipi is well documented on GitHub with all the code available:


Printipi project description:
Printipi is a software package designed to bring 3d printing to the Raspberry Pi. It takes on all of the roles generally given to dedicated microcontrollers (interfacing with stepper drivers, temperature control of the hotend, and cooling fans) while also running under an operating system. This means that the same device that is running the firmware can also perform other tasks while printing, such as hosting a web interface like Octoprint.
Although called Printipi, it is not necessarily limited to running on the Pi. The Example machine can compile and run on most Linux machines, as a proof of concept (it does no electrical I/O), and new machines can be supported by implementing a handful of interfaces (see the section below for more info). 
Printipi also aims to support a multitude of printers including typical cartesian printers, delta-style printers like the Kossel, or polar-based printers - without the messy use of hundreds of #defines, some of which may not even be applicable to your printer. Instead, each machine type gets its own file and C++ class under src/drivers/machines that exposes its coordinate system and peripherals through a handful of public member functions and typedefs. In this way it is possible to add support for a new type of printer without digging into the guts of Printipi.

Third project is piPrint by Ian D. Miller and Kenan Bitikofer

piPrint is well documented on GitHub with all the code available, but it is under heavy developemnt:

and fourth project is by Dado Sebo but no further information is available:

Using Pi is not an optimal solution but it is interesting project, there will probably bi more developments in the future.