Support this project:
or send me something from my Amazon wishlist.

This page summarizes all my current Maemo related projects. This includes games, hardware hacks and gps/navigation related software.


Enigma is a game where you control a marble through various maze like puzzles using the PC mouse. Similar games are Oxyd (Wikipedia) or my own palm game mulg.

The Maemo port includes the necessary adoptions to the Maemo hardware (touchscreen, fixed 800x480 screen size, hw buttons) and a driver for my TiltStick. The Maemo port is based on the 1.10 beta release of enigma.

Using the TiltStick with an early maemo port of enigma
(not using the full screen width a that time)


The Zeemote driver allows to use the Zeemote JS1 bluetooth game controller under Maemo. The driver constsits if three parts: The basic driver library (libzeemote), a configuration control panel plugin (libzeemote-conf) and a library to access the configuration. The interfaces are designed for easy integration into existing and new games. A demo game framework (zeesteroids) is provided in the extras-devel repositories and can be used as a reference for zeemote integration. Get the source code via e.g. apt-get source zeesteroids.

These tools are needed to use a zeemote under Maemo. Using it under ordinary linux with proper joystick input system is much simpler. I wrote the zeemoted for this purpose. Version 1.2 of 03-13-10 now also compiles under Ubuntu 9.10 and allows to map multiple zeemotes. It just maps a zeemote onto the regular linux joystick subsystem and makes it available to any game or other application usually using normal joysticks via the standard linux interfaces. Just compile and run the zeemoted and it will detect zeemotes in range and map them to joystick devices (/dev/input/jsX).

The zeemote driver as well as the config tool are available from the maemo extras repository.


The TiltStick is a homebrew hardware designed to be used with Linux/Maemo like the I2C-Tiny-USB. But unlike the I2C-Tiny-USB it comes with a USB HID joystick compatible interface available to be used in a plug'n play fashion with most operating systems. However, this isn't true for the Maemo platform as it doesn't include the joystick subsystem of the Linux kernel. The "tiltstick mass" demo includes a special interface to the Maemo kernels input system allowing the TiltStick to be used on the Maemo plattform even though the joystick subsystem is missing.

This demo additionally makes sure that the permissions are granted to any user application wanting to access the TiltStick. It's therefore also required for the Maemo Enigma port to access the TiltStick. The tiltstick mass demo is available from the maemo extras repository.


The I2C-Tiny-USB is a generic USB to I2C interface designed to be used with Linux. See the I2C-Tiny-USB homepage for details. While it comes with a linux kernel driver it can also be used with applications directly accessing the USB interface via libusb and thus bypassing any kernel driver. One such application has been written for Maemo. This was my first USB hardware related Maemo project.

This application is meant as a programming example for the use of USB sensors on the Maemo Plattform and currently supports a pcf8574 port expander chip as well as a ds1621 temperature sensor. The application is available for direct install from the maemo extras repository.


Kwarto is simple board game based on the Quarto game. The game has been developed from scratch for Maemo and includes a simple computer opponent. Kwarto was my first Maemo project started from scratch.

Kwarto is available from the maemo extras repository for one-click installation.


Othello is a Maemo port of gpe-Othello which in turn is a port of an early version of Ultimate Othello. This port was my first development work on the Maemo plattform and the resulting Othello for Maemo is a 100% function compatible with the original gpe-othello. Some small code bugs were fixed during the port (e.g. memory leaks were closed) and the preferences menu present in the gpe-othello source code but not enabled has been enabled in the Maemo port.

Othello is available from the maemo extras repository for one-click installation.

Toposrv for Maemo-Mapper

Toposrv is a tiny web server implementation for use with Maemo-Mapper. The purpose of toposrv is to make german topographic maps typically used on a PC with the geogrid viewer (e.g. Top25 Baden-Württemberg) available to Maemo-Mapper. Toposrv has been tested with the BaWü 1:25000 and 1:100000 maps and with NRW 1:50000. Other maps may also work but haven't been tested. Toposrv directly reads the map data stored in .mph and .mpr files and can thus work directly from the CD or from its contents copied to harddisk. Upon request by Maemo-Mapper the appropriate map regions are scaled, converted and sent to Maemo-Mapper. For further details read the readme.txt in the download below.

Download toposrv here (Linux source code).


GPXView is a viewer for GPX files. GPXView allows to conveniently store cache descriptions on the Maemo platform. It is planned to either include this into Maemo-Mapper or another topographic mapping application like navit.

Recent versions have the ability for basic compass style navigation in connection with a GPS (built-in on n810 or external on any device).

Get the source code here


GPXView is available from the repository. Find the changelog here.


OSM2Go is an editor for map data. OSM2Go is designed for simplicity and user friendlyness and not for maximim feature count. It is meant for simple mapping on the road.

Take your n810 out and mark your favorite restaurant on OpenStreetMap, enter your childrens playground to the database, map your entire neighbourhood or just correct this OneWay that recently changed direction.

Screenshots from different versions:

V0.1: Main Screen

V0.4: Object details including main tag view

V0.4: Tagging with JOSM presets

V0.5: WMS layer selection using

V0.5: Using landsat background image

OSM2Go currently is an early work in progress but starts to be useful to the end user. Please be careful with these initial versions of OSM2Go as they allow you to alter the main database.

The current version includes:

OSM2Go is available from the repository. Find the changelog here.



MTetrinet is a maemo/hildon port of Tetrinet for Linux.


V0.1-1: Playfield screen

MTetrinet supports the usual controls via keyboard (e.g. the number keys send specials to the playfields). To allow for usage without keyboard, some extensions were done:

MTetrinet is available from the repository.