Marco's Blog

All content personal opinions or work.
en eo

DYMO LabelWriter 4XL on Ubuntu

2014-10-19 6 min read Hardware marco

Call me a freak: I don’t like writing on envelopes. I dislike the way it feels when you push on an envelope already stuffed and sealed, I don’t like making a mistake and having to unseal and restuff. And let’s not even talk about the days when you have to send out a bunch of mailers – thankfully that’s become less common these days.

So I got myself a Brother label printer. It’s one of those dual purpose printers you can use to label, say, an envelope, but you can also print the address on an envelope. The problem: I had to enter every single label by hand, print it, and then go on to the next one.

There was a USB connection, and there was software that allowed you to print to the label printer. But of course it ran only under Windows. I could have used Wine… Wait, no: I used Wine to make it print, but it crashed consistently, like a great many hardware-dependent software does in an emulation.

Enters Woot, that had a phenomenal sale on one of the top model label printers, the DYMO LabelWriter 4XL. Where 4XL stands for 4 (their top series of personal label printers) and XL (as in the size of labels that thing can print – which also happens to be 4″).

I had already researched enough to know that DYMO was open-source friendly-ish. There was a published CUPS driver, and software floating around. Woot is an Amazon company, so I trusted them to take the thing back if it didn’t work as promised.

Well, the printer arrived today and I am already writing an article about it. So you already know how hard it can be to get it to work: less than 30 minutes. Even less if you read this article!

1. The Hardware

After playing Russian cardboard box dolls for a while, I had the printer in my hand. It’s an oddly-shaped little thing: from the side, it looks like a tear drop cut in half, from the front it’s square. There is one visible button on the front, backlit by a blue LED that functions as status indicator. Lifting the cover reveals two more buttons, for paper jams and label roll replacement.

The label rolls are set on a spindle. There is only one spindle in the package, so changing labels is a bit of a hassle. The hardware behaves as if it doesn’t want you to change labels. Pick one size and be done with it. (Brother and their cartridges are a little more swap-friendly).

The printer is connected to power by a monstrously huge power supply brick. Seriously, it looks like someone took a regular power supply and tripled it in size. I am not sure why this little printer needs this much power supply, other than the fact it’s a thermal printer.

The other cord is a standard USB printer cable. The computer end is taped shut, since you are supposed to install the software before you connect the printer. But that’s good only for Windows and its annoying autodetect drivers feature. Linux users can just plug in the thing, install the software and be done with it.

2. The Driver

This was a bit of a moment of desperation. I went to the DYMO site, and couldn’t find the Linux drivers. They were not listed in the printer support page with all the downloadables. When I asked Google, it sent me to a page that referenced an SDK – as if I wanted to write apps for the printer. I really just wanted it to work.

Finally, after filling out a form that asked me my personal address and phone number, I got a copy of the SDK. Turns out it’s delivered as an autoconf-able development package, which meant I had to install dependencies and run /configure, make, make install.

What do you know, even after downloading all the required dev packages, compilation failed brutally. The first error was about size_t, so probably something trivial to resolve, but why do I have to do that?

In a moment of desperation genius, I asked the ultimate guru: apt-cache search dymo. What do you know, there is a package printer-driver-dymo. I decided to give it a whirl. What do you know, it installed just fine. I went to the CUPS interface (http://localhost:631) and added a printer. What do you know, the printer was already there, highlighted as a local printer.

I completed the installation and wanted to see if my new printer did what it was supposed to do.

3. The Software

The one application I am most likely to use with a label printer is LibreOffice. The deal is that LibreOffice has label handling, and it also does mail merges. So it pretty much has everything you need.

If you want to print a PDF file, you can do that, too. The problem is mostly going to be that you need to set the page size to the page size of the label, which can be a pain.

In LibreOffice, all you have to do is go to File -> New -> Labels. A dialog pops up that asks you about the type of label you want to use. Safely ignore whatever pops up and go to the Format tab (on top). There, you set the size and parameters of your label. The printer came with 4×6 (w x h) labels (think UPS shipping labels), so I entered a width of 3.6, height of 5.6, and left and top margins of .2 inches.

The pitch parameters are for the distance between left and top margins of subsequent labels. Since the 4×6 are continuous only in the vertical direction, you can leave the 4 unchanged. I didn’t try printing more than one label, so the default of 6 was fine by me.

Now you press Save. You will be asked for a manufacturer name and a label name. Enter DYMO and 4×6, respectively.That’s going to be the new default from now on.

Next you click on New Document (at the bottom) and a new document will show up. The page size will be the 4×6 you defined, and you can simply create whatever you want in the area. When you print it, the LabelWriter will zip at lightning speed and produce a clean label in no time at all. Compare that with my incredibly slow Canon PiXMA…

I rotated a label to print in landscape mode. No problem. I tried graphics, no problem. Really, all in all this was an amazingly easy install, thanks to whoever packaged the driver!