- Application not closing
- PowerGoblin using 100% CPU time
- Failure to read meter data
- HID subsystem is not initialized
- Serial subsystem is not initialized
- Collectd issues
- Meter settings cannot be configured
- The web UI does not work properly
- Plots are not being generated
- The RPi system does not boot
Application not closing
Unfortunately the application may still contain minor issues, especially when running for a long period of time. There are some issues that might occur and prevent the application from closing.
When starting the application from Maven (mvn exec:java), it is a known issue that the background threads may not shut down and need to be explicitly killed.
FIX: On Linux, use the kill / killall utilities or some graphical task manager to close the application process:
$ killall java -15
$ killall java -9
If the service is run by a different user, calling killall with 'sudo' might be needed.
$ sudo killall java -15
$ sudo killall java -9
These commands also terminate all other Java applications.
PowerGoblin using 100% CPU time
Sometimes the serial driver can get stuck in a busy loop, especially when started with Apache Maven.
FIX: On Linux, use the kill / killall utilities or some graphical task manager to close the application process. See Application not closing. Then, restart the application.
Failure to read meter data
It is currently possible for more than one instance of PowerGoblin to read the meters concurrently. This may be intentional or there might be a background instance of PowerGoblin that does not respond, but still reads the data from the meters. If you wish to run multiple concurrent instances of PowerGoblin, the meter configuration files allow partitioning the meters by disabling them from sessions.
Having multiple active instances can lead to a situation where each instance reads a partial line and no instance can parse the input. Recent versions of PowerGoblin can inform such read errors in the user interface in the meter's status message area. The same data is also available via the APIs and read errors are reported in the session logs as well. It's also easy to see such errors by observing the live data in the web UI's dashboard. Previous versions informed about the read errors in the text console, e.g. with messages such as FAILED TO READ METER DATA [SP3-6f]!.
FIX: If you observe multiple instances of PowerGoblin, the easiest way is to kill the previous processes. See Application not closing.
Another source of read errors is a bad USB cable.
FIX: Try reconnecting the device and using another USB cable.
When using SmartPower 3 without a PSU connected (for testing), there might also be read errors due to low bus voltage.
FIX: This problem should disappear when using a thicker USB cable or connecting the meter to a PSU.
HID subsystem is not initialized
If your system is missing the necessary low level drivers, some or all of the external meters will be available during the measurement. The issues with different subsystems are also listed in the 'Instance' section of the web user interface. During the startup you will see error messages such as:
SEVERE: HID subsystem is not initialized,
/tmp/powergoblin17015817952187070882/libnative-serial.so:
libhidapi-libusb.so.0: ...
FIX: To fix this issue, consider installing the required libraries. If you use an unsupported platform, consider contributing the drivers for that platform.
Serial subsystem is not initialized
If your system is missing the necessary low level drivers, during the startup you may see error messages. We currently only support a limited selection of hardware and operating systems (Linux).
The low-level serial drivers are typically provided as kernel drivers. Our software connects to these drivers via /dev/tty* device files. We use the libusb / hidapi drivers to enumerate meter devices.
FIX: To fix this issue, consider installing the required libraries. If you use an unsupported platform, consider contributing the drivers for that platform. On Arch Linux, sometimes you sometimes need to reboot after updating the kernel if the serial modules are not available for the active kernel.
Collectd issues
Case 1: outdated Python libraries
This error can occur in Arch Linux if the collectd installation is still using old Python libraries after a system update:
plugin_load: plugin "cpu" successfully loaded.
plugin_load: plugin "csv" successfully loaded.
ERROR: dlopen("/usr/lib/collectd/python.so") failed: libpython3.11.so.1.0:
cannot open shared object file: No such file or directory. The most common
cause for this problem is missing dependencies. Use ldd(1) to check the
dependencies of the plugin / shared object.
plugin_load: Load plugin "python" failed with status 2.
plugin_load: plugin "interface" successfully loaded.
plugin_load: plugin "load" successfully loaded.
plugin_load: plugin "memory" successfully loaded.
There is configuration for the `python' plugin, but the plugin isn't loaded.
Please check your configuration.
Error: Parsing the config file failed!
FIX: You can fix this by recompiling collectd:
$ yay -S collectd
Case 2: no access to RAPL files in /sys
By default, the RAPL counters are hidden from the users because they may expose local data leaks via side channels. This will trigger the following error message when using collectd with the RAPL plugin:
Unhandled python exception in read callback: PermissionError: [Errno 13]
Permission denied: '/sys/devices/virtual/powercap/intel-rapl/intel-rapl:0/energy_uj'
Traceback (most recent call last):
File "/home/me/powergoblin/intel_rapl.py", line 44, in rapl_read
val[d] = read_energy_uj(d)
^^^^^^^^^^^^^^^^^
File "/home/me/powergoblin/intel_rapl.py", line 31, in read_energy_uj
with open(fpath,'r') as f:
^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied:
'/sys/devices/virtual/powercap/intel-rapl/intel-rapl:0/energy_uj'
read-function of plugin `python.intel_rapl' failed. Will suspend it for
0.200 seconds.
FIX: To fix this, the permissions of the counter variables need to be set up. We provide instructions in the setup section.
Meter settings cannot be configured
If the meter configuration schema has changed, PowerGoblin might not be able to read the old configuration file or may not update the file to show all available options.
FIX: Please delete the configuration, let PowerGoblin re-create the file and edit again.
The web UI does not work properly
There can be bugs in the web UI. The UI is implemented as an SPA app with some error recovery support. Basically if the UI fails for some reason, it may have to be restarted (the page, not the PowerGoblin instance).
FIX: A quick fix is to reload the page (press F5).
FIX: If you wish to help us, check the browser's JavaScript console (press F12) to see if there are errors listed in the JavaScript logs. Report to us about this issue + attach the screenshot / logs of the error message.
FIX: If you wish to fix the UI yourself, you can start PowerGoblin with the --dev switch. This will dump the internal copies of the UI files to web/ui. These files will then override the internal versions and can be patched. Changes to these files are applied to the UI immediately after a page reload (press F5).
Plots are not being generated
Make sure the R and/or Docker packages are installed on the system. You can try to switch to another generation method (docker vs native) by editing the configuration.
Note: in PowerGoblin 3.0.0+ we have switched to web based plots (chart.js).
The RPi system does not boot
Make sure you have flashed the decompressed image file, not the xz file. Also, make sure you have flashed it bit by bit, not copied the file to the default FAT partition. If this does not help, try with another SD card. In our tests some 128 GB cards have too much capacity for older RPi systems. A 16 GB card should have enough capacity.

