Vevor KW-780A

Using the Vevor KW-780A vinyl cutter and plotter on Linux, MacOS, and Windows

The Vevor KW-780A speaks the HPGL language. Inkscape is a popular choice for creating vector graphics and can output HPGL directly. Inkscape and other SVG workflows can also be used with a tool control program like Inkcut

Serial Not Available

Unlike most other plotters/cutters (including other models in the Vevor lineup) this device does not speak serial. It uses a motherboard based on the CH554 chip and physically includes a serial port, but this port is not functional. The USB port is functional but does not present a USB->TTY interface as seen on other devices

Instead the KW-780A registers as a printer. Luckily it accepts a USB bulk transfer of raw HPGL code and uses standard devices types so it does does not require any specialized drivers

Linux

On Linux this cutter is recognized by the usblp driver (CONFIG_USB_PRINTER), which is part of the mainline kernel and can be used simply by sending HPGL code its device file. The path will vary based on your distro and other connected devices, but frequently it is /dev/usb/lp0. It should should show up automatically when you connect the device and can be used like this:

cat file.hpgl > /dev/usb/lp0

Depending on your workflow it may be desirable to use CUPS instead of directly accessing the device file; programs (or users) that do not know how to use raw device files may be able to submit files with a tool like lpr. To do this first blacklist the usblp driver so that CUPS can use libusb to access the device. The exact command for this will vary among distros, but generally it will be something equivalent this:

rmmod usblp
echo "blacklist usblp" \
  >> /etc/modprobe.d/blacklist.conf

Then use the MacOS instructions below to create a CUPS queue

MacOS

On MacOS the device is recognized without additional drivers as “_ρR CH554_CDC” and does show up as an available printer in System Settings. However that interface does not allow the creation of raw queues, which are required to send HPGL code. Instead you will need to manually configure CUPS via the web interface. CUPS is already installed on MacOS and can be configured for the cutter thusly:

cupsctl WebInterface=yes
open http://localhost:631/admin/

Administration
  Add Printer
Local Printers: _ρR CH554_CDC
  Continue
Name: AnyName
  Continue
Make: Raw
  Continue
Model: Raw Queue (en)
  Add Printer

cupsctl WebInterface=no

Once CUPS is setup you can send HPGL code using lpr:

lpr -P AnyName file.hpgl

CUPS also supports printer sharing, which allows the print queue to be accessed from other CUPS clients over the network1

Windows

On Windows the device is recognized without additional drivers as a USB printer named “No Printers Available”. It does not work as a raster printer so normal printing will not work, but the device will accept HPGL code sent through this interface. Vevor provides a basic license for SignMaster, but other programs that know how to send HPGL via USB will also work

Other Notes

Using the USB interface can be much faster than serial control of the same device. Obviously the tool movements take the same amount of time, but instead of being limited to 9600 or 38400 baud the HPGL code can be sent all at once via a high-speed USB transfer. When using a tool control program like Inkcut you can set the “Uses a spooling service” option to avoid being artificially limited to serial speeds


  1. Future versions of this post may include details for installing a single-board computer as a built-in CUPS server to make the cutter into a stand-alone network device. But not today ↩︎