v1pi: Raspberry Pi Image with Octoprint and CNC.js (and wifi hotspot)

I’m not 100% sure with avahi/bonjour. It seems to cache in several places. I would have changed it via hosts and hostname.

My laptop is too nice to take to the garage. I did that a few times and the amount of dust that gets all over it pissed me off.

I typically setup the laptop on the deep freeze that’s in the laundry room right by the door to the garage. This seems to be an ok solution.

I just hit the laptop with the exhaust of my shop vac when it gets too dusty. This one lives in the barn, so it’s going to get dirty.

Best of luck to you. I spent two days trying to compile slic3r on a pi 3 b+… I admitted defeat and rationalized it by telling myself I’d have to rotate most of the models to be flat on the bed anyway.

It’s not that easy… I have been trying to do it inside of my custompios script, which starts fresh every time, so each time I get farther, I add more time to my testing time :slight_smile: . I am going to try it straight on the pi. I went to a jessie image, and I got past the apt errors, but the perl Build.PL script is failing on some “threads” library, and of course, all googling leads me to 1000x errors on any number of libraries that include the words “threads” and “perl”… Grumble Grumble…

I am already using octopi with my 3D printer and it is great for the workflow, send models to print from Cura and then use a great app on my smart phone (https://play.google.com/store/apps/details?id=com.kabacon.octoremote) to actually kick off the print and watch that it starts OK (printer is in the garage).

Being still in the process of building a my MPCNC, just wondering what the workflow is with this combination of octoprint and cncjs?

Be prepared for things to not be as automated. CAM is more detailed than slicing. You’ll do this on your computer, amd if you’ve got the server running, you can upload the gcode to the machine.

When you get to the garage, there will be set up. You’ll set the workpiece, move the machine to the origin, zero out the machine, square up the machine, raise the bit up and power up the router. Then you can hit play on the server.

Doing the zeroing of the machine, or jogging the head around can be done on an LCD or on the server. Playing the gcode can be done on the server, or from the LCD is you put the gcode on the sd card.

I specifically called it a server because either one will do all of that. Octoprint is more mature for Marlin, but cnc.js is tailored better for cnc work. The preview on cnc.js works, for example. But the work offsets only work with grbl firmware.

Also. Also. Also. CNC machines are much less predictable and you shouldn’t ever leave it alone. The bit can pick up the work, creat a bunch of friction, and start the huge work area on fire. It’s not hard to stop if you’re standing there.

Thanks for that, yes expecting another big learning curve when it comes to the CNC workflow. Understand that it is not something that can be left alone, lots of short runs in the beginning I expect.

I’m guessing that app isn’t going to work with v1pi ATM. It looks like it’s trying to find /sockjs/ and that’s not forwarded to octoprint. I’ll have to add that and rebuild the image. Thanks for the pointer.

Okay, setting up a second one, forgot how to disable the hotspot feature, which file do I edit??

Oh sorry, I forgot about you Barry.

First off, I made one version without the hotspot at all. That would be my choice:

If you’re already attached to that image, you need to do two things:

sudo systemctl disable autohotspot.service


crontab -e
Then put a # in front of this line:
* * * * * /usr/bin/autohotspotN

Let me know if that doesn’t work.

1 Like

I am not sure if this has been asked already (if so sorry), but is there a way to use a 3.5 inch Rpi Touchscreen with this distro? Thanks for your work by the way!


This distro doesn’t have a GUI installed. The stock octopi doesn’t either though. If you find some instructions on using it with octopi (I remember this a long time ago) then it should work with this image and octoprint. If you want it to work with CNC.js, then please, figure out how, and let us know :). There is a plugin for CNC.js that makes a small screen a pendant, and I think that’s easy to install, but you still need to configure the little screen.

So basically, it shouldn’t be any worse than octopi, but I don’t know what you need to do to make it work.

1 Like

It took me 3 days to get CNCjs loaded and running on a pi zero w because the standard instructions are a little disorganized and over my head. I did not see The “How To” here on Ryan’s site until today…would have saved me 2 days! But now, this thing you have done is simply outstanding!

Which How to helped you?

I used a bit of several linked from their git, a bit from one on the Shapeoko site, a bit from an Instructables, and a blog post about getting to a freshly imaged pi via ssh through usb. The “How To” from Mr. Dunn linked from Ryan’s "How To"page on the “Information” page in the “Home” drop-down here on v1 is the one that would have saved me days. It is very well done and I think would help folks learn a bit about the pi.

However, that pales in comparison to the plug-n-play distro you have made.

I just loaded your “pi-no-hotspot” image on a pi zero w and got cncjs running my MPCNC while Octopi is running my 3D printer - Prusa MK2s. That’s simultaneously through the one usb port hooked to a usb hub. Your distro works flawlessly and it just doesn’t get any easier. Incidentally, I don’t recommend doing what I have done with a pi zero that has a camera. I think Gina, who wrote Octoprint, advises against a camera with the zero.

And thanks for the link to Guy’s distro builder. I am going to try it out.

Aha, thank you for clarifying. I was a bit confused.

Thanks for the kind words. And Guy’s builder is pretty slick. As a longtime linux amd bash user, it’s very powerful, with very little work.

I haven’t tried hooking up a cnc and a printer and using different services. Very clever. Besides the camera, have you noticed any limitations?

Hi Jeffe, great work. really coll stuff and easy to set up .

I just got issues to log in by ssh, so i had to plug my hdmi to log in. (after some troubleshooting and surfing the web i found it was a problem with the ssh host keys) i leave what i did to solve in case anyone else has the same problem and wants to still be able to open in putty. (the erorr “was network error software caused connection abort”)

Step # 1: Delete old ssh host keys

Login as the root and type the following command to delete files on your SSHD server:

/bin/rm -v /etc/ssh/ssh_host_*

Step # 2: Reconfigure OpenSSH Server

Now create a new set of keys on your SSHD server, enter:

dpkg-reconfigure openssh-server

can you help me out with the HAproxy settings? i want the server to be accessible over internet but with higher security settings. i already created the forwarding and port translations rules on my router as i did with my other octopi but the HAproxy file with the new CNC frontend lines confuses me. ( i am a newbie on raspbian)

this is where i copied my actual config in the other octopi server

  1. wrt the ssh problem, that is a very generic message and it can be caused by any number of things. I’m surprised messing with the host keys on the pi did anything, because recreating them is part of the first boot process. Each pi gets it’s own set of host keys when the SD image is noted the first time (that way, I don’t know the keys to your pi). That message could also be cause by two machines with the same hostname, for example.

  2. the haproxy is a bit of a hack, and I know it doesn’t support https. I moved the port numbers so octopi is on 4080 if you want to expose that port and connect without https (but you username and password would be transmitted without encryption). There are plugins (octoprint anywhere, polar cloud, astroprint) that will connect out without configuring your router.

I have run both off the same zero using Reptier server and it worked well…until a power outage killed Repetier and I lost my registration.

I don’t really have any experience testing the dual setup with your distro…yet! But preliminary stuff worked without a hitch.