
A Smart 3D Printer Control and Processing System
Overview
SmartPrint3D is a "smart" 3D printing control and processing platform. Our first prototype 3D printer controller uses a Minnowboard Max, interfaced to a RepRap Arduino Mega Polulo Shield (RAMPS). We have tested our controller on a Printrbot Simple Metal, by replacing the original Printrboard controller. The platform uses four Pololu 4988 Stepper Motor drivers and an ADS7828 8-channel 12-bit I2C analog-to-digital converter (ADC), to monitor extruder temperature readings.The Minnowboard Max provides the processing capabilities of the printer. Unlike many low-cost traditional 3D printers, which use Arduino Mega-based controllers, ours uses a multicore x86 platform capable of supporting a separation kernel such as Quest-V. This means the printer is able to operate without being tethered to a PC via a serial link. Instead, it is possible for the printer to operate like a smart Internet-of-Thing (IoT) device, whereby service requests are received via an on-board web server. The server can then run verification tools to ensure the print request is well-formed and will yield a valid print object. The G-code interpretation and real-time printer control for an active job can proceed in parallel, and without interference, from incoming jobs from the Internet.
This project serves as a testbed for an emerging class of smart IoT devices, for use in manufacturing and other areas such as automation and real-time control.
Thus far we have ported the popular Marlin 3D printing firmware to run as a Linux application. We leverage the Intel IoT Devkit and the mraa library for various tasks including I2C communication with the ADC.
The next step is to port Marlin to Quest/Qduino for improved real-time control and space-time isolation from Internet requests.
Prototype Controller Circuit
