Telemetry Viewer v0.7
July 17, 2020
Telemetry Viewer v0.7 Changelog (2020-07-17)
- Webcams and network cameras (MJPEG over HTTP) are now supported.
- Initial support for the Raspberry Pi 4 (currently does not support antialiasing or cameras.)
- A new "timeline" feature makes it easy to jump or scrub through lots of data.
- Time domain charts can now show timestamps (date and time) along the x-axis.
- Bitfield (boolean and enum) "levels" can now be visualized as bars drawn on top of the charts (similar to a logic analyzer.)
- Timestamps can be shown in any of the common formats: YYYY-MM-DD, MM-DD-YYYY and DD-MM-YYYY.
- Most of the OpenGL and chart code has been rewritten, resulting in massive speed improvements. CPU and GPU usage is often cut in half. When using Nvidia GPUs the GPU usage has been cut down by almost 80%!
- Progress bars are now displayed when importing and exporting data.
- Added support for Java 9+ (still works with Java 8.)
- Various small bug fixes. See the git commit log for more details.
Raspberry Pi Notes
Telemetry Viewer will only work on the Pi 4. Older Pi's don't support some of the OpenGL ES features that are required, and implementing those features on the CPU would be slow.
The Pi 4 GPU is supposedly capable of OpenGL ES 3.2, but the drivers only fully support ES 3.1 and partially support ES 3.2. Telemetry Viewer requires "geometry shaders" which are part of ES 3.2.
As of today, the version of Mesa included in "Ubuntu MATE 20.04 Raspberry Pi 32-bit" supports geometry shaders, but the version of Mesa in "Raspberry Pi OS" does not. If you use Ubuntu, all you need to do is install Java ($ sudo apt install default-jre) and you are ready to use Telemetry Viewer.
If you want to use Raspberry Pi OS, try running Telemetry Viewer. Maybe you'll get lucky and by the time you read this an updated Mesa will already be in Raspberry Pi OS.
If you get GLSL errors (like the screenshot above) you will need to download Mesa from their git repo, then compile it and install it. You will also need to set an environment variable every time you want to run Telmetry Viewer. I do not recommend this for beginners, but here is how I got it working:
$ sudo pip3 install meson mako
$ sudo apt install libdrm-dev llvm bison flex libxext-dev libxdamage-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev ninja-build
$ git clone https://gitlab.freedesktop.org/mesa/mesa.git
$ cd mesa
$ nano meson_options.txt
set platforms to ['drm', 'x11', 'surfaceless'] and set gallium-drivers to ['kmsro', 'v3d', 'vc4', 'swrast']
$ mkdir build
$ cd build
$ meson ..
$ sudo ninja install
To run Telemetry Viewer you will need to set an environment variable to select the new Mesa you just installed:
$ LD_LIBRARY_PATH="/usr/local/lib/arm-linux-gnueabihf" java -jar /path/to/TelemetryViewer_v0.7.jar
Telemetry Viewer v0.7 Demo Video
Download
Executables (.jar) and source code (.zip) can be downloaded at http://www.farrellf.com/TelemetryViewer/ or the project can be viewed at https://github.com/farrellf/TelemetryViewer