Running the OpenBCI GUI

We recently just tested running the OpenBCI GUI according to the docs.

However, what the documentation neglected to mention is that if you run the binary
from the archive without changing into the directory where it and its libraries are held,
then you will get the following output on the console and a nonfunctional GUI:

The font "Raleway-SemiBold.otf" is missing or inaccessible, make sure the URL is valid or that the file has been added to your sketch and is readable.
The font "Raleway-Regular.otf" is missing or inaccessible, make sure the URL is valid or that the file has been added to your sketch and is readable.
The font "Raleway-SemiBold.otf" is missing or inaccessible, make sure the URL is valid or that the file has been added to your sketch and is readable.
ControlP5 2.2.2 infos, comments, questions at http://www.sojamo.de/libraries/controlP5
Exception in thread "Animation Thread" java.lang.RuntimeException: java.lang.NullPointerException
    at com.jogamp.common.util.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:58)
    at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103)
    at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:206)
    at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:172)
    at javax.media.opengl.Threading.invoke(Threading.java:191)
    at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:541)
    at processing.opengl.PJOGL.requestDraw(PJOGL.java:688)
    at processing.opengl.PGraphicsOpenGL.requestDraw(PGraphicsOpenGL.java:1651)
    at processing.core.PApplet.run(PApplet.java:2256)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
    at controlP5.ControlFont.checkFontSize(Unknown Source)
    at controlP5.ControlFont.<init>(Unknown Source)
    at controlP5.Label.setFont(Unknown Source)
    at controlP5.Textfield.setFont(Unknown Source)
    at OpenBCI_GUI$DataLogBox.<init>(OpenBCI_GUI.java:2892)
    at OpenBCI_GUI$ControlPanel.<init>(OpenBCI_GUI.java:2445)
    at OpenBCI_GUI.setup(OpenBCI_GUI.java:281)
    at processing.core.PApplet.handleDraw(PApplet.java:2361)
    at processing.opengl.PJOGL$PGLListener.display(PJOGL.java:862)
    at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:665)
    at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:649)
    at javax.media.opengl.awt.GLCanvas$10.run(GLCanvas.java:1289)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1119)
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:994)
    at javax.media.opengl.awt.GLCanvas$11.run(GLCanvas.java:1300)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:302)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:694)
    at java.awt.EventQueue$3.run(EventQueue.java:692)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
RESIZED
The font "Raleway-SemiBold.otf" is missing or inaccessible, make sure the URL is valid or that the file has been added to your sketch and is readable.
The font "Raleway-Regular.otf" is missing or inaccessible, make sure the URL is valid or that the file has been added to your sketch and is readable.
The font "Raleway-SemiBold.otf" is missing or inaccessible, make sure the URL is valid or that the file has been added to your sketch and is readable.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at controlP5.ControlFont.checkFontSize(Unknown Source)
    at controlP5.ControlFont.<init>(Unknown Source)
    at controlP5.Label.setFont(Unknown Source)
    at controlP5.Textfield.setFont(Unknown Source)
    at OpenBCI_GUI$DataLogBox.<init>(OpenBCI_GUI.java:2892)
    at OpenBCI_GUI$ControlPanel.<init>(OpenBCI_GUI.java:2445)
    at OpenBCI_GUI.setup(OpenBCI_GUI.java:281)
    at processing.core.PApplet.handleDraw(PApplet.java:2361)
    at processing.opengl.PJOGL$PGLListener.display(PJOGL.java:862)
    at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:665)
    at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:649)
    at javax.media.opengl.awt.GLCanvas$10.run(GLCanvas.java:1289)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1119)
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:994)
    at javax.media.opengl.awt.GLCanvas$11.run(GLCanvas.java:1300)
    at javax.media.opengl.Threading.invoke(Threading.java:193)
    at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:541)
    at javax.media.opengl.awt.GLCanvas.paint(GLCanvas.java:595)
    at sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
    at sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:73)
    at sun.awt.RepaintArea.paint(RepaintArea.java:240)
    at sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:591)
    at java.awt.Component.dispatchEventImpl(Component.java:4948)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:694)
    at java.awt.EventQueue$3.run(EventQueue.java:692)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:708)
    at java.awt.EventQueue$4.run(EventQueue.java:706)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
X11Util.Display: Shutdown (JVM shutdown: true, open (no close attempt): 1/1, reusable (open, marked uncloseable): 0, pending (open in creation order): 1)
X11Util: Open X11 Display Connections: 1
X11Util: Open[0]: NamedX11Display[:0, 0x7f79186a7620, refCount 1, unCloseable false]

After we ran it from the commandline in the directory where the executable was held,
we were able to run the GUI.

Comments

robobrainz forums