JProwler – A simple Wireless Network Simulator in Java

When I was a visiting researcher at the Institute of Software Integrated Systems at Vanderbuilt University in 2005, I learnt about a Wireless Network Simulator named JProwler. JProwler evolved from a simulator named PROWLER, short for Probabilistc Wireless Network Simulator.

What I liked was the compact format, the whole simulator fits into less than 20 well-structured Java classes, while implementing a simulator with different timing modes, a graphical display and an event-based underlying simulation engine.

For this reason, I still use JProwler in a lecture on network simulation as an example how a simulator could be implemented from scratch. Unfortunately, a student recently told me that the offificial download for JPROWLER is gone, therefore I provide the code, which is under a free software license here for download:

See also this paper from the authors of PROWLER and JPROWLER explaining the concepts:

G. Simon, P. Volgyesi, M. Maroti, and A. Ledeczi, “Simulation-based optimization of communication protocols for large-scale wireless sensors networks,” Proceedings of the IEEE Aerospace Conference 3:1339–1346, March, 2003.

and this work showing what can be done with JPROWLER:

H. Adam, W. Elmenreich, C. Bettstetter, and S. M. Senouci. CoRe-MAC: A MAC-protocol for cooperative relaying in wireless networks. In Proceedings of the 2009 IEEE Global Communication Conference (Globecom), Honolulu, Hawaii, 2009.

Posted in Protocols, Simulation, Wireless Networks | Tagged , , | Leave a comment

Making and Programming 3D-Printed Robots is a webpage offering 3D-printable designs and control software for small 3D-printable robots.

By building robots from the Make Club webpage one can learn the skills to design and construct own robots. Definitely worth a visit!

Posted in Hardware, Robotics | Tagged , , , , | Leave a comment

Autonomous Hexbug Spider

Autonomous Hexbug Spider

Autonomous Hexbug Spider

The  Hexbug Spider XL is an interesting toy – originally it comes as cheap remote-controlled robot, but at the same time it can be viewed as a cost efficient chassis to build an autonomous robot. There are two motors inside of this spider: one of them controls six-legged crawling motion and the second motor allows to rotate its head on 360 degrees. 3 AA-bateries set internal mechanisms in motion. A two-channel RC remote is used to control this fascinating creature. Our intern – Nadja Hölzl – hacked this robot by adding an Arduino Uno for local control of the actuators. As sensors for detecting obstacles we added small-range proximity sensors.  Some parts of modified robot were created using 3D printer. The application of this approach helped us to fix all necessary components on the top of the robot during prototyping phase and refine its visual representation.

Spider head with installed yellow bars on it

Spider head with installed yellow bars on it

An autonomous robot requires both: actuators and sensors. Actuators are responsible for moving and sensors help to measure a physical quantities. Without actuators a robot cannot perform any practical task.  If your robot doesn’t have sensors, then it’s blind. In our case, actuators  are two motors for moving of the spider. Proximity  sensors help to perceive distance to obstacles.

Our hack starts from disassembling – the head of the spider should be removed in order to get access to the motors. To fix all necessary components on the spider, we selected leveling architecture. It allows to add, change or remove parts of the robot without much effort. In general this approach is good for prototyping, but is not optimal in terms of space requirements and used plastic.

3D printed section for battery and proximity sensors

3D printed section for battery and proximity sensors

First, we designed new head for the robot, which is the base for all next layers. There are two oval holes for wires on the top of this model. From two sides of the head you can see the sockets for the bars, which are used to fix other layers.

A 9V battery is used to power all electronic components of the spider. The holder for battery contains sockets where you can attach up to 10 proximity sensors. TCRT5000 is the reflective optical sensor which we use in our experiments to measure a distance to obstacles. Due to distinguishing shape of the spider, we designed a special bar to hold these proximity sensors.

3D printed holder for Arduino board and motor shield

3D printed holder for Arduino board and motor shield

Unfortunately, current from Arduino board is not sufficient to run the motors.   Therefore we used an  Arduino motor shield to control two motors of the robot. Using this shield you can easily connect and operate the two motors.

We used Blender, which is free and open source 3D animation suite, to model all parts of the modification for Hexbug Spider. 3D printer Makerbot Replicator 5G  turned the virtual designs into real physical objects.

And finally you can relax and watch how this graceful creature explores its environment.

All 3D models are freely available on Thingiverse, so you can download them, possibly modify and print on a 3D printer.

Posted in Robotics | Tagged , , , , | Leave a comment

3D Modeling and Printing

3D modeling and printing can be easy if you have the right tools and programs. My experiences with the free Sketch Up Make and the Makerbot Replicator 5G printer are quite positive.

Getting started with 3D modeling:

Download and install Sketch Up Make (if want the program in a language other than english be sure to visit the webpage in the corresponding language) For example, leads to the German version.

Download and install the software for your 3D printer (in my case, the Makerbot desktop).


Sketch Up Make model of a gear from a Hexbug spider robot. Gears have been drawn with the Involute Gear plugin.

Start Sketch Up make. If you get an annoying prompt every few minutes, start sketch up make with administrator rights until the demo time for the Pro version is over.

Usually, 3D models are printed from an STL file, so you need to install the STL export extension. The extension can be found and installed via the extension warehouse. The extension warehouse can be found via the Window menu of Sketch Up. For accessing the warehouse extensions, you need to log in with a Google account.


Some models are kind of a fixer/upper: Netfabb/Microsoft’s model repair service

So far you can draw and export STL files.However, these files often suffer from model errors like inverted surfaces, holes, etc. In order to repair these problems, we recommend to run the STL file through the model repair service from NetFabb. The service is free for non-commercial use, but requires to sign in with a MSN ID to be used. Upload your STL there and download a repaired version (unfortunately there is no feedback what has been repaired).

Finally, open the STL with 3D printer software and hit print! Happy printing…

… and waiting hours for the printer to finish.

Posted in Hardware, Tools | Tagged , , | Leave a comment

Post-doctoral Fellow in Sensor Networks at ETH Zurich

           Post-doctoral Fellow in Sensor Networks
                        ETH Zurich

The research group on Computer Engineering at ETH Zurich (Swiss
Federal Institute of Technology) has an opening for a
post-doctoral fellow the field of sensor networks.


We have a long and successful history in sensor network research
and we are involved in several large-scale interdisciplinary
projects in environmental sensing. Our research combines
theoretical investigations with serious applications. Wireless
sensor networks are in operation at several field sites in high
alpine regions (permafrost research and early warning) as well as
cities (air pollution). In terms of basic research, our focus has
been on areas like synchronization, highly dependable wireless
protocols, network tomography, testing, formal verification
methodologies, formal methods, and energy harvesting.


The Computer Engineering and Networks Laboratory offers a creative
international environment, a possibility to conduct highly
competitive research on a global scale and to be involved in
teaching. The main responsibility of the position is to conduct
successful research in the field of sensor networks. There are
plenty of opportunities to cooperate with highly recognized
national and international partners. In addition, active
participation in research projects and leading a group of
highly motivated Ph.D. students is expected.


The candidate must hold a Ph.D. degree with top performance in a
field that is closely related to sensor networks. He or she should
have a track record in conducting original highly competitive
scientific research and publishing the results in top conferences
and scientific journals. Maturity, self-motivation and the ability
to work both independently and as a team player in local and
international research teams are expected. Interest in
interdisciplinary collaboration with environmental sciences as
well as outdoor proficiency is advantageous. German language
skills are not required, English is mandatory.


Deadline for application is the 31st of May 2014. Applications
should be sent by email to (Lothar Thiele). They
must contain a statement of interest, a CV, the names of two
references and additional documents, in particular copies of
degree certificates and the associated scores.

Useful links

 ETH Zurich:
 Research Group:
 WSN Research:
 Jan Beutel:
 Lothar Thiele:

Posted in Uncategorized | Tagged , | Leave a comment

Hacking Amazon’s Kindle E-Book Security with Lego Mindstorms

kindle-lego-device_sPeter Purganthofer, associate professor at the Vienna University of Technology, built an amazing project involving an Amazon Kindle, a computer with built-in webcam and a Lego Mindstorm robot.
The robot presses alternately the “next page” button on the Kindle ebook reader and the space button on the laptop. Thus, a computer program on the laptop takes a screenshot of the current page, which is subsequently converted into text using an OCR software. This way, one gets a DRM-free copy of an e-book “bought” at Amazon. Purgathofer states that due to Amazon’s e-book sales model, “The owner isn’t even an owner anymore but rather a licensee of the book”.

The video below shows the system in action. The overall machine is awesome. It reminds of designs for Rube Goldberg machines.

DIY kindle scanner from Peter Purgathofer on Vimeo.

Of course this is definitely not an efficient way to re-digitize an e-book. For example, the process could have been better automated using Kindle software and a screenshot tool directly on the computer. However, the goal was to make a noticable statement about copyright, eBook DRM and ‘ownership’ of eBooks. And to have fun playing with robots.

Posted in Hardware, Robotics | Tagged , | 1 Comment

Biologically Sound Neural Networks for Embedded Systems Using OpenCL


Guest post by Anita Sobe

Presenting our paper

I. Fehervari, A. Sobe, W. Elmenreich. Biologically Sound Neural Networks for Embedded Systems Using OpenCL. Proceedings of the International Conference on NETworked sYStems (NETYS 2013), Marrakech, Morocco, Springer 2013.

in the format of a short announcement was an interesting challenge. The task was to get the other researchers to read our paper by only talking about it for 5 minutes. Furthermore, the audience was wide-ranged from all topics of distributed systems. So, I had to introduce spiking neural networks and the motivation for using them on a distributed embedded system before pointing to the approach of implementing them with OpenCL:


Spiking Neural Network Model

Neural networks are widely used in machine learning and many implementations exist to process images, process information, etc. Biologically sound neural networks are more powerful than standard ANN models, because the encoding is done in a spike train, conveying also information in the time domain.

Thus, spiking neural networks have nice properties, but they require significant computing power to emulate them.


Example structure with 10x10x10 neurons. Typical structures are much larger requiring a high number of parallel calculations

For embedded systems, computation is a critical resource. We propose to use OpenCL for massive parallelization of the neural network model. OpenCL is a framework for programming software running on GPUs. But this is not enough, the most complex part comes from updating neurons and the state of the influenced neighbors. We therefore propose a connection model  where each neuron is only connected to its neighbors, up to a given hop distance. Using this model we were able to simulate 1 million neurons instead of 100.000 (which is big for usual networks). The performance gain is already excellent, but we even went further.

Performance gain

Performance gain

OpenCL supports local memory for so called task groups and a second-level shared memory for all tasks. Shared memory is slower, therefore, we redesigned the implementation in such a way that it only uses the local memory of OpenCL. This final measure improves the latency well enough to run our system with a high number of neurons on an embedded node such as a robot or a smart camera attached to a drone.

Posted in Embedded Software, Sensor Fusion, Uncategorized | Tagged , , , | 1 Comment