This project is a software artifact for the Robust Distributed Wind Power Engineering project, which can be found here:

It implements wind turbine monitoring software which detects faults and structural defects in the wind turbine and reports them to a higher level facility.

Please visit the project web site for contact information if you have questions or comments regarding this software.


Building this project requires the following packages on the build host:

  • Fiji VM and compiler
  • JDK
  • Working C compiler for your target platform
  • javac capable of compiling JDK 8 generics
  • A Java ME 8 jdk.dio class hierarchy for device I/O (very little functionality is required)

In addition, to build the RTDroid implementation, you will need an RTDroid build compatible with these sources.

The default target platform is the Raspberry Pi, specified to the Fiji VM with --target rpi. The development platform is Raspbian.

The Fiji VM real-time Java virtual machine is required to build and execute this project. Portions of the Java code require Fiji VM internal libraries, and the native code to Java linkage requires the Fiji VM.

In addition, the following elements are required for the target host, and should be placed in the appropriate directories under target/ in the toplevel directory of this project. E.g., libraries in target/lib and headers in target/include.

  • libasound2 development library and headers

Note that "development libraries' are the .so file, not .so.*. On many platforms this may simply be a symlink to the .so.* file, in which you can either copy the file or use a symlink to the actual file.


You must provide the location of your Fiji VM installation, either by editing the Makefile to change the FIVM variable or by providing it on the command line. To provide it on the command line, issue a command such as:

make turbine-monitor FIVM=$HOME/fivm

Similarly, you must provide the location of a Java ME 8 Device I/O library stub implementation (that provides the class hierarchy for the Device I/O API, but not necessarily a VM-specific implementation). Such an implementation is probably available wherever you got this source. A path to the jar file should be provided in the DIO variable.

The default build target, all, builds the Java sources and produces turbine-monitor.jar, containing the turbine monitor core algorithms. It does not, however, pass this build through the Fiji VM compiler; use make turbine-monitor for this. To build the RTDroid binary, use make turbine-rtdroid. (This will require that the RTDroid libraries are available and built, and that the RTDROID variable points to the compiled jar file.)

If you need to specify a target platform other than rpi, set FIVMCFLAGS either by editing it in the Makefile or by providing it on the command line as with FIVM, above. You may also provide CFLAGS and/or LDFLAGS as necessary.