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

So I took the work of octopi, and built on top of that an image that:

  1. Has everything from octopi, except maybe a tad out of date, since I don’t build it nightly
  2. Adds in a landing page, which directs you to one of the two (currently) services on the pi:
    [attachment file=60132]
  3. Adds in auto wifi hotspot, which will try to connect to a home wifi, and if it fails, it will host it’s own. (I have one version without it because I found it annoying if I didn’t want it).
  4. Pre installs and runs CNC.js.

So if you want to try it, it’s here: https://github.com/jeffeb3/v1pi

I begged Ryan to use his logos. I begged some other forum users here to try it, and they were nice enough to give it a go (Thanks, all of you). It’s had some hiccups, but generally about right for this forum. Just needs a little work, and it’s very useful.

I have made everything open source, and if anyone wants to contribute, please do. I appreciate feedback, and just remember that I don’t charge for any of this, so be patient with me please :P.

For CNC.js, I have an open issue related to the startup sequence having too short of a timeout:

Let me know if you try it. It was fun to make, and I learned a lot about the pi images. I am looking forward to making my other pi images from scripts.


I have been using this for over a month now. The only problem I had was with the hotspot, so I have the hotspot turned off, but can easily re-enable it if I need it. I also have 2 octoprint services running so I can run 2 separate printers at the same time with one raspberry pi.

1 Like

Yea, I turned the hotspot off, and just connect it to my home wifi, which amazingly enough connects in the barn!

1 Like

Well, now I have to finish wiring my dual endstops AND flash a pi image this weekend… :smiley:

1 Like

Can you put a link to the documentation in the Readme ?


You got me! I was like, “it’s right freakin’ there DAVE!”, and then I saw my snarky second link…

So, uhhh, wanna give this thing a real try? Frontpage, and all the social media for V1, or would you rather start slow and see how this goes?

I kinda figure if I can do it, anyone can do it.

Let’s do it.

1 Like

It’s in writing and backed up in a quote…

Thanks for doing this, I think this will allow a lot of people to dip a toe in the pool and see what all the fuss is about. Thank you to the rest of you that helped test it. So cool.

Thanks for agreeing to do that, Ryan.


HAHAHAHHAHAHJ ohhhhh nooooooo

1 Like

Thanks for this.

DLd, setup wifi via .txt file, connected fine. Was up and printing in 5 mins.


Wasn’t visible at v1pi.local, but was available at its IP address. Dunno why the DNS stuff didn’t work, but it doesn’t work sometimes with some other services I have running on my home server. Must be the router.

Works fine.


Flashed the image and plugged it into a Raspberry Pi Zero W. Everything appears to be working, the CNC.js server is running. However, I ssh’d into the pi to check the processing load with the command ‘top’ and the node server is nearly maxing out the CPU and mostly above 50% on ram.

Have you/anyone tested CNC.js on a PiZero? I haven’t plugged it into the Arduino yet, will try that tomorrow. Would love if this works, I feel like the Pi3 that I have on my MPCNC is a bit of overkill for just running CNC.js, but maybe it’s what it needs.

Thanks for putting this together, its a nice image!

I’ve been running on a zero W. It’s definitely quicker on a pi 3 B, but I did a lot of prints just fine.

Have the v1pi image running on a Pi Zero W and can control my MPCNC with both Octoprint and CNC.js. Everything seems to work with the exception of the webcam on CNC.js… works fine with Octoprint. Timelapse of Ryan’s LogoMPCNC from Octoprint…


If you’re actually using cura in octopi, a pi 3 is pretty much mandatory, put the zero will run a printer, or cnc just fine. I’ve been printing with a zero for about as long as they’ve been available. I still haven’t done any real cuts with cnc.js on the pi yet, but I did try it out and got it moving on one of the new 3+ boards.

I’ll have to give this a try. I’m starting to get tired of copying the gcode to the SD card and going in/out of the house when I screw stuff up.

1 Like

I have microsoft onedrive set up as my gcode/stl folders. Anything I dump into those folders, shows up automagically on the laptop I have set up in the barn to run my routers. First 5gb is free.

1 Like

It you have a laptop near the machine, that solves a lot of the same problems. You could use Dropbox on the pi to do something similar, I think. But if you’ve got the pi, it’s not too much work to some it over with the webpage or just ssh.

I keep doing almost exactly the same thing when I print and that just gets me thinking. I do want to try using slic3r on octoprint and I also want to have something load up the last thing that was sliced. Then I want to make a little widget that can preheat, pause, print and show stats from octoprint. Add it to the list…

1 Like

I’ve been trying to change the hostname of the Pi so I can run two different Pi’s (one for the MPCNC and one for the LowRider).

I thought I successfully changed the hostname via /etc/hosts and /etc/hostname, because I do get the new hostname after reboots with the ‘hostname’ command, and it’s shown with pi@(new_hostname) on the command line. However, everything still points to the v1pi.local in my router connection and v1pi.local still works. Is there anything special you did outside of these to set the hostname?

Also, navigating to v1pi.local works, but pinging the same address yields “Ping request could not find host v1pi.local.” I am running a Pi-Hole DNS sever, so that may be messing some things up with the Bonjour tool.