I got a stream deck after seeing David Johnson (DIY Engineering) using one. Sometimes I get overly obsessive about stuff…
Anyway 3 weeks later and many false starts and I have a pendent with status for DRO for location, override, velocity, homing, quick location, zeroing, probe, file loading, run, pause, stop. Very early alpha version but working. One thing I didn’t implement was animated icons, maybe later.
There’s no configuration or macros. It’s about 2500 lines of C# code directly interfacing with the stream deck and carbide motion api.
There’s no configuration or macros. It’s about 2500 lines of C# code directly interfacing with the stream deck and carbide motion api. It will even run on a different computer than CM as long as you give it the IP address CM is running on. It’d still take some work to support the XL and XXL. Some of the api calls are specific to the machine size. The dynamic updating of keys wasn’t possible with the stream deck software - thus I had to find another way. If/when I get it cleaned up I may put program out there (with lots of disclaimers - I can’t guarantee it won’t destroy your system ) On the plus side I’ve already run a few project with it. Love being able to do everything without having to go back to the computer!
I looked everywhere, I far as I know it’s not…
After several false starts - stream deck software with macros, stream deck direct as HID with macros, then started parsing CM log stream from the settings page discovered there was so much more. That’s why it took so long.
You piqued my interest, I had no idea CM actually had a remote access API, but now that I think about the Log window being a connection to localhost:8080 that makes sense
If you feel like sharing what you found out during this reverse engineering effort, I’m all ears (assuming @robgrz does not mind. Releasing the API documentation would be most welcome!)
It’s not my API to share. Plus I wouldn’t want to do anything to jeopardize Carbide3D killing or locking it down. Maybe they’re not ready to release it or will never release it but implemented it because it’s good design practice. I just love that it allowed me to implement every feature I can imagine - things like a live status display and directory browsing/loading. Honestly at this point another 1000 lines or so and I could connect directly and not use them as an intermediary. But it works and I want to run projects not keep hacking away.