RFXCom/Openhabian - NoClassDefFoundError: Could not initialize class jd2xx.JD2XX


I’ve just downloaded and installed OpenHABian onto a RPi3, all default settings.

I then plugged in my RFXTrx into the USB, and dmesg gives the following output:

[ 2458.316663] usb 1-1.5: new full-speed USB device number 5 using dwc_otg
[ 2458.444158] usb 1-1.5: New USB device found, idVendor=0403, idProduct=6001
[ 2458.444180] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2458.444194] usb 1-1.5: Product: FT232R USB UART
[ 2458.444206] usb 1-1.5: Manufacturer: FTDI
[ 2458.444218] usb 1-1.5: SerialNumber: A603PE9S
[ 2459.490460] usbcore: registered new interface driver usbserial
[ 2459.490556] usbcore: registered new interface driver usbserial_generic
[ 2459.490643] usbserial: USB Serial support registered for generic
[ 2459.500076] usbcore: registered new interface driver ftdi_sio
[ 2459.500709] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 2459.501685] ftdi_sio 1-1.5:1.0: FTDI USB Serial Device converter detected
[ 2459.501892] usb 1-1.5: Detected FT232RL
[ 2459.502778] usb 1-1.5: FTDI USB Serial Device converter now attached to ttyUSB0

So the hardware seems to be in place. I then proceeded to add the RFXCOM binding via Paper UI. When I then tried to scan for devices, I get a notification in the lower right corner saying “ERROR: undefined - undefined”. So I go have a look in the logs and find this:

Caused by: java.lang.NoClassDefFoundError: Could not initialize class jd2xx.JD2XX
        at org.openhab.binding.rfxcom.internal.discovery.RFXComBridgeDiscovery.discoverRfxcom(RFXComBridgeDiscovery.java:88)
        at org.openhab.binding.rfxcom.internal.discovery.RFXComBridgeDiscovery.startScan(RFXComBridgeDiscovery.java:67)
        at org.eclipse.smarthome.config.discovery.AbstractDiscoveryService.startScan(AbstractDiscoveryService.java:199)
        at org.eclipse.smarthome.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:382)
        at org.eclipse.smarthome.config.discovery.internal.DiscoveryServiceRegistryImpl.startScans(DiscoveryServiceRegistryImpl.java:367)
        at org.eclipse.smarthome.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:216)
        at org.eclipse.smarthome.io.rest.core.discovery.DiscoveryResource.scan(DiscoveryResource.java:84)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_112]

I found JD2XX on Github but do I really need to install this manually to make this work? If not, what do I need to do?

same issue here, any news ?


It seems that JD2XX doesn’t support RPi3 (native library is missing for that ARM target). Anyhow, JD2XX will not work on your linux environment as kernel contains native library for FTDI chips and that is automatically loaded as you can see it from dmesg.

Rfxcom binding support both JD2XX and serial port communication. Binding discovery use JD2XX as it only way to discovery RFXCOM devices. You can always configure rfxcom transceivers manually via Paper UI.

Paper UI: Setup Wizard -> Blue + -> RFXCOM Binding -> ADD MANUALLY -> RFXCOM USB Transceiver and then configure serial port, etc.

1 Like