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
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
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.