Close



Results 1 to 10 of 17

Hybrid View

  1. #1
    Super Moderator Roxy's Avatar
    Join Date
    Apr 2014
    Location
    Lone Star State
    Posts
    2,182
    I think it is more like who ever made this work for the Printer did some strange things to the source. Where are base_max_pos[] and base_min_pos[] defined? They are only referenced in Confgiuration.h They are defined somewhere else. And it doesn't seem like they need to be because just above that you have the values for:

    #define X_MAX_POS_DEFAULT 450
    #define X_MIN_POS_DEFAULT 0
    #define Y_MAX_POS_DEFAULT 355
    #define Y_MIN_POS_DEFAULT 0
    #define Z_MAX_POS_DEFAULT 310
    #define Z_MIN_POS_DEFAULT 0

    But base_max_pos[] and base_min_pos[] are used to set the length of each axis. How does this make any sense?

    #define X_MAX_LENGTH (base_max_pos[0] - base_min_pos[0])
    #define Y_MAX_LENGTH (base_max_pos[1] - base_min_pos[1])
    #define Z_MAX_LENGTH (base_max_pos[2] - base_min_pos[2])

    You need to find where base_min_pos[] is defined and where (and how) it is used.

  2. #2
    Quote Originally Posted by Roxy View Post
    I think it is more like who ever made this work for the Printer did some strange things to the source. Where are base_max_pos[] and base_min_pos[] defined? They are only referenced in Confgiuration.h They are defined somewhere else. And it doesn't seem like they need to be because just above that you have the values for:

    #define X_MAX_POS_DEFAULT 450
    #define X_MIN_POS_DEFAULT 0
    #define Y_MAX_POS_DEFAULT 355
    #define Y_MIN_POS_DEFAULT 0
    #define Z_MAX_POS_DEFAULT 310
    #define Z_MIN_POS_DEFAULT 0

    But base_max_pos[] and base_min_pos[] are used to set the length of each axis. How does this make any sense?

    #define X_MAX_LENGTH (base_max_pos[0] - base_min_pos[0])
    #define Y_MAX_LENGTH (base_max_pos[1] - base_min_pos[1])
    #define Z_MAX_LENGTH (base_max_pos[2] - base_min_pos[2])

    You need to find where base_min_pos[] is defined and where (and how) it is used.
    base_min_pos[n] and base_max_pos[n] are defined as the values X/Y/Z__MIN/MAX_POS_DEFAULT in a separate module, I didn't see any other pointers or variables.

    What this came down to, the base EEPROM variables needed to be scripted and stored again after a flash, this included acceleration, digital pot config, you name it. After sending values and saving with M500, variables persisted. It did not click for me since the source variables were something like
    #define X_MAX_POS_DEFAULT 200
    #define X_MIN_POS_DEFAULT 0
    #define Y_MAX_POS_DEFAULT 200
    #define Y_MIN_POS_DEFAULT 0
    #define Z_MAX_POS_DEFAULT 235
    #define Z_MIN_POS_DEFAULT 0

    Where if they were all 250 to begin with, this would have made more sense. I looked for a while, still I have no idea where these values of 250 were generated. It was very counter intuitive for me, but I'm sure there is an excellent reason for this behavior.

    The good news is, I'm pretty much ready to roll now. I did change my safety margins a little, 425x355x300mmH, can't wait to print some one piece quad copters!

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •