Homing switches with mana controller?

  • Hello all,
    Just moving my first steps with my Eleksmill.
    I am wondering if there is a way to manage three homing switches with the mana controller...
    I see there is no dedicated port, but maybe a turnaround connecting directly to nano board?

    Thank you!

  • Active Member

    @walter76 yes homing switches are entirely possible. There are numerous write ups on how to do it. They need to a certain pin I don't remember off hand. Don't look in eleksmill forums. There isn't enough users to have good write ups. Follow the laser forums and you'll get the info.

  • @walter76

    Depend on grbl version you use

    grbl 1.1* use nano pin D9 for X axis and D10 for Y axis

  • Active Member

  • Thank you guys!

    If I correctly understood, I just have to

    1. connect all the 3 Normally-Open switches in parallel to D9 and GND

    2. Set $22=1 to enable homing and eventually $23 to invert the direction.

    I will try soon.
    At the moment I am fighting with error #11 from my G-code...

  • Developer of T2Laser Software

    @walter76 No, it isn't as simple as that. You would need firmware with home switches enabled for X, Y and Z axis.

    You can determine which pins to use for the switches D9, 10, 12 are typical options and the sequence to home. On a CNC you would usually do the Z-axis first and then X/Y simultaneously or sequentially.

  • Ah!
    I updated to GBRL 1.1f by using T2laser... I was assuming this FW is already supporting this option...
    Is there a already-enabled version around?

  • Developer of T2Laser Software

    @walter76 Yes, but it's not public yet. I will publish it this week, maybe later today if I have time. It uses D9=X, 10=Y and 12=Z and does the Z axis homing and then XY together as this is normal for CNC. It also has the EleksCNC defaults of 400 steps/mm and lower speed/acceleration.

    Is this what you want or you prefer all on D9, I think that should be possible but would require separate homing, Z then X then Y?

  • Hi all, I am pulling-up this old topic since I did find recent discussions about limit switches (correct me if I am wrong...).

    After years I decide to mount the limit switches on my Eleksmill.
    Normally open ones, with 3.9k pull-up resistors and 100nF filtering cap, no electrical problems.
    I initially connected them to D9, D10 and D12 (D11 seems wired to servo connector). I was getting different alarms, so I decided to wire them all to D9 in parallel.

    Taking care to keep them all open at power-up, I can get a correct homing for X and Y, but Z axis is apparently ignored...
    Therefore I wired them to D9, D10 and D11, but clearly there is an error when Y axis is processed...

    Is there any working configuration for the limit switches?

    Here below my setup.
    BTW, I set $10=31, but I still don't see switches status... Why?

    Thank you!

    Grbl 1.1f ['$' for help]


  • Developer of T2Laser Software

    @walter76 Wow, this is an old topic. T2Laser supports multiple options for homing, other software may as well but I can only speak for my software and it's implementation.

    You mention limit switches, just to be clear the normal operation is home switches and soft limits can be enabled in the Grbl parameters if you like. It is possible to setup for limit switches if you prefer.

    First you need to understand the hardware. The 3 available pins for home or limit switches are D9, D10 and D12. These all have internal pull up resistors. You can use a 100nF cap for filtering although not usually required.

    Now the firmware needs to be compiled with the required home or limit switch cycles. I provide 3 versions in T2Laser, 1.1e (default) uses D9 for X and Y axis, you would use 2 x N.O. switches in parallel. 1.1f XY Home Sw. uses D9 for X and D10 for Y (you can use N.O. or N.C. switches) and finally the one you probably want is 1.1f CNC Z-XY which uses D9 for X, D10 for Y and D12 for Z. This will home Z first and then XY. You may need to change the steps per mm, acceleration and other parameters after changing firmware - just let me know if you have any questions. So first make sure the machine is running normally and then proceed with home switch configuration.

    Once the hardware and firmware is setup you just enable homing in the menu, then if you need to change any of the homing directions you can modify $23 and to change the speeds $24 and $25 or de-bounce and pull off which are $26 and $27.

  • Hi Zax, thanks for the reply. As you can see from my config, I already enabled and configured hard limit switches & homing.
    At the moment I am sending $ commands via Arduino serial monitor.
    By sending $H the CNC starts homing, but not correctly or completely.

    According to what you say, (having GBRL1.1f) I should see correct operation via D9, D10 and D12... But it is not the case: it seems only D9 works.
    X-axis homes correctly, then Y-axis starts, but the switch is not detected.
    If I close the X one, homing is "completed". And Z-axis is totally ignored...

  • Ah wait, I read again your reply...
    So, how to get 1.1f CNC Z-XY? Do I need to edit and recompile GBRL as per my needs? I though there is already a version for Eleksmill...

  • Developer of T2Laser Software

    @walter76 It depends what was configured in config.h when Grbl was compiled. I can only tell you how I set the homing when compiling the hex firmware provided in T2Laser.

    If you have specific requirements you can compile Grbl but since most T2Laser users would not know how to do that I provide several options that cover the most common configurations.

  • I gave a look to the config.h and I see different #define for homing cycles, but I am not sure how to modify (and how to compile...).
    Could you provide a version supporting homing of all three axis on D9?

  • Developer of T2Laser Software

    @walter76 If you are using all 3 switches on a single pin (obivously N.O. and in parallel) then config.h would look like this:

    #define HOMING_CYCLE_0 (1<<Z_AXIS)
    #define HOMING_CYCLE_1 (1<<X_AXIS)
    #define HOMING_CYCLE_2 (1<<Y_AXIS)

    and in CPU.map you need to set all to be the same pin:

    #define LIMIT_DDR DDRB
    #define LIMIT_PIN PINB
    #define LIMIT_PORT PORTB
    #define X_LIMIT_BIT 1
    #define Y_LIMIT_BIT 1
    #define Z_LIMIT_BIT 1

    It will home Z, then X and then Y.. or change however you like and then compile to a Nano.

Log in to reply

Looks like your connection to Offical Forum was lost, please wait while we try to reconnect.