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

My image is octoprint, but with node.js, and cnc.js installed. I don’t have anything specifically configured for the cnc hat. It should work, but if I were you, I would make a copy or use a different sd card.

Jeffeb3, would this support using a USB gamepad as a pendant (is that the right word?) to jog the machine around when not cutting?

Not that I know of. There is some work on a ps3 controller pendant, which is close, but it needs a generic remapping to be useful as a generic usb controller. The ps3 stuff isn’t installed on my image now.

Ooh I like this idea. I had a game controller (forget which kind) on a Pi running MAME a while ago…

1 Like

I have a Pi set up with RetroPie and have a couple generic USB gamepads for it. Eventually, I’d like to build a more authentic style arcarde style control board for it. But, I digress. Anyway, it seems pretty easy to map the gamepad buttons to keyboard keys with AntiMicro on Windows and X environment on Linux (https://github.com/AntiMicro/antimicro) but I have no idea if it would be possible here.

1 Like

In linux, the usb controllers show up as /dev/input/js0. There is an app you can install called jstest to read the buttons and analog sticks. It is super easy.

This pendant code works with a ps3 controller the same way. What I imagine would work is a widget in the cnc.js ui that would let you assign each axis an analog stick, maybe you’d also need a combobox for choosing which js device to use. Maybe you’d also want to choose an button for the deadman switch.

Let me know how I can help. I would definitely put this into the next image.

2 Likes

I even went one step further on my retropie and had a bluetooth gamepad working with it. I could only ever get one to work at a time for some reason, but that would work well for this too.

I will say getting the bluetooth gamepad working on the retropie image was like pulling teeth. I’d hope it works easier with a normal raspberry pi image.

TL;DR - if looking at bluetooth controllers, I’d avoid Wii U.

I wrestled with WII U bluetooth gamepads on RetroPie. The WiiU controlers were a good price for a pair of them, but the trade-off was in setup headaches. Apparently some WiiU controllers (real and “generic”) don’t pair cleanly, or require entering a pairing code that they have no way to show. There’s a process to identify the pairing code based on the controller’s mac address, but it was a PITA to get through. If anyone’s interested I can try to find the link that guided me through it.

1 Like

There are also RF wireless controllers. Those would take a ton of the headache away from a setup like this because the software is out of the pair process.

Something like this.

I’ve got grbl installed on a RAMPS and v1pi set up on a Pi and verified their communication with each other. Just need to find time to swap out the board on the MPCNC and do some playing and learning.

Jeff, the only issue I ran into with v1pi was getting the webcam to work. Once I got it working in OctoPrint it still wasn’t working in cnc.js even after following your instructions. What I ended up having to do was include the full web address for the stream.

2 Likes

Interesting. I will have to test that again. You were accessing it from windows?

Yes, Windows. Chrome browser. I didn’t try any other browsers or my phone (Android). I can if you want me to.

My Unix SVr5 sysadmin instructor (back in the mid 90s) called that the resume command, cause you better have your resume ready and up to date if you do that. It was more a cautionary tale of actually making sure you were in the right directory before running rm -rf, but the idea stuck

2 Likes

Ah. The good old RPE (Resume Producing Event)

1 Like
DELETE FROM _____ WHERE 1;

Another oldie but goodie… Hell, an UPDATE without a WHERE clause would also qualify.

I have to say, “Thank god for ROLLBACK”. I’ve made that mistake once or twice in the middle of the night when doing an urgent support and 1 record had an invalid value. The quick “get the customer back up” answer is document the value and rewrite it with something valid. The right answer is, of course, pass the info to dev and make sure that they scrub the data before trying to insert read values from a DB. Everytime that happens (which is much rarer these days) it reminds me of Little Bobby Tables.

You had rollback? I usually had to do a full restore, plus some number of incrementals, and then beg forgiveness for whatever data was lost.

Full restores… Ugh… Reminds me of when we switched from sendmail to Exchange. If some executive fungus accidentally deleted a martini lunch invitation, we could originally just restore the message file, maybe the inbox. With Exchange, we had to keep a hot server available to restore the whole damned server onto, just to extract a single message to put into the offending inbox. We went from two (admittedly fully loaded) Sun E450s to a small server room with 6 racks of servers. All so Eisner could have integrated email and calendar…

I remember the migration to Exchange from the old Microsoft Mail we were using in house at the company I was working at in 99. Gawd, that was awful. And because we were such a large company, I lost all access to anything administrative in mail as that now went to the newly created “Exchange Mail group”. It was not long after that we lost the network wars and Novell became Active Directory because someone 3 levels above me got a steak dinner and god knows what else to move.

Anyway, getting this back on track, I just installed the image to my Raspberry Pi 4 (2GB) and I’ve installed a desktop using the instructions that pop up as (I’m guessing) the MOTD:

This image comes without a desktop environment installed because it’s not
required for running OctoPrint. If you want a desktop environment you can
install it via
sudo /home/pi/scripts/install-desktop

So I ran that and then installed Chromium Browser and then opened it on the desktop and pointed to http://localhost and I see the interface for CNC.js. So this should be perfect to bring to my workshop with my wireless keyboard/mouse and use it to start/stop jobs and home the z axis on tool changes, I hope.

Hope to get the machine dirty this weekend (was expecting some 1/8 inch end mills from Amazon 2 days ago and they’ve pulled the order, but luckily I had already ordered a v-cut and ball end from Ryan so I definitely have something to start with)

1 Like

Sometimes I feel like the best thing I did was avoid learning SQL.

2 Likes

That’s OK. You can still use Access…

2 Likes