Minnesota Lowrider: Full-sized fun in the Twin Cities - or - How I convinced the wife to let me build a CNC table

@Synthesis How much improvement have you found after installing linear bearings ?

That vac bucket mount resembles a toilet seat… hhhmm brain fog sets in… you might just find yourself sitting on it with ya pant down mate. Might wanna put a warning sign… just in case

It runs straight with no side to side motion now. I could have likely solved this with some 1/8" aluminum angle and v-groove bearings as well. The only piece I have movement in now is the Z to X printed piece where the stepper sits for the Z axis on either side. I am planning to try milling the aluminum corners that @Rich made this weekend.

It’s high enough on the wall and my “trick shot” game is bad enough that I don’t think it’s a danger. Especially in a garage that has the same temperature as the ambient air outside in Minnesota. :stuck_out_tongue:

1 Like

Well… wasn’t expecting that .

Posted a pic. Tolerances required for the colloidal cam is pretty important, everything else was a easy enough for the lowrider.

1 Like

I had a stepper induced fire the other day. One of my Z steppers failed on me, plunging the router bit into the wood until the collet was friction burning its way through. I confirmed the wiring, stepper driver, etc were all good and then ordered up some Stepper Online 92ozin NEMA 17 steppers.

Installing these went smoothly and my issues were resolved pretty quickly. I did bump the Z stepper amperage up to 1.2 from .9, and that made a very large difference in the Z holding torque.

My wife put the kibosh on my NEMA23 upgrade, so that is on hold for now. Instead, I picked up five of these units and will be upgrading the Y plates with some tweaked designs for a 1" Y plate with enough room to hold the steppers.

1 Like

Scary I had a power blip cause that to happen I was glad I was right there. It was caused by my table saw starting causing it t o plunge and start a fire

I’m using v1pi to control my LR2 and manage the cuts. I’ve been having issues with some fairly large and complex cut files, and have been unable to load them via a web browser, as the CNCjs web interface crashes, disrupting the upload.

The solution for this is to enable a “Watch Directory” and upload the files via SFTP or SCP from my system.

CNCjs supports looking for files in a folder on the system, and you can load them from there through the web interface. You upload the files to this folder using FileZilla or WinSCP or some such and then just select the Watch Directory from within the web interface and load the G-Code.

You can enable the Watch Directory in v1pi by editing the cncjs file located at /etc/default/cncjs using your editor of choice. I am a fan of Nano. Type the command sudo nano /etc/default/cncjs and enter the password when prompted.

Arrow down to the DAEMON_ARGS line, and immediately at the end of $PORT in front of the last double quote, type in --watch-directory /home/pi/watch, and ensure that the double quote is at the end of the line.

Hit Ctrl O, Enter, Ctrl X, Enter, and you’ll be back at the command prompt.

Type mkdir /home/pi/watch and hit enter.

Restart the CNCjs service by typing: sudo systemctl restart cncjs and hitting enter. Enter the password when prompted.


Nice writeup.

The Watch directory is really handy. I’ve been using it since shortly after I built my Lowrider, but I wasn’t thoughtful enough to share how to do it. It just didn’t occur to me.

Mines setup a bit differently, as I have a Linux centric house, so I used NFS.

I have a pi setup as a fileserver (primarily used for backups), and just created a shared directory for the gcode files. Both my primary computer, and the V1pi automatically mount this directory on boot. Anything I save to that directory is automatically visible to the V1pi. It’s totally seamless…from a user perspective NFS filesystems are indistinguishable from local ones.

I think a functionally identical system could be done with Windows fileshares or something too…


I know enough Linux to be dangerous, so setting that folder up as a share isn’t something I have knowledge of how to do without consulting with Professor Google… But that is the ideal way to set it up. I’ll have to look into how to make that happen and then add some extra instructions for it.

This is great and I would like to add this to v!pi. I wonder if it makes sense to make it the same directory as octoprint uses?

I’d think different folders would make sense. I believe there’s an “auto start” option in Octoprint, and I don’t think we’d want 3D printers to try starting a cut file, and vice-versa.

I agree that different folders are better. You can name them whatever you would like to make them consistent. Setting up a Samba share with both folders listed underneath it would also be good to allow file copies…

Additionally, I’m still getting web interface crashes even when loading from the watch folder. It’s almost like it’s a memory issue and the interface momentarily drops. A refresh of the page will reload the interface, and a few moments later the file I was loading renders out. I’d like to find the root cause of this and increase the allocated memory or whatever needs to happen.

It turns out that when running TMC Stepper drivers, such as the TMC2209, on the LowRider v2, you can set the current to the steppers in Marlin.

For example: My recent Z stepper failure and replacement resulted in setting M906 Z1200 which sets the Z Stepper to 1.2 Amps. Note I used the singular for stepper… In order to set a second stepper in the same axis, you have to use the I1 (Letter I as in eye) command as well. M906 I1 Z1200 will set the SECOND Z-stepper to 1.2 Amps as well. Failure to do this results in one stepper running at a higher current, and the other deciding that 900mA just isn’t enough.

This is fixed, after my second “Plunge the router bit into the table and friction burn a hole” incident where the stepper did not lift the end of the gantry. I cleaned and re-lubed the screws, and now everything is just humming along without issue.


I kind of hate samba. Mostly because I hate windows and it doesn’t understand things like file permissions. Winscp is a much better choice, IMO.

I didn’t think octoprint would auto start files. My thinking was that you could potentially use the octoprint upload interface or the kiri:moto octoprint upload to push the file to the watch folder if they were the same folder.

Here is a tutorial on setting up a NFS server on a pi, and connect to it from Windows or MacOS.

The nfs server could run right on the V1pi, but of course it would only be accesible when the V1pi is up and running…

The Raspberry Pi foundation has a somewhat terse, but more in depth guide.

1 Like

To add to the options…I’ve been using this open source project for a few years now to share directories:

I have a windows work machine upstairs, an ubuntu clunker in my workshop downstairs and a pi 4 with the v1pi setup.

My whole work directory with inkscape, estlcam and gcode files is shared between the two computers (but not the pi) so any time I make a change on one it’s reflected on the other.
I also share C:\ProgramData\Estlcam so all my settings and tools are sync’d between the machines.

I’ve now added the watch folder on the pi and will be syncing it with watch folders on both machines. Haven’t had to use it yet. The upload from my workshop machine to the pi via cncjs in a browser has worked fine.

There are a bunch of sites that have instuctions but to summarize:
You install SyncTrazor in Windows or follow the Debian instructions for ubuntu and the pi (both here: https://syncthing.net/downloads/).

On the pi and ubuntu change the config file so you can access the GUI from any PC within the network

$ sudo nano ~/.config/syncthing/config.xml
Change to around line 52 ( to

Finally, to start the service when ubuntu or the pi boots do this (replace [myuser] with your username (pi on the pi for me)):
systemctl enable syncthing@[myuser].service
systemctl start syncthing@[myuser].service

To change or monitor your syncthing folders type http://[ip address of computer]:8384 in a browser on your network. You can then share id codes between the computers and setup folder syncs.

Any file you drop in those folders on any machine are synced between them all.

I need to try and get seafile working on my octoprint/cncjs systems.

sftp is a very solid protocol, but to each their own. If you can ssh into a machine, you can use scp or sftp and it respects the system’s permissions. There aren’t any special variants. If you need an http interface, then yeah, there are lots of choices. But, BTW, octoprint already performs the function of an http file server, but it only has access to it’s upload folder. If that was just the same as the cncjs folder…