Category Archives: Programming


I wrote a small program in C++ using Qt that quickly calculates the ratio of weak acid to conjugate base you need to make a buffer solution of a certain pH.

Download will be here shortly. E-mail me if you’re interested.



A screenshot of a sample flightplan created with default setting in GUIgor.


GUIgor is the name of Sikorsky Control’s desktop application for Project Igor, a completely autonomous RC helicopter. It is used to set several variables concerning the flightplan of the helicopter.

I created this piece of software with Qt, using the QCustomPlot library by Emanuel Eichhammer. It was the first time I’ve used QCustomPlot, and I must say I’ve found it fairly easy to use and implement, and very useful. It was made for the third project of my study Embedded Systems Engineering at the HAN University of Applied Sciences.

iRobot Roomba Simulator (SIMBA)

SIMBA (SIMulator for the roomBA) is a simulator for the iRobot Roomba 520 robotic vacuum cleaner, and our custom Play4All add-on. The simulator was written entirely in C++, using the Qt application framework. It was made by me, with assistance from Sjef Heijnen, Jenny Hendriksen and Joey van Hummel.

The simulator consists of a log, Roomba commands, Roomba interactions, serial connection, sensor data settings and simulating tools for the Play4All add-on. The log is in the style of classic computer terminals, and displays a message whenever the simulator does anything. Error messages and warnings are also displayed on here. The Roomba commands consist of the Spot, Dock and Clean buttons found on the Roomba, as well as some info on the machine, including the Roomba’s current operating mode, baudrate and charging state. The roomba interactions consist of four button that simulate external variable changes for the roomba; pushing the bumper, lifting the roomba, and supplying the docking station. There’s also a button that sends the Roomba into Full mode, for convenience. The Serial Connection lets you connect and disconnect to the Play4All add-on via the specified COM port. The sensor data is simulated by mean of a couple of sliders for each sensor. Not all sensors were simulated, only the ones of value to the development team. Using the sliders, you can set the value for all sensors as you wish. The Simulator will generate accurate sensor data packets when requested. The Play4All simulating tools consist of four buttons like the ones found on the add-on, as well as 4 tick boxes to represent the LEDs turning on and off. Lastly there’s an About button that will display the About window, and a Close button for closing the program.

Because the Roomba is a registered trademark property of iRobot, I won’t be publicly releasing the source code. Even though the simulator makes use of the Open-Interface spec, the Play4All is also private property of HHHP (and by extention, the HAN University of Applied Science). If you need help with your own Roomba Simulator, don’t hesitate to contact me for help and advice.

In addition, I made this Roomba 520 vector image that may be freely used:

iRobot Roomba 520 Vector Image