FWIW and since you’re asking, my opinion on the matter:
-
I would not do the EasyWay because if I’m going to spend $$$ on a StreamDeck, I definitely want it to be able to do more than keypresses a 15$ wireless keypad could do.
-
the OpenSourceWay is still limited to keypresses (fancy as they could be) implemented in CNCjs, and I found that to be lacking. You’ll find yourself adding code to CNCjs in no time.
-
The Fun
Hardway: you’ll be able to use CNCjs as a tunnel to the controller and send arbitrary G-code macros to the machine. Yay! Also, when CNCjs goes out of style, you will just have to adapt your code to use NewFancyGCodeSender2022 as a G-code gateway, rather than having to throw away hundreds of lines of CNCjs-specific-shortcuts code. If you are going down that road, and while it’s perfectly possible to do in Python, I found it easier to just go with the wind and use the CNCjs pendant boilerplate code (Node.js). While I’m a Python guy at heart, it was just quicker to learn just enough (broken) javascript to get things to work, than navigating the poorly documented way CNCjs websockets work in Python and finding the right key and…[insert sound of breaking glass and computer flying out of the window]. If you want to get a feel of how a CNCjs pendant that sends G-code snippets looks like, I have documented mine here (the code is linked in there somewhere)