Missing compiler when re-programming the RFDuinos (Dongle and OpenBCI Device)

I was just trying to change the RFDuino channel that by boards are using.  To do this, you need to update the "Host" (the RFDuino on the Dongle) and "Device" (the RFDuino on the OpenBCI board).  The Host and Device software (along with the RFDuino library) are part of the OpenBCI_8Bit GitHub repository.  Great.

The problem came when used the Arduino IDE to compile the sketch provided by OpenBCI (in this case, I was doing the "Host").  It wouldn't compile, complaining right away that it couldn't find the "g++_arm_non_eabi" compiler.  This g++ compiler is being asked for by the RFDuino library via its "platform.txt" file.  In "platform.txt", this compiler is being asked for via this line:

compiler.path={runtime.ide.path}/hardware/tools/g++_arm_none_eabi/bin/

The Arduino IDE uses this command to look for the compiler (on my computer) at: 

C:\Program Files (x86)\Arduino\hardware\tools\g++_arm_none_eabi\bin\

When I look at that location, there is no g++ compiler.  So, I've confirmed why it bombs.  Instead, near this location, I see that there is a gcc compiler with a very similar naming scheme.  So, in the RFDuino's "platform.txt" file, I change the compiler line to match what is actually on my computer.  It now reads:

compiler.path={runtime.ide.path}/hardware/tools/gcc-arm-none-eabi-4.8.3-2014q1/bin/

I then closed all of my Arduino windows and re-started the Arduino IDE.  I opened the Host sketch and told it compile.  Everything now works fine.  This is with the Arduino IDE V1.5.7 for windows.

I hope that this is helpful to others who might have a similar problem.

Chip

Comments

  • wjcroftwjcroft Mount Shasta, CA
    Chip, hi.

    Here's a related question. You mention downloading new firmware to the RFDuino's, to effect a channel change. Would it be possible in the future to change the channel with some sort of serial port command sent by the PC or Mac? In other words, just like the other current commands that affect ADS1299 registers, a channel change command. Or possibly other related commands relative to Bluetooth operation.

    I can see how the OpenBCI main board, on receiving a special command, could inform the onboard RFDuino to change operational mode. But then it seems most friendly to somehow store that info in some non-volatile place, rather than having to channel change on each powerup.

    And then the related issue of how the dongle would get it's channel change command?

    I know with the Pocket-Neurobics equipment I have, channel changes can be done with separate operations on the laptop and on the wireless amp.

    William
  • Hello William,

    That's more a question for Joel.  All I know is that the channel is currently set via the Arduino code, which means that it is set at compile time.

    Sorry I don't know more on this topic.

    Chip
  • biomurphbiomurph Brooklyn, NY
    Hi,

    I put up a page that covers flashing firmware to the RFduino radio modules here


    Please let me know if this does/doesn't work ;)
  • It would be nice if you can fix the compiler.path in platform.txt file in the repository as Chip mentioned above, since this problem is still there.


  • edited January 2015
    Joel,

    I just tried the new repo.  I also used the latest Arduino IDE (V1.5.8).  I got the same error as before...it wants the g++ compiler, which apparently is not part of the Arduino IDE anymore.  The workaround above (swapping in the gcc compiler) still works.

    Maybe the guys at RFDuino know how to implement this fix so that it works for **both** kinds of people...those whose IDE has g++ and those whose IDE has gcc.


    Chip
  • biomurphbiomurph Brooklyn, NY
    I've been using Arduino IDE version 1.5.4 to do all of my uploading here. Have not had that compiler error. I'm downloading the latest (1.5.8) now to tackle this problem.
  • biomurphbiomurph Brooklyn, NY
    Turns out the 1.5.4 version of Arduino IDE has the file
    tools/g++_arm_none_eabi/bin/
    so there is not an issue in 1.5.4
    and it 'looks' like the RFduino regular download has solved this issue. Our custom spin, however does not... until now.

    I double checked that the g++ file has the same name across versions and OSs.
    Fixed it on the git download, and it works on my mac now too.

Sign In or Register to comment.