2011-06-09 14:01:23 +00:00
|
|
|
This is a python-based host software for reprap printers, in various forms.
|
2011-05-10 07:59:28 +00:00
|
|
|
|
2011-06-09 14:01:23 +00:00
|
|
|
Printrun consists of printcore, pronsole and pronterface, and a small collection of helpful scripts.
|
2011-05-10 07:59:28 +00:00
|
|
|
|
2011-06-09 14:01:23 +00:00
|
|
|
printcore.py is a library that makes writing reprap hosts easy
|
|
|
|
pronsole.py is an interactive command-line host software with tabcompletion goodness
|
|
|
|
pronterface.py is a graphical host software with the same functionality as pronsole
|
2011-06-13 07:09:29 +00:00
|
|
|
INSTALLING DEPENDENCIES
|
|
|
|
|
|
|
|
On Windows, download the following:
|
|
|
|
http://python.org/ftp/python/2.7.2/python-2.7.2.msi
|
|
|
|
http://pypi.python.org/packages/any/p/pyserial/pyserial-2.5.win32.exe
|
|
|
|
http://downloads.sourceforge.net/wxpython/wxPython2.8-win32-unicode-2.8.12.0-py27.exe
|
|
|
|
http://launchpad.net/pyreadline/trunk/1.7/+download/pyreadline-1.7.win32.exe
|
|
|
|
|
|
|
|
On Ubuntu/debian, do:
|
|
|
|
apt-get install python-serial python-wxgtk2.8
|
|
|
|
|
|
|
|
On Mac OS X, download and install:
|
|
|
|
http://downloads.sourceforge.net/wxpython/wxPython2.8-osx-unicode-2.8.12.0-universal-py2.6.dmg
|
|
|
|
Grab the source for pyserial from http://pypi.python.org/packages/source/p/pyserial/pyserial-2.5.tar.gz
|
|
|
|
Unzip pyserial to a folder. Then, in a terminal, change to the folder you unzipped to, then type in:
|
|
|
|
defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
|
2011-06-19 22:25:52 +00:00
|
|
|
|
|
|
|
Alternatively, you can run python in 32 bit mode by setting the following environment variable before running:
|
|
|
|
export VERSIONER_PYTHON_PREFER_32_BIT=yes
|
|
|
|
|
2011-06-13 07:09:29 +00:00
|
|
|
sudo python setup.py install
|
|
|
|
Then repeat the same with http://launchpad.net/pyreadline/trunk/1.7/+download/pyreadline-1.7.zip
|
2011-06-09 14:01:23 +00:00
|
|
|
|
|
|
|
USING PRONTERFACE
|
|
|
|
|
|
|
|
To use pronterface, you need:
|
|
|
|
python (ideally 2.6.x or 2.7.x),
|
|
|
|
pyserial (or python-serial on ubuntu/debian),
|
|
|
|
pyreadline (not needed on Linux) and
|
|
|
|
wxPython
|
|
|
|
|
|
|
|
Download and install the above, and start pronterface.py
|
|
|
|
Select the port name you are using from the first drop-down, select your baud rate, and hit connect.
|
|
|
|
Load an STL (see the note on skeinforge below) or GCODE file, and you can upload it to SD or print it directly.
|
|
|
|
The "monitor printer" function, when enabled, checks the printer state (temperatures, SD print progress) every 3 seconds.
|
|
|
|
The command box recognizes all pronsole commands, but has no tabcompletion.
|
|
|
|
|
|
|
|
If you want to load stl files, you need to put a version of skeinforge (doesn't matter which one) in a folder called "skeinforge".
|
|
|
|
The "skeinforge" folder must be in the same folder as pronterface.py
|
|
|
|
|
|
|
|
USING PRONSOLE
|
|
|
|
|
|
|
|
To use pronsole, you need:
|
|
|
|
python (ideally 2.6.x or 2.7.x),
|
|
|
|
pyserial (or python-serial on ubuntu/debian) and
|
|
|
|
pyreadline (not needed on Linux)
|
|
|
|
|
|
|
|
Start pronsole and you will be greeted with a command prompt. Type help to view the available commands.
|
|
|
|
All commands have internal help, which you can access by typing "help commandname", for example "help connect"
|
|
|
|
|
|
|
|
If you want to load stl files, you need to put a version of skeinforge (doesn't matter which one) in a folder called "skeinforge".
|
|
|
|
The "skeinforge" folder must be in the same folder as pronsole.py
|
|
|
|
|
|
|
|
USING PRINTCORE:
|
|
|
|
|
|
|
|
To use printcore you need python (ideally 2.6.x or 2.7.x) and pyserial (or python-serial on ubuntu/debian)
|
|
|
|
See pronsole for an example of a full-featured host, the bottom of printcore.py for a simple command-line
|
|
|
|
sender, or the following code example:
|
2011-05-10 07:59:28 +00:00
|
|
|
|
|
|
|
p=printcore('/dev/ttyUSB0',115200)
|
|
|
|
p.startprint(data) # data is an array of gcode lines
|
|
|
|
p.send_now("M105") # sends M105 as soon as possible
|
|
|
|
p.pause()
|
|
|
|
p.resume()
|
|
|
|
p.disconnect()
|
|
|
|
|