Chiplotle: Difference between revisions

From XPUB & Lens-Based wiki
No edit summary
 
(19 intermediate revisions by 3 users not shown)
Line 8: Line 8:
* Main web page: http://sites.music.columbia.edu/cmc/chiplotle/
* Main web page: http://sites.music.columbia.edu/cmc/chiplotle/
* Documentation: https://chiplotle.readthedocs.io/en/latest/index.html
* Documentation: https://chiplotle.readthedocs.io/en/latest/index.html
* Manual: http://sites.music.columbia.edu/cmc/chiplotle/manual/chapters/tutorial/intro.html
* More documentation: http://sites.music.columbia.edu/cmc/chiplotle/manual/chapters/tutorial/intro.html




Line 33: Line 33:
  $ chiplotle3
  $ chiplotle3


And send hpgl file to plotter:
It should automatically detect the plotter...
 
If it doesn't, you can try to turn the plotter on and off, or load paper.
 
Once the plotter is detected, you can send a HPGL file to plotter:


  plotter.write_file('FILENAME.hpgl')
  plotter.write_file('FILENAME.hpgl')


When you're done, close chiplotle:
When you're done, close chiplotle with:


  exit()
  exit()
Line 68: Line 72:
On '''Windows''':
On '''Windows''':


  $ py -m venv FOLDERNAME
  py -m venv FOLDERNAME


For example:  
For example:  
Line 82: Line 86:
On '''Windows''' (using Powershell):
On '''Windows''' (using Powershell):


  plotter-venv\Scripts\Activate.ps1
  FOLDERNAME\Scripts\Activate.ps1


You can exit again by writing <code>deactivate</code>.
You can exit again by writing <code>deactivate</code>.
Line 94: Line 98:
====Run Chiplotle====
====Run Chiplotle====


$ chiplotle3
See [[#Use]].


It should find the plotter automatically. You can check if it did so:
----------------
 
> plotter
 
====Send a HPGL file to the plotter====
 
> plotter.write_file('FILENAME.hpgl')


===Errors===
===Errors===
Line 116: Line 114:
====Windows: "port" not found (?)====
====Windows: "port" not found (?)====


?
File "C:\Users\aless\OneDrive\Desktop\PENPLOTTER_venv\lib\site-packages\serial\serialutil.py", line 268, in port
    raise ValueError('"port" must be None or a string, not {}'.format(type(port)))
ValueError: "port" must be None or a string, not <class 'int'>
 
Alessia and Manetta spend an hour on this error on Nov 13th 2023, but did not figure it out. There is little documentation on using Chiplotle on Windows unfortunately. A next step could be do open <code>serialutil.py</code> to see if the error can be resolved directly there.
 
It's the next day now, we looked into this again and solved it!
 
'''First''', edit your Chiplotle config file, which is stored in your home folder, which you can edit on Linux/Mac with:
 
$ nano ~/.chiplotle/config.py
 
or on Windows:
 
> notepad C:\Users\USERNAME\.chiplotle\config.py
 
Change this line:
 
serial_port_to_plotter_map = None
 
into:
 
serial_port_to_plotter_map = {'COM4' : 'HP7475A'}
 
or use another plotter model number.
 
'''Secondly''', you need to also edit a Python script within the Chiplotle library, which you can open on Linux/Mac with:
 
$ nano PATH-TO-YOUR-VENV/chiplotle3/src/chiplotle3/plotters/baseplotter.py
 
or on Windows:
 
> notepad PATH-TO-YOUR-VENV\chiplotle3\src\chiplotle3\plotters\baseplotter.py
 
Then edit the following on line 196:
 
@property
def _buffer_space(self):
    self._serial_port.flushInput()
    self._serial_port.write(self._hpgl.B().format.encode())
    bs = self._read_port()
    return int(bs)
 
and just change the last line:
 
@property
def _buffer_space(self):
    self._serial_port.flushInput()
    self._serial_port.write(self._hpgl.B().format.encode())
    bs = self._read_port()
    return int(128)
 
Now Chiplotle should work.
 
====Raspberry Pi====
 
Numpy error:
 
libopenblas.so.0: cannot open shared object file: No such file or directory
 
Install the missing library:
 
$ sudo apt install libopenblas-dev
 
====Debian / Ubuntu / Raspbian: "Chiplotle3" command not found====
After running <code>chiplotle</code> after intalling it through <code> pip3 install chiplotle3</code>, you might be prompted with an error that the command is not found. This might be caused due to a PATH problem. <code>pip</code> installs into <code>~/.local/bin</code>, which is not part of the default PATH on Debain based operating systems.
 
Check your path:
> echo $PATH


Add to path:
> nano /.bashrc
 
[scroll to the bottom and add the line:]
export PATH="$HOME/.local/bin:$PATH"
restart your shell
<noinclude>
<noinclude>
==See also==
==See also==

Latest revision as of 21:07, 30 September 2024

Chiplotle is an HPGL plotter driver that implements and extends the HPGL (Hewlett-Packard Graphics Language) plotter control language. It provides direct control of your HPGL-aware hardware via a standard usb<->serial port interface. Chiplotle is also a general purpose vector drawing library with functions for creating and transforming shapes, which can then be sent directly to your HPGL plotter for printing.

Chiplotle is written and maintained by Víctor Adán and Douglas Repetto.


Use

Connect to plotter to computer with usb.

Start the plotter.

Wait! until the plotter is fully running.

Activate the venv you made.

In Linux:

$ source FOLDERNAME/bin/activate

In Windows (using Powershell):

$ FOLDERNAME\Scripts\Activate.ps1

Now you can start chiplotle:

$ chiplotle3

It should automatically detect the plotter...

If it doesn't, you can try to turn the plotter on and off, or load paper.

Once the plotter is detected, you can send a HPGL file to plotter:

plotter.write_file('FILENAME.hpgl')

When you're done, close chiplotle with:

exit()

Install

Install pip, venv

First install pip and the virtual environment python module, if you don't have them yet.

On Linux:

$ sudo apt install python3-pip
$ sudo apt install python3-venv

On Mac and Windows:

follow the instructions at https://www.python.org/.

Make a virtual environment

On Linux and Mac:

$ python3 -m venv FOLDERNAME

For example:

$ python3 -m venv plotter-venv

On Windows:

py -m venv FOLDERNAME

For example:

$ py -m venv plotter-venv

Activate the virtual environment

On Linux and Mac:

$ source FOLDERNAME/bin/activate

On Windows (using Powershell):

FOLDERNAME\Scripts\Activate.ps1

You can exit again by writing deactivate.

Install Chiplotle

Install Chiplotle inside this virtual environment (the Python library to speak HPGL to the plotter):

$ pip install Chiplotle3

Run Chiplotle

See #Use.


Errors

Windows: Script Execution Policy

See: https://www.makeuseof.com/enable-script-execution-policy-windows-powershell/

Mac: ImportError: module not found "imp"

?

Windows: "port" not found (?)

File "C:\Users\aless\OneDrive\Desktop\PENPLOTTER_venv\lib\site-packages\serial\serialutil.py", line 268, in port
   raise ValueError('"port" must be None or a string, not {}'.format(type(port)))
ValueError: "port" must be None or a string, not <class 'int'>

Alessia and Manetta spend an hour on this error on Nov 13th 2023, but did not figure it out. There is little documentation on using Chiplotle on Windows unfortunately. A next step could be do open serialutil.py to see if the error can be resolved directly there.

It's the next day now, we looked into this again and solved it!

First, edit your Chiplotle config file, which is stored in your home folder, which you can edit on Linux/Mac with:

$ nano ~/.chiplotle/config.py

or on Windows:

> notepad C:\Users\USERNAME\.chiplotle\config.py

Change this line:

serial_port_to_plotter_map = None

into:

serial_port_to_plotter_map = {'COM4' : 'HP7475A'}

or use another plotter model number.

Secondly, you need to also edit a Python script within the Chiplotle library, which you can open on Linux/Mac with:

$ nano PATH-TO-YOUR-VENV/chiplotle3/src/chiplotle3/plotters/baseplotter.py

or on Windows:

> notepad PATH-TO-YOUR-VENV\chiplotle3\src\chiplotle3\plotters\baseplotter.py

Then edit the following on line 196:

@property
def _buffer_space(self):
    self._serial_port.flushInput()
    self._serial_port.write(self._hpgl.B().format.encode())
    bs = self._read_port()
    return int(bs)

and just change the last line:

@property
def _buffer_space(self):
    self._serial_port.flushInput()
    self._serial_port.write(self._hpgl.B().format.encode())
    bs = self._read_port()
    return int(128)

Now Chiplotle should work.

Raspberry Pi

Numpy error:

libopenblas.so.0: cannot open shared object file: No such file or directory

Install the missing library:

$ sudo apt install libopenblas-dev

Debian / Ubuntu / Raspbian: "Chiplotle3" command not found

After running chiplotle after intalling it through pip3 install chiplotle3, you might be prompted with an error that the command is not found. This might be caused due to a PATH problem. pip installs into ~/.local/bin, which is not part of the default PATH on Debain based operating systems.

Check your path:

> echo $PATH

Add to path:

> nano /.bashrc
 
[scroll to the bottom and add the line:]
export PATH="$HOME/.local/bin:$PATH"

restart your shell

See also