Captain Herrmano’s Mystery Box – a Reverse Geocache

Captain Herrmano's Mystery Box

Today we’ll be talking about Captain Herrmano’s Mystery Box, a piece of hardware that I built over a year ago. But what is this box, what does it do, who was it built for and who is this Captain Herrmano anyway? This will be the topic of this article.

What is Captain Herrmano’s Mystery Box?

The box is a so-called “reverse geocaching puzzle”. The inspiration for this project was a reverse geocaching box built in 2009 by Mikael Hart. Unlike Mikael’s version of the box, it’s not enough to simply find and visit the target place. To unlock the treasure of Captain Herrmano, the player has to solve more tasks.

The special thing about this box is that it interacts with the player, and not just via text – it also has sound and light feedback, as well as other means of communication. But more about that later.

So who is this captain anyway? Captain Herrmano is an old pirate, whose spirit guards the chest and guides the player through the challenges. The chest, in turn, contains the pirate’s treasure.

A Birthday Present with Consequences

I came up with the idea for the box, developed it and built it all as a birthday present. I wanted to gift something extraordinary, and since I always find the anticipation and the unboxing the most fun moments, I decided to make the unboxing process take a little longer than usual.

The player only receives the present after they have solved all of the Captain’s riddles.

A Solution and Overview of the Riddles

Since the birthday has passed and the recipient has had his share of fun already, I can freely write the article here. To give you an overview of the capabilities and features of the box, I’ve made this small video that shows a complete walkthrough of all the riddles.

Captain Herrmanos Mystery Box - Flowchart

If you are too confused by the video, you can have a look at this game plan that shows the path to the treasure as a picture.

How many hours of gameplay the game has depends on how quickly the player solves the riddles. Theoretically, you could finish it within 1-2 hours. In practice, the recipient spent a good weekend playing it.

Technical implementation

Since building the box cost me time and nerves and I was under time pressure, I forgot to write down any documentation for all the stuff that I was doing. When I have more time I’ll try to make a small technical write up and describe the technical implementation more precisely. I’ll limit myself to short descriptions for now.

The housing – that is, the box itself – came from a Nanu Nana store (which is a German chain of stores). Inside of the housing, an Arduino Mega controls and receives information from different sensors and boards – for example a CO sensor (carbon monoxide), a thermometer, an ultrasonic sensor, a GPS receiver, a number pad, a speaker, a display, a mini SD card and a servo.

Also because of the time pressure and the fact that this was a one-off thing, I have done nearly none cable management, so I ended up with cable tangle. The following photos should serve as proof.

Captain Herrmano's Mystery Box - Kabelsalat Captain Herrmano's Mystery Box - Kabelsalat

I made the interface (that is, the chipboard with the buttons and sensors) on my own with the help of a rotary tool (Dremel) and sandpaper.

The locking mechanism should serve as a further highlight of how unprofessionally creative the design is. It’s made of hinges, parts of a door latch, a servo, wire and half a pencil. This perfect child of passion and engineering is demonstrated in this short video.

You can find the Arduino code in my Github repository. A wiring schematic and further technical details will possibly be published in a later article.

Conclusion and Feedback

Now I’d like to know what you think of this present – I can think of a whole bunch of questions.

Do you think this is successful or do you have improvement ideas? (If I make something like this again I’ll definitely include your ideas, as long as they’re qualified.) Have you built something like this yourself or do you know someone who has? If so, I’d be glad to see some photos. I’m always curious to know how others solved similar “problems”. And finally, are you interested in further technical details or schematics?

It’s your turn now. I’m always happy to hear from you!

Captain Herrmano's Mystery Box - Galerie Captain Herrmano's Mystery Box - Galerie Captain Herrmano's Mystery Box - Galerie Captain Herrmano's Mystery Box - Galerie Captain Herrmano's Mystery Box - Galerie Captain Herrmano's Mystery Box - Galerie Captain Herrmano's Mystery Box - Galerie Captain Herrmano's Mystery Box - Galerie Captain Herrmano's Mystery Box - Galerie Captain Herrmano's Mystery Box - Galerie Captain Herrmano's Mystery Box - Galerie Captain Herrmano's Mystery Box - Galerie


Update: Cloud Downloader 2.4


Cloud Downloader 2.4The following post will be very brief but nevertheless it will bring you some nice news. With immediate effect version 2.4 of my Cloud Downloader is ready for download.

In this version there are no new features, but some important bug fixes. Since Soundcloud has once again screwed up their website, as well as their API, some playlists and profiles couldn’t be loaded with the 2.3 version any longer.

That’s why there is the new 2.4 version. So everything should work again. As always – if you find errors or have suggestions, let me know!

Get the new: Cloud Downloader 2.4

I’m looking forward to get some likes and tweets from you. ;-)


Update: 404Checkr


404Checkr - RunningQuick interim report – as of today there is a new version of my mass linktester called “404Checkr”.

For those who can not remember anymore, let me explain it in a few words – the 404Checkr was released about a year ago by me. By means of this tool one can easily and very quickly test lots of links for their validity. Thus, for example, one can easily check out which webpages of a linklist are still online and which aren’t.

In the current version ( I have added four new features:

  1. The 404Checkr now brings its own system to resolve domain names. Thus it can be taken to find the IP from a server by using its domain name. So servers can be tested even if Windows isn’t able to resolve the domain name.
  2. Any user agent can be specified. Thus, the 404Checkr can impersonate any browser / user.
  3. The result list has been extended by two tabs. Besides the complete result list now you can also display only the successful or only the faulty scanned urls.
  4. Update check. The 404Checkr notifies you when there is a new update

Get the new 404Checkr

404Checkr - Start  404Checkr - Completed


404Checkr - Completed - Good  404Checkr - Completed - Bad


How to get Whatsapp notifications on Sony Ericsson Liveview

LiveView Custom Notifications Whatsapp

Today I want to introduce you to a small plug-in for Sony Ericsson LiveView.  The LiveView makes it all really worthwhile for me. The plug-in is a “CustomNotifier plugin” and is available free at the Google Play Market, however, cannot be found easily through a normal search. (Unless you are versatile in Chinese.) That is the reason; I recommend you download the plug-in by following this link here. What is the plug-in capable of?

The CustomNotifier plugin, can as the name already implies, display any notifications on the LiveView. More specifically, pretty much every notifications of your Android device can be displayed.

Thus, for example, it is also possible to display notifications from your Whatsapp on the LiveView, without using a special Whatsapp plug-in. Since the configuration of CustomNotifier plug-in is not easy, I will show you below, how do you get the plug-in up and running? (In case your Android 4.0 (aka ICS) have problems with the activation of LiveView plug-ins, please read this article first.)

Display Whatapp, KiK-Messenger and other notifications in the Live View

Step 1:

Open the CustomNotifier plugin in the LiveView application. Enable it now by clicking on “enabled”. If necessary, you can still check “Use App Icon” set. If you activate the “Use App Icon” feature, the icon of the app is displayed in LiveView the notification dates are also displayed next to each notification.

LiveView_Whatsapp_Benachrichtigungen_Tutorial (1)  LiveView_Whatsapp_Benachrichtigungen_Tutorial (2)

Step 2:

Choose those apps, from which you want to receive notification.

LiveView_Whatsapp_Benachrichtigungen_Tutorial (3)

Step 3:

This step is very important, however, it is not clear from the plug-in itself. Open the system settings of your smartphone scroll down to “Accessibility “. It is important that you enable the CustomNotifier plugin here as well. The reason why, the notifications, which push the plug-in on your LiveView come from the notification bar of your device and therefore special read permissions are necessary.

LiveView_Whatsapp_Benachrichtigungen_Tutorial (4)  LiveView_Whatsapp_Benachrichtigungen_Tutorial (5)  LiveView_Whatsapp_Benachrichtigungen_Tutorial (6)

With a little luck, everything should be working now. I sincerely hope that I could help you and that you now can receive notifications from all your favourite apps on the Sony Ericsson LiveView display. If something was unclear or you have any questions, just drop me a line!


How to install and configure Roundcube


how to install roundcubeToday we’ll be talking about installing the webmail client Roundcube on your website or web server. However, before we begin I’d like to say a few words about why a webmail client is a good idea in the first place and why I decided to use Roundcube. If you’re just interested in the installation procedure, you can skip directly to the next paragraph (“Basic requirements”).

Why install a webmail client? I can answer that question only for me and my specific case. I have several email addresses – one is a Gmail address and the others are addresses for my websites and blogs that all have the format @website-name.net.

So when I want to see my emails, I don’t want to open five different websites and three programs. I’d like for everything to be in one place. Gmail offers the integration of different email addresses to one account, but it only allows it through POP3. Since I didn’t want to sacrifice IMAP functionality – otherwise the emails would have gone to Gmail and not my smartphone – that was not an option.

Until now I used Thunderbird Portable that I had on my flash drive for this. That way, I could see emails from every account wherever I was while only having to start one program. That solution is still not perfect though, since you could easily forget your flash drive, or you could find yourself without PC access or with access to a PC that blocks USB devices or IMAP ports. The solution? A web-based email client. You don’t need anything other than a browser and you can read emails from multiple email accounts in the same client. That is what Roundcube is and what it offers, and that’s why I’m offering a small installation and configuration guide for it.

Basic requirements

To install Roundcube, all you really need is a web server with PHP support and a database. I have an Apache-MySQL combo on my server here, but it could also run on a different setup, like, for example, a PostgreSQL database and a different web server like lighttpd.

  • Web server with PHP support (version >= 5.2.1)
    • (e.g. Apache, Lighttpd, Cherokee, Hiawatha)
  • Database (or database server)
    • (e.g. MySQL or PostgreSQL)

Downloading packages and setting up the web server

First we’ll need a directory in the web server’s root folder for the Roundcube installation. The default root folder for Apache is /var/www. Afterwards we can go into the newly created folder and download the newest version of Roundcube via wget.

mkdir /var/www/roundcube
cd /var/www/roundcube
wget http://sourceforge.net/projects/roundcubemail/files/roundcubemail/1.0.3/roundcubemail-1.0.3.tar.gz/download

At the time of writing, the newest stable version of Roundcube is 1.0.3. Maybe there’s a new version released and the article isn’t updated right away. Therefore it’s worth taking a look at Roundcube’s download page to check which version is the latest.

Once the download is complete, the Roundcube package has to be extracted. That can be done using the tar command.

tar xvf roundcubemail-1.0.3.tar.gz
cd roundcubemail-1.0.3
mv {.,}* ..
cd ..
rmdir roundcubemail-1.0.3

The next step would be to create a configuration file in order to set up a virtual host. This step is Apache-specific. If you’re installing Roundcube on a different web server, the process will be similar but implementation-specific. In this case I called the config file “webmail”.

cd /etc/apache2/sites-available
nano webmail

Now we enter the following text in the nano text editor:

<VirtualHost *:80>
  ServerAdmin webmaster@mydomain.de
  DocumentRoot /var/www/roundcube
  ServerName webmail.mydomain.de
  ErrorLog /var/log/apache2/webmail.mydomain.de-error_log
  CustomLog /var/log/apache2/webmail.mydomain.de-access_log common

Afterwards we save and close the file by pressing Ctrl+X. The next step will be to activate the virtual host configuration and have the Apache server load it.

a2ensite webmail
service apache2 reload

Creating and configuring the database

Now we need to create the database that Roundcube will use, create a user and grant him necessary privileges.

mysql -u root -p

mysql> GRANT ALL PRIVILEGES ON roundcube.* TO roundcube@localhost IDENTIFIED BY 'my_password';
mysql> quit

Of course you’ll need to replace “my_password” with the actual password you want to use for your database. The command “FLUSH PRIVILEGES” is also very important – it makes the privilege changes take effect immediately. Now the database is set up, but we still have to “breathe life” into it – we need to import data from the .sql file packaged with the Roundcube installation.

mysql -u roundcube -p"my_password" roundcube < /var/www/roundcube/SQL/mysql.initial.sql

The only thing we have to do now before we begin the actual installation is to specify the database information in the Roundcube config file.

cd /var/www/roundcube/config
nano config.inc.php

Inside the file we have to replace the example string with one that contains our actual connection information.

//Replace mysql with mysqli, "pass" with "my_password"
//and roundcubemail with "roundcube" in this line
$rcmail_config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';

//The final result should look like this:
$rcmail_config['db_dsnw'] = 'mysqli://roundcube:my_password@localhost/roundcube

Now we can save and close the file by pressing Ctrl+X.

Web installation and basic configuration

We’re close to the end of the tutorial now. The next step is to start Roundcube’s web installer. Now that we’ve set up our virtual host, the web installer can be found at the following address:


Follow the steps provided by the web installer and finish up the setup. Remember – once it has been completed, the installer folder has to be removed in order to prevent any potential attacks.

rm -rf /var/www/roundcube/installer

Finally, we need to tweak Roundcube’s main config file.

cd /var/www/roundcube/config
nano config.inc.php

Inside the config we need to make the following changes.

//change enable_installer from 'true' to 'false'
$config['enable_installer'] = false;

//Activate TLS
$config['default_host'] = 'tls://mail.%s';

//Set the outgoing server same then incoming
$config['smtp_server'] = 'tls://%h';
$config['smtp_port'] = 587;
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';

//Set up title-text
$config['product_name'] = 'Mein Webmail Client';

Now save and close by pressing Ctrl+X, and that’s it.

Logging in and reading emails

Roundcube login

I’ll just show the login screen once more. The webmail client can be accessed at http://webmail.mydomain.de. Now, if I want to access the emails on webmaster@code-bude.net, I can enter the email address as the login and my actual email password as the password.

As per the config setting ($config[‘default_host’] = ‘tls://mail.%s';) Roundcube uses tls://mail.code-bude.net as the mail server, since %s in that string is replaced with the domain name (the part of the address after the @). Roundcube interface

That way I can log in with different email addresses (@code-bude.net, @derwirtschaftsinformatiker.de, etc.) without having to explicitly specify the mail server every time.

Finally, a click of the “Log in” button opens up the interface that allows you to receive, read and write emails just like in any other webmail client.


Page 1 of 32