[solved] Error Compiling Firmware_Rumba

Shop Forum Makelangelo Polargraph Art Robot [solved] Error Compiling Firmware_Rumba

  • This topic is empty.
Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #6065
    PancakeBot
    Member

    Am running the Makelangelo 3.0 Rumba board and received the following error when trying to update the firmware.
    Tried this on PC and on Mac. Same error.
    Running arduino 1.06.

    firmware_rumba/MServo.cpp.o: In function `Servo’:
    /Users/miguelvalenzuela/Documents/Arduino/libraries/firmware_rumba/MServo.cpp:244: multiple definition of `Servo::Servo()’
    MServo.cpp.o:MServo.cpp:244: first defined here
    /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld: Disabling relaxation: it will not work with multiple definitions
    firmware_rumba/MServo.cpp.o: In function `Servo’:
    /Users/miguelvalenzuela/Documents/Arduino/libraries/firmware_rumba/MServo.cpp:244: multiple definition of `ServoCount’
    MServo.cpp.o:MServo.cpp:244: first defined here
    firmware_rumba/MServo.cpp.o: In function `Servo’:
    /Users/miguelvalenzuela/Documents/Arduino/libraries/firmware_rumba/MServo.cpp:244: multiple definition of `Servo::Servo()’
    MServo.cpp.o:MServo.cpp:244: first defined here
    firmware_rumba/MServo.cpp.o: In function `Servo::detach()’:
    /Users/miguelvalenzuela/Documents/Arduino/libraries/firmware_rumba/MServo.cpp:276: multiple definition of `Servo::detach()’
    MServo.cpp.o:MServo.cpp:276: first defined here
    firmware_rumba/MServo.cpp.o: In function `Servo::writeMicroseconds(int)’:
    /Users/miguelvalenzuela/Documents/Arduino/libraries/firmware_rumba/MServo.cpp:296: multiple definition of `Servo::writeMicroseconds(int)’
    MServo.cpp.o:MServo.cpp:296: first defined here
    firmware_rumba/MServo.cpp.o: In function `Servo::readMicroseconds()’:
    /Users/miguelvalenzuela/Documents/Arduino/libraries/firmware_rumba/MServo.cpp:322: multiple definition of `Servo::readMicroseconds()’
    MServo.cpp.o:MServo.cpp:322: first defined here
    firmware_rumba/MServo.cpp.o: In function `Servo::attached()’:
    /Users/miguelvalenzuela/Documents/Arduino/libraries/firmware_rumba/MServo.cpp:333: multiple definition of `Servo::attached()’
    MServo.cpp.o:MServo.cpp:333: first defined here
    firmware_rumba/MServo.cpp.o: In function `Servo::read()’:
    /Users/miguelvalenzuela/Documents/Arduino/libraries/firmware_rumba/MServo.cpp:317: multiple definition of `Servo::read()’
    MServo.cpp.o:MServo.cpp:317: first defined here
    firmware_rumba/MServo.cpp.o: In function `Servo::write(int)’:
    /Users/miguelvalenzuela/Documents/Arduino/libraries/firmware_rumba/MServo.cpp:285: multiple definition of `Servo::write(int)’
    MServo.cpp.o:MServo.cpp:285: first defined here
    firmware_rumba/MServo.cpp.o: In function `Servo::attach(int, int, int)’:
    /Users/miguelvalenzuela/Documents/Arduino/libraries/firmware_rumba/MServo.cpp:259: multiple definition of `Servo::attach(int, int, int)’
    MServo.cpp.o:MServo.cpp:259: first defined here
    firmware_rumba/MServo.cpp.o: In function `Servo::attach(int)’:
    /Users/miguelvalenzuela/Documents/Arduino/libraries/firmware_rumba/MServo.cpp:256: multiple definition of `Servo::attach(int)’
    MServo.cpp.o:MServo.cpp:256: first defined here
    firmware_rumba/MServo.cpp.o: In function `__vector_47′:
    /Users/miguelvalenzuela/Documents/Arduino/libraries/firmware_rumba/MServo.cpp:123: multiple definition of `__vector_47′
    MServo.cpp.o:MServo.cpp:123: first defined here
    firmware_rumba/MServo.cpp.o: In function `__vector_42′:
    /Users/miguelvalenzuela/Documents/Arduino/libraries/firmware_rumba/MServo.cpp:116: multiple definition of `__vector_42′
    MServo.cpp.o:MServo.cpp:116: first defined here
    firmware_rumba/MServo.cpp.o: In function `__vector_32′:
    /Users/miguelvalenzuela/Documents/Arduino/libraries/firmware_rumba/MServo.cpp:109: multiple definition of `__vector_32′
    MServo.cpp.o:MServo.cpp:109: first defined here

    #6877
    Anonymous
    Inactive

    The only other time I’ve seen similar errors is if the Board Type is not set to MEGA 2560 in Arduino. Could that be the case?

    #6878
    PancakeBot
    Member

    It’s set to “MEGO 2560 or MEGA ADK.”
    to test the communication I uploaded the basic blink example and it works fine (at least stopped the motors from turning). 😀

    I’ve tried everything, clearing my library, reloading the libraries, all that jazz.
    Still get the same error.

    #6879
    PancakeBot
    Member

    Woo Hoo! Got it uploaded.
    What did I do?
    I uninstalled Arduino completely and cleared out all the libraries and sketches and started from scratch.
    I copied only the firmware_rumba folder into the library and opened up the firmware_rumba.ino file and compiled it and it worked.
    So I tried to repeat the problem and find out where I went wrong.
    It seems that by having both the firmware_ams and firmware_rumba folders in the library are causing the problem.

    The instructions on the site say: (http://learn.marginallyclever.com/index.php/Makelangelo_Firmware)

    Get the code
    The lesson (program) for your circuit board is on Github. Grab a copy here by clicking “Clone to desktop” or “Download ZIP”.

    Copy the AFMotorDrawbot folder (./firmware_ams/AFMotorDrawbot) and all it’s contents to the Arduino libraries.

    On Windows the files go in the Arduino software/libraries/.
    On OSX the library goes in /Documents/Arduino/libraries/.

    So my first step was to copy the AFMotorDrawbot folder into the libaries per the instructions.

    So then I went down to the M3 Instructions and copied the Rumba files into the folder.

    So I would recommend the following changes to the site:

    Get the code
    The lesson (program) for your circuit board is on Github. Grab a copy here by clicking “Clone to desktop” or “Download ZIP”.

    For the M2 & M2.5
    Copy the AFMotorDrawbot folder (./firmware_ams/AFMotorDrawbot) and all it’s contents to the Arduino libraries.

    For the M3
    Copy the Rumba Firmware folder (./firmware_rumba) and all it’s contents to the Arduino Libraries folder.

    *Do not copy both firmware_ams and firmware_rumba into the same folder. Doing this may cause a multiple definition error.

    The folders for the libraries are located here for the respective OS.

    On Windows the files go in the Arduino software/libraries/.
    On OSX the library goes in /Documents/Arduino/libraries/.

    Hope that helps!

    #6880
    Anonymous
    Inactive

    Adding change now. Thanks for catching that!

    …actually, you don’t have to copy anything over for RUMBA.

    #6881
    PancakeBot
    Member

    Oh. That would have been good to know! 🙂
    I appreciate the update!

Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.