Sanguinololu (or Sanguinolulu) Support

Shop Forum Makelangelo Polargraph Art Robot Sanguinololu (or Sanguinolulu) Support

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #21286
    jamesmherndon
    Participant

    I am recycling an older Reprap into a Makelangelo (well, trying to)
    It has a Sanguinololu 1.3a board, which seems to be supported, but the code won’t compile in the Arduino IDE if I change the Motherboard in Configure.h

    I am pretty sure I am doing that part correctly, but can it just be confirmed that it does in fact compile and that Sanguinololu is supported/tested?
    It seemed to be getting hung up on the number of motors supported (sanity check) I commented out that section of code and was able to move onto another issue with the motors not being defined. I don’t want to hack up the code too much to get this to work if it’s pointless and I need to just buy a Ramps board or something.

    Thanks!

    #21294
    Dan
    Keymaster

    I’d really like to know why it doesn’t compile before you start removing sanity checks. What are the error messages?
    I’ll then open a github ticket here: https://github.com/MarginallyClever/Makelangelo-firmware/issues

    Note that I don’t have a sanguinolulu so this might take several tries to get right. Did you remember to set sanguinolulu in tools > boards?

    #21296
    jamesmherndon
    Participant

    Thanks Dan! I think I am set up correctly, I had to add the sanguino board by adding this address to my additional boards location in preferences:
    https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json (mostly mentioning this here to help others)

    This is the error I get when I do not comment out the sanity check, (I only commented it out to see what would happen if it could get past that.)

    Arduino: 1.8.7 (Windows Store 1.8.15.0) (Windows 10), Board: “Sanguino, ATmega644P or ATmega644PA (16 MHz)”

    In file included from C:…Makelangelo Software\Makelangelo-firmware\Makelangelo-firmware.ino:12:0:

    configure.h:67:2: error: #error “The number of motors needed is more than this board supports.”

    #error “The number of motors needed is more than this board supports.”

    ^

    configure.h:70:2: error: #error “The number of servos needed is more than this board supports.”

    #error “The number of servos needed is more than this board supports.”

    ^

    exit status 1
    #error “The number of motors needed is more than this board supports.”

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

    #21297
    Dan
    Keymaster

    The current sanguinolulu defintions in board_sanguinolulu.h only have pins for two steppers and one servo.
    There’s even a line here that says:

    // TODO: if ZARPLOTTER & SANGUINOLULU throw a compile error, not enough motors.

    I have found some more here: https://reprap.org/wiki/Sanguinololu#Pin_Assignments
    I’ve added motor 3 and 4.

    BUT

    Motor 4 breaks with convention of all other boards because it doesn’t have a dedicated (recommended?) limit switch pin.
    I’ve assigned it to pin 24, the e-thermistor pin. I hope that works for you.

    get the latest version here: https://github.com/MarginallyClever/Makelangelo-firmware/tree/dev

    #21382
    jamesmherndon
    Participant

    Thanks Dan! It hit the same error, but I realized the sketch is defined incorrectly, when I fix this the sanity check is passed, then I get hung up on another issue, but just wanted to share this with you so you can correct it, it’s defined as the ramps board at the top of the Sanguinolulu sketch:

    #ifndef BOARD_RAMPS_H
    #define BOARD_RAMPS_H
    //——————————————————————————
    // Makelangelo – firmware for various robot kinematic models
    // [email protected] 2013-12-26
    // Please see http://www.github.com/MarginallyClever/makelangeloFirmware for more information.
    //——————————————————————————

    #if MOTHERBOARD == BOARD_SANGUINOLULU
    #define MAX_MOTORS (4)

    #21383
    jamesmherndon
    Participant

    The new hangup is this one:
    ‘TCNT3’ was not declared in this scope
    in MServo.h at line 170

    #21384
    Dan
    Keymaster

    i’ve made the matching change and get the same TCNT3 problem. Unfortunately I didn’t write the servo.cpp file and I don’t know enough about timer interrupts to be helpful.

    #21385
    Dan
    Keymaster

    in servo.h,

    #else // everything else
    #define _useTimer1
    //#define _useTimer3
    typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t ;
    //typedef enum { _timer3, _Nbr_16timers } timer16_Sequence_t ;
    #endif

    in configure.h,

    //#define HAS_LCD // if you have an LCD panel
    //#define HAS_SD // if you have SD card support on your LCD panel (must be on panel?)
    #undef HAS_LCD
    #undef HAS_SD

    // only uncomment one of these options
    //#define LCD_IS_128X64 // reprapdiscount Full Graphic Smart LCD Controller
    //#define LCD_IS_SMART // reprapdiscount Smart LCD Controller (including XXL model)

    that gets me a little further.

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