If you are interested in 3D printing and you own a Reprap, PrintrBot, Ultimaker or similar 3D printer, then you might like printing from your favorite Android device instead of using a PC to control the printer. While controlling the printer from PC works fine, it is annoying to keep the PC running during a print (and to span a USB cable across the room).
SD Card printing is an option but buying a SD Card slot + LCD screen for the printer seems to be quite expensive (100$ for a tiny screen and still just shows plain text).
On the other hand, Android devices are getting cheaper and cheaper, are powerful enough and have a larger screen to visualize the printed model.
Over the last couple of month I brought the idea to life and developed an Android App to control 3D printers and visualize the 3D print on the screen.
The first thing to do was to implement a gcode parser and gcode visualization to make use of the Android device screen. It turned out that once you have parsed the gcodes and calculated the coordinates, move distance, extrusion rate,… it is very easy to visualize the print on the screen.
Instead of just painting the full model at once, I found it helpful to paint layer by layer in real time to show how the print will progress. Painting a side view and a front view of the model was added as well. Also, based on the parsed gcode results, the App can calculate some very interesting informations like amount of filament needed, estimated cost, weight, print duration and more.
In fact, the App is able to simulate how your print will look like. Allowing you to check how your print should turn out, making it easier to spot errors and fix them instead of wasting filament. Since Android applications are written in Java, the same code can largely be used for a PC version as well and is available for download.
Next problem to solve was: how to connect the Android device to the printer ?
Since most printers use a serial communication over USB, the Android device must support the USB Host feature (USB OTG)
Once the printer is connected to the Android device using a USB OTG cable, Android will detect the USB device and start the App. To establish the connection one must choose the right baud rate in the options and then press the connect button. This will start the serial communication to the printer and wait for the printer response.
When the printer has responded successfully, then the printer control panel can be used to issue manual commands like X/Y/Z movements, home axis, control temperatures,.. with your touch screen .
Unfortunately on some devices the Android USB communication stack isn’t very fast, which limits the printing speed on these devices or might cause stuttering. But most Android devices seem to be able to achieve an average IO latency of 5-10ms which is enough for printing at high speed.
Alternatively Bluetooth support has been added recently, together with a serial bluetooth module (e.g. JY-MCU) it can print wireless.
Both together, the gcode visualization and the printer control, nearly makes it a full-fledged replacement for the PC host software. Its main strength are: good mobility, low cost, low power consumption and reuse of old discarded Android devices.
The slicer step still needs to be done on a PC using Skeinforge, Sli3r or other tools. There are many ways to copy the gcode to the Android App, either by using 3rd Party apps like Dropbox, CIFS client, file explorer or by using the build in network receiver which listens for incoming gcode files. Sending gcode files to the app can simply be added as a slicer post processing script to automate the send once the slicer is finished.
Many of the features known from the PC host software has been added recently, for example a regular temperature watch, sending a custom gcode to the printer or flipping the X/Y axis movement. But there is one feature which is unique to touchscreen devices, which is controlling the printer by drawing on the touchscreen. Right now this is still experimental and does only move in X/Y direction, but with some more effort it can be enhanced to print objects live, painted with your fingers.
The App is offered in two versions, the free version includes the print simulator as well as basic printer control (XYZ Movement, Extruder, Heat,..).
The full version offers full printing in addition to the features of the free version.
Over the last couple of month many updates have been published to improve the app, fix bugs and add new features.
Until now, more than 800 people have installed the free version and the full version is used by more than 60 users.
Find more information about Gcode Simulator & Printer on the homepage.
GCode Simulator & Printer Homepage
A Google+ community is available to get news about the App or discuss problems.