Hello NXP and Friends!
I'd like to ask for help getting a problem resolved. I use Ubuntu 18.04LTS as my primary operating system.
My company will launch in a few weeks time a new NFC dog tag utilising the NTAG 216 IC. We want to use Tagxplorer in the production process for writing and making tags 'read only' but we are have problems getting TagXplorer to work properly and thus seek help from the community.
Here is what I have done so far:
1. Download and unpack the TagXplorer tool from:
2. Go to: https://gluonhq.com/products/javafx/
and download and extract 'JavaFX Linux SDK' Public version 11.0.2 for Linux platform
3. I then run the jar with: java --module-path /path/to/sdk/lib/ --add-modules javafx.controls,javafx.fxml -jar TagXplorer-v1.2.jar (Making sure to provide the path to where I expanded the SDK)
4. The TagXplorer application opens and I attempt to connect readers:
Identiv uTrust 3700F and
HID Omnikey 5022CL
But only receive the message "Reader is not supported".
5. When I open competitor NFC read/write software like 'NFC Tools' in Ubuntu 18.04 both Identiv uTrust 3700F and HID Omnikey 5022CL work perfectly!
6. In terminal when I launch TagXplorer I get the following crash report:
Sep 29, 2020 9:17:36 AM javafx.scene.control.Control loadSkinClass
SEVERE: Failed to load skin 'com.sun.javafx.scene.control.skin.ProgressBarSkin' for control ProgressBar[id=splashProgressBar, styleClass=progress-bar progress-bar]
java.lang.ClassNotFoundException: com.sun.javafx.scene.control.skin.ProgressBarSkin
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at javafx.controls/javafx.scene.control.Control.loadClass(Control.java:124)
at javafx.controls/javafx.scene.control.Control.loadSkinClass(Control.java:720)
at javafx.controls/javafx.scene.control.Control$5.invalidated(Control.java:680)
at javafx.base/javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:110)
at javafx.base/javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:145)
at javafx.graphics/javafx.css.StyleableStringProperty.set(StyleableStringProperty.java:83)
at javafx.controls/javafx.scene.control.Control$5.set(Control.java:672)
at javafx.graphics/javafx.css.StyleableStringProperty.applyStyle(StyleableStringProperty.java:69)
at javafx.graphics/javafx.css.StyleableStringProperty.applyStyle(StyleableStringProperty.java:45)
at javafx.graphics/javafx.scene.CssStyleHelper.transitionToState(CssStyleHelper.java:787)
at javafx.graphics/javafx.scene.Node.doProcessCSS(Node.java:9647)
at javafx.graphics/javafx.scene.Node.access$900(Node.java:398)
at javafx.graphics/javafx.scene.Node$1.doProcessCSS(Node.java:471)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSSImpl(NodeHelper.java:192)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.superProcessCSSImpl(ParentHelper.java:93)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.superProcessCSS(ParentHelper.java:63)
at javafx.graphics/javafx.scene.Parent.doProcessCSS(Parent.java:1366)
at javafx.graphics/javafx.scene.Parent.access$400(Parent.java:79)
at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
at javafx.controls/com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
at javafx.controls/com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
at javafx.controls/javafx.scene.control.Control.doProcessCSS(Control.java:886)
at javafx.controls/javafx.scene.control.Control.access$000(Control.java:83)
at javafx.controls/javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
at javafx.controls/com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
at javafx.graphics/javafx.scene.Parent.doProcessCSS(Parent.java:1397)
at javafx.graphics/javafx.scene.Parent.access$400(Parent.java:79)
at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
at javafx.graphics/javafx.scene.Node.processCSS(Node.java:9529)
at javafx.graphics/javafx.scene.Scene.doCSSPass(Scene.java:569)
at javafx.graphics/javafx.scene.Scene.preferredSize(Scene.java:1745)
at javafx.graphics/javafx.scene.Scene$2.preferredSize(Scene.java:393)
at javafx.graphics/com.sun.javafx.scene.SceneHelper.preferredSize(SceneHelper.java:66)
at javafx.graphics/javafx.stage.Window$12.invalidated(Window.java:1086)
at javafx.base/javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
at javafx.base/javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
at javafx.graphics/javafx.stage.Window.setShowing(Window.java:1174)
at javafx.graphics/javafx.stage.Window.show(Window.java:1189)
at javafx.graphics/javafx.stage.Stage.show(Stage.java:273)
at com.nxp.tagxplorer.Main.start(Main.java:66)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
at java.base/java.lang.Thread.run(Thread.java:834)
Sep 29, 2020 9:17:36 AM javafx.scene.control.Control loadSkinClass
SEVERE: Failed to load skin 'com.sun.javafx.scene.control.skin.ProgressBarSkin' for control ProgressBar[id=splashProgressBar, styleClass=progress-bar progress-bar]
java.lang.ClassNotFoundException: com.sun.javafx.scene.control.skin.ProgressBarSkin
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at javafx.controls/javafx.scene.control.Control.loadClass(Control.java:124)
at javafx.controls/javafx.scene.control.Control.loadSkinClass(Control.java:720)
at javafx.controls/javafx.scene.control.Control$5.invalidated(Control.java:680)
at javafx.base/javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:110)
at javafx.base/javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:145)
at javafx.graphics/javafx.css.StyleableStringProperty.set(StyleableStringProperty.java:83)
at javafx.controls/javafx.scene.control.Control$5.set(Control.java:672)
at javafx.graphics/javafx.css.StyleableStringProperty.applyStyle(StyleableStringProperty.java:69)
at javafx.graphics/javafx.css.StyleableStringProperty.applyStyle(StyleableStringProperty.java:45)
at javafx.graphics/javafx.scene.CssStyleHelper.transitionToState(CssStyleHelper.java:787)
at javafx.graphics/javafx.scene.Node.doProcessCSS(Node.java:9647)
at javafx.graphics/javafx.scene.Node.access$900(Node.java:398)
at javafx.graphics/javafx.scene.Node$1.doProcessCSS(Node.java:471)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSSImpl(NodeHelper.java:192)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.superProcessCSSImpl(ParentHelper.java:93)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.superProcessCSS(ParentHelper.java:63)
at javafx.graphics/javafx.scene.Parent.doProcessCSS(Parent.java:1366)
at javafx.graphics/javafx.scene.Parent.access$400(Parent.java:79)
at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
at javafx.controls/com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
at javafx.controls/com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
at javafx.controls/javafx.scene.control.Control.doProcessCSS(Control.java:900)
at javafx.controls/javafx.scene.control.Control.access$000(Control.java:83)
at javafx.controls/javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
at javafx.controls/com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
at javafx.graphics/javafx.scene.Parent.doProcessCSS(Parent.java:1397)
at javafx.graphics/javafx.scene.Parent.access$400(Parent.java:79)
at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
at javafx.graphics/javafx.scene.Node.processCSS(Node.java:9529)
at javafx.graphics/javafx.scene.Scene.doCSSPass(Scene.java:569)
at javafx.graphics/javafx.scene.Scene.preferredSize(Scene.java:1745)
at javafx.graphics/javafx.scene.Scene$2.preferredSize(Scene.java:393)
at javafx.graphics/com.sun.javafx.scene.SceneHelper.preferredSize(SceneHelper.java:66)
at javafx.graphics/javafx.stage.Window$12.invalidated(Window.java:1086)
at javafx.base/javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
at javafx.base/javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
at javafx.graphics/javafx.stage.Window.setShowing(Window.java:1174)
at javafx.graphics/javafx.stage.Window.show(Window.java:1189)
at javafx.graphics/javafx.stage.Stage.show(Stage.java:273)
at com.nxp.tagxplorer.Main.start(Main.java:66)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
at java.base/java.lang.Thread.run(Thread.java:834)
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style.css: expected series of <size> while parsing 'box-shadow' at [28,13]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style.css: expected series of <size> while parsing 'box-shadow' at [33,13]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style.css: Expected '<font-weight>' while parsing '-fx-font-weight' at [42,18]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style.css: expected series of <size> while parsing 'box-shadow' at [64,13]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style.css: expected series of <size> while parsing 'box-shadow' at [189,13]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style_1600x900.css: expected series of <size> while parsing 'box-shadow' at [39,13]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style_1600x900.css: expected series of <size> while parsing 'box-shadow' at [45,13]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style_1600x900.css: Expected '<font-weight>' while parsing '-fx-font-weight' at [54,18]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style_1600x900.css: expected series of <size> while parsing 'box-shadow' at [76,13]
Sep 29, 2020 9:20:25 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/alertdailog.css: expected series of <size> while parsing 'box-shadow' at [28,13]
Sep 29, 2020 9:20:25 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/alertdailog.css: expected series of <size> while parsing 'box-shadow' at [34,13]
Windows 10 is not an option for us. We MUST get TagXplorer working in Ubuntu 18.04LTS! My buisness depends on making this work. Is there someone in this forum that can help us move forward?
Thank you very much,
John Tengström, President
Taganize, Inc.
The problem is caused by the different naming convention of SC readers between Windows and Linux. I don't have a clue, how Windows does it. But under Linux, the name of the reader is given by the pcscd daemon when the reader is getting connected. However, the TagXplorer Java application is only accepting the Windows style named device:
Identiv uTrust 3700 F CL Reader 0
There seems to be no effort on the NXP side, to make this interoperable. If you want pcscd to meet this strict naming convention, you have to build it yourself. To do so, you have to clone https://github.com/LudovicRousseau/PCSC to some working directory. I branched the 1.8.26 tag which is matching Ubuntu 20.04. Then you would apply the attached patch, configure, build and install the project and replace /usr/sbin/pcscd with your freshly built pcscd which should be located in /usr/local/sbin after a regular installation. After stopping the pcscd daemon and replugging your uTust 3700 device, TagXplorer should connect to it.
Hi @JohnPaavo. Did you have any success on this in the meantime? I am having similar issues on Linux.
One thing to note is Java typically expects a PC/SC driver in the incorrect location on Linux. When running a java command from the command line, you can add this option:
-Dsun.security.smartcardio.library=/usr/lib/x86_64-linux-gnu/libpcsclite.so.1
Now I can see my readers in TagXplorer, but I still get the "Reader is not supported" message that you got, too. Any ideas?
Any suggestion to this topic would be highly appreciated
is there any 2020 tagxplorer release ???
Any help and insight to get this up and running would be appreciated!
Thanks!
I will try to get some suggestions from the internal team.
Thank you Jimmy! It would also be great to hear if there is an updated version for 2020 of the TagXplorer software. Especially as regards increased compatibility amongst NFC readers/writers.
Please keep in mind that I need for this to work on Ubuntu.
Thank you Jimmy.
Best,
John
So life moves on.........................
Now it is 27 January 2023 and still no response after all this time.
I now use Ubuntu LTS 22.04
I have TagXplorer installed and although the Omniket 5022 CL is seen I cannot connect to it! I get error message READER IS NOT SUPPORTED!
What can be done to solve this?
In termial I used $ lsusb
and got
Bus 001 Device 005: ID 076b:5022 OmniKey AG OMNIKEY 5022 Smart Card Reader
I really want to get this working. HELP!