Lowrider2 Plasma Build

Buildin a lowrider. Gunna strap a plasma torch on it. Hopefully it’ll work. Hopefully it’ll be awesome.

The table is finally starting to look like something. I think it needs racing stripes.

4’x4’+ cutting area. I’ll be running linuxcnc with the plasmac configuration, a mesa 7i96 ethernet breakout board and a mesa thcad-10 for torch height control.

I’m closely mirroring @uthayne’s build. I’ve been picking his brain for months now.


That’s a good looking table! I definitely want a CNC plasma cutter in the future.

1 Like

It’s starting to resemble a lowrider.

Still debating on how I want to design the home switches. I’m thinking I’ll make a 3d printed part that screws into the side of the z rail that’ll accept a nut and screw for adjustability and mount the z homing switch on the y plate. Also thinking about modifying the y-endstops to accept a screw for the same reason.


Since I’m not building a typical Marlin/GRBL contolled lowrider I’ve been having to do a lot of research on my own and asking questions in other forums to figure out how to do this. Most of the hardware selection was inspired by @uthayne’s build because he has proven it to work well for his lowrider plasma in his build thread. I’m going to do a series of write ups in this thread to document everything I’m doing for my own future reference. Maybe it’ll help someone else in the future as well.


For my build I’ll be using the following electronics:

  1. On old retired Dell desktop pc I found in a closet.

    I’ve installed the Linux Mint 19 operating system, a realtime kernel, and compiled LinuxCNC v2.9 to run the cnc. More on that in a later post.

  2. Mesa 7i96 ethernet breakout board

    This card connects to the computer through a standard ethernet cable instead of an ancient parallel port. It’s also much less dependant on low computer latency than standard breakout boards. For these two reasons it makes it a lot easier to find a suitable computers to run LinuxCNC.

    The 7i96 has breakouts to wire up to 5 stepper drivers. It has 11 general purpose isolated inputs that I’ll use for my homing switches, estop, etc. It has 6 isolated outputs that can be used to turn on relays to spindels or in my case a plasma cutter. It also has an expansion port to add more IO if I need to later.

    Finally it has encoder input for reading things like spindel speed, or in my case calculating the voltage the plasma torch is putting out.

    Setup Notes:

    A. Set jumper W5 DOWN and jumper W6 UP so the card will use the IP address from the EEPROM Use this rather than the default because you don’t want the 7i96 realtime connection IP address to overlap with the local network address range.

    B. Jumpers W2, W3, and W4 are for setting up the encoders. Set W2 to the right hand position to put encoder A in differential mode for better noise immunity. Set W3 to the left hand position to put encoder B in singled ended TTL mode so that it’s not floating when left unconnected. W4 controls the encoder index signal, it does not matter what mode this in.
    (Jumper orientation is in reference to the 7i96 with its ethernet port facing left)


  3. Mesa THCAD-10 voltage to frequency converter for torch height control (THC)

    Clean plasma cuts require that the torch tip be a specific and steady distance from the metal it is cutting. When cutting metal with fire the metal heats up and deforms and moves during a cut, like a LOT. It turns out that the voltage put out by the plasma’s cutting arc is proportional to the distance from material to the torch. The THCAD card takes input voltage from the torch and safely converts it to an encoder pulsing signal that the cnc controller can then accurately extrapolate the distance between the torch tip and material and make Z corrections on the fly during the cut.

    There are 3 versions of the THCAD, the -05, -10, -300, these correspond to the card’s voltage reading resolution. All three versions can withstand 500v overload indefinitely, but they’ll only be able to report back to their maximum range (5, 10, or 300v). Typical plasma arc voltage is under 150 volts. So if you choose the -300 version you can only utilize half of its voltage reading range. But with an appropriate voltage divider you can utilize closer to the full range of the -05 or -10 versions. All this means is that the more of the reading range you can use, the more accurate the controller’s calculated voltage will be, and the better the THC will be. The plasma machine I’m using has voltage dividers built in for this so I’ve chosen the THCAD-10.

    Setup Notes:
    A. Set jumper W1 up for unipolar mode to read voltage from 0 to 10 volts

    B. Set the output frequency divider jumper to F/32 for counting pulses in the software

    C. Note the factory calibration values on the sticker on the back of the card BEFORE installing in control panel

    For future reference I made a calculator to convert the sticker’s calibration values to the coefficients that LinuxCNC expects: https://jscalc.io/calc/NTr5QDX6WgMThBVb

  4. TB6600 stepper drivers

    These drivers have little switches on the side to select microstepping and current. Note that the default current for mpcnc and lowrider steppers was carefully choosen by Ryan and is around 0.75 amps. The more current applied to the motors the hotter they will get. The PLA mounts will start to deform around 55c. That said I’m going to live dangerously and start out at 1.5amps, keep a close eye out for melting plastic, and see how it goes.

    Also, the default microstepping for mpcnc/lowriders is 16.

  5. 24v/15a power supply to power the steppers/stepper drivers and limit switches
    As I understand it 24v should give me a little more juice to the steppers and a little more noise immunity for the sensors. I could be way off base here.

  6. 5v/3a power supply to power the Mesa cards
    The 7i96 needs 5v ONLY!!!


Here is the plan as far as wiring goes. Any input is welcome.


LinuxCNC Install Notes

LinuxCNC at this time is at version 2.7. Version 2.8 is better at running dual motor setups like ours. Version 2.8 also includes the new PlasmaC component for running plasma machines. Development version 2.9 includes paused motion and reverse run, I'm going to use this one. But at I minimum I'd upgrade from 2.7 to 2.8.

The mesa cards require linux to run with a realtime kernel. The easiest way to get that is to just install linux with the ISO from LinuxCNC’s website. Specifically the ISO with rtpreempt kernel and Debian 9 Stretch here http://www.linuxcnc.org/testing-stretch-rtpreempt/

But the ISO will install LinuxCNC 2.7. The easiest way to upgrade is to use the “buildbot installation”. These are precompiled binaries.

… I’ve chosen to set this all up the hardest way possible by compiling a realtime kernel from source on Linux Mint 19 and then compiling the LinuxCNC development version from source. YMMV. Maybe more on that later. (edit) A linuxcnc guru posted a quick rundown on how to get Mint 19 up and running with a realtime kernel here: https://forum.linuxcnc.org/9-installing-linuxcnc/36822-linuxcnc-on-linux-mint-19-1-quick-and-easy-installation?start=0

Base LinuxCNC Configuration

LinuxCNC is a very powerful and crazy customizable cnc controller. It can be used to run mills, plasmas, lasers, lathes, 4th axis, 5th axis, robot arms, skynet, etc. As a consequence of this customize-ability at first glance LinuxCNC can seem overwhelming. But for a simple 3 axis milling machine like the MPCNC it’s really easy. After LinuxCNC is installed on the computer you can a MPCNC configured in about 5 minutes, tops!

Here’s a quick tutorial on how to get a base MPCNC or Lowrider’s motors turning with LinuxCNC, specifically with a Mesa 7i96. Other Mesa cards will be very similar. I’ve made screen shots of all the settings I needed to get a base machine up and running. I’ve highlighted some things to call attention to but go ahead and look over each option to make sure they match up.

LinuxCNC comes with 2 different wizards to setup a machine, one for machines wired up through parallel ports called Stepconf, the other for Mesa cards called PNCconf.

Fire up the terminal to get started.

  1. Type pncconf and hit enter

  2. It should start up with this screen

  3. Be sure to check “Create a desktop launcher” so that’ll put a shortcut on the desktop later to quickly open LinuxCNC with this new configuration

  4. Here you can give your machine a name and select imperial or metric. I just leave actual servo period at the recommended value. If you were using a parallel port you would need to pay closer attention to this. I probably should have deselected “Include Spindle”.

  5. LinuxCNC has several different front ends for you to choose from. I’m going with the default AXIS. I made no changes here but you might consider increasing the jogging speeds. *Note that I actually prefer the look and feel of the gmaccopy gui, however it seems appears to have problems understanding dual axis setups like ours. If you’re using series wiring feel free to use gmaccopy, I’m going for a dual endstop type setup with a driver for each stepper so I’ll be using axis for now.

  6. No changes here

  7. This is where you’ll setup your card and all your pins. I set up my mesa card with an IP address of in a previous post, give linuxcnc that address here and then click “Accept components Changes”. After you click that it will load the TB3, TB1, P1 tabs you see up top. These tabs correspond to the breakout board’s pin headers.

  8. Setup your inputs and outputs in the TB3 tab. Here you can quickly setup all your homes, limits, nuke buttons, etc. I’ve just got a ESTOP wired in for now. Later I’ll add home switches, a float switch for plasma, and a relay for turning on the router/torch.

  9. Setup the motors in the TB1/TB2 tab. I’ve got 5 stepper drivers here to setup in a dual endstop fashion. But you could easily just do 3 drivers with dual motors wired in series exactly like a standard mpcnc setup. Notice that I inverted the direction of one of the dual motors.

  10. Here is where you tune your steppers. @vicious1 has already done all the hardwork of figuring this stuff out for our machines in Marlin so I just carried the settings over from there. I had to do some simple unit conversions so be sure you get the right values from the tables I’ve included here. Stepper scale = steps per machine unit, so if your in metric it’s steps per mm, if your imperial it’s steps per inch. The max velocity in the marlin firmware is in mm per second, this configuration wizard expects either mm per minute or inches per minute. You’ll repeat this screen for each axis.

  11. Setup your machine size here. Since I’m not using homing or limit switches yet I could just make this really big so linuxcnc doesn’t impose soft limits that interfere with operation later. I can always come back and fine tune this later. This is also where I’ll eventually setup my homing switches. You’ll repeat this screen for each axis.

  12. Rinse and repeat for each axis


  14. Either go back to the terminal to start linuxcnc like so or go the desktop and just click the shortcut if you opted for one in step 3

  15. If you run linuxcnc from the terminal you’ll get a screen like this asking you to select a configuration. Also, here’s another opportunity to make that desktop shortcut.

  16. Look Ma, no errors! To start moving the machine you’ll first need to enable it (#1 on the screenshot) and then home the “joints”. Each motor that you setup in linuxcnc is now called a joint. Because I setup a driver for all five steppers I get 5 joints. If you do 3 drivers with your duals wired in series you’ll just have 3 joints. And because I havn’t setup homing switches yet when I click home joint it wont physically do anything. So for now, before we can run the machine, just know you have to home your joints.

  17. “Joints” are homed and we now have the more familiar xyz axes. It’s time to get dirty!

That’s it. That’s all it takes to get a base mpcnc or lowrider running with linuxcnc.


I have added a tag to this. Thank you so much for the thorough setup. A lot of options but…seems manageable now.

1 Like

Yes! There’s an endless amount of configuration and hardware options. Variety is great and all but its overwhelming for the uninitiated and puts people off. Part of the problem in trying to find examples/tutorials in linuxcnc is that everything out there is just so different that newbies like me just don’t know what applies and doesn’t apply to them. I think something like the mpcnc/lowrider could be a good introduction to linuxcnc because we’re all using relatively similar machine designs and the same motors, it’s something of a standard.

The learning curve can be really steep depending on what you’re trying to do. But I don’t think it has to be bad at all for setups like ours. I thought if I layed out exactly one way to do it, and how simple it was, that it might make it easier for someone else down the road to start down this rabbit hole.

What’s kind of crazy is realizing how powerful it is coming from a marlin setup. The above setup gets you a base machine like our standard mpcnc/marlin setup. Want to add dual endstops? Just a couple config changes. Want to add a relay for your router? Gimme just a moment to make a config change. Want to add a relay for your vac, cabinet light, and george foreman grill? No problem, just a few config changes. No fussing around with programming and flashing firmware. You can also have as many different configs on one computer as you need, eg I’ll have this base config for running a router, I’ll have another for running a torch. It’s just a matter of starting up linuxcnc with a different config file.

… but maybe it’s just well suited to me. I’ll have as much fun poking around config and code as I will actually using the machine. (EDIT: not that I need to! … I don’t want to scare anyone)


I managed to run the z down too far and permanently stretched out one of the z couplers. Ill reseat the lead screw to contact the motor shaft but how stretched is too stretched?

@vicious1 et al., what do you think? Do I need to go ahead and replace this stretched out coupler?

Nope, I have a few that are worse than that. Over the years I have really tortured a few, on on the lowrider and one a few on the printers. I just re-seat the screw and keep going.

1 Like

Finally got it temporarily wired it up for some testing. It’s a start!

This pen mount from thingiverse is pretty slick but there’s some room for improvement.

For anyone following along re linuxcnc, you’ll notice in the pics that the pen cut some corners and rounded them over instead of being sharp. This is partly because the pen was wobbling in the pen mount but mostly because the linuxcnc trajectory planner, a “feature” called path blending. To fix the issue I’ll need to put the G64 gcode at the top of my gcode files.


I stretched my first set of couplers out WAY more than that. I did replace them. Thankfully Ryan sells them cheap. Discovered it’s important to note whether you’re in G20 (inches) for G21 (mm) mode. Bad things happen when you try to jog the Z down 25mm, only to realize - Too Late - that you’ve instructed it to jog down 25 inches.

Thanks for documenting this so thoroughly. This approach is more affordable than I had realized. I’ve noticed that open source CAD/CAM options seem to support LinuxCNC better than other control mechanisms. While I won’t do so soon, I may follow your example at some point in the future.


It can be cheaper still if you find an old computer with a parallel port and use a parallel port breakout board instead of the ethernet break out board and/or use the drivers off of a arduino cnc shield instead of the tb6600’s that I used. @dkj4linux has a write up on that here: Inexpensive LinuxCNC interface for MPCNC

That said I like the mesa card enough that I’ll probably be buying them again for future projects.

Hello. I’ve been reading your post for a while referencing this thread for my project. It’s been a lot of help and I thank you for that. I was wondering how things are holding up, and if you have a complete wiring diagram with all your components included?


Sorry for the late response. My project had been put on hold for a while now. But we just moved into a new shop and I’m getting back into it. Right now I’m trying to figure out how I’m going to implement a down draft system.

I’ve also picked up a new NEMA steel enclosure I’ll be moving the electronics to. My wiring plan won’t change much from what I’ve shown above. I will be adding 12 vdc for a computer fan and I may use a relay instead of the fuse when wiring up the plasma cutter… We’ll see.

I assume there had been a lot of updates to linuxcnc plasmac so I’ll need to play catch up there too.

New hypertherm should arrive this week!

Time to get back to work


I am very very interested in how this plays out. Did you buy the straight torch as well?

That is going to be hard on the wood spoil board but o so kool. I have wanted to do this for a long time just @forcerouge had so much trouble but maybe it’s time for round ? And to get my garage cleaned and ready

1 Like

Yup, the machine torch. Just finished up printing @uthayne’s mount for it last night.