English | Deutsch | Español | Français | Polski | Čeština | Norsk
VEVOR cutter not detected or not working on Mac? This free, open-source macOS USB transport connects VEVOR and Anhui Anyu vinyl cutters to Inkcut when they identify as CH554_CDC with USB ID 0483:5750.
No SignCut subscription, no Windows VM. This is a user-space libusb/pyusb transport — not a kernel extension, nothing to disable in macOS security settings.
| SignCut Pro | This project | |
|---|---|---|
| Price | Subscription | Free forever (GPLv3) |
| Source | Closed | Open — audit it, fix it, extend it |
| Cutting app | Vendor app | Inkcut — open source, cross-platform |
| USB protocol documented | No public docs | Fully reverse-engineered and published (docs/PROTOCOL.md) |
What you get that nothing else on macOS offers for these cutters:
- It finishes big jobs. NAK-based USB flow control with duplicate-safe retries — no more jobs that die at the last cut, no doubled letters, no ruined vinyl.
- It survives the firmware's quirks. Keep-alive against the idle-crash, self-healing reconnect with a pipe probe before anything is cut, automatic recovery from a wedged USB stack.
- A real workflow, not just a driver. Drop a PDF or Illustrator file straight into Inkcut, slow anti-slip pre-feed of the roll, every job ends 15 mm past the cut ready for the next one.
- Every finding documented. The full USB + DMPL protocol notes are published so the community can support more cutters — nobody has to reverse-engineer this hardware again.
⭐ If this gets your cutter working, star the repo — it is how other stranded Mac owners find it.
Match your device before installing
Run in Terminal:
system_profiler SPUSBDataType | grep -B 1 -A 5 "CH554"(or check Apple menu → About → System Report → USB). This project targets cutters showing:
- Product:
CH554_CDC- Vendor ID:
0x0483— Product ID:0x5750A matching USB identity is required, but compatibility is confirmed only for the tested-hardware table below. The same USB ID is used across many rebrands — VEVOR (KH/KI/KW/SK series), ANAgraph, Arthur, Art Creation, Cutter Pros, GoldCut, HELITIN, JinKa, SAGA, Secabo, Seron, US Cutter — but firmware may differ; reports welcome.
If you are searching for VEVOR vinyl cutter software for Mac, a CH554_CDC Mac driver, or how to use a VEVOR cutter (plotter) with Inkcut, you have probably hit one of these:
- Cutter shows up in the USB tree but no serial port (
/dev/cu.*) appears — Inkcut has nothing to connect to - Sending a job does nothing, or the carriage moves once and freezes
- Letters and shapes cut on top of each other (duplicated cuts)
- Works right after power-on, then dies while idle until the next power cycle
- Inkcut errors like
OSError: … is not opened
On the tested device, these symptoms were caused by one or more of the USB initialization, idle-suspend, protocol, and write-pacing behaviors described below. Other devices may fail for different reasons — see docs/TROUBLESHOOTING.md.
What we found (tested device; details in docs/PROTOCOL.md)
- A CDC serial port wearing a printer-class costume. The firmware presents USB printer-class descriptors, but printer-class control requests STALL while CDC requests are accepted. The cutter buffers data without cutting until
SET_LINE_CODING(9600 8N1) is sent and DTR/RTS are asserted viaSET_CONTROL_LINE_STATE. - The CH554 USB stack crashes when the idle port suspends. A keep-alive (re-assert DTR/RTS every 15 s) prevents it; a USB port reset usually revives a wedged device without a power cycle.
- The native language is DMPL. Init
;:H A L0 EC1 U, tool up/downU/D, comma delimiter, space terminator, 0.025 mm/step (1016 steps/inch). The HPGL mode half-works but wedged the firmware repeatedly in our testing. The firmware ignores DMPLV(velocity) commands — all pacing must happen host-side. - The DMPL axes are transposed. On this firmware the first coordinate drives the media feed rollers and the second the carriage — opposite of what Inkcut's device engine assumes. Compensating with Swap X/Y fixes the geometry but silently points Inkcut's feed logic (pre-feed, feed-past-cut, origin tracking) at the carriage. The transport ships a protocol-level
swap_axesoption (plus mirror) so the feed logic physically reaches the rollers. - The internal buffer is tiny, and USB NAK is the only flow control. The whole ring buffer holds a few hundred moves; large jobs overflow it mid-stream. pyusb (libusb) raises a bulk-write timeout only when zero bytes were transferred — a partially accepted transfer returns a short count — so retrying a timed-out chunk at the same offset is duplicate-safe. The transport uses exactly that as flow control: a dedicated writer thread retries while the cutter chews through its buffer, aborts only after 90 s with no progress, and a drain barrier keeps the job (and disconnect) from completing while data is still queued.
| Component | Description | Status |
|---|---|---|
inkcut-usb-transport/ |
Native pyusb/libusb transport plugin for Inkcut: CDC init, DTR/RTS keep-alive, self-healing connect on a worker thread (auto USB reset + pipe probe before any cutting, GUI never freezes), queued writer thread with NAK-based flow control and duplicate-safe retries, drain barrier before job completion | Working on the tested device |
inkcut-pdf-import/ |
Open PDF and Adobe Illustrator (.ai) files directly in Inkcut — converted off the UI thread on open (via poppler), with caching, drag-and-drop, multi-page warning, and the original file name kept in the UI/history | Working on the tested device |
inkcut-prefeed/ |
Material pre-feed: slowly feeds the vinyl out to the job's full length and back before cutting, host-paced in small steps, so the roll never drags or slips mid-cut | Working on the tested device |
| Device profiles | VEVOR KH-870 / KH-720 driver entries (DMPL-first, USB, correct cutting widths 78/63 cm) with the swap_axes/mirror setup for the transposed firmware + feed-past-cut workflow (each job ends past the cut + 15 mm, ready for the next) |
Working on the tested device |
| Inkcut UX patches | Graphic panel: editable total layout size when stepping up copies, Illustrator-style quick rotate buttons (90° left/right, 180°); app opens at a comfortable window size | Working on the tested device |
plotter_usb_bridge.py |
Standalone FIFO → USB daemon (launchd): anything that can write a file can drive the cutter | Working on the tested device |
patches/ |
Unified diffs against upstream Inkcut for everything not shipped as a standalone component: pre-feed, flow-control integration, PDF/AI import integration, VEVOR profiles/axes, UX additions, raw-transport stale-connection fix | Available |
| docs/PROTOCOL.md | Full USB + DMPL protocol notes and evidence for this cutter family | Available |
| docs/TROUBLESHOOTING.md | Symptom → cause → fix | Available |
Upstream status: submitted to Inkcut as #427 (device-layer groundwork), #428 (native USB transport), #429 (PDF/AI import) and #430 (layout panel). Until they are merged, use the installer below.
Three lines in Terminal (Homebrew required):
git clone https://github.com/mcmartnor/vevor-cutter-macos.git
cd vevor-cutter-macos
./install.shThe script never asks for sudo and installs nothing outside a Python
virtualenv (~/.inkcut-venv). Re-run with ./install.sh --check to verify
the install and see whether the cutter is visible on USB. Linux users:
./install-linux.sh (tested on Debian 13). Full details, including the
manual steps, are in docs/INSTALL.md.
Tested on the hardware listed below. If you have a different VEVOR or Anhui Anyu model, please open an Issue with the result — the device table is built from reports.
| Model / rebrand | USB identity | macOS | CPU | Inkcut | Result |
|---|---|---|---|---|---|
| VEVOR KH-870 (D-type mainboard, 870 mm) | 0483:5750 / CH554_CDC |
macOS 26.5 | Apple Silicon | 2.1.8 | Full workflow confirmed on vinyl via the native USB transport: PDF/AI import → pre-feed → cut with flow control → feed past cut, correct end position |
- Upstream to Inkcut: submitted — #427, #428, #429, #430 are open and awaiting review
- More cutters: community compatibility matrix — the transport's VID/PID/endpoint/baud are configurable, so other rebrands and chips can be tested and reported via Issues
- Print-queue sharing: a CUPS backend so any macOS app can print straight to the cutter as if it were a printer
- Measure media width by jogging: the firmware answers no position queries (probed), but the host tracks every absolute move — jog the head to the foil edge and one click sets the material width from the tracked position
- Polished macOS app: a signed Inkcut.app bundle with icon, so setup is drag-and-drop
- Linux support:
install-linux.shships and is tested on Debian 13 (apt/dnf/pacman, patches apply, Inkcut starts). Driving a cutter over USB on Linux is not verified —cdc_acmstill has to be detached before the interface can be claimed
This project targets macOS cutters identifying as CH554_CDC / 0483:5750. It does not claim compatibility with other VEVOR USB identities.
- Inkcut — the open-source cutting application this transport integrates with
- SignCut Pro — paid vendor-supported workflow for the same hardware
- vevor-cutter-linux, VECTOCUT — prior open-source work for related models/OSes; verify their supported USB identities separately
Research that helped map the terrain: zi3.dev on the KW-780A, abysm.org on 0483:5750 printer mode.
Open a GitHub issue and include: exact cutter brand/model, USB vendor/product ID and product string, macOS version and CPU (Apple Silicon/Intel), Inkcut/Python versions, and relevant logs.
If this project saved you a SignCut subscription or a Windows VM, a GitHub star helps more Mac owners find it — and compatibility reports (working or not) directly grow the tested-hardware table.