ThinkPad W540 and Ubuntu

I recently got a new laptop to replace my old ThinkPad W520, I wound up just getting the current version of the same line. Unfortunately because of UEFI and SecureBoot the installation was a bit of an adventure, but I got it working surprisingly easily. Essentially I wound up turning off everything related to the new UEFI and SecureBoot verification things along with FastBoot, and dualbooting Ubuntu with Windows 7. The copy of Windows 8 that came with the laptop didn't work with Legacy Boot, and I couldn't get a bootloader (either the EFI one or grub) to notice Ubuntu when in the not-Legacy Boot mode.

On a fresh install of Ubuntu, most of the hardware works pretty nicely. There's a few things that are a little annoying, and I'm looking to fix. Some is on a hardware/firmware level so I can't do much about it, but a lot is fixable in software.

Be the first to comment Read more

I'm cleaning up my site, and I rediscovered a post I was working on a while ago but never published. I've abandoned this project, but I figured someone might be interested in my documentation I wrote while I was trying to get it working.

For a long time there has been a spaceball in my house. Basically, a spaceball is a joystick with six degrees of freedom and a bunch of buttons. Six degrees of freedom means it can take input along six degrees. Forwards and backwards, like a normal mouse or joystick (x and y), up and down (z axis), rotation around the z axis (clockwise/counterclockwise when looking down), pitching forwards and backwards (rotation around the x axis, or clockwise/counterclockwise when looking at it from the side), and finally, tilting from side to side (rotating around y axis, or clockwise/counterclockwise when looking at it from the front)


I don't really have a clue what I'll be able to use the spaceball for, but it's a really cool input device. It'd be perfect for flying around in Google Earth, or any sort of game that involves moving around in a 3d world. It could probably be used for a really cool sculpting program, or controlling a quadcopter.

I got the spaceball working after not much effort, although I would have saved some time if I'd tried using root to start with. The command is: # inputattach -sbl /dev/ttyUSB0 Where /dev/ttyUSB0 is where the spaceball is attached to. If you have an actual serial port, it'll probably be one of the /dev/ttyS* files.

If you're trying to get a spaceball to work, try that command before continuing. If that works, you don't need to keep reading (but feel free to!). A few things which I tried before running that command follow the break. If you don't have inputattach, it's currently on apt-get for Ubuntu 11.10. If you're from the future when 11.10 is ancient, you can probably find it in archives somewhere, if it hasn't been updated. There's a small chance I'll have mirrored it somewhere to make sure my devices keep working, so you can also check whatever I'm using at the time to host my projects.

Be the first to comment Read more


Over the past couple of years, I've been experimenting with interesting ways to control my computer. I've played with the Kinect and the Xtion depth cameras to adjust my computer's volume and scroll web pages, I've fiddled with the Leap Motion in the hope of controlling my window manager, and I've started collecting other unique input devices such as a bluetooth EEG headset. Recently, I came up with an idea that is much more portable and requires little extra hardware. While I was chatting with one of my artistic friends, I started thinking more about how computer interfaces are becoming more physical and are trying to simulate real objects. Ubuntu and OS X's default scrolling behavior mimics pushing the page around instead of moving the scroll bar. Many types of scrolling have momentum, so if you swipe and release, it keeps going for a little while. The OS X trackpad gestures feel very much like you're trying to grasp what's on the screen. The newest version of iOS makes it easy to have interface elements bounce around relative to each other whenever the app is scrolled.

So, I came up with something from the other direction. Instead of trying to use a trackpad or a scroll wheel to manipulate objects on the screen that are acting physical, I'm working on a way to manipulate physical objects to control a computer. I decided get a deck of cards with QR codes and hook them up to some software I wrote that reacts when it sees a string from a QR code it recognizes.

Be the first to comment Read more

Weston is the reference implementation of a Wayland Compositor. It's sort of like window managers are for X, and it's what you'll be staring at and interacting with while playing with Wayland. I don't know of any other compositors yet.

Be the first to comment Read more

There isn't a whole lot left to do, just three more libraries.

Be the first to comment Read more
more recent articles