I know this is an old topic, but I had ran across it while searching for a better Grbl sender option on my Raspberry Pi, so I thought it would be useful to put my experiences here for future wanderers.
I had been using Universal GCode Sender exclusively on my Raspberry Pi. It worked well enough, did it's job, and was fairly reliable. I had recently installed Repetier-Server to operate my 3D Printer and was blown away at how simple and efficient this workflow could be. I start scouring the InterWebs for a similar solution to run my ShapeOko 2. I tried so many different ones and dismissed them for one reason or another (I'll include the major ones here for review).
After nearly giving up and trudging along with the old standby, I happened upon a link in a footnote on the Shapeoko Wiki for CNCJS. This software is AMAZING! This solved so many of the issues I had been struggling with and worked so much better than any other package I had evaluated. I don't know why it hasn't been more widely adopted other than being almost impossible to find.
The main distinctives, for me were as follows:
- Full-Cycle (the app should handle every aspect of the milling operation, I shouldn't have to switch tools or interfaces in order to complete a milling job)
- Headless (I shouldn't have to touch the RasPi physically in order to complete a milling job)
- Autonomous (I shouldn't have to maintain a constant connection from my PC to the RasPi in order to complete a milling job)
Universal GCode Sender succeeds on Autonomous, but fails on Headless and Full-Cycle. I have to upload the GCode to the RasPi for UGS to be able to open it. UGS requires critical operations to occur from the RasPi interface - can't load or start a job from the web pendant. Starting the web pendant is also manual and requires that UGS be running on the RasPi.
ChiliPeppr succeeds on Full-Cycle and Headless, but fails on Autonomous. The PC is doing all of the work and if the PC shuts down or the network connection is interrupted, the whole job fails. Also, I had a lot of trouble loading large jobs in ChiliPeppr - it crashed quite easily.
CNCJS addresses all of these concerns and actually helped me discover an issue I had with electrical interference that I didn't even know about. UGS would just flood the console with every command and a million 'ok' messages, so I never saw the errors in the console. CNCJS only shows the errors in the console, so it was extremely evident on the very first job that I had some troubleshooting to do. After adding a shielded USB cable with ferrite cores, flashing my Arduino to resolve serial port issues, and bypassing my USB hub, I'm now running flawlessly. I had been fighting random lost steps for over a year now and could never put my finger on it.
If you have the same requirements I do, then CNCJS is going to be a life saver and I highly recommend it. I'm not the developer and I haven't been paid to make this endorsement, I'm just a very happy end user.
Even if you don't think you need these features, I strongly encourage you to give it a try. I think you'll be surprised on how well it works and the unexpected improvements it will add to your workflow.