Skip to content


Subversion checkout URL

You can clone with
Download ZIP
C Interface for the Aquaero5 USB Device
C C++ Perl Shell
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


         aerotools-ng: Tools for Accessing the Aquaero5(R) USB Device
       (C) 2012 lynix <>
       (C) 2013 JinTu <>, lynix <>

aerotools-ng aims at providing a C interface for accessing the Aquaero5(R) USB
device by 'Aqua Computer' (

It consists of a set of functions for data access and conversion, and a
command-line tool using these functions as an example implementation.

Unlike its predecessor, aerotools (which targets the Aquaero(R) 4.00),
aerotools-ng currently uses the USB HIDDEV interface provided by the Linux
kernel via the /dev/usb/hiddev? device nodes.

Therefore, there currently are no noteworthy dependencies.

To build all components of the project simply issue `make` in the project root.
Compiled binaries will reside in the 'bin' subdirectory. If building for 
firmware version 1027, you must uncomment the appropriate line in the Makefile. 

To be able to query the Aquaero5(R) device you have to set appropriate access
rights for the device node.

You can either do this manually by identifying the device node using `lsusb`
(looking for the Vendor- and Product-ID), or just install a udev rule like this

ATTRS{idVendor}=="0c70", ATTRS{idProduct}=="f001", GROUP="aquaero", MODE="0640"

This will give all members of the 'aquaero' group read access to the device.

As the Aquaero5(R) identifies itself as multiple devices (USB keyboard, mouse
and the actual device we want to query) you have to examine which device node
represents the data source.

In my case, there is /dev/usb/hiddev[0-2] which all match the udev rule provided
above. The correct one for me is /dev/usb/hiddev0, but I don't know whether it is
always the first one. Just try as stated under USAGE - if you choose the wrong
one there will simply be no output at all.

aerocli, as stated above, is the example implementation of a command-line tool
that uses the provided query- and format conversion functions provided by 

To query the first device found (via autodiscovery), simply issue `aerocli`.

To query a specific device (if you have more than one attached to your system) 
simply issue `aerocli -d /dev/usb/hiddevX` (see SETUP for the meaning of X).

To get a more script-friendly output in the form of 'KEY=VALUE' pairs just add
`-o export`.

For more comprehensive output in both default and export modes, use `-a`,
e.g. `-a -o default` or `-a -o export`.

Feel free to report any bugs you find using the 'issues' function on GitHub. If
you wish to contact the authors, you can drop them an email.
For lynix, you might wish to use his GPG key, #4804CCA9 on

This program is published under the terms of the GNU General Public License,
version 3. See the file 'LICENSE' for more information.
Something went wrong with that request. Please try again.