CNC.js tool changer

Has anyone tried this with CNC.js?

Heffe, bCNC came up a lot over the weekend, any thoughts. It looks to be Python based? I think at some point you tried it? Sorry for being off topic but I gotta get it out before I forget.

I triee it for about thirty seconds. I didnt run a job. I dont have a keyboard/monitor connected to the pi that is connected to the controller, so I cant really use it. bCNC is more like repetier host, and CNC.js is more like octoprint.

bCNC does has some neat features though.

Cool, I need to try one, I guess cnc.js is on deck for me then.

I haven’t ever tried it with Marlin, but if the features all work, you’re in for a treat.

Hey Guys,

I’m yet to try the tool changer, but cnc.js is amazing. They even have standalone versions for windows/mac/linux so you dont have to mess around with command line installing and RPi’s if you don’t want to.

First thing I did was turn off the widgets I wasn’t using and that cleans up the interface nicely.

It’s very actively developed and I’ve seen ports of it used on commercial Printers/Laser Engravers etc.

Cheers Rob.

I have it installed on the laptop that runs my routers, haven’t used it for a cut yet though.

I am curious to know it the workspace offsets work with Marlin.


I guess not everyone looks for excuses to use the command line.

That looks pretty slick.

My tool changes are currently separate files where I have to manually home the spindle between tool changes

I assume you run linux on your primary desktop? Have you considered just doing a remote x-window to run bCNC on the Pi but display it on your desktop…

I was going crazy last night trying to get bCNC up and going on my macbook - it kept complaining that pyserial wasn’t installed even though when I’d try to install it with pip it would say it was. Turned out to be a path issue - and now I have it running…but I’m thinking about loading it on the pine64 I’m running cncjs on and seeing how it works over a remote x session since I like some of the features it has.


Remote X is a good idea for something like bcnc.

I used to even use mobaxterm to have an x server on windows for that. Not everything worked, but my software did.

You wouldn’t run cncjs over x forqarding though, right? That seems silly.

Yeah since cncjs has it’s own webserver that would be silly :wink:

But cncjs doesn’t have the autoleveling stuff that bcnc can do which is nice for engraving on an uneven surface. Or if it does have it I haven’t found it yet.


Looks like that works:

[attachment file=58262]

That’s bCNC running on my pine64 SBC but displaying on my mac desktop :slight_smile:

Super easy since I already had xQuartz for inkscape on macos to work.

[attachment file=58263]

Works well with iTerm2 (I LOVE iTerm2) instead of the xQuartz xterm too. Figured it would but I always get mixed up with x (the server is which end of the connection again?)

I’ll have to update my ssh config to always forward X when I connect to the pine just to be safe.

It’s a little slower than I’d like…but opens up the option of using bCNC or cncjs which is nice.

I may have to start a new thread to discuss these experiments with bCNC and cncjs…there doesn’t seem to be a good reference thread for either and I’m running into to some issues I’d like to document the solutions to (as well as ask for help with!)

But right now I’m just playing around with a CNC shield/UNO and a spare stepper motor since I can’t get out to the shop to play with my actual machine this week :frowning:


Yep. This is a really good alternative to attaching a monitor or running vnc with a full desktop on the SBC.

I would be interested in your experience with bcnc. I have only played with it for a few minutes and IIRC, I was trying to use some box generator tool and found it frustrating. Maybe if I had started with just using it as a cnc runner, I would have liked it.

Well, so far I haven’t done more than spin a motor with cncjs or bCNC :smiley:

I just now confirmed that I can even bring bCNC up over a ngrok tunnel while I’m at work - but…it’s so laggy it’s not really usable :frowning:

Overall my impression so far is cncjs seems simpler and more streamlined. Running in a browser instead of a remote window is also quicker and more responsive which is nice. If I had a local screen (eventually I’d like to add a touchscreen to the pine) then bCNC would probably be more attractive. But bCNC has some features that make it worth having as an option so I will experiment with it some.

This weekend I have to replace the AC system in my truck…but after that I should have time to get this stuff going on the machine and do some tests. Will definitely keep a log as I go to share my thoughts. May also give chilipeppr a try since it seems like a nice hybrid - browser based like cncjs - but with some of the advanced features of bCNC.


There are cnc.js pendants, including a tinyweb one that works on a toichscreen attached to the pi.

Chilipepper is a little funny though, because I think it can only connect to a machine that has the serial port connected to the machine running the browser. So you’d have to X forward the browser to get it to connect to the pine’s serial port. I could be wrong. Thats what I remember.

Actually chilipeppr uses a serial port json server that’s separate from the interface. So you just have to run the SPJS on the SBC and then can run the full interface on your big computer with just the serial traffic being routed over the network connection.

I almost tested it this morning, but with my free ngrok subscription I can only have one process running at a time - and since I’m already using that to ssh into my SBC at home I can’t shut it down to add a new tunnel for the SPJS :frowning: Guess I’ll have to wait until this evening to play with it.



If you have infinite time, you can look up ssh tunelling and you should be able expose the serial connection through the ssh port.

Yeah, I use SSH tunnels all the time - if you look carefully of that first screen shot of bCNC running remotely you can see one of them fail to start because I already had it open on another connection :wink:

But…that would only expose it to my local computer…I’m not sure if that’s enough for chilipeppr or if it needs to be exposed to the server where they’re running. I could try it…but…I really should do some paying work this afternoon :smiley: