I’ve been using the Stream deck(Link Here) as a controller for CM for a while now. Recently I’ve started the move from CM to CNCjs and I figure 'hey why not bring the Stream Deck(SD for short) over to js? ’ I’ve looked around and seen one or two other people that have done something similar but nothing quite fit what I was looking for.
I figure that whatever I do I’ll make available to the C3D community; so why not have a choose your own adventure story? Over the last month of tinkering I’ve come to 3 options, ‘The easy way’ , ‘The open source way’ , ’ and the ‘powerful but hard way’. I can’t guarantee this will have all the features crammed in, or that this will be quick. I can guarantee this will be as fun as drinking a beer and watching a dumpster fire roll down a hill .
So here are the option:
The Easy Way:
Use Elgatos software to make a set of pages with all the needed buttons, everything is set to a hotkey in CNCjs. I will release the Profile and the hotkey file for CNCjs.
Pros- Quick, easy, guaranteed to work, user customizable.
Cons- No fancy key settings, limited to sending keystrokes only, Can only be used on PC and OSX.
The Open Source Way:
I use a Python module and hardcode each page/ key/ and keypress. The Stream Deck sends key presses to CNCjs. I release the Python script and hotkey file for CNCjs.
Pros- can do fancy key presses (i.e. mm/in key will change what’s displayed for all keys), It can work on any thing that can run Python: PC OSX Linux RasPi.
Cons- Lot’s of code, to change anything you need to edit the code directly, you need to know how to install python and setup the required dependencies.
The Hard Way:
Again I use a Python module to do everything. This time I include the code to make it a client for CNCjs. this means we can directly send G-code commands like any other web pendant. We can even display status on keys based on what CNCjs is doing.
Pros- It can do a lot of cool things even stuff that has no hotkey in CNCjs, it can run on any OS even remote computers, by far the most powerful option.
Cons- Lot’s of code, to change anything you need to edit the code directly, you need to know how to install python and setup the required dependencies.You might need to edit the code/ a config file each time you reboot or reset the computer…
So what do we think? Is anyone other than me interested in this?