The RocketLogger is a mixed-signal data logger designed for measuring and validating energy harvesting based devices. It features the portability required for measurements in the field, accurate voltage and current measurements with a very high dynamic range, and simultaneously sampled digital inputs to track the state of the measured device.
To install a new RocketLogger system or the Python Support Library for measurement post processing, refer to the Installation section. The latest RocketLogger releases are available from https://github.com/ETHZ-TEC/RocketLogger/releases.
If you want to learn more about the details of the RocketLogger, head to the Documentation section.
The RocketLogger project consists of three parts:
- RocketLogger Cape, an analog current and voltage measurement front-end designed as an extension board, a so-called Cape, for the BeagleBone Green,
- RocketLogger Software Stack that provides all management functionality for data logging, including low level C API, a command line utility, and an easy-to-use web interface,
- RocketLogger Scripts to import and process RocketLogger Data (RLD) files and to generate the calibration data files.
The RocketLogger releases are accompanied by a pre-built RocketLogger flasher image that allows installation of ready-to-use software on a RocketLogger device:
- Flash the RocketLogger flasher image
rocketlogger-flasher-vX.X.X.img.xz
(whereX.X.X
is the targeted release) onto an SD card using thesoftware/system/flash_image.sh
script. - Insert the SD card into the RocketLogger and wait for the installation to complete and the RocketLogger to power off.
- Remove the SD card, power on the RocketLogger again, and start your first measurements.
For more details on the installation process and alterative deployment options, refer to the RocketLogger Installation wiki page.
The Python support library is available from the Python Package Index and is installed using pip:
python -m pip install rocketlogger
For the manual installation of individual software components, see the respective README files:
The documentation for the RocketLogger is found in the wiki pages at https://github.com/ETHZ-TEC/RocketLogger/wiki.
The RocketLogger project uses semantic versioning for its releases.
The hardware was designed using Altium Designer (version 16.1 was used for the PCB design).
More details regarding the hardware design can be found in the wiki at RocketLogger Hardware Design Data.
The RocketLogger software is based on the Debian operating system for the BeagleBone platform provided by BeagleBoard.org.
To compile the RocketLogger software, the following system components are required (to be installed
using apt-get
):
curl device-tree-compiler gcc g++ git make meson/buster-backports ninja-build/buster-backports ntp pkg-config ti-pru-cgt-installer libgpiod-dev libi2c-dev libncurses5-dev libzmq3-dev
with recent meson
and ninja
release from the Debian buster-backports repository.
In addition, the software relies on the following two software repositories for Linux device tree
headers and PRU user space driver:
To deploy the optional Node.js web interface for remote control, the following system packages are required:
g++ make nginx nodejs
with the Node.js LTS version 18 from the NodeSource Node.js repository.
The cross compilation and operating system patching scripts in addition require a Docker installation, more specifically Docker Buildx and privileged permissions for system patching.
The following list of people contributed in the development of the RocketLogger project: Andres Gomez, Dominic Bernath, Lothar Thiele, Lukas Sigrist, Matthias Leubin, Roman Lim, Stefan Lippuner.
RocketLogger logo design by: Ivanna Gomez.
The RocketLogger project is currently maintained by: Lukas Sigrist.
The RocketLogger Project is released under 3-clause BSD license. For more details refer to the LICENSE file.