OpenOptimus

From OoKoo.org

Jump to: navigation, search

acroacel

The new GTK interface
Enlarge
The new GTK interface

This project is intended to provide a generic linux driver for OLED-based hardware made by Art. Lebedev Studio.

The current goal is to support the Optimus Mini Three keyboard.

You can access the SVN at this url: http://ookoo.org/svn/openoptimus/ - Last release is 0.1.0 (SVN 52).

You can watch SVN commits on CIA.

Art. Lebedev Studio is OK for the developpement of an open-source driver.

You can submit bugs or feature requests via the Mantis bugtracker at http://openoptimus.org/mantis/ .

Contents

Optimus Mini Three keyboard

Status

Currently in alpha stage. Lots of features are missing, and the driver is not usable in its current state. Please come back for news!

Can display 96x96 PNG images, and is also able to detect key press.

Current features

  • Uses libusb to communicate with device (no specific kernel driver needed)
  • As the kernel-provided module for pl2303 didn't work in our case, we recoded the driver with libusb
  • Uses libpng to read PNG images, and display them
  • Detects when a button is pressed
  • Implements OLED_PROTOCOL_SET_IMAGE, OLED_PROTOCOL_POWER_ON, OLED_PROTOCOL_POWER_OFF, OLED_PROTOCOL_SHOW_OLED, OLED_PROTOCOL_GET_IDCODE, OLED_PROTOCOL_SET_IDCODE, OLED_PROTOCOL_SET_BRIGHTNESS.
  • Support for more than one OLED Mini Three connected to the same computer
  • All USB code is in a static library
  • Now a perl module is available, since SVN 86 you can build the optimusclient library as a perl module.
Run this command from the trunk:
make optimusclient.pm
It will compile the optimusclient perl module, and the .so file, using swig (you'll have to install it to make this procedure work). You can now use the newly built extension in any perl program, by using use optimusclient (.so and .pm files must be either in current directory, or installed in a directory in the perl modules search path).

TODO

  • Optimize USB code
  • Create daemon-based system, with an UNIX socket for communications
  • Use autoconf/automake (instead of a single Makefile)
  • Better error treatment
  • New peripheral detection (60% -> now have a optimususb_scan() function)
  • A nice logo for the Linux driver, eg [Li] [Nu] [X] (or something like that)
  • Implement a way to simulate keyboard actions (to associate with mini three buttons)
  • Support for WindowMaker applets

BUGS

  • Still need to find out how to prevent the OLED Mini Three from powering off (it does shutdown automatically after a few seconds). Need new logs with SnoopyPro, or some analyse on provided C/C# code.

Technical

The hardware seems to be a pl2303 chip, as its vendorid/productid are 067b:2303. This is confirmed during the windows installation as windows shows the name Prolific2 when new hardware is found.

This chip is a low-cost serial-port (RS232) which is used to communicate with the OLED Mini Three keyboard, using a simple protocol, available from Art. Lebedev Studio.

HowTo test this driver

First, checkout the SVN by typing :

svn co http://ookoo.org/svn/openoptimus/ -r52

Then cd to the source directory :

cd openoptimus/trunk

Then compile :

make

Then run :

./oledd

An image should appear on the 3 OLED displays of your Optimus Mini Three keyboard. Pressing keys should display an output on the console.

Contact

You can contact me directly by mail or by IRC.

Personal tools
In other languages