Tuesday, December 28, 2010

amBX SPOT (fan and rumble pad)

A year ago, I wrote a JAVA wrapper library for my amBX gaming system. This gaming system allows games to give the user visual and haptic/force feedback. You have fans blowing when you drive a car, you have a rumble pad vibrating if you get shot and you have brilliant lights which change to the main color of your current screen to set an ambient mood :).

For a long time there weren't any open SDKs. Only licensed game developers could benefit from the system. After a while they released an open SDK written in C. Since I work mostly and preferably with JAVA, I decided to write a wrapper to control the system from my applications. I used JNA which has some advantages over JNI as you don't need code stubs and headerfiles in C and such.

I refactored some of that code and connected it with my SunSPOTs. Now I can control the fans and the rumble pad with one of my SPOTs. If I press and hold a button on the SPOT, a request is transmitted to the SunSPOT basestation which triggers the fan or the pad. If I release the button, a request is transmitted to turn off the amBX system. If I have time in the next few days, I will try to control the lights with the accelerometer of the SPOT.