Dymo LabelManager PnP - Xubuntu
Hardware info on main page.
Links
Dymo LabelManager PnP on Linux CUPS, USB_ModeSwitch - working config for LabelManager PnP, dymoprint,
History
2014-11-29: dymoprint. Before modeswitch, dymoprint didn't find the printer:
tingo@kg-u35jc:~/doc/Dymo/LabelManager_PnP$ file dymoprint dymoprint: a python script, ASCII text executable tingo@kg-u35jc:~/doc/Dymo/LabelManager_PnP$ python dymoprint The device 'Dymo LabelManager PnP' could not be found on this system.
after modeswitch, the printer is found:
tingo@kg-u35jc:~/doc/Dymo/LabelManager_PnP$ python dymoprint No label text was specified.
but bits that dymoprint needs are missing:
tingo@kg-u35jc:~/doc/Dymo/LabelManager_PnP$ python dymoprint Dymo LabelManager PnP Traceback (most recent call last): File "dymoprint", line 312, in <module> main() File "dymoprint", line 275, in main font = ImageFont.truetype(FONT_FILENAME, fontsize) File "/usr/lib/python2.7/dist-packages/PIL/ImageFont.py", line 218, in truetype return FreeTypeFont(filename, size, index, encoding) File "/usr/lib/python2.7/dist-packages/PIL/ImageFont.py", line 134, in __init__ self.font = core.getfont(file, size, index, encoding) IOError: cannot open resource
oh well. Fixed by installing bitstream-vera:
tingo@kg-u35jc:~$ sudo apt-get install ttf-bitstream-vera [...] tingo@kg-u35jc:~$ ll /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf -rw-r--r-- 1 root root 65932 Apr 16 2003 /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf
and now it works:
tingo@kg-u35jc:~/doc/Dymo/LabelManager_PnP$ python dymoprint Dymo LabelManager PnP [96, 0, 18, 100, 13, 188, 0, 0]
but it prints the three words below each other. Ok new try:
tingo@kg-u35jc:~/doc/Dymo/LabelManager_PnP$ python dymoprint "Dymo LabelManager PnP" Traceback (most recent call last): File "dymoprint", line 312, in <module> main() File "dymoprint", line 308, in main lm.printLabel(labelmatrix, dottab) File "dymoprint", line 182, in printLabel response = self.sendCommand() File "dymoprint", line 79, in sendCommand responseBin = self.dev.read(8) IOError: [Errno 110] Connection timed out
ok, this time I got "Dymo LabelManager" on one line, the "PnP" part is missing.
2014-11-29: I created a config file for usb_modeswitch:
tingo@kg-u35jc:~$ more /etc/usb_modeswitch.d/0922:1001 # Dymo LabelManager PnP DefaultVendor= 0x0922 DefaultProduct=0x1001 TargetVendor= 0x0922 TargetProduct= 0x1002 MessageEndpoint= 0x01 ResponseEndpoint=0x01 MessageContent="1b5a01"
(yes, the file is named "0922:1001")
then I ran the command:
tingo@kg-u35jc:~$ usb_modeswitch -c /etc/usb_modeswitch.d/0922:1001 Looking for target devices ... No devices in target mode or class found Looking for default devices ... found matching product ID adding device Found device in default mode, class or configuration (1) Accessing device 004 on bus 002 ... Getting the current device configuration ... OK, got current device configuration (1) Using first interface: 0x00 Using endpoints 0x01 (out) and 0x01 (in) Not a storage device, skipping SCSI inquiry USB description data (for identification) ------------------------- Manufacturer: Dymo Product: DYMO LabelManager PnP Serial No.: 08444603042014 ------------------------- Looking for active driver ... OK, driver found ("usbhid") OK, driver "usbhid" detached Setting up communication with interface 0 Using endpoint 0x01 for message sending ... Trying to send message 1 to endpoint 0x01 ... OK, message successfully sent Resetting response endpoint 0x01 Could not reset endpoint (probably harmless): -32 Resetting message endpoint 0x01 Could not reset endpoint (probably harmless): -32 Device is gone, skipping any further commands -> Run lsusb to note any changes. Bye.
and now lsusb says: short
tingo@kg-u35jc:~$ lsusb -s 2:5 Bus 002 Device 005: ID 0922:1002 Dymo-CoStar Corp.
long
tingo@kg-u35jc:~$ lsusb -v -s 2:5 Bus 002 Device 005: ID 0922:1002 Dymo-CoStar Corp. Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0922 Dymo-CoStar Corp. idProduct 0x1002 bcdDevice 1.00 iManufacturer 1 iProduct 2 iSerial 3 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 87 bNumInterfaces 3 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 7 Printer bInterfaceSubClass 1 Printer bInterfaceProtocol 2 Bidirectional iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x05 EP 5 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk-Only iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 34 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 10 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 10
cool. From /var/log/messages:
Nov 29 13:30:24 kg-u35jc kernel: [11565.096942] usb 2-1.3: new full-speed USB device number 5 using ehci_hcd Nov 29 13:30:24 kg-u35jc kernel: [11565.192510] scsi5 : usb-storage 2-1.3:1.1 Nov 29 13:30:24 kg-u35jc mtp-probe: checking bus 2, device 5: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3" Nov 29 13:30:24 kg-u35jc mtp-probe: bus: 2, device: 5 was not an MTP device Nov 29 13:30:24 kg-u35jc kernel: [11565.194027] generic-usb 0003:0922:1002.0003: hiddev0,hidraw1: USB HID v1.11 Device [Dymo DYMO LabelManager PnP] on usb-0000:00:1d.0-1.3/input2 Nov 29 13:30:24 kg-u35jc kernel: [11565.276826] usblp0: USB Bidirectional printer dev 5 if 0 alt 0 proto 2 vid 0x0922 pid 0x1002 Nov 29 13:30:24 kg-u35jc kernel: [11565.276857] usbcore: registered new interface driver usblp Nov 29 13:30:25 kg-u35jc kernel: [11566.193151] scsi 5:0:0:0: Direct-Access DYMO PnP 1.00 PQ: 0 ANSI: 0 CCS Nov 29 13:30:25 kg-u35jc kernel: [11566.193881] sd 5:0:0:0: Attached scsi generic sg1 type 0 Nov 29 13:30:25 kg-u35jc kernel: [11566.195191] sd 5:0:0:0: [sdb] 8191 512-byte logical blocks: (4.19 MB/3.99 MiB) Nov 29 13:30:25 kg-u35jc kernel: [11566.195768] sd 5:0:0:0: [sdb] Write Protect is off Nov 29 13:30:25 kg-u35jc kernel: [11566.244725] sd 5:0:0:0: ioctl_internal_command return code = 8070000 Nov 29 13:30:25 kg-u35jc kernel: [11566.244732] : Sense Key : Hardware Error [current] Nov 29 13:30:25 kg-u35jc kernel: [11566.244739] : Add. Sense: No additional sense information Nov 29 13:30:25 kg-u35jc kernel: [11566.264432] sdb: sdb1 Nov 29 13:30:25 kg-u35jc kernel: [11566.304827] sd 5:0:0:0: ioctl_internal_command return code = 8070000 Nov 29 13:30:25 kg-u35jc kernel: [11566.304834] : Sense Key : Hardware Error [current] Nov 29 13:30:25 kg-u35jc kernel: [11566.304841] : Add. Sense: No additional sense information Nov 29 13:30:25 kg-u35jc kernel: [11566.307415] sd 5:0:0:0: [sdb] Attached SCSI removable disk Nov 29 13:30:25 kg-u35jc kernel: [11566.352658] sd 5:0:0:0: ioctl_internal_command return code = 8070000 Nov 29 13:30:25 kg-u35jc kernel: [11566.352662] : Sense Key : Hardware Error [current] Nov 29 13:30:25 kg-u35jc kernel: [11566.352667] : Add. Sense: No additional sense information Nov 29 13:30:25 kg-u35jc kernel: [11566.369219] usblp0: removed Nov 29 13:30:25 kg-u35jc kernel: [11566.371778] usblp0: USB Bidirectional printer dev 5 if 0 alt 0 proto 2 vid 0x0922 pid 0x1002 Nov 29 13:30:25 kg-u35jc kernel: [11566.712731] sd 5:0:0:0: ioctl_internal_command return code = 8070000 Nov 29 13:30:25 kg-u35jc kernel: [11566.712738] : Sense Key : Hardware Error [current] Nov 29 13:30:25 kg-u35jc kernel: [11566.712746] : Add. Sense: No additional sense information
all for now.
2014-11-29: there is also dymoprint, written in Python.
2014-11-29: it seems you need the Dymo Linux SDK to get CUPS drivers for this printer. I found it by going to global.dymo.com and support, searching for software for the LabelWriter SE450. Hmm, the Dymo SDK has CUPS 1.2.0 drivers, but I have a dymo-cups-drivers-1.4.0.tar.gz file already.
2014-11-29: I connect the LabelManager PnP to my Linux laptop (for testing). Laptop runs:
tingo@kg-u35jc:~$ uname -a Linux kg-u35jc 3.2.0-72-generic #107-Ubuntu SMP Thu Nov 6 14:24:01 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux tingo@kg-u35jc:~$ lsb_release -a LSB Version: core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch:cxx-3.0-amd64:cxx-3.0-noarch:cxx-3.1-amd64:cxx-3.1-noarch:cxx-3.2-amd64:cxx-3.2-noarch:cxx-4.0-amd64:cxx-4.0-noarch:desktop-3.1-amd64:desktop-3.1-noarch:desktop-3.2-amd64:desktop-3.2-noarch:desktop-4.0-amd64:desktop-4.0-noarch:graphics-2.0-amd64:graphics-2.0-noarch:graphics-3.0-amd64:graphics-3.0-noarch:graphics-3.1-amd64:graphics-3.1-noarch:graphics-3.2-amd64:graphics-3.2-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-3.2-amd64:printing-3.2-noarch:printing-4.0-amd64:printing-4.0-noarch:qt4-3.1-amd64:qt4-3.1-noarch Distributor ID: Ubuntu Description: Ubuntu 12.04.5 LTS Release: 12.04 Codename: precise
when usb is connected, the (blue) power LED in the power switch on the printer lights up, and a few seconds later a FAT volume is automounted:
tingo@kg-u35jc:~$ mount -l -t vfat /dev/sdb1 on /media/LM PNP type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks) [LM PNP]
the volume contains:
tingo@kg-u35jc:~$ ls -l /media/LM* total 1091 -rw-r--r-- 1 tingo tingo 138 Oct 14 2010 autorun.inf drwx------ 3 tingo tingo 1024 May 13 2013 DYMO Label Light.app -rwxr-xr-x 1 tingo tingo 1114192 Nov 29 2010 DYMO Label Light.exe
so programs for Windows and Mac OS X. From /var/log/messages:
Nov 29 12:22:33 kg-u35jc kernel: [ 7496.610067] usb 2-1.3: new full-speed USB device number 4 using ehci_hcd Nov 29 12:22:33 kg-u35jc mtp-probe: checking bus 2, device 4: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3" Nov 29 12:22:33 kg-u35jc kernel: [ 7496.706449] generic-usb 0003:0922:1001.0002: hiddev0,hidraw1: USB HID v1.11 Device [Dymo DYMO LabelManager PnP] on usb-0000:00:1d.0-1.3/input0 Nov 29 12:22:33 kg-u35jc mtp-probe: bus: 2, device: 4 was not an MTP device Nov 29 12:22:33 kg-u35jc kernel: [ 7496.752320] Initializing USB Mass Storage driver... Nov 29 12:22:33 kg-u35jc kernel: [ 7496.752775] scsi4 : usb-storage 2-1.3:1.1 Nov 29 12:22:33 kg-u35jc kernel: [ 7496.752857] usbcore: registered new interface driver usb-storage Nov 29 12:22:33 kg-u35jc kernel: [ 7496.752860] USB Mass Storage support registered. Nov 29 12:22:34 kg-u35jc kernel: [ 7497.750548] scsi 4:0:0:0: Direct-Access DYMO PnP 1.00 PQ: 0 ANSI: 0 CCS Nov 29 12:22:34 kg-u35jc kernel: [ 7497.751756] sd 4:0:0:0: Attached scsi generic sg1 type 0 Nov 29 12:22:34 kg-u35jc kernel: [ 7497.752483] sd 4:0:0:0: [sdb] 8191 512-byte logical blocks: (4.19 MB/3.99 MiB) Nov 29 12:22:34 kg-u35jc kernel: [ 7497.753353] sd 4:0:0:0: [sdb] Write Protect is off Nov 29 12:22:34 kg-u35jc kernel: [ 7497.797840] sd 4:0:0:0: ioctl_internal_command return code = 8070000 Nov 29 12:22:34 kg-u35jc kernel: [ 7497.797843] : Sense Key : Hardware Error [current] Nov 29 12:22:34 kg-u35jc kernel: [ 7497.797847] : Add. Sense: No additional sense information Nov 29 12:22:34 kg-u35jc kernel: [ 7497.816952] sdb: sdb1 Nov 29 12:22:34 kg-u35jc kernel: [ 7497.858262] sd 4:0:0:0: ioctl_internal_command return code = 8070000 Nov 29 12:22:34 kg-u35jc kernel: [ 7497.858270] : Sense Key : Hardware Error [current] Nov 29 12:22:34 kg-u35jc kernel: [ 7497.858277] : Add. Sense: No additional sense information Nov 29 12:22:34 kg-u35jc kernel: [ 7497.861008] sd 4:0:0:0: [sdb] Attached SCSI removable disk Nov 29 12:22:34 kg-u35jc kernel: [ 7497.914252] sd 4:0:0:0: ioctl_internal_command return code = 8070000 Nov 29 12:22:34 kg-u35jc kernel: [ 7497.914260] : Sense Key : Hardware Error [current] Nov 29 12:22:34 kg-u35jc kernel: [ 7497.914268] : Add. Sense: No additional sense information
the error message repeats:
Nov 29 12:22:35 kg-u35jc kernel: [ 7499.137028] sd 4:0:0:0: ioctl_internal_command return code = 8070000 Nov 29 12:22:35 kg-u35jc kernel: [ 7499.137033] : Sense Key : Hardware Error [current] Nov 29 12:22:35 kg-u35jc kernel: [ 7499.137038] : Add. Sense: No additional sense information
lsusb info:
tingo@kg-u35jc:~$ lsusb -s 2:4 Bus 002 Device 004: ID 0922:1001 Dymo-CoStar Corp.
lsusb -v info:
tingo@kg-u35jc:~$ lsusb -v -s 2:4 Bus 002 Device 004: ID 0922:1001 Dymo-CoStar Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0922 Dymo-CoStar Corp. idProduct 0x1001 bcdDevice 1.00 iManufacturer 1 Dymo iProduct 2 DYMO LabelManager PnP iSerial 3 08444603042014 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 64 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 34 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 10 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 10 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk-Only iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Device Status: 0x0000 (Bus Powered)
that's all.