Just need some help with where to start.

So I’m just finishing up my Plasma/Plate Marker gantry build.

A little about the machine:
I have a machine-style plasma torch rigidly mounted with a pneumatic engraver mounted in tandem to the cutting head on a pneumatic slide with 100mm travel. For work finding, it uses an ohmic sensor (no floating head) connected to the “Probe” input. For THC, I have the MiniTHC connected to the third port on an Ethernet Smoothstepper. It is not a pulse-generator type THC, but the less-desireable type that sends THC UP/DOWN signals to MACH3 through the LPT. The breakout board is the C32 from CNC4PC. The drivers are DG4S-08020’s from CNCdrive.

I’d LIKE to have an much done as possible in my post-processor, instead of relying on macros to take info from a bunch of DRO’s in a custom MACH screen. I tried figuring out the “Generic Mach3 Plasma with Scriber” post, but I’m still using a macro to probe down and find the material.

I’m using the plasma screenset that was provided with the MiniTHC, but it’s clunky and I’m not clear on how it all works. In the Smoothstepper config, I have the option checked to accept THC signals at all times. I set the THC min to -0.01 to prevent crashing/diving.

I’d much rather use the generic MACH3 plasma screen and have all the probing and THC signals handled by the post, but I don’t know if there’s a post that already has all these things. I’m sure someone has done all of this already, but it’s honestly just a sea of information between all of the CNC forums out there.

Can anyone provide some direction on customizing a post/writing my own?

I’m not an expert on writing posts, although I have modified them. You can look at posts with a text editor, like notepad. If you have any experience in programming, like visual basic or C, you can follow the logic thru the post. I started out by comparing the G code output with the post commands, and was able to get a feel for what the post was doing. Do a search for the Lua programing language, that’ll help out too.

If you go to the Mach3 website, you’ll find a section on Mach3 screensets that people have written. You might find something there that will fit what you are trying to do.

Hope this is enough to get you started, Steve

I looked at some of those screensets and it really felt like I was just adding another variable to an equation that I can’t really solve. I only have very basic knowledge of script languages (Python mostly), so I’m not afraid of learning how, but I’m more anxious to start making use of my machine.

Also, most all of those Mach3 screens don’t have a plasma variety.

And, as I mentioned, I’d ideally get to use the generic Mach3 plasma screen.

You don’t need to write your own post. Use the ‘Mach3 THC with scriber’ post. After selecting the post click on the ‘edit post’ button. Near the start of the file are a bunch of settings that you will need to configure for your setup. Make sure refHome is set to false so it uses probe instead of home to find the top of the work.

Awesome! That’s the kind of help I needed!

I’ll be right back after I finish crashing the torch!

  1. What plasma cutter do you have? (I may have the toolset to give you…)

  2. I (had) the same setup as far as THC and smooth stepper, so can go through everything.

  3. I’ve written a few post processors now from scratch, and the miniTHC has the c-axis protocol, which allows you to have the settings stored in the tooltable and sent directly off to the torch height controller.

  4. can you post your Mach3 XML profile and I’ll check your settings for you

  5. the screenset I ran is as below.

  6. you will need to enable THC on the smooth stepper configuration tab, and set port 3 as outputs (i.e. a standard LPT port / not bidirectional a inputs)

  7. you will need to setup mach3 with the following settings for the miniTHC
    Port 3, pin 2 - c-axis step signal
    Port 3, pin 4 - optional (you’ll need to unsider the joint on the card, but you can isolate the ohmic input from the machine, and only enable it when doing a touch off (G31)
    Port3, pin 7 - optional as port3, pin4 above
    Port3, pin8 - torch fire (set as same output as M3 in mach3, normally op#1, but can be any)
    Port3, pin 9, THC lock this is optional… the problem is how will you trigger it in Mach3? you can use M11 / M10, but need to configure the smooth stepper plugin for M11/M10 use… as any other M-code and the torch will slow down and you’ll get a divot…
    Port3, pin10 - THC ON
    port3, pin 11 - THCDN
    port3, ping 12 - THC DN
    port3, pin 13 - either ohmic of floating head input (can use port3, pin4 to isolate the input, see description above) – configure as probe input in mach3
    port3, pin 15 - either ohmic of floating head input (can use port3, pin7 to isolate the input, see description above) – this is a second input for floating head, what I did was control the touch off via macro… this allows me to set the offset for floating head (1.4mm) or ohmic head (0.4mm)… basically the macro checks if both inputs are enabled or one input, and then works out if the ohmic or the floating head activated the probe input…

I now use UCCNC… and do this a little differently as I use only one input pin for both the ohmic and floating head with the use of only one relay… and a macro.

The c-axis protocol uses this code in the post processor:

function MiniTHCSetting()
	if(MiniTHCVolts > 0 and MiniTHCDelay > 0 ) then
         post.Text ( " G92 C0  \n" )         
         post.Text ( " G0 C8   \n" )
         post.Text ( " G4 P100 \n" )
         post.Text ( " G92 C0  \n" )
         post.Text ( " G0 C",MiniTHCVolts," (MiniTHC Voltage Setpoint) \n" )
         post.Text ( " G4 P100 \n" )
         post.Text ( " G92 C0  \n" )   
         post.Text ( " G0 C",MiniTHCDelay," (MiniTHC Delay, hundreths of a sec) \n" )
         post.Text ( " G4 P100 \n" )
         post.Text ( " G92 C0  \n")
         post.Text ( " G0 C5   \n" )
         post.Text ( " G92 C0  \n" )
	elseif(MiniTHCVolts > 0 and MiniTHCDelay == 0 ) then
         post.Text ( " G92 C0  \n" )         
         post.Text ( " G0 C9   \n" )
         post.Text ( " G4 P100 \n" )
         post.Text ( " G92 C0  \n" )
         post.Text ( " G0 C",MiniTHCVolts," (MiniTHC Voltage Setpoint) \n" )
         post.Text ( " G4 P100 \n" )
         post.Text ( " G92 C0  \n" )   
         post.Text ( " G0 C5   \n" )
         post.Text ( " G92 C0  \n" )
         post.Text ("(No THC Voltage / Delay Set, using previous settings) \n")

the MiniTHCSetting() function is called during the toolchange as can be seen below

	if (toolClass == "PlasmaTool") then
		if(thcOff == 0) then
			post.Text (" (THC DISABLED for this tool)\n")
       post.Text (" (THC ENABLED for this tool)\n")   

You will need to add the following code to hold the voltage and delay with the tools within the post processor (before the OnInit() function)

post.DefineCustomToolParam("PlasmaTool", "MiniTHC volts", "MiniTHCVolts", sc.unit0DECPLACE, 130, 0, 200)
post.DefineCustomToolParam("PlasmaTool", "MiniTHC delay -hundreths sec", "MiniTHCDelay", sc.unit0DECPLACE, 1, 1, 20)

… bit of a plug… uccnc is much better at THC, plasma and motion … I know there are a LOT of mach3 stalwarts about… but I’d just suggest you at least consider alternatives and be aware of what future developemnts are about, given Mach3 has not been developed (and won’t be again) for ~6 years


Oh my God, thank you so much. I have a Powermax 45, and I do have a working setup at this point. Everything except the pneumatic engraver is online and working in some capacity, just not exactly the way I’d like. What’s come out of this thread so far is giving me a great helpful push in the right direction. Once I get some time to tool around at my shop, I can start trying to implement some of the stuff you’ve posted. I can’t post my XML from home though, that computer is back at the shop space.

Thanks a ton for the info on using the C-axis protocol! I hadn’t a clue for how to make any of that work. That’ll be awesome to play around with. Can you actually elaborate a little more on what that actually does? What information does it actually take from the tool-table and what does it do with it?

I am VERY interested in UCCNC. I have it installed on my home computer and I’ve been running it in simulation, for fun; but I’m kind of married to the Ethernet Smoothstepper, and was under the impression you could only use UCCNC with their motion controllers. Is there a way to use UCCNC with the Smoothstepper? Because I will definitely try that out if I can avoid buying a different motion controller.

And I would love take a swing at the plasma screen you made. How can I go about getting a copy?

screenset and powermax45 tool table attached.

couple of caveats…

screenset, the alt+3 and alt+4 screensets are blank / partially finished… to be fair I only used the front screenset and put everything on it (axis jog buttons, MDI, wizard access, I use probe-it with a touch probe attachment)

If you want to edit the screenset, I used Machscreen


Also, my setup is metric… hence did not require 4 decimal places, so shortened the DRO’s as my machine does not have that step resolution in metric

Toolset… as stated above my setup is metric … hence the tooltable is metric

There are a couple of errors within the metric tooltable from the PMX45 cut tables… the best way to check is convert the imperial tooltable to metric and they will jump out at you…

This leads on to the next one… given Hypertherm is an American company it seems that all of their testing was done on imperial sheet sizes… so when they came to create the metric cutting tables, they just converted the imperial sizes to metric… problem is in the uk, we have metric plate sizes and we have standard sizes in between the imperial sizes… hence we don’t have 2.4mm… we get 2.0 and 2.5mm… hence what I did was to get the sheetcam imperial tooltable and convert it to metric using interpolation to the standard UK plate thicknesses available whilst still checking the PMX45 cut tables to check that the numbers aligned … which they do (hence I can see that all they did was multiply the imperial sizes by 25.4 and rounded them off … )

I have no need for the Mach3 screenset as I won’t be going back to Mach3, so if someone else finds a use for it great.

UCCNC … yes, you can ONLY use UC motion controllers (the developers have absolutely no interest in anyone else’s controllers period!) … which is a good thing as it means that they test the product against their 6 motion controllers (UC100, UC300usb, UC300usb, UC400eth).

They have a special on at preset (till stock lasts + 15/10/26 dd/mm/yy), where you’ll get uccnc free with a uc300eth s a new product release, saving ~$60. uccnc is licensed to the motion controller serial number… ie 2 motion controllers you need to license both controllers. It is very flexible, but only thing you cannot do is write a plugin to send motion to another motion controller.

I was a great advocate of the smooth stepper (I still have a USB + eth sat there…) but their slow development of mach4 plugin (with plasma, basically equal to what the Mach3 eth plugin does) has driven me crackers. I have been patient but the persistent statements of “soon” and “spring”, “summer”, “fall”, “winter” have just annoyed me, and made me realise the obvious which is you buy a product that works now… what it does in the future is just a benefit… the SS without mach3 / mach4 mill (the M62/M63 + THC does not work [yet]) is just a circuit board, and I cannot programme FPGA’s … if I could I would have had a go at writing a plugin for m4 (which I have a licence for and have been eager to use…) … please note that when you compare the smoothstepper motion controller development to the uccnc development, the guys at CNCdrive are very proactive (version 1.2022 was out about 10 days ago… testing has come back with some bugs (the release before was about 4 months and they put a whole lot of plasma stuff + modbus + macro functions into 1.2022 ) and last night they released 1.2023… and want to get back into a month or so development cycle release… that is planned development progress… [what needs to happen with Mach4 is they need to buy out a motion controller company with good market penetration and offer certified Mach4 hardware with a usb + ethernet motion controller and dump mach3 properly… any company fit that bill? hint hint :wink: ]

hence I’ll keep my smooth stepper in case M4+the SS ever gets sorted as I really hope it does its a nice bit of hardware lacking in planned development cycles. (I bought the usb SS in 2007/8… and it still does not do exactly what the ethSS does… eg. no THC, M10/M11 + backlash, but I dont use backlash anyway)

Man, I can’t thank you enough.

I’m super excited to get some time with my machine, so I can start making some meaningful customizations to the software and my post processor.

That deal the they’re running for UCCNC was exactly what I was waiting for. I bought my UC300ETH from CNC4PC today. I also got the M44b adapter board, so I can connect it the same way to my C32 breakout-board.

I’m sure I can sell my Ethernet Smoothstepper to cover nearly all the cost.