Linux GUI Error: ...OpenBCI_GUI/java/bin/java: not found

I am trying to run the OpenBCI GUI on an Ubuntu 18.04 LTS system. After downloading the most recent standalone zip file from the download page, I extracted the folder and added execute permissions to the OpenBCI_GUI shell script using "chmod +x OpenBCI_GUI". Each time I attempt to run the GUI using "sudo ./OpenBCI_GUI", the terminal returns "./OpenBCI_GUI: 5: ./OpenBCI_GUI: /home/anastasiya/Desktop/OpenBCI_GUI/java/bin/java: not found"

I saw a similar problem to mine here, but my file paths don't contain any spaces, so the listed solution doesn't help in my case. I also saw that there were previous mentions of an error like this last spring and that it was reported as a bug/glitch, but the following release was supposed to have fixed the issue.

Does anybody have any suggestions on what could be wrong? Are there certain necessary prereqs that I need to check are installed/set up on my system? Any help with this issue would be appreciated

Comments

  • edited February 2020

    Following up - I'm still experiencing issues with getting the OpenBCI GUI running on Ubuntu. Could somebody please list the hardware/ OS/ installed package requirements for running the GUI (or a link to a reference which does so)? Most importantly, can the GUI be run on ARM64 architecture like the NVIDIA Jetson Nano?

  • wjcroftwjcroft Mount Shasta, CA

    Ana, hi. As you can see in the screenshot here the Hub on Linux is targeted for x64, not ARM,

    https://docs.openbci.com/docs/06Software/01-OpenBCISoftware/GUIDocs#install-openbci-hub-on-maclinuxwindows

    The Java runtime / compiler binaries for the GUI proper are also x64. (Processing Language is Java under the hood.) It may be easier to port the GUI to other architectures in the future, once the new version is available that drops the Hub process.

    There may be issues that the Processing dev team is having with ARM, as I do not see it listed regularly on their download site.

    https://processing.org/download/
    https://pi.processing.org/get-started/

    Regards, William

  • wjcroftwjcroft Mount Shasta, CA

    There are ways to access the OpenBCI data streams from Python. So you could possibly debug your program on a laptop with availability of the GUI. Then transition to Python and moving to your Jetson.

  • wjcroftwjcroft Mount Shasta, CA

    The next version of the GUI will call Brainflow libraries to read the data streams; instead of the heavyweight 'Hub' process. You can start using Brainflow before this happens however.

    https://brainflow.readthedocs.io/en/stable/

  • Thank you very much for all of the information, William - it's very useful. I've skimmed over the brainflow documentation and will be looking at it in more detail tonight.

    On a related note, I see in several recent posts on the OpenBCI forums that v5.0.0 of the GUI is coming very soon - could you give an estimate of what time range "soon" is expected to be (i.e. this month, this spring, this year)? If it's relatively far off, then I will probably invest my time learning the specifics on more direct data acquisition methods and attempt to make everything work in a more "hard coded" way for my project. If it's a relatively short time, however, then I'll use the Windows/Ubuntu version of the GUI running on my PC (the output of which would serve as the input to my project) and work on my project itself; I'd just move everything to the Nano when the new version drops (assuming it's possible to export it to the ARM64 arch, which I realize is a big assumption to make).

    In the meantime, I will err on the side of caution and work toward not relying on the GUI.

  • I also have a documentation change question related to accessing the EEG data via python. Under "Software"->"Developed by OpenBCI" there used to be a "Python and OpenBCI" section, but it is now in the deprecated documents with the following header: "THIS DOCUMENT HAS BEEN DEPRECATED. PLEASE REFER TO "FOR DEVELOPERS" SECTION FOR INFORMATION ON BRAINFLOW-PYTHON." Back in autumn, I had marked this document as a reference to potentially use for my project - is this library still okay to use/explore or would focusing only on brainflow be better? (Currently assuming the latter.)

  • wjcroftwjcroft Mount Shasta, CA

    Ana, it's unclear the timeframe for the new GUI version (using Brainflow, without the Hub). I suggest just experimenting with the current GUI on your PC, alongside getting your own "direct data acquisition" technique going on the PC. That way you can compare your results easily and with graphical feedback. Once your direct code is running on the PC, it should be easy to move to the Nano. You can either use the Brainflow library, or other available OpenBCI libraries, such as Python, LSL, etc.

    Even when a new GUI version is available, it will not have built in ARM architecture release packages. You would have to do all that testing and building yourself. And as you can see by the previous Processing Language links, even the Processing team is not fully supporting ARM yet.

  • wjcroftwjcroft Mount Shasta, CA

    re: old Python support vs new Python support. Correct, the old Python stuff is available on Github, but all future development will be with Brainflow. So Brainflow would be your best bet to stay current and best performance.

    In terms of the older libraries, this is the most recent,
    https://github.com/OpenBCI/pyOpenBCI

    And an older library,
    https://github.com/OpenBCI/OpenBCI_Python

  • retiututretiutut Louisiana, USA
    edited February 2020

    Try running GUI on Linux without using sudo.

  • wjcroftwjcroft Mount Shasta, CA

    The Linux she is using on the NVIDIA Jetson Nano, is ARM based, not Intel / AMD x64.

  • retiututretiutut Louisiana, USA
    edited February 2020

    @wjcroft Ouch, no guarantee there. I would try using straight Python for optimal performance. The Brainflow Python library is ready to be tested and used: https://brainflow.readthedocs.io/en/stable/Examples.html#python

    When we build the GUI, an ARM64 version is made, but we do not publish it. It's possible this may work once we remove the Hub, but no specific guarantees that the Brainflow library will work with ARM on release day.

    In contrast to the NVIDIA Jetson Nano, I've been told the GUI may run on an Intel Compute Stick as this is closer to a standard Windows system. Thanks for trying this out just so we know!

  • wjcroftwjcroft Mount Shasta, CA

    Richard, that is great to hear that the GUI build already generates an ARM version. So that build creates Processing Language binaries and Java binaries as well? Having ARM for Raspberry and NVIDIA will be attractive.

    re: why Ana is using the NVIDIA, I think because it has the possibility of hardware support for neural nets and AI. Contains a substantial 128 core GPU.

    https://developer.nvidia.com/embedded/jetson-nano-developer-kit

  • wjcroftwjcroft Mount Shasta, CA
    edited February 2020

    Watched this demo of the robot based on the Jetson Nano. Cute, but would expect some flashier demos as well, with 128 cores you'd expect more than an obstacle avoiding robot. I guess the advantage here is the learning environment they supply, with all source code. In the end of the video, he trains the ML net to avoid the edges of the table; that is more impressive. Note that it gets perilously close to the edge though, a suspense movie.

    NVIDIA JetBot: Jetson Nano Vision-Controlled AI Robot

  • Yup, I'm using the Jetson Nano mainly for its GPU + portability and because of all the compatibility + optimization with a bunch of different frameworks/models. My general idea was to make an offline mobile device with a headset and gauntlet. The setup would look like this:

    My project initially revolved around classifying different states of focus and providing bio-feedback through auditory/tactile cues when focus was unintentionally waning (in the hopes of retraining the user's brain to be more efficient at being focused/ to notice when focus is lost quicker and self-correct). It would work (super generally) something like this:

    But at this point, I'm probably not going to go the focus route and will probably switch to a different application.

  • edited February 2020

    Hello again,
    I've been trying to run the GUi on the Ubuntu 18.04 LTS OS on my laptop (i7-7700HQ processor, so shouldn't have the ARM64 architecture problems like before). At first the GUI was just a black screen when I ran ./OpenBCI_GUI or sudo ./OpenBCI_GUI, but after running apt-get update and apt-get upgrade, the GUI comes up. However, it seems unable to connect to the hub and disables Live functionality. Below is a printout of the terminal window and GUI window at this point:

    I came across a couple threads with a similar issue, on one the suggestion was to run the GUI with and without sudo, but that didn't change anything for me. Another suggestion was to run from the Processing IDE, but the results were mixed, and I have not yet tried that route. Is there a known fix or a recommended series of steps to resolve this issue? I will be looking into this further in the meantime.
    -Ana

  • retiututretiutut Louisiana, USA

    Go into the OpenBCI GUI data folder and launch the Hub directly. We are removing the Hub right now as fast as we can.

  • Everything seems good. Steps:

    • Tried to launch hub manually, received error: ./OpenBCIHub: error while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory
    • Ran the following command: sudo apt-get install libgconf-2-4
    • Launched hub manually, received "app is ready" prompt.
    • Launched OpenBCI_GUI, everything ran successfully and the GUI is up with live mode enabled.

    Just as a side note, the terminal through which I launched the hub then printed "Killed" right below the "app is ready" message, but everything seems to be running fine. :)

  • jj_hennessyjj_hennessy United States

    @Anastasiya Hi, hope all is well with you! I am working on getting my Ultracortex Mark IV w/ Cyton-Daisy (16 channel) working on my Jetson Nano. I see that you accomplished a project with a pretty similar setup and was wondering if you could give me some guidance. After not being able to get the OpenBCI Hub connected to the OpenBCI GUI, I'm now moving onto using Brainflow to stream the raw EEG data, but am unfortunately encountering some issues. I'm running the code:

    from pyOpenBCI import OpenBCICyton
            def print_raw(sample):
                print(sample.channels_data)
    
            #Set (daisy = True) to stream 16 ch 
            board = OpenBCICyton(daisy = True)
    
            board.start_stream(print_raw)
    

    but am getting the error:

    raise OSError('Cannot find OpenBCI port.')
    OSError: Cannot find OpenBCI port.
    

    Have you encountered any trouble connecting your board like this? Any help or tips would be greatly appreciated. Thanks in advance!

    ~JJ

Sign In or Register to comment.