1. Got a question or need help troubleshooting? Post to the troubleshooting forum or Search the forums!

Auto bed leveling

Discussion in 'Troubleshooting' started by bret4, May 7, 2014.

  1. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,277
    Honestly I still have disagreement with how they chose to wire the switches. I think it's safer to run them Normally closed than worry about having the switches come unplugged and throwing your nuts.
     
  2. Rex Dart

    Rex Dart New Member

    Joined:
    Nov 4, 2013
    Messages:
    14
    Likes Received:
    0
    Can someone summarize? Or at least evaluate my attempt to summarize?
    It seems that for Robo R1 V1.0 users the requirements for automatic bed leveling upgrades involve:
    1) Upgrading the y-axis rods (kits source? parts source? instructions?)
    2) Upgrading the firmware (source?)
    3) Change the print hosting software (source?)

    As you can see, what seems most vague is the source for all this wonderment. It would be dandy if an upgrade document could be posted on the FAQ or placed on its own in the Support section of the web site.
     
  3. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,277
    You don't need to upgrade your y axis rods, just get a 5/16" coupling
    Though there's probably some advantages to going M8, it's just not critical to the mod.

    Modifying the firmware is a matter of inversing their switch logic, or using their switch logic and firmware.

    Code:
    // The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
    const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. //robo
    const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. //robo
    const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. //robo
    const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. //robo
    const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. //robo
    const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. //robo
    #define DISABLE_MAX_ENDSTOPS    //robo
    //#define DISABLE_MIN_ENDSTOPS
    They have Z min stop inverting set to True. I changed it to false.

    Their auto level firmware essentially just defines the number of probe points and where to probe.

    The software itself just needs a G29 code added to the startup gcode


    I agree it would be dandy if r3d put out more documentation but they don't seem to find time for it. Being an open source printer I think it makes sense to have an open source documentation because users are generally the best practitioners. Once our forum admin Harry starts working at Robo3d I'm going to press them to get a user editable wiki/faq and some other features.
     
    3 people like this.
  4. Rex Dart

    Rex Dart New Member

    Joined:
    Nov 4, 2013
    Messages:
    14
    Likes Received:
    0
    Thank you for the reply, Mike. If you don't mind providing a bit more info:

    Once I have such a coupling, what's to be done with it?

    Forgive my ignorance, but I'll need substantially more context for any of the previous comments to make any sense whatsoever. I admit I'm not a electronics/hardware guy... I'm mostly interested in using a working printer so I can experiment 3d printing itself

    Thank you.
     
  5. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,277
    How the auto leveling works is thus:

    The Robo3d has a safety measure put in where when the nozzle touches the bed, the nuts will unseat from their housing so as to not put force on the bed and get "thrown" out. This is what people refer to when they throw their nuts.

    Using this principle of the nut unseating they used a coupling nut in it's place and attached a switch to it. The switch connects to the coupling with a plastic "arm". The switches then activates against the x motor carriage and the x idler respectively.

    With this switch in place, as soon as the nozzle touches the bed and the couplings begin to unseat the switch will deactivate sending a signal to the ramps board that an endstop has been hit. It's used for both the Z0 sensor and the probe sensor.

    Now the switches can be wired one of two ways. On the switch itself there's 3 legs, common, NC, and NO. NC is normally closed and NO is normally open. This means when the switch is not activated a wire between common and NC will be a closed circuit, and a wire between common and NO would be open. When the switch activates these logics will reverse.

    Since the switches are always activated in this design using the NC leg will act as a normally open circuit. It's only once it deactivates that the switch will close. The better way of doing it is to use the NO leg, which will act as a normally closed circuit. This way when it deactivates, or a line breaks, it will open the circuit.

    I go into more detail here about why it's better to use the NO leg vs the NC: http://forums.robo3dprinter.com/ind...-and-print-bed-upgrade.1669/page-9#post-18625

    and here's the picture that sumarizes it:

    [​IMG]

    On R1 printers without auto-leveling the typical switch logic is a normally closed circuit looking for an open circuit to show the end stop has been hit. With their auto leveling system, because they used the NC leg making an open circuit, they look for a closed circuit to show the endstop is hit.

    This will generally work fine because of the double redundancy, but should the switches come unplugged from the RAMPS and/or both lines to the switches should break, then the system has no way of stopping the motors and you'll throw out your couplings and you need to shut off the power to your unit. Not a good failure method.

    This is what I mean when changing the switch logic

    Option 1) Use the NC leg as team robo 3d has and create two switches in parallel. The benefit is that you don't need to touch the firmware. Just install the switches and flash the firmware

    Option 2) Use the NO leg as I have done, and create two switches in series. Benefit being the safety measure if the line should break the system will cease to function, as desired. The downside is you will need to go into the firmware I linked, look for the "const bool Z_MIN_ENDSTOP_INVERTING = true;" and set it to false.

    To go a little further into it for the firmware. The 3-14 firmware and the auto level firmware only differentiate in these ways:

    1) The auto bed leveling section is enabled, with probe points defined.
    2) The switch logic for the Z min is set to true.


    The files for the auto-level arm have not been released yet. I'll be releasing my own files this weekend for the auto leveling mod and firmware, as well as the files for the Y-axis upgrade.
     
    9 people like this.
  6. Kevin Bruckert

    Joined:
    Nov 4, 2013
    Messages:
    41
    Likes Received:
    18
    Did you get those files released? I'm very eager to add this to my printer.
     
  7. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,277
  8. JohnStack

    JohnStack New Member

    Joined:
    Mar 9, 2014
    Messages:
    139
    Likes Received:
    65
    Mike, I have some firmware from Robo dated May 19. How is this different? What is different with the kit wiring vs. your home jobby?
     
  9. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,277
    2 people like this.
  10. JohnStack

    JohnStack New Member

    Joined:
    Mar 9, 2014
    Messages:
    139
    Likes Received:
    65
    Cool, thanks. If that doesn't work, I'll rewire and match yours. Appreciate it.
     
  11. Francois

    Francois New Member

    Joined:
    Mar 28, 2014
    Messages:
    14
    Likes Received:
    4
    If I understand you have change yours threaded rods to 8mm-1.25 (z axis ?). Is this change the height of your printed pieces ?
    I have buy M8 1.25 to buil autoleveller in local store (from belgium), and theses don't work on originals threaded rods.

    Is it better to change coupling or threaded ?
     
  12. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,277
    In Belgium you would have a hard time finding 5/16". I would suggest buying m8 rods instead.
     
  13. Lew

    Lew Member

    Joined:
    Dec 15, 2013
    Messages:
    42
    Likes Received:
    9
    Mike, Sorry to be so dense, but I am building your auto leveling device (with the switches, not the solenoid).
    Are there two sensors, one on each of the Z rods, or only one? Does one leave the factory Z-limit sensor in place.
    I hate to ask, but I can't seem to dig that info out of the instructions. Your wiring diagram and the parts list seem to suggest two such sensors.
    Thanks,
     
  14. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,277
  15. Lew

    Lew Member

    Joined:
    Dec 15, 2013
    Messages:
    42
    Likes Received:
    9
    So as I understand it, I need two mount blocks, two micro switches, wired as shown, and which plug in place of the Z end stop switch.

    Thanks, Mike
     
    2 people like this.

Share This Page