Carbide Motion on a Raspberry Pi

chromium is “interesting” in a few aspects wrt distributing it (just look at how much trouble Fedora needs to go through to ship a subset of it). One can always install chromium afterwards… but for including it into the image, it’s somewhat funky.

Right, but isn’t Chromium what is included by default in Raspberry Pi Desktop?

it is. but I’m not distributing that image
(and for anyone who wants to do commercial/etc distribution of that image they should consult with their IP attorney on what it means to do that in the US… you will get solid legal advice on how to cope with mpeg/h264 codecs etc etc)

Note that it’s well documented that not all raspberry pi OS images can just be distributed in an unrestricted/unlimited/modified way (as they contain licensed software with somewhat interesting conditions)… when in doubt, that is what your IP attorney is for. Since this is a hobby for me and good IP attorneys are not cheap, I keep it simple & safe and avoid having to use one of those.


Today’s test was to get the 4GB Pi running with the CM package. I did a standard install of the PI OS using the Raspberry Pi Imager App.
Installed the samba tools and set up a gcode share in the home folder. enabled ssh and that was it. Did the package install using the desktop file manager and it all seems to have worked.

Took it out to the shop and connected to the XXL and connected it all up. Not using a touch screen right now because I don’t have one. I do have a 13" display ( left over from another project and CM works in that display well. It opens as one would expect and if the window is moved to maximised (not full screen) it looks quite nice. No touch screen = need for keyboard and mouse, so have those in the shop as well.
Connecting to the machine seems to work. Will it will then initialise the machine. however, that is where this stopped working. Could not get the Jog commands to work at all.

I could load a gcode file and then because it will not allow any jog, it does nothing from there.
I plan to investigate a bit further and see if I can discover something obvious.


I am pretty sure I had the same issue. I could not get it to jog after initializing. At least I thought I couldn’t. I disconnected, reconnected, and reinitialized. Then I tried to jog again. IT MOVED!!!.. but only a little bit? After about 5mm it would stop. I opened up the settings and realized that the machine dimensions were set to something like 5mm X 5mm. Once I loaded the Shapoko Standard dimensions I could jog properly.


Ok, I’ll go try that later this morning. Thanks for the suggestion.

Today’s run was successful. CthulhuLabs was correct when he advised to check machine settings and then reload the defaults for your particular machine. I am now able to move machine around and run as if connected to my MacBook Air.

Additional things I have tried include running the Pi headless and using VNC server on the PI and VNC client on my iPAD. This has allowed me to use the iPAD as a wireless controller of the CM software running on the Pi desktop. There is a little latency between iPAD button presses and the PI but I am not 100% sure it isn’t cause by the PI and all I’m asking it to do. (Pi4 4GB RAM, 32 GB SD Card). I was also having issues with my WIFI mesh repeater, so the latency could be from that as well.

Next project will be getting the Pi Optimized for running this application, VNC server, SMB file server and not much else. I am considering a doing a clean install of RaspOS lite and then adding a customized OpenBox Windows manager. Really, as a headless machine that is intended to run CM and a file manager for the SMB share, it does not need much else.
I also want to see if I can get X11 Forwarding (application forwarding) working as a method of running CM from the PI via and SSH connection. It will all depend on getting something that also works on iPAD so I can continue to use that as my wireless touch pad.

Game Controller and keyboard mapping is also on my list for the Pi. I use gamepads in the RetroPi setups all the time, so I know the RaspiOS can accept inputs from them. The stuff to figure out includes the mapping from the OS to the keyboard commands CM is expecting.

Once I get a few more test runs completed, I’ll try and find time to do a more complete write-up on how to get all this up and running.


Yeah, the whole remoting by bit blitting an entire screens’ worth of updates is painful — really miss technologies such as nxhosting — X11 is hopefully more workable.


I’d be curious to see how different your outcome will be than the “subtractive” script I posted on github…

Me too. I did burn your image first but for some reason it wouldn’t boot on my Pi4. I already had a Pi desktop installed on a different as card so I went with that for now. I do like the scripts you have on GitHub and actually used some of the commands to get the samba and usb mount to

odd (I only have a Pi4 so that is what I test on)

if you have ideas on what to remove (or add) let me know… I’d like the GH script to be a good starting point for as many people as possible

What settings I you using on the VNC Server / Client? I know that on low quality there is basically no latency on a LAN. Sure it looks like crap, but who cares in this application.

btw for VNC on the server side I tend to like “x11vnc”… it has an option where it can cache client side a lot of content, so that the actual data transfers for “not games” goes waaaay down.
(and you can easily retrofit it to an existing session)

1 Like

basic default settings for both. in order to get the VNC server to work, I had to change the PI to a display setting other than the default. Otherwise, it won’t show anything.
When I had my monitor connected, it was using 1240 x 1024 over to my iPad. Resolution was great, but had the lag time for button presses.

will look at that as well.

@fenrus How do I disable the full screen on start up option for the CM app? My proper touch screen arrived.

I’ll have to spin you a new image… I’ll kick that off right now

Okay. Was hoping it was just some quick config setting. I am not afraid of the Linux command line and editing configs.

if it’s after first install, edit /etc/xdg/autostart/carbidemotion.desktop
and make it just execute /usr/local/bin/carbidemotion instead of the wrapper that waits for the setup screen to finish on first boot and also makes it run full screen

1 Like

(the image on the same url is also updated)

1 Like