BOB Control panel for CNC Router with 3 Axis Joystick Control
Posted: Thu Nov 07, 2024 1:46 am
Here are photos of my BOB Control Panel for my CNC Router. I'll try to get a video uploaded later this week of it in operation.
My goal was to have a panel which provided most of the functions I use when doing production work that could be moved from the touch screen next to the router table when setting up and running parts in production.
While I appreciate the WMPG and it's convenience, I have chronic nerve pain in my right side from an accident and the repetitive motion of the MPG wheel while jogging the router would aggravate the condition as well as raising my right arm to control the VCP on the touch screen.
One of the main features that I missed from a previous CNC control was diagonal jog which is not possible to achieve with the MPG. While working on the Alpha Testing of the BOB, we identified that the controller could be set up for diagonal jog. This was great news for me and I started to look at ways to control the jog direction using a keypad or joysticks.
When I started to dimension the inputs and LED outputs of the BOB for controls and indicators I quickly realized that I would require two BOBs for my requirements for the control panel or would need to create an intermediate interface to use one BOB to get all of the features that I wanted out of one. Feedback from Centroid's Tech Support and other BOB Alpha testers helped guide me to choose the path of one BOB using an analog joystick with 3 axis simultaneous control by converting the analog signals to quadrature A - B outputs to the BOB MPG wheel inputs for each axis. This allowed simultaneous jog of all 3 axis at variable speeds in each axis.
As the build progressed, the possibilities expanded on how to interface the BOB with the analog to quadrature Arduino for maximum utilization of the BOB's 12 inputs ( switches ), 12 LED outputs, and 3 rotary encoders with switches & 3 MPG encoder inputs. When my initial rotary switch for jog step did not work out ( latched contact and BOB requires momentary ) I relied on the Arduino to provide a latched to momentary output to the BOB to change the jog step. Taking this further, I pivoted to a rotary encoder and OLED display for the MPG Status of enabled or disabled as well as the Jog Step of x1, x10, x100. After much testing I moved all non MPG related functions to a second Arduino for the Jog Step, OLED, and future Rotary Encoder OLED Display indicators ( presently I have blank bezels where the additional OLEDs will be installed and can be programmed for the FEED/SPEED/SPINDLE rotary encoder switches and additional machine status).
Uwe's ( aka suntravel ) 3D printed panel inspired me to pivot from using an off the shelf electrical project box to 3D print my own control enclosure. This enabled me to customize the panel a little further than what I had planned but created another learning curve with 3D modeling and nuances of 3D printing beyond one color.
The square momentary push button switches are illuminated 12VDC and have interchangeable labels which can be printed on plain paper and placed under the plastic switch cover. If I need to change the function of the push buttons for a large production run I can just reprogram the BOB's inputs, pop off the colored switch cover, and change out the label.
The analog joystick has 3 axis control with a momentary button. The momentary button toggles the MPG Enable/Disable, status is displayed above the Jog Step on the OLED. I am working on the Arduino code for Z - Limit to limit the jog step to x10 when x100 is selected. It is somewhat working but still needs some optimization.
I can move the panel from the multifunction arm ( 3D printed ) to the Router Table next to where I am working by using a Vesa mount with a dovetail quick release interface. This is more ergonomic for me and has nearly all of the functions I need when batching out jobs right from the router table once set up is completed.
Thanks to Keith, everyone at Centroid and all of the other Alpha testers. This worked out far beyond my initial expectations.
Craig
My goal was to have a panel which provided most of the functions I use when doing production work that could be moved from the touch screen next to the router table when setting up and running parts in production.
While I appreciate the WMPG and it's convenience, I have chronic nerve pain in my right side from an accident and the repetitive motion of the MPG wheel while jogging the router would aggravate the condition as well as raising my right arm to control the VCP on the touch screen.
One of the main features that I missed from a previous CNC control was diagonal jog which is not possible to achieve with the MPG. While working on the Alpha Testing of the BOB, we identified that the controller could be set up for diagonal jog. This was great news for me and I started to look at ways to control the jog direction using a keypad or joysticks.
When I started to dimension the inputs and LED outputs of the BOB for controls and indicators I quickly realized that I would require two BOBs for my requirements for the control panel or would need to create an intermediate interface to use one BOB to get all of the features that I wanted out of one. Feedback from Centroid's Tech Support and other BOB Alpha testers helped guide me to choose the path of one BOB using an analog joystick with 3 axis simultaneous control by converting the analog signals to quadrature A - B outputs to the BOB MPG wheel inputs for each axis. This allowed simultaneous jog of all 3 axis at variable speeds in each axis.
As the build progressed, the possibilities expanded on how to interface the BOB with the analog to quadrature Arduino for maximum utilization of the BOB's 12 inputs ( switches ), 12 LED outputs, and 3 rotary encoders with switches & 3 MPG encoder inputs. When my initial rotary switch for jog step did not work out ( latched contact and BOB requires momentary ) I relied on the Arduino to provide a latched to momentary output to the BOB to change the jog step. Taking this further, I pivoted to a rotary encoder and OLED display for the MPG Status of enabled or disabled as well as the Jog Step of x1, x10, x100. After much testing I moved all non MPG related functions to a second Arduino for the Jog Step, OLED, and future Rotary Encoder OLED Display indicators ( presently I have blank bezels where the additional OLEDs will be installed and can be programmed for the FEED/SPEED/SPINDLE rotary encoder switches and additional machine status).
Uwe's ( aka suntravel ) 3D printed panel inspired me to pivot from using an off the shelf electrical project box to 3D print my own control enclosure. This enabled me to customize the panel a little further than what I had planned but created another learning curve with 3D modeling and nuances of 3D printing beyond one color.
The square momentary push button switches are illuminated 12VDC and have interchangeable labels which can be printed on plain paper and placed under the plastic switch cover. If I need to change the function of the push buttons for a large production run I can just reprogram the BOB's inputs, pop off the colored switch cover, and change out the label.
The analog joystick has 3 axis control with a momentary button. The momentary button toggles the MPG Enable/Disable, status is displayed above the Jog Step on the OLED. I am working on the Arduino code for Z - Limit to limit the jog step to x10 when x100 is selected. It is somewhat working but still needs some optimization.
I can move the panel from the multifunction arm ( 3D printed ) to the Router Table next to where I am working by using a Vesa mount with a dovetail quick release interface. This is more ergonomic for me and has nearly all of the functions I need when batching out jobs right from the router table once set up is completed.
Thanks to Keith, everyone at Centroid and all of the other Alpha testers. This worked out far beyond my initial expectations.
Craig