Problem with calibration routine

Discussion in 'Community Support' started by Dave Hylands, Sep 17, 2014.

  1. I think I've discovered some issues with the calibration routine.

    My Y-axis seems to be reversed. If I power up the board, and press the up arrow, then the head moves towards the front, and pressing th down arrow moves the head to the back.

    After running the calibration routine, then the arrows behave properly.

    The bug:

    If I position the head about half-way between the front and back, but with the the left X axis switch depressed, then powerup the arduino board. When I execute the calibration routine, the X axis moves very slowly to the right (presumably because the limit switch is activated.

    Once the switch becomes de-activated it then moves the head to the back and then rams it to the left, and I have to hit kill the power.

    Since it moved the head to the right to get off the switch, it already knows which direction is correct. It shouldn't be trying to drive it through the limit switch.

    I can reproduce this 100% of time, and would be happy to provide video.
  2. Michael Reed

    Michael Reed Staff Member

    If it doesn't bother you to make a video, that would be great for our software guy to look at just to make sure he is reproducing your issue exactly. I'm sorry to sound like a broken record but again I'll raise a Github issue - hopefully in the next day or two I can get our software guy to reply to your posts as well.

    Please keep the issues coming - the more you find, the more we fix (hopefully haha).
  3. No issues on the broken record bit. I'm a software developer myself, working on FirefoxOS in my day job, and contributing to MicroPython in my own time.

    I'm looking forward to seeing the github repository being made available publicly.
  4. Here's a link to my video showing the problem:

    If you have trouble accessing that, then I probably messed up the permission or something.

    If I start with the head in the middle (front-to-back) and the right switch activated, then it behaves the same when it gets to the back left corner.

    In both cases it seems to be trying to drive the Y axis through the back limit switch (I said side in the video, but on closer inspection it appears to be trying to move it further back).

    I have a feeling that my y-axis being reversed (i.e. up arrow moves head towards the front prior to calibration) is contributing to the bug as well.
  5. Michael Reed

    Michael Reed Staff Member

    Thanks Dave, I'll tell my software guy to get on it asap.
  6. Michael

    Michael Staff Member

    Hi Dave,

    Michael the software guy here, thanks for the detailed feedback and video, really appreciate that! Makes it easier to diagnose exactly what's going on.

    Regarding your issues, would you mind trying the version of the firmware here:
    If you're unable to flash it with the Argentum Control software you may have to use another program ( for Windows, avrdude for Linux/OSX)

    Those issues should be addressed in this new version, let me know how you get on.
  7. Upgrading to the 0.14 firmware helps. However I still think that there is a bug in the code.

    For anybody else who is doing a firmware upgrade using XLoader, select the Mega2560 (which should pick 115200 baud by default).

    If I do a calibrate, it now properly persists the inverted Y axis.

    However, if I do another calibrate with the head in the home position (both limit switches activated) then the very first move in theY direction (the slow move because its on the limit switch) is not in the correct direction. It already knows that the Y-axis is inverted, but it does the initial slow move in the wrong direction; here's the output from the GUI when it connected (I merged the split lines):

    +Argentum v0.14-2014XXXXXXXXXX
    +Limits: X- Y-
    +Xaxis, a motor, + direction, CW motor (+CW STD)
    +Y axis, b motor, + direction, CCW motor (-CW INV)

    And here's my video clip:


Share This Page