Thursday, February 1, 2007

LooxLight


I've done it! I wrote my second application for pocketpc. LooxLight is a tiny application which is intended to help you control lights (LEDs) of your FSC PPC.

Features:
  • LooxLight provides controls for leds of: keyboard, wifi, bluetooth, gps, power. You can keep each led in its individual state. LooxLight can be set to continuosly keep led in ON/OFF state or just temporarily switch led to a desired state.
  • Small footprint. LooxLight service takes only 3.5k of memory when it is loaded. LooxLight doesn't waste CPU cycles: it does nothing, when there is nothing for it to do.
  • Command line operations. You can control leds from your scripts. No resident service needed to be loaded for command line operations. For instance, "LooxLightCtrl +keyb sleep100 -keyb sleep100 +keyb" winks you with keyboard.
  • Tested on Fujitsu-Siemens Loox N560 and Fujitsu-Siemens Loox C550. But AFAIK it must work on Loox 720 or Loox 718 as well.
  • I'll open it under GPL in a next few weeks, as soon as everything I plan to implement has been implemented.


  • Download zipped cab archive (17k).

    How to install and setup.
    1. Download the CAB file and copy it into your LOOX.
    2. Run the CAB on LOOX. Proceed with an installation process as usually.
    3. Go to Programs menu and click on the LooxLight Control icon.
    4. Setup it in accordance with your desires.

    Short description of dialog controls.
    KBD stands for KEYBOARD, BTH is abbr of BLUETOOTH word, PWR is the POWER word as you already suppose. Each line of controls is prefixed with name of led.
    "On" button just switches LED on and "Off" button switches LED off :). Blink means blink.
    "KEEP ON"/"KEEP OFF" means that LooxLight must reset state to required when some other program changed it to unwanted.

    Some controls are disabled for now, becouse they are not yet implemented.

    Command line options:
    LooxLightCtrl.exe ... , where opN is one of:
  • stop - tell service to exit
  • setup - tell service to reload settings from registry
  • sleep123 - sleep 123 milliseconds (where 123 is positive any integer)
  • flashlight - switch all lights on
  • +wifi - switch wifi indicator on
  • -wifi - switch wifi indicator off
  • +bluetooth - switch bluetooth indicator on
  • -bluetooth - switch bluetooth indicator off
  • +gps - switch gps indicator on
  • -gps - switch gps indicator off
  • +keyboard - switch keyboard light on
  • -keyboard - switch keyboard light off
  • +power - switch power indicator on
  • -power - switch power indicator off
  • =power - switch power indicator to blink mode


  • History:
    Oneday, I found out KeyLightC. It was useful program but it lacked in ability to turn on/off individual led without touching others. Also I had to run the KeyLightC when some program was changed state of leds or just after PPC was awaked. I mailed Phill McManus. I asked him for command line options like +keyboard or -keyboard. I asked him to open KeyLightC sources in order to add these features by myself. But he didn't answered me. So I started my own research. It took nearly twenty evenings, before I found how to control leds in right way. Then it took ten evenings to find out how to program for PPC in MS Visual Studio and to learn WinCE API. Next it took three days to abandon that ugly MS Visual Studio and migrate to nice mingw32ce under linux. After all, I have to say I hate Win32 API for its tons of caveats.

    TODO:
  • Implement flashlight mode (Sometimes darkness is not a friend of me).
  • Implement mechanism to keep power/gps leds in choosen mode.
  • Implement backlight control.


  • About firmware of Loox N560/C550.
    I am too tired of this post. I am going to describe it in a next post.

    Feel free to leave a comment with suggestions or information about how it works on your PPC (I am still not sure about 720/718).

    Latest news about LooxLight are HERE.
    Another project helps reduce power consumption on Fujitsu-Siemens Loox N560/C550.

    1 comment: