Advanced Search

Search Results (Searched for: )

23 Feb 2020 07:27

Plasma Table HAL example, in git and a 9-part video series

Category: HAL Examples

And here's the full content index. If you view it on the YouTube description, then you can click the timestamps to jump to that point.


LinuxCNC HAL #1: The Basics
Topic index:
00:00 - Intro, what's HAL for, lesson plan
04:56 - other docs, resources, and YouTube channels
07:10 - file layout
09:25 - the stepconf file, what the Stepconf Wizard misses
12:15 - what's in the INI
13:58 - the base HAL file, loadrt for HAL components
17:37 - addf, servo and base threads
19:24 - net commands, signal names, HAL is like a PCB
21:18 - types of HAL pins
21:47 - spindle-on, net arrows, parport pins
23:56 - setp, paport invert, my relays are backwards
25:16 - quick example: a safety interlock on a mill enclosure
28:23 - further changes to the Stepconf Wizard's HAL


LinuxCNC HAL #1(b): Using Linux efficiently
Topic index:
00:00 - Intro, what's LinuxCNC based off, what makes it special, security notes
04:30 - basic commandline tools, shortcuts, command history, make your life easier
10:16 - find shit fast, grep, manpages, locate
15:08 - kicking off GUI programs from the command line
17:24 - installing extra software, sudo
22:00 - git basics, github, gitk, keep track of your shit
25:46 - symlinks so you can keep your shit where you want it
28:22 - git example from scratch
34:05 - git for backups
36:59 - wrap-up


LinuxCNC HAL #2: INI improvements
Topic index:
00:00 - intro, summary, reviewing changes in gitk
01:59 - no stepconf header, startup gcodes, grid view and jog increments
05:43 - default jog velocity, auto-open different gcode file,
08:09 - gcode subroutines
09:35 - halui, MDI command shortcuts, improving homing
12:07 - user command file (change AXIS key bindings)
16:25 - moving things for organization, listing HAL files in the INI


LinuxCNC HAL #3: laser crosshairs, gcode triggered relays
Topic index:
00:00 - intro, demo, laser mount, physical wiring
05:11 - the magic 2 lines of HAL
07:17 - a look at the manpage for the motion component
09:15 - debugging with halmeter
11:44 - this is a silly example, here's a better one
13:22 - example for M66 (waiting on input pins)


LinuxCNC HAL #4: PyVCP
Topic index:
00:00 - intro, pyvcp demo, where to get these files
02:10 - pyvcp vs real buttons
04:01 - INI changes, loadusr commands for pyvcp
05:33 - including the postgui HAL file
06:35 - halui and all the GUI pins
07:45 - the custompanel.xml, debugging, xmllint
11:30 - HAL to tie in pyvcp to our crosshairs, or2 component
15:58 - order of HAL commands
17:03 - the postgui HAL, pyvcp HAL pins
17:45 - debugging with halmeter
18:48 - limitations of this method, improvements using mux2, halui, and not
23:26 - wrap-up



LinuxCNC HAL #5: XBox controller, hal_input, and subroutines
Topic index:
00:00 - intro, demo, summary
00:25 - XBox 360, official Microsoft vs knockoffs
03:57 - QJoypad for keyboard emulation
07:26 - drawbacks of QJoypad
08:26 - adding xbox.hal
09:22 - loadusr vs loadrt, user components are Python scripts
11:37 - hal_input component
13:00 - looking at pins provided by hal_input with halmeter
14:16 - changes to the laser.hal file, logic component
16:38 - MDI shortcuts
19:52 - setting up a subroutine file
21:10 - gcode for adjusting laser offset
24:02 - wrap up


LinuxCNC HAL #6: ohmic probing & more subroutines
Topic index:
00:00 - intro, uses for ohmic probing
01:45 - probing with computer vision and a webcam
02:21 - demo
03:27 - physical wiring
07:31 - HAL for probing
11:50 - preparing a subroutine for probing
13:44 - gcode for a probe subroutine
21:14 - cutting subroutine, passing arguments
26:05 - adding more to pyvcp
26:52 - a complex HAL example, checking your current motion mode
33:58 - where are HAL components stored? (find undocumented components)
37:06 - putting these components together
37:58 - wrap-up


LinuxCNC HAL #7: plasma cutter manual THC
Topic index:
00:00 - intro, what makes torch height control special
03:18 - demo
05:17 - thcud bugs
06:59 - changes to our steppers HAL in order to use thcud
09:32 - alternatives to thcud
13:27 - HAL for thcud
20:32 - wrap-up


LinuxCNC HAL #8: inside a component, fixing thcud
Topic index:
00:00 - intro, why would you want to write a real time component
01:33 - all the components, ko's, comp's, and getting the code
04:00 - digging into the LinuxCNC source
05:25 - looking at and2.comp
08:05 - the main part of the comp, how it's like Arduino code
09:50 - redoing the messy ohmic probing HAL in a single line of a comp
11:10 - compiling and installing a comp file
13:44 - looking at thcud.comp, header, and the straightforward bugs
15:07 - the main function
21:43 - the more difficult bug
24:59 - getting the fix, the gist, and fucking lawyers
26:46 - the fix applied
27:29 - wrap-up


LinuxCNC HAL #9: overview, halscope, final thcud
Topic index:
00:00 - intro, rundown of everything we've learned
02:52 - halcmd, for interactively issuing HAL as you build your configs
03:52 - debugging with halmeter
04:17 - advanced debugging with halscope
08:53 - going through the THC HAL and pyvcp
17:03 - a look at the physical board
19:20 - test with bad THC firmware, and halscope evaluation
21:12 - for fuck's sake
21:42 - test with the good THC firmware
22:36 - contributions from you
23:45 - upcoming stuff
23 Feb 2020 07:25 - 23 Feb 2020 07:29

Plasma Table HAL example, in git and a 9-part video series

Category: HAL Examples

Hey guys! I checked in here last about a year and a half ago, when i was mulling over doing a plasma table. Well, it's done (enough) now, and I went through the PITA of documenting build and shooting a step-by-step video series on how I put the HAL together.

Not to self-promote too hard or anything, but I wanted to share them here, because the reception has been very positive so far. This was a (metric) shit-ton of work which I'm hoping will help some more people jump along the LinuxCNC bandwagon.

It's a fairly budget set-up, using RTAI LinuxCNC 2.7, a parport board, AXIS GUI, 10yr old Dell desktop, DQ542MA steppers, HSS rails, a kitchen pan for a water table... Well, and a Hyptertherm PM65, which cost 3x the amount of everything else in the build. Hahah. Fancy features include a laser crosshair for positioning, an XBox 360 control pendant, ohmic sensing, a self-cobbled Arduino THC, and a bug-fixed version of thcud (for which I have a bugfix to submit).

Future upgrades are going to be a real water basin, real rails, 7i76E, gmoccapy, evaluating plasmac, etc.

Here's the HAL in GitHub, and yes, it even has commits breaking it into sensible parts:
github.com/swolebro/swolebro-youtube/tree/master/linuxcnc

The full build playlist:
www.youtube.com/playlist?list=PL9xPdBFt5...TkuhhfQmQNm6TdvNkPuX

Just the playlist LinuxCNC (HAL starts with video #4):
www.youtube.com/playlist?list=PL9xPdBFt5...n3ZY2wYh7L2yzZ377UwI

The HAL videos alone are about 5hrs of content. I really tried to go through it step by step and explain it in a way where I hope a non-programmer will be able to grok it. Each video lines up with a tag in the git repo, and I also put an timetable/index in each video description - for reference, I'll post all of those here so you can browse through them without clicking around.

I will check back here again to keep up with feedback/questions/corrections in this thread (not disappearing for another year and a half), though I don't have terribly much time for social media. Comments on any of the videos or issues on the GitHub project also work.

Thanks for helping make the thing that made it possible to make this thing.
26 Mar 2018 04:15

Software guy, hardware questions: How exactly do I control my Hypertherm PM65?

Category: Plasma & Laser

I actually found a listing on a local welding supply shop so you never know your luck!

Hah, to be honest, I hadn't even considered a LWS! It's been at least three years since I've been to one of those - largely because I had been without a workshop for the past three years, but even before that, the hours they kept didn't really jive for hobbyists with office jobs. I'd only make that trip out of the way when I had to, normally to swap tanks.

I know that people like the idea of supporting local business, but when they make it hard for you to give them your money, and online retailers make it easy... The obvious happens. People are also terrified of robots taking over all of jobs, and meanwhile, we're building CNC machines.


I've got a stash of relays already, just leftovers from past Arduino projects. So, one of those, a breadboard, and a few more wires to the DB25 BOB, and now I can trigger that relay with M03 and turn it off with M05. Powered it straight off the BOB, easy as pie. It's not firing the torch, but that's only because I lack the plug. Couldn't find it an an auto or electronics store (and the LWS is closed for the weekend), so online it is for me.

I did take a look at the Hypertherm pendant this weekend too, and I can confirm it's just a dumb switch. No brainbox or anything, which is both reassuring and refreshing. Let's hope they never go the way of Keurig coffee.
24 Mar 2018 02:54

Software guy, hardware questions: How exactly do I control my Hypertherm PM65?

Category: Plasma & Laser

Rod, thank you for your response, and for pretty much every post you've made on this forum, since they've all been very high quality and very educational for someone like me.

You've got a very valid point about the 7I76E and THCAD-10 being great values and I definitely agree. Under $300 for the pair provides you with all the I/O you could need, and that's a drop in the bucket when the plasma source itself cost over $3k (and I managed to pay that a few years ago, when I was fresh out of undergrad). Really, the cost of Mesa hardware makes me wonder why anyone would buy a Proma. I've got little doubt that I will eventually end up running the Mesa cards, but if I can get started with some combination of Chinesium and elbow grease, I'd rather start there. Here's why:

1. I'm not an EE. There's a non-negligible chance I'm going to accidentally let the smoke out of my drivers or BOB (fingers crossed, not my torch, hahah), and I simply would feel dumb if I did that with real hardware.
2. Black boxes bug me.. Even if I eventually cave and buy the black box, at least trying my hand at it turns into more of a gray box.
3. My bar for "success" on this initial build is very, very low. My current state-of-the-art is 3d printing stencils. (They last a surprisingly long time before melting!)
4. If I can figure this out in the most basic way possible, perhaps it could be useful to someone who has actual constraints in terms of finances or access to equipment.

The input pin shortage is a little disheartening, but consolidating limits and homes would get me closer. Worst case, the Optiplex 980 DT I'm using has several expansion slots, so pitch some pocket change, and I've got another parallel port and opto-isolated breakout board, which can later be cannibalized for another machine.

I haven't used Inkscape yet, but if there's a Python-based extension for generating CAM, then I will have to give that a shot. Because at least if it's Python, when I hit the inevitable bugs, I can debug them. (Though I did take a look at that codebase. 8000 lines of procedural code for the main file. Whooh.)

I'd be OK with buying Hypertherms CNC connector cable directly, but it does annoy me when companies try to dress up very basic things as proprietary secret sauce (eg. their Oetiker clamp ohmic ring). The beautiful thing about physical things is that when there's an API (aka. a spec or a part number), anything that matches actually matches. Compare that to software, where, eg., every SQL database has their own SQL dialect, incompatible with all the others.

More importantly, if this connector is standard, I might be able to get it from an auto parts or electronics store tomorrow, and keep working this weekend!

So, the current to-do list.
* Start documenting this build. (I'm thinking Python-style Sphinx docs in a git repo... This will not become the build thread.)
* Pick out and order the axes, limits, cabling, etc.
* Read up on the HAL docs.
* Source that CPC plug (locally if possible).
* Check out the internals of the pendant switch. (Just curious.)
* Mock up a relay for the trigger.
* See how much a plasma's going to mess with my VNC/wifi connection. (Worst case, I use a crossover ethernet cable to solve this this.)
* All while maintaining social obligations and getting my sleep/exercise.

If I can check three things of any to-do list done in a given weekend, I'm pretty happy. ;)
23 Mar 2018 07:50

Software guy, hardware questions: How exactly do I control my Hypertherm PM65?

Category: Plasma & Laser

So, please bear with me here. I'm a software guy with a welding a hobby - ie. I'm a competent novice, and I've got questions.

I've finally got myself a permanent shop space, so it's time to get my Powermax 65 the gantry table it deserves... at least, a gantry table, period. I figure I'll do this build on-the-cheap (while I work through all my rookie mistakes) and upgrade it in time. Use the plasma to make a plasma, etc.

I'm at the point where I've got Linux CNC installed on an old desktop steppers are spinning happily along, sitting on my coffee table, while the screen traces out the letters "LinuxCNC." If you're curious, the full set up is a Dell Optiplex 980, with a DB25-100 breakout board, four DQM542MA drivers, and four 425oz-in stepper motors. And there's a spare PCIe slot if I do ever decide/need to upgrade to a fancy Mesa controller card. Bonus fun: I installed a VNC server on the desktop (vino, specifically), so now it I can access it via my laptop, and run it without the monitor/keyboard/mouse. All well and good.

The next step for me would be to figure out how to control the machine torch, do a few tests on that, then start building the actual table. Worst case scenario: I've got one of those pendant switches for the torch, and could sit there and punch the button while the motors do the motions, but that's not exactly CNC.

So, firstly... Actually firing the torch. My understanding from the Hypertherm docs is that there are simply two pins on the CPC that you connect (eg. with a mosfet or a relay) and that's the equivalent of your trigger push. Makes sense. And most CNC controllers commandeer the M03/spindle-on opcode for that trigger, since the plasma is your cutting tool. Also makes sense. And in your stepconf, you can set a pin on your BOB to be pulled to 5V when M03 is seen, then dropped back to ground when you get M05.

But what component is responsible for actually connecting the pins? Because I don't see anyone wiring relays between their BOB's and their plasmas.

Is this where the THC's come in? Because I know I've seen several LinuxCNC people say they use the Proma but I'm not seeing anything about how that device does anything more than generating signals for "arc on", "move up", and "move down" (which you'd need to set as inputs on your BOB, and use some HAL file to have EMC convert into signals to resume XY motion, or pulses for the Z stepper driver). I get how THC is supposed to work - I just don't get how you guys trigger the torch in the first place so you can control it.

Next, has anyone here used an Arduino for the trigger switch and THC? Because this seems like the exact kind of job you'd use one of them for, at least if you can step your voltage down to the 0-5V range - so, 50:1, plus an extra resistor. I did see one GitHub project for an Arduino THC, but haven't tried it yet, and seeing no updates in 3yrs doesn't instill confidence. (On the other hand, the GRBL project somehow managed to fit an entire rudimentary 3-axis controller on a $2 embedded chip, which is far more than I need, but also very cool. I did try it out, but I know that'll quickly come up short of what I need, so I'm sticking with LinuxCNC.)

Next up: ohmic sensing for a touch-off... For those of you who have it, what's the hardware involved? I know Hypertherm sells a special retaining ring for ohmic sensing.... which seems to just be the standard ring, plus an Oetiker (pinch-ear) hose clamp that holds a wire to the cap... and costs 50% more. So, is ohmic sensing just a matter of looking for connectivity between the plasma's ground clamp (connected to your work piece) and that endcap wire, then sending a signal to an input on your BOB when it establishes the connection? (With something in your HAL config that processes that input pin.) Again, that sounds Arduino-y to me.

Hypertherm's CPC port - that's also known as a "TE/AMP" connector, right? I'm under the impression "CPC" stands for "circular plastic connector," which is a wholly underwhelming acronym once you find that out. Whatever I get for the trigger/THC control, I'll need a male plug for that port, and the specs on the dimensions seem to match, but if anyone can confirm, I'd appreciate it.

How many input pins do you actually need for a plasma system? When it comes to everything... THC arc OK-up-down, limit X-Y-Z, e-stop button, ohmic sensing... it looks like the 5 pins on a BOB come up short. I'd rather not upgrade to a Mesa card yet - as I would bet good money I will fry at least one electronic thing before cutting my first part, and it just means more advanced stuff to learn. So, is the next-best solution here to consolidate pins (eg. all limits on 1 pin) and/or to get a parallel port PCIe expansion card?

Bonus question: What do you all use for 2D CAM? I've got experience with FreeCAD for designing 3D prints and Cura for the slicing/CAM, but that's a little different. I have already tested the trial of SheetCAM, since that seems popular with the closed-source/proprietary/Mach3 crowd, and I gotta say I was a little bit underwhelmed. The 3D printing tools seem more advanced, though I guess the market for the software drives what the software ends up being. Anyway, I've seen a collection of Python-based gocde generators, which would probably be at least a starting point for me (in manufacturing basic brackets, etc.), but that wouldn't be ideal long-term.

Bonus #2: Anyone ever hooked an engraver/marker up to theirs? Just planning ahead. I figure that corresponds to commandeering something like the coolant off/on code, and using that output pin to trigger a solenoid for the air supply. Sound about right? But now your CAM has to understand which paths to cut vs. engrave, and know that "engrave == apply coolant," which really seems like the trickier part.

Anyway. That's all I got. Mucho gracias for any help you guys can give. I gotta say I'm very impressed by the distro and can tell it's only a matter of time before everything in my shop/house is CNC... just because.

And of course, the YouTube channel with the build progress will be forthcoming, as will GitHub repos for designs and configurations. Try to make it easier for the next guy.
Displaying 1 - 5 out of 5 results.
Time to create page: 3.878 seconds
Powered by Kunena Forum