Wireless Sensor Networks

August 2nd, 2011

Two weeks ago I attended a practical course about wireless sensor networks where we worked with IRIS motes and various sensor boards.

After following instructions and developing small applications for a week, we should think of a final project which we should finish in about two additional days. My project was, to use a total of 10 sensor nodes to measure the average temperature and light conditions in two rooms and their variation over time. If you are intrested in it, you will find my project report and the source code here:

Project Report

Makefile
EnvprojectReader.java
ReportMsg.java
envproject.h
envprojectAppC.nc
envprojectC.nc

Protecting Anonymity and Privacy in the Wireless Era

June 24th, 2011

I just want to point out that in the “University” menu, under “Networks Security and Privacy”, you can find my (short) report for the topic mentioned in the title. Of couse, 5 pages are never enough for this (given) big topic, so what you should expect is an overview about conceptual technical weaknesses, that allows users of mobile wireless devices to be tracked in their movements and what can be done to prevent this.

Customer Data stolen from Bioware

June 24th, 2011

I was noticed this morning by Electronic Arts, the owner of Bioware, that they were hacked and customer data, including mine, was stolen from the Neverwinter Nights forum system. So now it happened to me too, after I was unaffected by the big hacks (Sony etc.) of late.

The message from EA (part of it):

We recently learned that hackers gained unauthorized access to the decade-old BioWare server system supporting the Neverwinter Nights forums. We immediately took appropriate steps to protect our consumers’ data and launched a thorough ongoing evaluation of the breach. We have determined that no credit card data was compromised from the servers, nor did we ever have or store sensitive data like social security numbers. Our investigation shows that information such as user names, encrypted passwords, email addresses, mailing addresses, names, phone numbers, CD keys and birth dates from accounts on the system may have been compromised, as well as other information (if any) that you may have associated with this forum account. In an abundance of caution, we have disabled your legacy Account. To create a new account please visit social.bioware.com.

I wondered why they disabled some accounts (like mine) while sending some other customers only a link to set a new passwort, as you can see in the mail printed by the media. But in the end, I do not really bother, as I have not used the account for some time now anyway. It shows once again, that it could be worth it to delete your unused old accounts from time to time.

Links:
Media Coverage (German)
EA FAQ Entry

Restructuring of my websites and future of EmbalonView

May 17th, 2011

Abstract of the German post:
I have merged my website embalon.de with this blog. You can find the content with the new top menu.

Additionally I have decided to remove my former showcase project, EmbalonView, from my website(s). For the foreseeable future I will not continue to work on it and was unsatisfied with the quality of the code.
Development is therefore officially stopped.

I hope EmbalonView was of some use to people out there and want to thank you for your interest in my piece of software.

[Linux] Set Primary Monitor

May 14th, 2011

When using multiple monitors, for example the one built into your notebook and an additional external one, the common linux distributions (at minimum Ubuntu and Fedora) will decide for themselves which one will be the primary one (With notebooks it is the internal one).
This will affect the placement of the Gnome2, Gnome3, Unity and KDE main menus.
So, how to change it?

Searching online, the usual answer for Gnome2 is, to start gconf-editor and go to /apps/panel/toplevels. There you will find your panels, in the default configuration one for the top (“top_panel_screen0″) and one for the bottom. The panels have the property “monitor” which is set to 0. Changing it to 1 will immediately move the panels to the second monitor.

This works well for Gnome2, but what is with everything else?
One simple solution is using xrandr. Open up a console and enter “xrandr” to see some information about your screens. Look for the names, they are called something like “LVDS”, “VGA-0″ or “DVI-0″. For setting the primary monitor to DVI-0 you can now execute “xrandr –output DVI-0 –primary”.
One disadvantige is, that this will only affect the system until the next reboot. So you need to add the command to the list of automatically started programs to apply it after each startup.

[Addition:]
KDE also has a graphical option for this, so no need to use the console there.

Manual Fan Control On Acer Extensa 5620G And Linux

April 16th, 2011

Since I was annoyed by the fan of my Acer Extensa 5620G notebook, manual fan control was and is a big issue for me.
When I was still using Windows, I used a tool called “Notebook Hardware Control”, which was not uncomplicated, because there are several versions (beta, releases, ..) out there and only one (not the newest) worked for me without causing a bluescreen(!). When it finally worked, however, I was quite satisfied.

On my new Ubuntu (first 10.10, 11.04 since Beta 1) a new solution needed to be found. After some searching, not as successful als hoped, I stumbled across a perl script called “acer_ec.pl”. Just google it for yourself, if you are interested. It can modify registers of some chip in the notebook, which, among other things, controls the fan.
The next step was to find out, which are the right registers and what values to write into them.
After some – unsuccessful – searching, I had the idea to just look them up in one of the files of the mentioned Notebook Hardware Control tool, which (the file, not the whole programm) was fortunately available as C# source code.

BEFORE YOU READ ON:
Be aware that meddling with your fan will most likely void any guarantee you have on your notebook. Additionally, you can DAMAGE YOUR HARDWARE. You will do everything ON YOUR OWN RISK. I am not responsible for how you use the information I give you here, neither can I guarantee that the information are correct and without errors. Use your common sense, and only do this if you know what are you doing.

So, here the technical stuff:

You can enable or disable manual fan control by writing into register 0×93.
The default value (fan control is automatic) ist (for me): 0×04
To enable manual control, just change the register to: 0×14
Simply revert to the default value to restore automatic. DO NOT FORGET THIS if you want to stop controlling it manually.

The speed is controlled by register 0×94.
You need to substract the desired speed from 255 and convert the resulting decimal value to hexadecimal:
value = hex(255 – desired_speed)

Some example speeds and the corresponding register values:
50 -> 0xCD
80 -> 0xAF
120 -> 0×87

Basically, 50 and 80 are the only speeds I am setting manually. At temperatures below 68°C I set the speed to 50, from 68°C to 79°C I set it to 80, and from 80°C onwards (which is – to my knowledge – the area where it starts to get uncomfortable/dangerous) I revert the fan control to automatic, because I have no idea what the maximum speed of the fan is. 50 and 80 are slower than the maximum, that is rather simple to hear by the noise. I would recommend against setting the fan to speeds higher than 120, although nothing prevents you (technically) to do so. It will be quite loud and maybe the fan will break.

How to read out the temperature?
On my system, I read the temperature out of /sys/class/thermal/thermal_zone0/temp and /sys/class/thermal/thermal_zone1/temp. I am then using the higher one out of the two. I HOPE that are the right temperatures, but the values seem to make sense ;) (You appearantly need to divide them by 1000).

What now?
If you belong to the target audience I am writing this for, then it will be easy for you to write a script or a small programm to control the fan as you like. I have a bash-script which does this for me, but I think I will not publish it here, to prevent people simply copy&pasting it and mabye damaging their hardware.