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.