Team:TU Darmstadt/Project/Tech/Software

Engineering - Software results


3D printer scheme
Figure 1 - Printer setup with necessary components

The principal setup of the 3D printer is shown in Figure 1. Its software components are explained in the following section.

As heart piecoe of the 3D Printer a RaspberryPi is used. Where the entire software, the one running on the RaspberryPi as well as the client software has been developed by our team. It is available on GitHub. Although, 3D printer software already exists for Arduino systems we chose the RaspberryPi with its integrated Python support with the following main points of reasoning:

  • The available software for this setup only works on Arduino systems, is not open source and seemed to be overly cluttered with functionality we do not need.
  • A RaspberryPi offers Wi-Fi and native video output via HDMI which are both important for using a beamer and having a stand-alone printer, comparable with commercial products.
  • The RaspberryPi combined with the Python programming language provides a relatively poor timing. This is relevant concerning the motion of the linear guiding, but is of no importance due to the relatively long exposure times (≅ 20 s) of the resin.

The software is released as Open Source software. It is written in HTML and Python and is optimized for SLA (Stereolithography) printing. It offers no FDM (Fused deposition modelling) support as it is not necessary for our printer and keeps the interface simple and easy-to-use. For details on SLA and DLP please see the Introduction on the Engineering main page.

The software is divided into two parts: one part running on the RaspberryPi and one part running on a client device. The client software is platform independent and runs on Windows, Mac OS and Linux. If a Python interpreter is provided it could also run on Android devices although this was not tested so far. This is achieved by using two Interpreter languages and avoiding platform specific code. The software can load .stl files containing 3D models. So far, the .stl file type is the standard file type used in industrial 3D printing. When loaded, the software shows the model in a 3D viewer. Rotation and zooming is provided via buttons in the user interface. Furthermore, various job-specific settings can be selected. When a job is submitted, the software automatically slices the 3D model in layers and sends the slices along with the printing settings to the printer using a wireless connection. The printing progress can be read off from a progress window.

The printer software is a standalone software running on the RaspberryPi. Until now (2015/17/09, 16:40PM) we only found one other project developing a SLA printing software running on a RaspberryPi. The most software so far is available for Arduino systems. As our software is a standalone application, the user only has to connect its client software to the printer via a wireless connection and submit the printing job. After this, the user can disconnect without the printing job being cancelled. Apart from the progress window in the client software, printing progress information can also be obtained via a web interface running in a common browser. Manual printer control is allowed using a common SNES controller connected to the RaspberryPi via USB.