Inkscape and Plotters, the 2nd   December 26th, 2013

After my last post about integrating plotter functionality into Inkscape quite a lot of time has passed, so here is an update:

  • Development is finished!
  • The plotter functionality was separated from the HPGL export, it is now an extension
  • The HPGL export still exists and has the same functionality as the extension
  • A HPGL import was added
  • The following command languages are now supported: HPGL, DMPL and KNK Zing (HPGL variant)
  • The interface has changed to a tabbed one, it is much more lucid now
  • New features: Flow control settings, debug information, precut functionality, pen force + speed settings
  • The “In-Program” documentation is much better, all texts are rewritten and new info texts were added

I wanted to wrap up things nicely, which i think is a success.

See for your self:



The new plotter menu item in the extensions menu



The onnection settings tab



The plotter settings tab



The plot features tab


To use the extension just download Inkscape.


Ideas for new features / needed changes (Thanks for the suggestions added by users!):

  • Scale Overcut and Tool offset correction separate for each axis, atm it is done by a common scale factor. some thought has to be put into this.
  • Change the cutting order from smallest to biggest parts to avoid stripped off parts of small text characters. This could impact CPU performance.
  • Add support for multiple pens for old pen plotters on export (The import already can import multiple pens correctly). Since Inkscape has no support for setting such options to a path a “creative” solution has to be found.
  • Maybe add text fields to enable the user to add commands at multiple places in the data stream without changing any code. Is this really useful? – Done, will be available with Inkscape 0.92
  • Preview functionality. The extension is prepared for it, but it needs support from the Inkscape side (C/C++) i cannot provide. Help from a C++ programmer would be greatly appreciated!
  • “Test”-plotting a document either via selecting pen 0 or by only using PU commands. Do people really need this? – This can be achieved by selecting pen 0 in the settings already.
  • Maybe add support for G-Code controlled DIY Plotters (GRBL controller). This may be out of scope of this extension. – Please use the existing Gcodetools extension for this. It would be out of scope of this extension anyway.
  • Make use of a measurement feature of Roland plotters to determine if the used workpiece is big enough for the plot before starting the plot. Since i don’t have a Roland plotter i need someone to test my code.


Have fun and be productive!


P.s.: I am always eager to see that the extension is put to good use, so if you want to share pictures of your finished product send them to sebi{รคt} and i will add them here:


From Thomas Seifert:

Tags: , , , , , , , , , , , ,
This entry was posted on Thursday, December 26th, 2013 at 15:37 and is filed under Plugins, Programming. You can follow any responses to this entry through the RSS 2.0 feed.You can leave a response, or trackback from your own site.

100 Responses

December 29th, 2013 at 22:36
Thomas Seifert Says:

thank you for the update on the plotter extension. you mentioned the Inkscape download. Does it already have the plotter plugin installed or is there a separate download for the plugin? Since I am already working with a plugin of an older date, I would appreciate if i could get the latest release. Thanks a lot.

December 29th, 2013 at 23:01
TimeWaster Says:

The plotter extension is an official part of inkscape, so downloading the newest inkscape is sufficient. r12855 is the newest revision atm.

since i added support for speed and force settings in a later revision for which no development version exists yet, you can also download this zip and unzip it over your existing inkscape development version into inkscape/share/extensions. (i will remove this when a newer development version exist)

December 29th, 2013 at 23:08
Thomas Seifert Says:

Alright, great. Thank you for your fantastic work.

December 29th, 2013 at 23:15
TimeWaster Says:

You are welcome!

December 29th, 2013 at 23:41
Thomas Seifert Says:

some addition fyi:
1. the link “download this zip” doesn’t work here.
2. the link to the inkscape development edition r12855 can be given directly as

[removed link]

or even

[removed link]

This saves some time searching.

Happy New Year!

December 30th, 2013 at 20:36
TimeWaster Says:

i fixed the link, thanx for your remark.

about the inkscape download link: i seldom post links with id’s in it because you never know if these id’s are user dependent and will not work for others.

December 30th, 2013 at 21:58
Thomas Seifert Says:

Ok, no probs

January 17th, 2014 at 18:15
Mitch Says:

Amazing work thank you.
I’m using it to send to a Vision Series II Control connected to a Phoenix 1212 Engraver table. a couple of things one would be an auto offset of selection from edge of page size. if i setup a 2×3 plate as my page size and center my text it starts cutting at the zero point on the cutting table… (i’m going to have to double check i could not get manual offset to work[more testing])
also as an advanced function it would be nice to add commands to the job (before in; and after)
if you need pictures let me know i’ll take some screen shots and pictres of the cutting…

February 1st, 2014 at 17:17
TimeWaster Says:

i was thinking about your suggestions and decided to add the option to switch off the auto alignment.

unfortunately doing so is a bit complicated (since you can rotate the drawing the zero point changes depending on the rotation), and it will be even more complicated to tell the user what is happening.

inkscape is in a pre-freeze phase right now and i doubt that i will be able to finish it in time for the code freeze, so it will most likely not be included in the upcoming 0.91 release.

February 1st, 2014 at 17:28
Your (Cutting) Plotter and Inkscape | TimeWaster's Place Says:

[…] New post with updated informations here […]

February 2nd, 2014 at 20:31
TimeWaster Says:

the option to switch off the auto alignment is added.

February 6th, 2014 at 03:59
Ward De Ridder Says:

I just compiled the new inkscape version, and I have to say that this functionality really is improved.
It’s a Roland DPX, so I am also very happy with the center 0.

The only thing I still miss is the possibility to use multiple colors, since I have multiple pens. Is there any chance you can add something like this?

February 6th, 2014 at 15:47
TimeWaster Says:

i think about adding multiple pen functionality since i started this extension.

the problem is that inkscape is not designed for plotter applications, so there is no support for multiple pens, colors or whatever.

the only chance to implement this is by taking another functionality and (miss)using it for the plotter extension:
– using layers for pens (the 3. layer is pen 3)
– all similar path colors are getting assigned to one pen
– let the user “flag” somehow what he wants to have for which pen.

all this possibilities are workarounds, and without a preview (atm impossible to use, but the code is prepared once it is), how can the user know what result he has to expect?

maybe you have a better idea, but for the moment being i decided that this feature is too dangerous to implement.

February 7th, 2014 at 00:58
Ward De Ridder Says:

There are a couple of lasercutters that can use inkscape as well (they use printer drivers to export).

The idea there is that you assign a very specific color to a very specific cut or engraving style.

You could for example have an advanced option to assign colors to pens. Very exact colors. So if you say PEN1: #FF0000 than #FF0001 won’t work.
This one works fine for lasercutters, so I guess it should work for pen plotters as well.

February 16th, 2014 at 22:27
TimeWaster Says:

for everyones interest: i just moved the extension from its own “Plotter” submenu to the “Export” submenu.

February 17th, 2014 at 03:26
Adam Says:

I have a Zing and would love to get this working fully with it. I’d like to support the laser as well as the other functions like jogging and knife-point modes. I’d also like to nail down what units the force and speed are in(they have been abstracted from actual units) I can’t figure out what baud rate or handshaking I should use for my Zing. Where did you get the specs for the file format? I’d love to know more!

February 17th, 2014 at 11:56
TimeWaster Says:

hi adam,

i cannot say much about the force and speed settings, i think it would make sense to ask the manufacturer about that settings.

usually the baud rate is 9600 and the flow control is “software”, but i could be wrong.

a user mailed me the specs for the zing plotter language (hpgl variant), i don’t know where he got it from.

about the zing specific features:
to keep it short, i will not implement them.
the long story: the goal of this extension is to enable the user to plot without any hassle or deeper knowledge (other than the plotter settings) on a big variety of plotters. since the features you mentioned are specific to one plotter only it makes no sense to implement them for this extension. you can plot on a zing with this extension without using that features, so the goal is reached. sorry.

February 17th, 2014 at 15:48
Adam Says:

I completely understand that the purpose of this extension is to simplify from something as complex as InkCut. I’m just thinking of the fact that there isn’t an open source Zing driver of any sort. In fact, there seems to only be one software package that interfaces with the Zing. I will fiddle with my copy of your extension and try to implement all the features for myself. I’m interested in using more than just inkscape but this plugin gives me a great starting point. Thanks!

February 17th, 2014 at 16:03
TimeWaster Says:

you can just use the in the share/extensions directory to implement your own extension on top of it. also take a look into the extension on how to convert HPGL to KNK Zing.

but since using a laser guided alignment system needs direct user feedback which the inkscape extension system does not allow you would need something like GTK (like inkcut uses), which will not be an easy task to implement.

if you need any more help let me know.

March 5th, 2014 at 08:29
Pete Jenner Says:

Hello TimeWaster,

Firstly congratulations on your fine work on the plotter module for Inkscape. Unfortunately I can’t use it as an extension because for reasons too boring to list here, I can’t use the serial interface. I can however save the files to hpgl. I have a question for you but first some background.

I have a Roland Camm-1 CM-24 vinyl cutter which I am trying to get working under Linux (Fedora 20). I’m not making signs or decals, but am cutting out templates for musical instrument parts.

At this point I must point out that I’m not a programmer and am fairly new to Linux.

I have tried the Inkcut plugin for Inkscape but due to an issue which I assume has something to do with the way cups sends data to the parallel port, the cutter always stops before the end of the file with the blade in the down position. My solution is to copy the output of Inkcut to a file or save via the Inkscape ‘file/save as’ menu and cat the resulting files directly to the cutter using:
#cat [filename] > /dev/usb/lp0

I have tried concatenating the the hpgl code direct to the cutter but there seems to be a limit on how much data can be sent in one chunk.

Here are my question. What version of hpgl are you implementing with your potter module?
I notice that the terminators after the x,y co-ordinates have been stripped out along with the PD prefixes. This results in strange behaviour from the CM-24. If I cut a shape i.e. a circle using the code output from Inkcut, the cutter cuts it in one smooth motion but when I use the Inkscape hpgl output with the terminators and PDs removed, the cutter head stops after every pair of coordinates resulting in a very jittery cutting operation reminscent of my friends old Stika machine. The cut lines end up looking very rough indeed.

The hpgl output from your code looks similar to this:


Whereas the output of Inkcut would be more like:


I believe old cutters like mine are designed to use Camm-gl.
1)Have you got a solution?
2)Should I raise this as an Inkscape bug?

Here is some info I pulled from a windows .mst file.

[Roland CM-24 (Rotate)]

Kind regards,

Pete Jenner

March 5th, 2014 at 16:07
TimeWaster Says:

hi pete,

lpt connection: unfortunately i cannot support printer connections because the windows and linux implementations are so different that it would take years for me to implement it for both. there is one library for lpt but it is abandoned and not usable.
i would suggest buying a usb-to-serial adapter, with it you should be able to use the plotter extension directly.

blade stuck: i found that my plotter did the same thing with the blade stuck in down position unless i read back 2 bytes from the serial connection after sending the data. i have no idea why that happens, but maybe you could try read from lpt after sending (i dont know how to do that, unfortunately).

amount of data: old plotters often have a very small amount of buffer available, that is why the flow control setting in my extension is so important, with it the plotter can tell the computer to stop sending data when the buffer is full, and since you send the data via console there is no such control available. (maybe you can specify it as a prameter?)

the rugged plotting: it seems that your plotter has a tool offset correction build in, in chapter “3-2 DIP Switch Settings” there is a dip switch where you can set the tool offset. please try to deactivate the tool offset correction in inkscape and tell me if it worked, since a double offset correction can have unforeseen consequences. (you can see for yourself if you save as hpgl, open the resulting .hpgl file in inkscape, save it again as hpgl und open that again. looks funny actually.)

command structure: every CAMM-GL documentation i can find says that the short writing i use is allowed:
PD Pen Down PD x1, y1 (, x2, y2……., xn, yn) ;
but if the deactivation of the offset correction is fruitless i am happy to give the structure you suggested a try and send you a version that uses the bigger structure.

hpgl version: i use a very stripped down subset of hpgl to ensure maximum compatibility. i just use “IN, SP, FS, VS, PU and PD”. one could say it is “HP/GL 1 Simple” if you want.

your plotter actually supports DMPL as a language also, so you could also try to use that instead of HPGL.

i hope i could help you!

March 6th, 2014 at 19:21
Pete Jenner Says:

Thankyou, you are absolutely correct Timewaster. The blade offset is what was causing the jitter. The file is about 30 times smaller without the offset too. The Roland has no off switch for offset. Just a choice between 0.25 and 0.5. The short way of writing the co-ords is now working.

There may be a few commands missing that I should be using though because although the cutter now cuts the whole design, the error light always flashes at the end of the job.

I’ve been trying to find a way of reading the data sent to the lpt port but have had no luck.

Thanks for telling me the cutter supports dmpl – I didn’t realise.

I can’t use a serial connection because every time I connect the cutter to the computer using a usb/serial cable, the cutter freezes in both Windows and Linux. I have tried two different cables. I suspect the Prolific 2032 chip may be the culprit. I remember reading that it is not supported in cups.

March 6th, 2014 at 19:41
TimeWaster Says:

i’m glad i could help!

reading from the connection: yeah well, it was just a shot in the dark anyway.

serial connection: yeah, i would always suspect the chip first. maybe it is worthwhile buying a new one.

may i ask you about the settings you use for your plotter (dpi, rotation and so forth)? i want to create a public list with compatible plotters and could use the data.

March 6th, 2014 at 20:06
Pete Jenner Says:

I’m not too sure how much help I can be there because I’ve never paid much attention to the settings. I used to use Sign Go before I lost it. I just used default settings. On the latest job I used your dpi, pen force and speed settings. On the cutter I manually set the downforce with the slider. Once it’s set I usually put a bit of tape over the slider to prevent it accidentally being changed. The dip switches are all set to off except #6 (Rotate) which is in the on position. Depending on the job, I sometimes override rotate in the software. Port settings are standard 8 data bits, 1 stop bit, no parity and I have the baud set to 9600. The other switches are set to ‘Material weight:light and Material size:roll.

March 18th, 2014 at 21:10
Brian Aday Says:

TimeWaster, you ROCK! Works like a charm, save one little caveat.

If you click the ‘Show Debug’ checkbox it doesn’t send the commands to the COM port.

Yes, I know it is in your ‘tool tip’ text but apparently genius users like me don’t actually read those things. :/

Seriously, thanks for this add on. I have 5 plotters I want to put back in service using Windows machines and this is the perfect solution.

March 18th, 2014 at 21:21
Brian Aday Says:

Oops, spoke too soon. Found an anomaly.

The HP 7470 I have plots the full plot as expected, goes to 0,0 and starts flashing an error. If I debug I get HPGL text:


If I create a file and redirect it to the com port outside Inkscape, it behaves identically, giving me the same error.

You may also want to consider adding an SP0; as the final command to stow the pen.

March 19th, 2014 at 00:09
TimeWaster Says:

hi brian,

a real beauty you have there! i even found a manual how to connect it to an Apple II computer, which made me giggle like a child ^^

it seems to have all kinds of dip switches, can you please verify that they are set right first?

and did i understood that right that the error happens after the plot went alright? if yes can you please add the SP0; command to the end of the hpgl data and try sending that to your plotter? it could be that the hp is expecting that command to stow away the pen.

about the debug option: i know that people don’t read instructions, but letting the debug printout plot at the same time could lead to more confusion.

March 19th, 2014 at 02:34
Brian Aday Says:

Glad to be here! I am kind of a plotter hardware geek. I once wrote a plot file viewer in basic, if you can believe that. ๐Ÿ˜€ I also have a 7475A and a 7570A (DraftPro). I am willing to test on my hardware if it would be helpful.

The switch settings are good, verified using putty and redirecting from a command prompt using the command “type plot.txt > COM4″ (the file was the string I posted) the ‘Mode’ command also shows everything is good.

I did some research. I found some old HPGL test files online and it seems they all end with:


Testing showed from a putty serial terminal I can clear the error with the last IN; SP without a pen argument stows the pen the same as SP0;. (In the example files it is just SP;, so I assume that was standard). If I had to guess, I would say that last IN; tells the plotter the file has all been transferred.

The manual is a bit nebulous about what a blinking error light means on this model. They infer sometimes it means the buffer is full (normal flow control I assume), sometimes a hardware error (solid, like when you lift the paper pinch roller), and sometimes a serial issue (continuous blinking). I have been able to make it blink error by giving it a bad command. My reference files came from : .

March 19th, 2014 at 11:03
TimeWaster Says:

hi brian,

i can believe many things about basic, i once built a scanner out of a dot-matrix printer, a photodiode and the joystick port with basic… worked like a charm ^^

thanx for your reply, i will add these commands to the extension since they should not have an impact on newer plotters.

i didn’t even find a manual for your plotter, only a pdf where most of the content was missing.

March 19th, 2014 at 23:51
TimeWaster Says:

hi brian,

the new cleanup commands are added.

it could take quite a while till the changes show up in a windows build, so just download these files and overwrite them to C:\Program Files (x86)\inkscape\share\extensions

please test if it works for you…

March 20th, 2014 at 00:06
Brian Aday Says:

I can help with plotter manuals!

And the ultimate source…

They have hand written schematics from one of the engineers, how cool is that! The only thing I have yet to find the ‘Service Manual’ for the 7470A.

On the plotter, more testing was able to show the plotter was excepting a maximum of 260 characters. When it hit 261, it errored. If I let it finish plotting the 260 I could send the next 260 without error. So basically flow control wasn’t working, testing ensued.

Long story short, the option to set RTS/CTS in software is setting the RTS Circuit to “Handshake”. (verified with the ‘mode’ command) The machine expects it to be something other than ‘Handshake’. Both ‘On and Off’ worked in testing. When I set the com port to RTS handshake at the command line and send data the plotter flashes errors. I’m guessing this is because the CTS Handshaking is already ‘on’ and it doesn’t know what to do with 2 handshake lines. It seems this didn’t show up on the 7475A, because it has a larger buffer than the files I was sending it!

March 20th, 2014 at 06:47
Brian Aday Says:

Tested! Unfortunately it errored:
Traceback (most recent call last):
File “”, line 227, in
File “E:\Program Files (x86)\Inkscape\share\extensions\”, line 261, in affect
File “”, line 60, in effect
myHpglEncoder = hpgl_encoder.hpglEncoder(self)
File “E:\Program Files (x86)\Inkscape\share\extensions\”, line 105, in __init__
self.viewBoxTransformX = self.docWidth / effect.unittouu(effect.addDocumentUnit(viewBox2[2]))
AttributeError: Plot instance has no attribute ‘addDocumentUnit’

It also doesn’t seem to be setting up the COM port, none of the changes in the GUI are applied. The version I had of the extension had the plot function hanging off the extensions menu rather than export. Do I need to reload a particular version?

March 20th, 2014 at 09:20
TimeWaster Says:

i forgot to include a file, sorry.

i just updated the zip.

that the extension is now under “Export” is correct.

March 21st, 2014 at 21:41
Brian Aday Says:

Success! The software and the plotter work now. There was an error in the table I used to create the cable. Thanks for the help! A lot of people are going to rejoice when this comes out in the regular release!

March 21st, 2014 at 22:10
TimeWaster Says:

so there’s nothing wrong with the flow control? i wanted to take a look at that tomorrow ^^

i’m glad i could help!

if you’re seeing any errors with the new software version please let me know immediately, i changed a couple of things i didn’t test thoroughly enough.

March 21st, 2014 at 23:05
Brian Aday Says:

Apparently not, the cable pin-out was simply incorrect. I used a table for the DB9 to DB25 from a ‘random’ hobby site because I was never able to find a pin-out in the 7470 documentation. The cable is HP Part 24542G. After I discovered the issue and fixed the cable I found a matching pin-out in the manual for the 7570A DraftPro.

The 7470 doesn’t seem to be able to use XON-XOFF flow control but the hardware option works fine so far. I will put it through some tests tonight and see if I can make it error.

You may want to consider adding a button to send a test plot file to the plotter on the configuration page at some point. I saw that option on the Inkcut extension but that only works on Linux. If you do, I would recommend making the HPGL test file large enough to fill the buffer. The Inkcut test file is just a few commands and it wasn’t enough to cause an error on the 7470A.

If you think it is useful I am willing to test your future revisions on my hardware. Thanks again for your work!

March 26th, 2014 at 15:32
Alex Mac Says:


I have a Roland CAMM-1 PNC-1100 which working with LPT connector.

Why LPT connector are not supported?

Is it possible to make it compatible?

Thanks in advance!

March 26th, 2014 at 17:07
Brian Aday Says:

@Alex I did a little research on your cutter, it seems to have both a serial(COM) and an Parallel(LPT) connector. The extension will support your plotter through the COM port. Is it working?

March 27th, 2014 at 17:15
Alex Mac Says:

Thanks for answer!

Yes you have right, I have also serial but even with it it’s not working!

I checked (COM) parameters in machine and computer, all is correct.

Do I need drivers?

I am using a COM cable with 9 pins in both side + adaptator

Connection in my computer:

[image of an 9-pin serial port]


[image of an 25-pin to 9-pin serial adapter]

Thanks for help!

ADMIN: removed the google links.

March 27th, 2014 at 18:10
TimeWaster Says:

no, if you only have a serial connection plugged directly into your computer you don’t need a driver. if you have a serial-to-usb adapter or the serial port in your computer is a pci card you will probably need drivers for it.

if this is not the case and it is still not working, check if you can see the serial port in your device manager, check if the cable is okay, check if the plotter is okay, and finally and most importantly check if you have selected the correct command language. just try HPGL and DMPL alike. your plotter should be able to do both.

March 29th, 2014 at 18:40
DaveK Says:

OK, I’m pretty much a complete Noob at this.

I’m in the process of transitioning from Win XP to Ubuntu, and also looking at getting a vinyl cutter or a “craft” cutter. So I’m facing a pretty steep learning curve.

The Graphtec CE-6000 cutters are pretty high on my consideration list, as their features include both servo-positioning and tangential emulation. Does your plugin support the tangential emulation feature?

On the craft cutter end, since you have covered the KNK Zing, would it also support their KNK MAXX Air?

Thanks for your patience with a Noob!

March 30th, 2014 at 01:40
TimeWaster Says:

well, first of all the extension is also working on windows, in case you find ubuntu too hard to learn.

after reading a bit in the Graphtec CE-6000 manual, it seems that the tangential feature is completely controlled by the plotter, so disabling the tool offset correction in the extension is enough to make it work.

often manufacturers use the same features in their complete line of plotters, so the MAXX should work together with the extension just the same as the Zing does, although i cannot guarantee it, unfortunately there is no technical documentation on the MAXX at all.
please note that the extension does not support features like laser alignment and such. to use these features you have to use the original KNK software.

when i bought my plotter almost 2 years ago i had no idea about all that stuff and what it would lead to either. so there is a learning curve, but it is definitely manageable.

April 10th, 2014 at 22:56
Nichole Says:

must be doing something wrong…
“Inkscape encountered an internal error and will close now.
Automatic backups of unsaved documents were done to the following locations:
C:\Users\Nichole\New document 1.2014_04_10_17_55_45.0.svg”
Hope you can help.

April 11th, 2014 at 21:54
TimeWaster Says:

hm… this sounds like a general problem… can you give me more information?

– what inkscape version do you use?
– on what action (feature) does it happen?
– can you send me the document that crashes?

April 25th, 2014 at 21:20
TimeWaster Says:

since “Alex Mac”, “DaveK” and “Nichole” didn’t answer on my comments i assume everything is now OK on their side.

anyhow it would have been nice of them to answer to give other people starting points / hints for their troubles configuring.

April 28th, 2014 at 12:59
Alex Mac Says:


For me it’s still not working! :(
The plotter doesn’t start.

All setting were checked everything should run normally!

Do you have an idea?!

Thanks in advance.

April 28th, 2014 at 13:11
Nichole Says:

I am so sorry… I just haven’t had time to look at it again. But preemptively thank you for your help.

April 28th, 2014 at 13:13
Peter Jenner Says:

Alex Mac, are you using a USB to serial connector?

April 28th, 2014 at 13:27
Alex Mac Says:

No, I am using

Computer / 9 pin serial(female) to 9 pin serial(male) + special connector to convert 9 pin to 25 pin for machine.

What you recommend me?!

April 28th, 2014 at 14:43
Peter Jenner Says:

I have no further suggestions but would recommend you try different cables.

April 28th, 2014 at 15:26
TimeWaster Says:

@nichole: can you send me the file that crashes inkscape?

@alex mac: i would also bet on the cable or adapter. you could also try to get it run with another software, like inkcut or the manufacturers programm.

May 20th, 2014 at 08:14
Standa Says:


I have found nice project, which implements HPGL language for different plotters written in Python. I think developers of Inkcut should find it very useful.

I am looking forward for Inkscape 0.49 to try out Inkcut with my Aritma Colorgraf 0512 pen plotter.

Best Reagards,

Stanislav Kucera

Czech republic

May 20th, 2014 at 08:51
TimeWaster Says:

Hi Stanislav,

i and my extension, which will be part of Inkscape from v0.91 on, am in no way connected to InkCut or will ever be.

The intention of my extension and InkCut is different in every way, InkCut is aimed at professional use whereas my extension is for amateurs and beginners.

About Chiplotle:
This framework is mostly an abstraction of HPGL and a vector library. Using it makes no sense since i could use maybe 5% of the code included in the framework and would have to implement nearly everything by myself anyway.
Chiplotle is mainly aimed at pen plotters with many different graphical commands, whereas my extension only uses two commands out of that set which is enough to drive all cutting and pen plotters.
Also Chiplotle does not provide any tool offset correction or overcut functionality, but these two features make up nearly 40% of my code.
Also using Chiplotle would actually confine the use of my extension to a smaller set of known plotters, but with my minimalistic approach i can drive nearly every plotter out there.

You can try my extension right now, you don’t have to wait for a new release. Just download an up-to-date “Development version” of Inkscape from the Inkscape website and open the extension from the menu described in the top most picture on this site.

I hope i could help,

June 18th, 2014 at 18:48
Ted Says:

I am trying to use your extension with a roland CM-24 cutter. When I try to plot I get a message saying I need to download pyserial. Do I need to download python as well??

Thanks for your help,

June 18th, 2014 at 20:26
TimeWaster Says:

hi Ted,

you don’t need to install python, it is already bundled with Inkscape. Just follow the instructions exactly.

Please let us know if it worked for you afterwards!

June 20th, 2014 at 13:48
Ted Says:

Thanks! Hopefully I will get a chance to try it this weekend.


June 24th, 2014 at 01:40
Ted Says:

I finally got a chance to try installing pyserial. I extracted the folder and saved it in the inkscape\python\lib folder. I no longer get the message about pyserial. It says plot working. Unfortunately my plotter disagrees. It does nothing. What should I try next?

June 24th, 2014 at 09:20
TimeWaster Says:

well, you should check all the settings in the software and plotter.

that is says “plotting” may show that the connection was established, maybe the plotter just does not understand what is sent to him, you could try different settings for the command language.

it is always helpful to take a look into the plotter’s manual.

June 27th, 2014 at 21:08
Skinnymalink Says:

excellent work! You have saved one Help 360 from becoming obsolete. I’ve only tested with a pen yet but the plotter sprang into action immediately on COM3 using the USB cable. A quick adjustment of the Tool Offset soon gave me accurate corners.
The perfect solution.

June 27th, 2014 at 23:56
TimeWaster Says:

glad to hear! :)

July 1st, 2014 at 01:22
ted Says:


I checked my plotter settings and I believe they are ok. I have a question about the resolution setting in the soft ware. The manual for my Roland CM-24 says the mechanical resolution is 0.05mm/step (0.00197″/step) and the software resolution is 0.025mm/step (0.000984″/step). What should I be using for a setting in your extension? I Have most of the other settings disabled ( speed, blade offset,etc.) because they are handled by dip switches on my plotter. I did realize after reading some earlier posts that my usb to serial cable could be part of my problem. What is the issue with the prolific chipset? Is the problem only with some cables that use it or do I need a new cable? If so what should I get?
I am so close I can taste it! Sadly vinyl doesn’t taste to good!
Thank you for all your help. It is truly appreciated.


July 3rd, 2014 at 00:52
ted Says:

Time waster,

I bought a new cable ( FTDI USB Serial null modemAdapter) and all is well with the world.
I still need to dial in my settings but I am up and running.

Thanks again for your help and for creating this extension!!!! It’s pretty sweet!


July 3rd, 2014 at 18:00
peter Says:

i am using an ioline classic. It starts the plot plots a little ten stops and gives me this error.

Traceback (most recent call last):

File “”, line 227, in


File “C:\Users\user\Desktop\inkscape\share\extensions\”, line 261, in affect


File “”, line 96, in effect


File “”, line 168, in sendHpglToSerial


File “C:\Users\user\Desktop\inkscape\python\Lib\serial\”, line 295, in write

raise writeTimeoutError

serial.serialutil.SerialTimeoutException: Write timeout

July 3rd, 2014 at 20:03
TimeWaster Says:


good to hear!

why the manual propagates two different resolutions i don’t know, never heared of that.
i would do an calibration anyway, just plot a square with 20cm length on each side and measure the outcome, then do:
expected length * used dpi / measured length = corrected dpi
so for instance if you set 1016 dpi and measured 20.6 cm afterwards:
20 * 1016 / 20.6 = 986.41 dpi
this should give you always correct dimensions.

i don’t know the prolific chipset in particular, but most of these adapter cables are cheap crap from china, so sometimes failure is to be expected.

i never tasted vinyl and i will never try it ^^


July 3rd, 2014 at 20:05
TimeWaster Says:


the write timeout after some plotting happened seems to indicate an error in the communication with the plotter, i think your plotter needs a “hardware” flow control setting. please try them both and then report back to me if it worked.


July 3rd, 2014 at 20:13
Pete Jenner Says:

The prolific serial chipset just doesn’t work and it’s the most common one.

July 3rd, 2014 at 20:29
TimeWaster Says:

hm… maybe there is an incompatibility with pySerial and the Prolific chipset.
i think i’ll buy one and start experimenting with it a bit.

July 3rd, 2014 at 21:08
peter Says:

same error. i tried all the flow control settings.

July 3rd, 2014 at 21:17
peter Says:

i am using a gigaware cable. I checked the cable with the prolific chipversion finder. It is a PL-2303 TA. Works with Flexisign but Ioline control center gives a comport error.

July 3rd, 2014 at 21:59
peter Says:

take a look at this.

September 19th, 2014 at 05:46
CNC3D Says:

Hi, thanks for your excellent work, especially in the offset section.
I understand that this extention is for HPGL machines, but some such as in my case I have a Arduino + GRBL controlled plotter, and I would ask if you could you include in the language section Gcode commands. To control a plotter with GRBL only few command is used. example Square 1″ x 1″:
And pleas you can put the option send to FILE Please….
You would be really helping the community Open Source Hardware…
G20 (Inches)
G92X0Y0 (All to Zero)
F2000 (Feed rate)
M3 (Knife DOWN)
M5 (Knife UP)
(Not Offset in this example)

September 21st, 2014 at 22:37
TimeWaster Says:

hi CNC3D, i will think about it.
on the one hand g-code is out of the scope of this extension and there are other Inkscape extensions for handling g-code, on the other hand when strictly looking at it as a way to drive a plotter it could be in scope.

i added it to the “Ideas for new features” list.

October 1st, 2014 at 11:56
kamal k shankaran Says:


October 1st, 2014 at 15:39
TimeWaster Says:

To get help with Inkcut you should ask on their project page, i cannot and will not give support for Inkcut.

October 15th, 2014 at 22:19
Dazmond Says:

For those struggling with the PL-2303, it’s probably the driver you’re using. The PL-2303 chipset was cloned and many Serial/USB adapters flooded the market with the counterfeit chip. Prolific ‘updated’ their driver so that although it would install with the counterfeits, it doesn’t work. You can get around this by using an older PL-2303 driver. I have this hosted here:

Hope this helps someone :)

October 16th, 2014 at 00:09
TimeWaster Says:

wow, thanx for this info!

i will definitely add this to the Inkscape documentation.

October 16th, 2014 at 17:33
Peter Jenner Says:

Good discovery – thanks.

November 4th, 2014 at 14:06
Ted Says:

My plotter measures the width and length of the vinyl when you are setting it up. It is an older machine and has no display. Is there a way to get the measurement data from your extension? Maybe it could display in the debug data?

November 9th, 2014 at 15:18
TimeWaster Says:

Hi Ted,

sorry it took me so long to answer, i had a very stressful project to finish.

While i could add this to the extension the usefulness is very limited imho, the only use case for this feature is to check if the part is big enough for the plot (what can be done with a ruler), and it is bound to a very specific plotter (i never heard of this feature before).

I always went for an “it has to be useful for all users” approach on features, and i like to keep it that way to keep the extension lean and usable.

so sorry but as long as the use case is so limited i will not add such a feature.

November 9th, 2014 at 17:39
ted Says:

I think the usefulness of this feature is greater than you realize. Measuring with a ruler is not accurate because the plot needs to fit between the pinch rollers not the overall dimension of the vinyl. This measurement feature is on every Roland vinyl cutter I have used from my old CM-24 right up to the newest GX-24 models. I hope you will reconsider your position and add this feature.

November 24th, 2014 at 12:25
TimeWaster Says:

Ok, i may reconsider adding such a feature, but how do i develop it? i don’t have a Roland plotter and buying one is out of the question.

Anyway, i added it to the idea list of new features above.

December 27th, 2014 at 13:39
beee Says:

if its selected
Flow control: Software (XON/XOFF)
would it be possible to send as first this escape sequence?
for the right configuration of the plotter (switch to XON/XOFF) ?

January 11th, 2015 at 20:29
TimeWaster Says:

hi beee,

is your plotter not working without this sequence? (i.e. can’t you set another flow control method that is working?)

in the “future features” section above i already added one point about adding custom commands, so it would be interesting to know if it is needed for some plotters.


January 11th, 2015 at 21:02
beee Says:

My plotter on old PC (with real serial port) is working OK (Flow control DTR/DSR), but i rebuild it to Bluetooh for new notebook (without serial port), where is only RX/TX. So it has to be only Software Flow control. And this sequence will command to switch plotter’s Flow control to Software.

February 3rd, 2015 at 22:00
Nikes Says:


Thankyou Mr. TimeWaster for this great contribution!, I’m using a Prolific USB to Serial converter in a notebook (linux mint 17), and an old Summa D520 plotter. It works great.

February 4th, 2015 at 13:12
TimeWaster Says:

@Nikes: thank you! it is really nice to hear that my extension is useful for people.

February 10th, 2015 at 15:29
Pascal Suter Says:

Dear TimeWaster.. thank you for this great extension! finally a way to print directly out of inkscape that WORKS! i really love how simple you kept it and how nicely everything is organized and explained. very userfriendly and straight forward. It works like a charm on my Seiki (cheap-ass chinese plotter) and produces accurate print-outs with the resolution set to 1005 dpi for both axis and the rotation set to 270ยฐ. I love the fact that i don’t have to rotate my drawings anymore and that i don’t need to save and import and do whatever it took before with all these other programs. great stuff.
i too use a Prolific USB to Serial as the built-in usb to serial converter of the seiki seems to have a buffer issue since a few weeks :) .. i’m running ubuntu 14.04 with inkscapes stable ppa to get the newest version.

kind regards

February 10th, 2015 at 21:22
TimeWaster Says:

hi Pascal, thank you very much (also for your donation)! :)

I thought it might be a good idea to keep it as simple as possible since the overall plotter stuff is complicated enough in itself, good to hear this was the right way.

About the buffer issue, have you maybe tried different flow control settings?


February 20th, 2015 at 16:09
Tuk Says:

Thanks so much, TimeWaster!

Our software (CutStudio) just started behaving really weird but we could continue printing thanks to you and Inkscape ๐Ÿ˜€ .

Open Source ftw!

February 23rd, 2015 at 15:31
Thetazzbot Says:

I just wanted to drop a note to TimeWaster and say thank you for this plugin. It enabled me to use a Cricut Expression with Inkscape using my custom firmware. Without this inkscape plugin, I would not have attempted such a project.

Thanks a ton!

February 23rd, 2015 at 15:49
TimeWaster Says:

Tuk and Thetazzbot, you are very welcome! :)

If you maybe want to help me (and my blog) you could link back from your blogs to mine, but i am not mad if you don’t do that.

February 26th, 2015 at 23:29
ted Says:


I have been using your extension for a few months on and it is great. I’ve been using it on a PC running Windows 7. I recently downloaded Inkscape 91 to my Macbook Pro hoping I’d be able plot directly from that instead of the pc. Sometimes it works, sometimes the plotter stalls. I know it isn’t the design, plotter or cable because I have used them all with the pc. Do you have any insight or know how I would report it directly to inkscape? Thanks for the help.

March 1st, 2015 at 00:10
dborowik Says:

Hello and thank you for the great extension! I am trying the use of multiple pens on my plotter but I haven’t been able to figure out how it should be setup in Inkscape. I am currently trying to use 3 different pens, and I have divided the artwork in 3 layers, each with their own colour.
Any guidance would be greatly appreciated!

March 1st, 2015 at 00:19
TimeWaster Says:

@ted & @dborowik: I’ll contact you via email now.

March 27th, 2015 at 17:44
BenoitFerroud Says:

Hello TimeWaster,

Thanks so much for your EXCELLENT work!
Now, I can say goodbye to my windows multiboot exclusif for the plotter… A dream!!!

Good luck and I wish you many donates

April 9th, 2015 at 09:27
Pascal Suter Says:

i just noticed something strange.. somehow inkscape was able to screw up a document in a way that everything that is being plotted from this document is out of proportions. i.e. a square becomes a rectangle for no reason. if i copy the same object into a new document it plots as a square and vice versa, if i copy a square from a good document into a screwed up one, it plots as a rectangle.

i started playing around with the svg files to find the reason for this behaviour and narrowed it down to the “viewBox” attribute.

a document with this viewBox plots a rectangle (wrong):
viewBox=”0 0 0.84000007 4.640625″

a document with this viewBox plots a square (correct):
viewBox=”0 0 744.09448819 1052.3622047″

since it does not seem to matter for the plotter extension where on the document my object is located, it seems strange to me that the viewBox attribute is capable of messing up my plots.

probably my svg got messed up when i changed the page size to fit my object. this was done because the previous plotting software started at the pages 0/0 point and then moved to the coordinate of the object i wanted to plot. in order to not waste any material i always aligned my objects with the page and therby obviously created svg’s that are now plotting with wrong proportions.

so if your extension does not use the viewBox, maybe it would be useful to just ignore it entirely.

April 9th, 2015 at 09:58
Pascal Suter Says:

never mind, i just noticed your plugin is right and inkscape is wrong :) .. i was wrong about what viewbox is for: viewbox does not define the visible area of a document, in fact that’s called the viewport.. the viewBox defines the coordinate system of svg objects that don’t have a unit for their coordinates. my viewbox proportions did not match the document proportions so all objects with coordinates without a unit behind the number where out of proportion.. at least that’s how i understand it from reading the begining of this article here:

actually the quickest fix to this problem is to simply remove the entire viewBox attribute from the svg file and everything plots fine..

so bottom line is: inkscape actually seems to ingore the viewBox property somehow and at the same time it seems to mess it up under certain circumstances which i can’t seem to reproduce now that i want to do it ..

since your extension is an inkscape extension it might be worth considering to ignore the viewBox property as well, like inkscape seems to do.. even though i always hate to break something to make it behave in a more expected way under certain circumstances ..

i’ll shut up now and leave it to you what you consider to do or not ๐Ÿ˜‰ i still like your plugin :)

April 9th, 2015 at 10:17
Pascal Suter Says:

i’m really sorry for not shutting up as promised ๐Ÿ˜‰ .. you might want to consider to delete my series of comments as i just found out, that when i remove the property from a document that actually has some objects in it, it messes up the size of my objects, so just removing the property only works to fix a broken document but it won’t fix the contents.. i did not notice that since i was playing around with an empty svg file which was “broken” and always drew a fresh square onto it to test the effects of my editing.

so this means that inkscape does NOT ignore the viewBox property but it seems to interpret it differently than your plugin.. honestly, i have no idea which of the two does it correctly and which is wrong but it definately seems to be differend and i have a feeling that inkscape might be the one doing it wrong. after all, i don’t lose my objects proportions by removing the proerty it just changes the size.

if you want to investigate further feel free to send me an email and i can forward you some of my files which are broken so you can try it yourself.. maybe you can make more sense out of this than i can ..

for now i’ll just copy-paste the contents of a broken file into a new one which fixes the problem for me.

April 9th, 2015 at 14:45
TimeWaster Says:

Hi Pascal,

i think i know what the problem is. With the new version of Inkscape the documents can handle various units instead of just px. This introduced a problem when opening old files that does not show in inkscape itself, but when plotting.

i cannot ignore the viewbox, this would result in mis-sized plots.

please try the following exactly:
-โ  open your existing drawings in inkscape
-โ  open “file” -โ > “document properties”
– set the “default units” and “units” dropdown to “inch” or something you dont normally use
-โ  close the document properties
-โ  save
-โ  reopen the document properties
– set the “default units” and “units” dropdown to “px” or the setting you would normally use
-โ  close the document properties
-โ  check if the size of the drawing looks right, if not, correct it
-โ  save again
-โ  close inkscape

after that everything should be fine.

please contact me again and tell me if this fixed it or not, thank you

April 9th, 2015 at 15:08
TimeWaster Says:

Oh, also please check if you have Inkscape 0.91 installed… thank you

Leave a Reply