Connecting Octopi to HID printer



My printer is a Zmorph 2.0 SX and I'm trying to use it with octopi but it instead of a COM port it uses a HID port, the Gcode used by it is the same used by other printers just the serial is different.

The octopi finds the printer connected in dev/usb/hiddev0. There is already additional port added to the configurations and the ocotoprint has permission to access the port (using the dialout group and chmod). This is the serial error it shows when it tries to connect:
"Unexpected error while connecting to serial port: dev/usb/hiddev0 SerialException: 'Could not configure port: (22, 'Invalid argument')' @ (hook default)"

I'm using the latest version of octoprint 1.3.10.

Anyone know how to connect it?


Probably none of us have one, I'd guess.

It would be nice to know what the firmware is. The baud rate is probably 115200, for what it's worth.


the firmware is proprietary but the baudrate used by it is 115200 by the little I know from the configurations it shows.


The firmware can be called proprietary but if it's not Marlin or RepRap or Repetier behind-the-scenes (or nobody's created a plugin to deal with the differences) then it won't handshake on the connection. Many proprietary firmwares are a fork of something else.

Go visit the manufacturer's forum and see if anyone has gotten it to work with OctoPrint.


Same problem here. If you find a workaround by flashing the firmware or something else, please let us know.
If the method is not so experimental (destructive), I can try to verify that.

FYI: I´ve aked the support for a print server software. The answer was "Use the voxelizer " (preferred zmorph slicer).
Maye they meant the network printing option. I´ve tried this non realy "alternive", is was verry unstable.


They launched a solution yesterday for octoprint. Will try today on my raspberry Pi 3 to see if it really works.
The tutorial is here


Here is the script they've got you running, for what it's worth:

apt-get update
apt-get install libusb-1.0-0-dev libudev-dev python2.7 python-pip virtualenv python-dev -y
if [ $? -eq 0 ] 
    cp "69-vx.rules" /etc/udev/rules.d
    if [ $? -eq 0 ]
    udevadm control --reload-rules
    echo "Installed and copied"
    echo "System reboot recommended"
    echo "Coping udev rule went wrong, check troubleshooting"
    echo "Couldn't download libusb, check troubleshooting"
    exit 1

The first install seems unnecessary given that OctoPi would already have that.

Here's the rule file they mention:

SUBSYSTEM=="usb", ATTR{idVendor}=="1d50", ATTR{idProduct}=="6015", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="zmorphvx%n"
KERNEL=="hidraw*", ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="6015",  MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl"

And then they're reloading the rules. So I guess that bit above will marry the HID device on the serial line in such a way that it will present itself to OctoPrint.

I'm not sure I'd trust their installation. It's not written for OctoPi but for installing with OctoPrint itself. You may want to baby-step this and try to see if parts of this will make an OctoPi-installed Raspi work.


I tried it last week with a fresh installed ubuntu 18.04 notebook. No success. I followed the instructions. Octoprint runs but no connection to the printer. This week, i will try it again on the ubuntu notebook and the raspberry (Raspbian + OctoPi).


Be aware that ZMorph is basically breaking the license OctoPrint is released under with their redistributed version since they state nowhere what they changed (apart from the obviously added usbrequirements file). It's also based on 1.3.9 so not the current version.