Touch Orbiter - for the CUWIN3500 in-wall Touch Panel

From LinuxMCE
Revision as of 12:08, 11 July 2011 by Uplink (Talk | contribs) (Own up to memory leak.)

(diff) ←Older revision | view current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search
Version Status Date Updated Updated By
710 Unknown N/A N/A
810 Unknown N/A N/A
1004 Unknown N/A N/A
1204 Unknown N/A N/A
1404 Unknown N/A N/A
Usage Information


This page has been setup to describe the reference Touch Orbiter implementation for the CUWIN-3500 WinCE in-wall Touch Panel. We include the source code for those that would like to try their hand at porting Touch Orbiter to a new device. If you are involved in porting Touch Orbiter to a new device please add your experiences to the wiki and of course your sources to the svn too.

Reference Implementation for the CUWIN-3500 WinCE in-wall Touch Panel

Installing build dependencies

apt-get install bison flex libgmp3-dev libmpfr-dev texinfo


You can get the source code from SVN. The source code includes everything you need to build OrbiterCE.exe.

Two targets can be built: arm and x86 (Windows CE in both cases, not desktop Windows).

Just type either make all-arm or make all-x86, depending on what platform you need, get a few trucks of coffee, and wait*.

The first time you run make, it will download, build, and install CE GCC, zlib, libpng and libjpeg. Then, it will build OrbiterCE.exe in the directory OrbiterCE. For CE GCC it will need root privileges. Sudo is used for this purpose, so it may ask for your password after CE GCC is downloaded, before it is built.

When the build is done, a directory called TouchOrbiter, which will contain all the files in a subdirectory called arm or x86, depending on what you built. Copy the arm or x86 directory to your Windows CE device. Before you copy it, be sure to edit Orbiter.ini and set the IP of your router and the port of the Proxy_Orbiter you want to connect to.

The Touch Orbiter will run in full screen on the device. To exit it, tap and hold your finger on the screen, and a dialog box will show up asking if you want to close the application.

If you want to build both arm and x86 binaries, you need to do a make clean in between, because everything is built in the same place and if you don't, you'll see very voodoo errors.


Why choose the cuwin-3500? Well we happened to have one... which is a good reason ;-)... also its a pretty common low-ish spec WinCE device and so it seemed like a good machine to do an implementation for.

Orbiter Ini File

This file is in ASCII format with DOS line endings. Don't convert it to UCS-16, even though Windows CE likes it.



In the initial implementation, the Anchor* and Offset* options aren't used. These options are meant to allow you to customize the position of the waiting cursor. While CursorSet is used, the sizes and numbers of the images in the specified directory are hard coded in source.

Memory leak

There's a tiny memory leak somewhere in this implementation, which makes the Touch Orbiter kill WinCE slowly. Very slowly. Every few months or so of continuous running. I couldn't track it down, so it could as well be Windows killing itself, not Touch Orbiter, but I can't prove or disprove any of these claims. - Uplink 12:08, 11 July 2011 (CEST)

Images of Touch Orbiter running on a CUWIN-3500

The cuwin-3500 in-wall panel running Touch Orbiter (with 2 ACT ZWave light switches to the left)

Touch orbiter cuwin3500 1.JPG

Closeup view of the cuwin-3500 running Touch Orbiter (Sky STB Control Screen displayed)

Touch Orbiter on cuwin-3500 closeup.JPG