Control Panel - Physical buttons integration to Axis/Mesa
- slowpoke
- Away
- Elite Member
Less
More
- Posts: 186
- Thank you received: 26
01 Mar 2024 12:42 - 01 Mar 2024 12:43 #294837
by slowpoke
Control Panel - Physical buttons integration to Axis/Mesa was created by slowpoke
A few questions....
Moving up on my To-Do short list is a custom physical control panel because I prefer to push buttons, than do mouse clicks or touchscreen touches for really common tasks like jogging. I will explore pendants but will most likely make a control panel to suit my needs. I have attached an image of a previous control panel I made for my old (now sold) mill.
For the very short term I rigged up an E-Stop button into an input on my Mesa 7i95t, and MesaCT allows you to choose E-stop in the selection list so this was trivial to get working.
Next up I would like to connect up a momentary button to reset the Estop(F1) and another to trigger Machine on(F2). I'm assuming that if I made a little Arduino board that interpreted the various buttons I will implement and then send F1, F2 etc as if it were a keyboard that this would work
1) Can you have two keyboards with LinuxCNC?
2) For now, if I wire these proposed momentary switches directly into spare inputs on my 7195t board how would I get them to do what I need them to do? I'm guessing a suitable entry in the hal file will do the trick? Can anyone point me to an example or documentation to do that?
2a) If I manually tweak a hal file (adding lines to add functionality) and then later use MesaCT to change some other aspect of the configuration will it delete these previously added lines that I added or will it just leave them as is?
3) Looking forward it seems like it would make sense to send button presses etc from this proposed control panel as data instead of lots of hardwired connections using RS422 or something similar, any insight, suggestions, examples links to documentation would be welcome.
Thanks in advance, I'm having a blast with this new to me Linux stuff. Once I get comfortable I will be switching my main PC to Linux.
Moving up on my To-Do short list is a custom physical control panel because I prefer to push buttons, than do mouse clicks or touchscreen touches for really common tasks like jogging. I will explore pendants but will most likely make a control panel to suit my needs. I have attached an image of a previous control panel I made for my old (now sold) mill.
For the very short term I rigged up an E-Stop button into an input on my Mesa 7i95t, and MesaCT allows you to choose E-stop in the selection list so this was trivial to get working.
Next up I would like to connect up a momentary button to reset the Estop(F1) and another to trigger Machine on(F2). I'm assuming that if I made a little Arduino board that interpreted the various buttons I will implement and then send F1, F2 etc as if it were a keyboard that this would work
1) Can you have two keyboards with LinuxCNC?
2) For now, if I wire these proposed momentary switches directly into spare inputs on my 7195t board how would I get them to do what I need them to do? I'm guessing a suitable entry in the hal file will do the trick? Can anyone point me to an example or documentation to do that?
2a) If I manually tweak a hal file (adding lines to add functionality) and then later use MesaCT to change some other aspect of the configuration will it delete these previously added lines that I added or will it just leave them as is?
3) Looking forward it seems like it would make sense to send button presses etc from this proposed control panel as data instead of lots of hardwired connections using RS422 or something similar, any insight, suggestions, examples links to documentation would be welcome.
Thanks in advance, I'm having a blast with this new to me Linux stuff. Once I get comfortable I will be switching my main PC to Linux.
Attachments:
Last edit: 01 Mar 2024 12:43 by slowpoke.
Please Log in or Create an account to join the conversation.
- spumco
- Offline
- Platinum Member
Less
More
- Posts: 1892
- Thank you received: 759
01 Mar 2024 16:19 #294853
by spumco
Replied by spumco on topic Control Panel - Physical buttons integration to Axis/Mesa
First thing to do is make a list of all the functions you want to accomplish with physical buttons/inputs. That should help you figure out what hardware you'll need (7i95, 7i73, Arduino, etc.)
Regarding the estop reset - there are a number of ways to skin the cat. And, as you surmised, it's generally done in the HAL file.
If the function needs (or ought) to be 'real-time', then it's best to connect direct to the 7i95 and then use the HAL pins created by motion.comp.
If the function does not need to be real-time, and a slight bit of latency can be tolerated (i.e. the reset button you mentioned), then an Arduino or other intermediate device (Mesa 7i73) is an excellent way to get lots of IO without using up lots of pins on the 7i95.
I use 7i73's and cannot perceive any latency or delays with my physical inputs (MPG, buttons, etc). From the user's perspective the controls are instant; no delays or latency as can sometimes happen with USB devices.
I've not used Arduinos or other interface boards/devices so can't comment on those.
So TLDR: you've got three basic questions to work on:
Have a look at this and see if it sparks some ideas:
github.com/AlexmagToast/LinuxCNC_ArduinoConnector
Regarding the estop reset - there are a number of ways to skin the cat. And, as you surmised, it's generally done in the HAL file.
If the function needs (or ought) to be 'real-time', then it's best to connect direct to the 7i95 and then use the HAL pins created by motion.comp.
If the function does not need to be real-time, and a slight bit of latency can be tolerated (i.e. the reset button you mentioned), then an Arduino or other intermediate device (Mesa 7i73) is an excellent way to get lots of IO without using up lots of pins on the 7i95.
I use 7i73's and cannot perceive any latency or delays with my physical inputs (MPG, buttons, etc). From the user's perspective the controls are instant; no delays or latency as can sometimes happen with USB devices.
I've not used Arduinos or other interface boards/devices so can't comment on those.
So TLDR: you've got three basic questions to work on:
- What functions do you want?
- What hardware do you need to accomplish those functions?
- Once you have hardware, how to use HAL to connect hardware to functions
Have a look at this and see if it sparks some ideas:
github.com/AlexmagToast/LinuxCNC_ArduinoConnector
The following user(s) said Thank You: slowpoke
Please Log in or Create an account to join the conversation.
- Cant do this anymore bye all
- Offline
- Platinum Member
Less
More
- Posts: 1200
- Thank you received: 415
02 Mar 2024 01:38 #294879
by Cant do this anymore bye all
Replied by Cant do this anymore bye all on topic Control Panel - Physical buttons integration to Axis/Mesa
You can also use modified 7i90 firmware on a RV901T (a few hardware mods) to work as a Smart Serial device.
The following user(s) said Thank You: slowpoke
Please Log in or Create an account to join the conversation.
- Cant do this anymore bye all
- Offline
- Platinum Member
Less
More
- Posts: 1200
- Thank you received: 415
02 Mar 2024 01:44 #294880
by Cant do this anymore bye all
Replied by Cant do this anymore bye all on topic Control Panel - Physical buttons integration to Axis/Mesa
I think Andy came up with a comp to push inputs to the USB keyboard stack.
HALUI has some estop & machine pins that maybe of use, tho not sure if they update the axis gui.
HALUI has some estop & machine pins that maybe of use, tho not sure if they update the axis gui.
The following user(s) said Thank You: slowpoke
Please Log in or Create an account to join the conversation.
Time to create page: 0.136 seconds