Hacking the Lobos LB-SP110 at HumanitySpace with Ping and Thinker, 2006-11-21
Hacking the Lobos LB-SP110 at HumanitySpace with Ping and Thinker, 2006-11-21. Thanks psilotum for the picture.

The original design of Porta2030 is using a LCD and 4 buttons for communication. The LCD can only display 32 characters for messages, and 4 buttons for differnet porta porter status.

Porta Pack, keypad and lcd

The porta-porter communicates with each other by using an LCD 4 click button device. Four buttons signal four humors: four fluids (blood, black bile, yellow bile and phlegm) , four basic elements of nature (air, earth, fire and water) and four temperaments.(sanguine, melancholic, choleric and phlegmatic). The click button signals are translated into 4 color animation on the performance interface. Urgency signals triggered by real life events inform porta-porters on her LCD terminal with alarm beeps and call for porta-porter’ responsive action.

Source: Porta2030 London

In Taiwan porta2030 developer community, we are trying to connect the porta-pack with a USB Skype phone. Because all the skype phone devices has a speaker, microphone and a keypad. We can provide more interactive functions by these interfaces. Last week, Macpaul bought a new Lobos LB-SP110 for testing. This one even has a LCD on it. 🙂

LB SP110 Functions

You can read the size from the image below, the LB-SP110 is a very slim USB Skype phone. It’s a USB 1.1 devcie, the vender id is 0x0e5e and product id is 0x6611. There are two audio interfaces, one for speaker and one for recorder. We can use these two interfaces by ALSA USB Audio module without a problem. We can get the configuration descriptors by lsusb.The real problem is control the HID interface for getting keystokes or displaying things on the LCD. The HID interfaces is not acting like a keyboard, even we can query the keys and events it suports by querying from evdev interface. The skype phone is using USB control messages to talk with software.

LB SP110 - Sizes

Actually, the usb skype phone has a windows driver, and a third party software to communicate with Skype. The only way to port the driver for linux is sniff the usb traffic from windows, and analyze the protocols. Fortunately, the protocol is pretty simple, and there are several tools to sniff the usb traffic. 😀

I uses the tool usbsnoop wrote by Benoit Papillault. The software can log every URB for you. After you log all the request messages, you can see how the phone and the software talk.

If you have time, you can translate the messages into source code one by one. I must say that’s very boring. However, there is a perl script usbsnoop2libusb.pl, which can help you translate the messages into libusb based C code. The only thing you need to do is change the interface number and alternate interface setting. After you done that, you can reproduce the protocol which recorded on windows, and then you can learn from the code and write one for yourself.

I also use usbmon and debugfs for tracing and monitoring my program to see what I’m doing on these devices. Pete Zaitce has a paper on The usbmon: USB monitoring framework, it’s worth to read.

I have done a dirty hack on Lobos LB SP110. The little ugly program is able to display some text on screen, and read keypress. There are only a few icons on screen, and the numbers are only be sent if you press “dail” button. But I think you can make the phone ring or shows some messages, and of course you can use some magice number inputed by the numpad to control the porta-pack.

LCD Screen