Monkeyprint is a pre-processing and print control software for 3d DLP printers published under GPL license. It aims to be an easy to use and complete solution for your own DIY 3d DLP printer build.
It provides features such as:
- model positioning and orientation in the build volume of your printer,
- automatic support generation by user defined parameters,
- hollowing and fill structures and
- print job execution by sending the slices to your projector via HDMI and sending stepper motor commands to your printer via USB/Serial port.
In addition Monkeyprint comes with schematics for the hardware side of your printer. The hardware consists of inexpensive and widely available components. And the best thing: Monkeyprint already includes the firmware needed to breathe some life into your hardware and make it communicate with your PC.
The following article will provide information on how to download, install and use Monkeyprint.
Install Monkeyprint software
The following installation procedure has been tested on a fresh install of Ubuntu 12.04 and 16.04. If you encounter any incompatibilities with the linux distribution of your choice, don’t hesitate to comment.
Installation of dependencies
Monkeyprint depends on the following libraries:
- Python including GTK libraries
- Visualization Toolkit VTK (currently developed with version 5.8 or 5.10)
- OpenCV (version 2.3 or 2.4)
- Git for downloading and updating the code
- avrdude for uploading the firmware to the Arduino
If you are running Ubuntu or a similar Debian-based distro you can install these dependencies by executing the following command in your terminal.
For Ubuntu 12.04:
sudo apt-get install
libvtk5.8 libopencv-core2.4 python2.7 python-vtk python-gtkglext1 python-numpy python-opencv python-imaging python-scipy python-serial python-zmq avrdude
For Ubuntu 16.04:
sudo apt-get install
libvtk5.10 libopencv-core2.4v5 python2.7 python-vtk python-gtkglext1 python-numpy python-opencv python-imaging python-scipy python-serial python-zmq avrdude
After the installation of dependencies has finished it is time to download Monkeyprint itself. Navigate to the directory you want Monkeyprint to be installed in and simply run this in your terminal to download from Github:
git clone git://github.com/robotsinthesun/monkeyprint.git -b release
To start the program, navigate to your Monkeyprint directory:
Now run the following command:
Set up your hardware
Before you can use Monkeyprint, you need to set up your hardware. You will need the following components:
- 1 x Arduino Pro Micro micro controller board
- 2 x Pololu DRV8825 stepper driver boards
- 1 x LM2596 step down converter board
- Some small components (refer to the schematics below)
Once you have downloaded Monkeyprint from Github, you can find the schematics drawn in Eagle 6 in the hardware folder.
THE FOLLOWING INFO IS OUTDATED.
MORE INFO ON THE SETUP PROCESS SOON
Set-Up Monkeyprint controls a DLP printer in two respects: it sends the slice images to the projector and the stepper motor commands to a micro controller. For this to work, you need to meet the following requirements: The projector needs to be connected to your PC and it has the be set up to expand your desktop. You need to have a microcontroller (I use an Atmel AVR AtMega32U4) that is able to control the stepper motors for vat tilt and build platform movement. I will soon post my code for the stepper motor control. The set-up currently takes place in the file printSettings.py and serialCommunication.py (this will be working via the GUI soon). Open printSettings.py with your preferred text editor and change the parameters to your needs.
The first is your build volume size in millimeters (width, depth, height).
self.buildVolumeSize = [192, 108, 300] # [mm]
Next are the projector settings:
projectorSizeXY = [1920, 1080] # [px]
self.projectorPositionXY = [1280, 0]
The first is the resolution of your projector, the second is the position of the projector relative to your main screen. This is basically the width of your main screen. As a last thing, change the line
self.stepsPerMm = 100
to the number of steps your build platform stepper has to make in order to rise the build platform by one 1 mm. Next, open serialCommunication.py. Here, you can modifiy the serial port your stepper controller is connected to as well as the commands that are sent to it during a print. The commands are simple strings like “tilt” or “buildUp” or “buildHome” for the various functions. You can modify these if needed. However, I will soon publish the code for the stepper controller as well, so there should no longer be a need for any changes here. The program should become easier to set up within the next months as I will be starting to build my next printer and improve the software along with that. If you experience any problems or have questions or suggestions, please comment.