[SOLVED] Load Firmata onto Arduino Robot

Hello everyone. I'm using Arduino Robot. I've tried to upload the StandardFirmata sketch onto my Arduino Robot but it failed. Does anyone know how to upload the StandardFirmata onto Arduino Robot? Thanks a lot.

Please do this:

  • File > Preferences > Show verbose output during: > compilation (uncheck) > upload (check) > OK
  • Sketch > Upload
  • After the upload fails you’ll see a button on the right side of the orange bar “Copy error messages”. Click that button.
  • Paste the error messages in a reply here USING CODE TAGS (</> button on the forum toolbar).
Arduino: 1.8.8 (Windows 10), Board: "Arduino Robot Control"

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\SoftwareSerial.cpp: In member function 'void SoftwareSerial::begin(long int)':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\SoftwareSerial.cpp:319:36: error: 'digitalPinToPCICR' was not declared in this scope

   if (digitalPinToPCICR(_receivePin)) {

                                    ^

In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,

                 from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\interrupt.h:38,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\SoftwareSerial.cpp:41:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\SoftwareSerial.cpp:360:76: error: 'digitalPinToPCICRbit' was not declared in this scope

     *digitalPinToPCICR(_receivePin) |= _BV(digitalPinToPCICRbit(_receivePin));

                                                                            ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\SoftwareSerial.cpp:363:51: error: 'digitalPinToPCMSK' was not declared in this scope

     _pcint_maskreg = digitalPinToPCMSK(_receivePin);

                                                   ^

In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,

                 from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\interrupt.h:38,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\SoftwareSerial.cpp:41:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\SoftwareSerial.cpp:364:60: error: 'digitalPinToPCMSKbit' was not declared in this scope

     _pcint_maskvalue = _BV(digitalPinToPCMSKbit(_receivePin));

                                                            ^

Multiple libraries were found for "Firmata.h"
 Used: C:\Users\sinch\Documents\Arduino\libraries\Firmata
 Not used: C:\Program Files (x86)\Arduino\libraries\Firmata
exit status 1
Error compiling for board Arduino Robot Control.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

pert:
Please do this:

  • File > Preferences > Show verbose output during: > compilation (uncheck) > upload (check) > OK
  • Sketch > Upload
  • After the upload fails you’ll see a button on the right side of the orange bar “Copy error messages”. Click that button.
  • Paste the error messages in a reply here USING CODE TAGS (</> button on the forum toolbar).

Thanks for your reply. I’ve paste the error messages. I choose the Arduino Robot Control as the board fyi.

It seems that Arduino has not continued development on the Arduino Robot Control board definition since it’s been retired for a long time. This has resulted in the SoftwareSerial library no longer being compatible with that board. Luckily, the Leonardo board definition is functionally the same as Arduino Robot Control in every way that should be important for this usage. So try selecting Tools > Board > Arduino Leonardo instead of Arduino Robot Control.

pert:
It seems that Arduino has not continued development on the Arduino Robot Control board definition since it's been retired for a long time. This has resulted in the SoftwareSerial library no longer being compatible with that board. Luckily, the Leonardo board definition is functionally the same as Arduino Robot Control in every way that should be important for this usage. So try selecting Tools > Board > Arduino Leonardo instead of Arduino Robot Control.

Hi Pert. Thanks for your replying. The StandardFirmata can now be uploaded onto the Arduino Robot. Is I need to choose Arduino Leonardo as the board instead of Arduino Robot Control for the rest of the sketch as well?

What do you mean by "the rest of the sketch"?

You can only put one sketch at a time on your Arduino Robot Control. If you upload another sketch, it will erase the StandardFirmata sketch.

pert:
What do you mean by "the rest of the sketch"?

I mean is I need to choose Arduino Leonardo as the board for the other sketch as well instead of the Arduino Robot Control?

pert:
You can only put one sketch at a time on your Arduino Robot Control. If you upload another sketch, it will erase the StandardFirmata sketch.

Is this condition apply as well if I’m using the SD card for the Arduino Robot? Sorry for my dumb question. I just wanna make my minds to be clear.

Sin2:
I mean is I need to choose Arduino Leonardo as the board for the other sketch as well instead of the Arduino Robot Control?

You should only choose Arduino Leonardo when your sketch fails to compile for the Arduino Robot Control board.

You should be aware that two processes happen when you press the "Upload" button. First, the sketch is compiled. Next, the compiled code is uploaded to the Arduino board. Your error occurred during the compilation process. It's important to understand the distinction between a compilation failure and an upload failure because they require different troubleshooting approaches.

Sin2:
Is this condition apply as well if I'm using the SD card for the Arduino Robot?

Yes. It applies no matter what.

Alright. I clearly understand now. Thank you, Pert! Your answers help a lot.