Working CNCJS with S5Pro

Pretty specific, but if you’re looking to use the S5Pro with CNCJS, it doesn’t work because of a firmware issue and because CNCJS injects some comments into the controller that lock it up.
The CNCJS project is also very inactive, so it wasn’t really an option to change it directly.

I forked the CNCJS repo, got it building again, and made some modifications to support the S5Pro. You can find the forked repo here:

You can find the docker build here:
https://hub.docker.com/r/rsteckler/cncjs

Or, if you just want it to work, you can run the following:

mkdir -p ~/cncjs
docker run -d --name cncjs -p 80:8000 -v "~/cncjs:/config" --restart unless-stopped --privileged rsteckler/cncjs -c /config/.cncrc
6 Likes

Why do you think it is stale and doesn’t build?

The last release was on July 1st (minor release) and I compile it and run it on the Linux machine that controls my Shapeoko. No problems with the build for me.

FWIW, I’m using NVM and to build it I run:

nvm use 14
yarn install
yarn build-prod

All of the build badges on the github page show it failing the build, so I assumed that was the case when I started.

Initially got webpack errors on node 18 and had to use the legacy ssl provider (though now that I downgraded to node 14, that’s not necessary).
Even with 14, I get i18next-scanner errors, so I bumped the version there.
The readme.md and contributing.md specifcy npm instructions, which don’t work, and haven’t been updated to yarn, so that was a dead-end.

I guess it’s unfair to say it doesn’t build. It’s more accurate to say that when I cloned it and followed the instructions, I was unable to build it.

I think that there might be 2 different versions of the build instructions. The documentation could definitely be better. I feel like when I tried to build it I had problems and then I found a different source of documentation which was actually correct.

1 Like

Ryan, go to the Sienci Forum @ https://forum.sienci.com/
Also, visit https://sienci.com/ .

Look for gSender software. It is based on CNCJS, but significantly different.

GSender is a cool project, but it has also won’t work with the S5Pro. I also prefer a web-based software that I can use from my office, then just go out to the workshop and press “play”. It looks like Gsender is mostly a thick client.

If you want to use GSender with the S5Pro, you can make the same changes I made to CNCJS, here:

This sounds like a job for @neilferreri ! :smiley:

C3D has been great about sharing the open-source grbl controller code. It’s just not where the problem is. I think it’s in the esp32 code that manages the USB controller. That code isn’t open source.

I considered fixing it in the ESP32, but figured it would be much easier to just patch cncjs for now.

If you did want to void your warranty and fix it in the esp32, you would just need to use esptools to extract the firmware, load it into ghidra, find out why it’s barfing on an open-paren, fix it, recompile, and flash back to the esp32.

It’s not complicated, but with a patched cncjs it’s just not necessary.

This topic was automatically closed after 30 days. New replies are no longer allowed.