Makelangelo 7.15 firmware

Shop Forum Makelangelo Polargraph Art Robot Makelangelo 7.15 firmware

Tagged: ,

Viewing 16 posts - 1 through 16 (of 16 total)
  • Author
    Posts
  • #14563
    tjhawkey
    Participant

    Hi Dan, sorry for the simple question…
    How do I let Arduino know about the rumba board so I can update the firmware on my Makelangelo 5?
    I see the rumba.h file, but I don’t know how to add it to available boards in the arduino environment.
    I’m assuming that I “just” have to compile the firmware sketch and download it to the rumba on the Makelangelo.

    Thanks!

    #14571
    Dan
    Keymaster

    by default makelangelo-firmware is already set up in configure.h so that the default mode is POLARGRAPH and the default board is RUMBA.

    You may want to go into robot_polargraph.h and check that the makelangelo version is 5.

    Then upload and you’ll be set.

    #14581
    tjhawkey
    Participant

    I think I might need the dummy version. 🙂
    On the reprap wiki it says:
    To flash your firmware of choice with the Arduino suite you have to select “Arduino Mega 2560 or Mega ADK” as Board.
    So that seems to answer one question.
    The next question is which .ino file do I use?
    I assume the makelangelo-firmware.ino
    Is that right?
    The robot-polargraph.h looks like it needs modification as you suggest for version 5, but I don’t see that it is called in either of the obvious .ino files

    Sorry for my ignorance. If you put the hex file for makelangelo 5 on github, I could just download that?

    Thanks

    #14621
    Dan
    Keymaster

    correct and correct.

    by default the firmware is set up for makelangelo. to confirm:

    in configure.h, there is a line that should say

    #define MACHINE_STYLE POLARGRAPH

    if the last word is any other type of robot, change it to match as above.

    In robot_polargraph.h, If you have a M3.2 there is a line that should say

    #define MACHINE_HARDWARE_VERSION 3 // If you have a makelangelo 3+
    //#define MACHINE_HARDWARE_VERSION 5 // If you have a makelangelo 5+

    In robot_polargraph.h, If you have a M5 there is a line that should say

    //#define MACHINE_HARDWARE_VERSION 3 // If you have a makelangelo 3+
    #define MACHINE_HARDWARE_VERSION 5 // If you have a makelangelo 5+

    Then go to tools > port and make sure the selected port is your robot. This is the phone number it calls to talk to your robot and send it instructions, same as when you connect with Makelangelo software to drive it from the app.

    Then press the circle button that is second from the left. it should have a picture of an arrow pointing to the right. It will compile the code and then send it to the robot. When it says upload complete your work is done!

    #14647
    tjhawkey
    Participant

    Thanks! I am getting closer. I learned/remembered that I have to copy the .h files into the folder that the IDE makes when you open the sketch.
    However, the sketch won’t compile and returns a number of errors.
    A few examples are listed below.
    Seems like I have files not in the correct place in my arduino environment.
    Any suggestions?

    C:\Users\TJHawkey\Documents\Arduino\Makelangelo-firmware\Makelangelo-firmware.ino: In function ‘void parseLimits()’:

    Makelangelo-firmware:140: error: ‘saveLimits’ was not declared in this scope

    saveLimits();

    ^

    C:\Users\TJHawkey\Documents\Arduino\Makelangelo-firmware\Makelangelo-firmware.ino: In function ‘void testKinematics()’:

    Makelangelo-firmware:167: error: ‘IK’ was not declared in this scope

    IK(axies1, A);

    ^

    Makelangelo-firmware:168: error: ‘FK’ was not declared in this scope

    FK(A, axies2);

    ^

    C:\Users\TJHawkey\Documents\Arduino\Makelangelo-firmware\Makelangelo-firmware.ino: In function ‘void lineSafeInternal(float*, float)’:

    Makelangelo-firmware:204: error: ‘IK’ was not declared in this scope

    IK(pos, steps);

    #14699
    Dan
    Keymaster

    do you have #define MACHINE_STYLE POLARGRAPH in configure.h?
    It looks like Arduino thinks you have no machine style defined, which makes me think you’re still misging a firmware file or two.

    #15339
    tjhawkey
    Participant

    OK, getting back to this with new firmware release.
    I updated the comments in robot_polargraph.h to point to define the correct hardware version (5).
    I found I had to comment out zarplot in configure.h since there was no related .h file in the github download.
    Still no luck compiling.
    Error messages like this below (sorry it’s long).
    I am not connected to the makelangelo yet–just trying to verify/compile.
    I have all the .h files from github and servo.h

    Any suggestions?
    Thanks

    Arduino: 1.8.3 (Windows 10), Board: “Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

    C:\Users\TJHawkey\Documents\Arduino\robot_polargraph\robot_polargraph.ino: In function ‘void IK(float*, long int*)’:

    robot_polargraph:36: error: ‘axies’ was not declared in this scope

    float limit_xmin = axies[0].limitMin;

    ^

    C:\Users\TJHawkey\Documents\Arduino\robot_polargraph\robot_polargraph.ino: In function ‘int FK(long int*, float*)’:

    robot_polargraph:58: error: ‘axies’ was not declared in this scope

    float limit_xmin = axies[0].limitMin;

    ^

    C:\Users\TJHawkey\Documents\Arduino\robot_polargraph\robot_polargraph.ino: In function ‘void recordHome()’:

    robot_polargraph:100: error: ‘wait_for_empty_segment_buffer’ was not declared in this scope

    wait_for_empty_segment_buffer();

    ^

    robot_polargraph:101: error: ‘motor_engage’ was not declared in this scope

    motor_engage();

    ^

    robot_polargraph:102: error: ‘findStepDelay’ was not declared in this scope

    findStepDelay();

    ^

    robot_polargraph:114: error: ‘axies’ was not declared in this scope

    homes[0]=axies[0].homePos;

    ^

    robot_polargraph:143: error: ‘step_delay’ was not declared in this scope

    pause(step_delay * 2);

    ^

    robot_polargraph:143: error: ‘pause’ was not declared in this scope

    pause(step_delay * 2);

    ^

    robot_polargraph:154: error: ‘step_delay’ was not declared in this scope

    pause(step_delay * 4);

    ^

    robot_polargraph:154: error: ‘pause’ was not declared in this scope

    pause(step_delay * 4);

    ^

    robot_polargraph:182: error: ‘step_delay’ was not declared in this scope

    pause(step_delay * 4);

    ^

    robot_polargraph:182: error: ‘pause’ was not declared in this scope

    pause(step_delay * 4);

    ^

    robot_polargraph:185: error: ‘calibrateLeft’ was not declared in this scope

    calibrateLeft = count[0];

    ^

    robot_polargraph:186: error: ‘calibrateRight’ was not declared in this scope

    calibrateRight = count[1];

    ^

    robot_polargraph:189: error: ‘saveCalibration’ was not declared in this scope

    saveCalibration();

    ^

    robot_polargraph:190: error: ‘reportCalibration’ was not declared in this scope

    reportCalibration();

    ^

    robot_polargraph:195: error: ‘teleport’ was not declared in this scope

    teleport(axies2);

    ^

    robot_polargraph:196: error: ‘where’ was not declared in this scope

    where();

    ^

    robot_polargraph:202: error: ‘get_end_plus_offset’ was not declared in this scope

    get_end_plus_offset(offset);

    ^

    robot_polargraph:205: error: ‘feed_rate’ was not declared in this scope

    lineSafe(offset, feed_rate);

    ^

    robot_polargraph:205: error: ‘lineSafe’ was not declared in this scope

    lineSafe(offset, feed_rate);

    ^

    C:\Users\TJHawkey\Documents\Arduino\robot_polargraph\robot_polargraph.ino: In function ‘void robot_findHome()’:

    robot_polargraph:216: error: ‘wait_for_empty_segment_buffer’ was not declared in this scope

    wait_for_empty_segment_buffer();

    ^

    robot_polargraph:217: error: ‘motor_engage’ was not declared in this scope

    motor_engage();

    ^

    robot_polargraph:221: error: ‘findStepDelay’ was not declared in this scope

    findStepDelay();

    ^

    robot_polargraph:244: error: ‘step_delay’ was not declared in this scope

    pause(step_delay);

    ^

    robot_polargraph:244: error: ‘pause’ was not declared in this scope

    pause(step_delay);

    ^

    robot_polargraph:252: error: ‘calibrateLeft’ was not declared in this scope

    count[0] = calibrateLeft/THREAD_PER_STEP;

    ^

    robot_polargraph:253: error: ‘calibrateRight’ was not declared in this scope

    count[1] = calibrateRight/THREAD_PER_STEP;

    ^

    robot_polargraph:254: error: ‘axies’ was not declared in this scope

    count[2] = axies[2].pos;

    ^

    robot_polargraph:262: error: ‘teleport’ was not declared in this scope

    teleport(axies2);

    ^

    robot_polargraph:264: error: ‘where’ was not declared in this scope

    where();

    ^

    robot_polargraph:269: error: ‘get_end_plus_offset’ was not declared in this scope

    get_end_plus_offset(offset);

    ^

    robot_polargraph:275: error: ‘feed_rate’ was not declared in this scope

    lineSafe(offset, feed_rate);

    ^

    robot_polargraph:275: error: ‘lineSafe’ was not declared in this scope

    lineSafe(offset, feed_rate);

    ^

    C:\Users\TJHawkey\Documents\Arduino\robot_polargraph\robot_polargraph.ino: In function ‘void calibrateBelts()’:

    robot_polargraph:287: error: ‘wait_for_empty_segment_buffer’ was not declared in this scope

    wait_for_empty_segment_buffer();

    ^

    robot_polargraph:288: error: ‘motor_engage’ was not declared in this scope

    motor_engage();

    ^

    robot_polargraph:298: error: ‘axies’ was not declared in this scope

    homePos[0]=axies[0].homePos;

    ^

    robot_polargraph:302: error: ‘findStepDelay’ was not declared in this scope

    findStepDelay();

    ^

    robot_polargraph:325: error: ‘step_delay’ was not declared in this scope

    pause(step_delay);

    ^

    robot_polargraph:325: error: ‘pause’ was not declared in this scope

    pause(step_delay);

    ^

    robot_polargraph:332: error: ‘calibrateLeft’ was not declared in this scope

    calibrateLeft = (float)steps[0] * THREAD_PER_STEP;

    ^

    robot_polargraph:333: error: ‘calibrateRight’ was not declared in this scope

    calibrateRight = (float)steps[1] * THREAD_PER_STEP;

    ^

    robot_polargraph:335: error: ‘reportCalibration’ was not declared in this scope

    reportCalibration();

    ^

    robot_polargraph:340: error: ‘teleport’ was not declared in this scope

    teleport(axies2);

    ^

    robot_polargraph:341: error: ‘where’ was not declared in this scope

    where();

    ^

    robot_polargraph:347: error: ‘get_end_plus_offset’ was not declared in this scope

    get_end_plus_offset(offset);

    ^

    robot_polargraph:350: error: ‘feed_rate’ was not declared in this scope

    lineSafe(offset, feed_rate);

    ^

    robot_polargraph:350: error: ‘lineSafe’ was not declared in this scope

    lineSafe(offset, feed_rate);

    ^

    exit status 1
    ‘axies’ was not declared in this scope

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

    #15345
    Dan
    Keymaster

    Usually fixing the first error makes the rest disappear.

    I just compiled the latest for polargraph and version 5 makelangelo. there were no compile errors.

    “axies” are defined in Makelangelo-firmware.ino. I’m not sure how it can fail to find the declaration.

    Are you using

    (A) the download from the store,
    (B) the Github master branch, or
    (C) the Gidhub dev branch

    ?

    #15354
    tjhawkey
    Participant

    Hi Dan, I just got the latest from github (with updated version #)
    configure.h and robot_polargraph.h look correct.

    I’m trying to compile makelangelo-firwmare.ino
    It claims “savelimits” not declared in scope?
    I put all the .h files in the same folder as the sketch.

    Lacking that, could you send me the compiled file?
    Sorry for the trouble.
    THanks!

    #15355
    Dan
    Keymaster

    are you sure you have eeprom.ino? that’s where saveLimits is declared.

    #15360
    tjhawkey
    Participant

    Yes, I have eeprom.ino. The github download makes a folder with several sketches, several .h files, and a .cppfile.
    When you open a sketch, the IDE makes a folder for it. I’ve now opened every sketch, so there are a number of sub-folders and the remaining .h files and .cpp file. I put the .h files and the MSErvo.cpp file in the folder with the makelangelo-firmware.ino folder. Compiling the sketch I get the error “savelimits was not defined in this scope” (and a bunch of others)
    conigure.h was updated to call out makelangelo 5.

    #15363
    Dan
    Keymaster

    – get a fresh download.
    – unzip everything to Makelangelo-firmware-master
    – rename folder Makelangelo-firmware-master to Makelangelo-firmware
    – open Makelangelo-firmware/Makelangelo-firmware.ino
    – all files should appear as tabs in the one arduino project
    – compile. everything should be ok.

    #15364
    tjhawkey
    Participant

    That does the trick.
    Thanks!
    You might want to update the page on your site with these instructions.

    #15365
    Dan
    Keymaster

    README.txt has been updated.

    #15388
    Anonymous
    Inactive

    Hi..as per my knowledge makelangelo-firmware is already set up in configure.h so that the default mode is POLARGRAPH and the default board is RUMBA.

    #15389
    Dan
    Keymaster

    @NealXu good. Hi!

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