I know this is not standard support in AR3, however I really feel bad cause in some situation AR3 will move beyond limit switch due to some calibration mistake. Beside, I'm writing another web services which may make mistake and break limit switch too.
IMHO, I think I shall change AR3 firmware (Mean Teensy) to prevent any possibility of movement beyond limit switch. I tried changed Teensy function 'MJ' to return back slightly when hit limit switch. At initial stage everything look fine. When I start jog robot with longer distance, the robot randomly stop, it look like AR3 hit the limit switch during jogging, however I notice the limit switch still far away.
Below is the image I use serial monitor to connect Teensy. the command i send was copy from arcs program (MJB11166S25G15H10I20K5U8875V3277W0X7600Y2368Z3300). The extra return string "msg hit: 000 001" wrote by me, it tell me currently machine hit limit switch 6. I notice limit switch is far away, so send again the command, next round it feed back touch limit switch 2. I continue send again, it no complain, mean no hit at limit switch. I continue above process and I notice it like random error.
Below is the code i modified to read the limit switch value, i changed the code ~line 1516:
isJ1HitLimit = digitalRead(J1calPin); isJ2HitLimit = digitalRead(J2calPin); isJ3HitLimit = digitalRead(J3calPin); isJ4HitLimit = digitalRead(J4calPin); isJ5HitLimit = digitalRead(J5calPin); isJ6HitLimit = digitalRead(J6calPin);
Any expert have ideal? I think I did correct job but I don't understand why limit switch just randomly return HIGH when I jog robot, during calibration this issue never happen. After fix this I believe i can share this 'firmware' from my git repository.
Any of you have ideal?