Driving a 3-axis TTL stepper mounted router

From: Dan Lyke 
------------------------------------------------------
Friend has a router mounted in a 3 axis table, with enough circuitry to
drive steppers from TTL inputs. He was writing his own software to
drive this thing.

Friend is kind of a neat freak and doesn't like how much sawdust it
generates in his garage. I have graciously offered my workshop.

What I'd like is the quickest easiest toolchain possible to drive this
thing from Linux.

I note that Inkscape has a bunch of plug-ins which can generate gcode
toolpaths.

So I *think* that what I need is something that'll either give me a USB
parallel port, or take USB in in a way that I can feed it gcode, and
that'll give out TTL pulses.

Right now the leading choice seems to be installing
http://dank.bengler.no/-/page/show/5470

=============================================================== From: Jason Brown ------------------------------------------------------ I have a little experience. At Chatt*lab we have a 4'x8' CNC router doing exactly that. There are a LOT of ways to get to where you want. A lot of it depends on the size of your machine, final goals, and what hardware you already have. It sounds like you already have stepper drivers and a power supply so you just need to interpret g-code into stepper pulses. It is a BIT more complicated than that if you want any decent performance though, acceleration, home switches, soft and hard limit switches, tool offset calculations, etc etc. I recommend LinuxCNC to get started, you probably have something lying around that will work: If you want to control directly from a PC: Forget using USB to parallel ports, there is too much latency. Driving steppers needs precise timing and a real-time kernel in Linux or Windows XP. Use a real parallel port. There are still pci is pci-e parallel cards available. Laptops have issues due to their power saving functions. Get a parallel port breakout board for your wiring. I use this one and like it a lot: http://www.ebay.com/itm/USB-5-Axis-CNC-Breakout-Board-Interface-Adapter-For-Stepper-Motor-Driver-/321133023129 It says USB, that is just for power.... The Linux Way: (What I am doing). LinuxCNC: http://www.linuxcnc.org/ http://wiki.linuxcnc.org/cgi-bin/wiki.pl?LinuxCNCKnowledgeBase The Windows way: (More costly of course) Mach3: (Good software, trial version is great for small parts and testing but is limited to 500 lines of g-code.) http://www.machsupport.com/software/mach3/ If you want to use a dedicated driver board I hear the grbl stuff is great, but I have not had a chance to try it out yet. For experimentation, the LinuxCNC route is more flexible, but more complicated. For a production unit or something I were selling, I would go with something grbl based. . Recently one of the developers / inventors of some nice grbl based hardware visited Chatt*Lab and we discussed his products at length. https://www.synthetos.com/ I plan to buy a couple for experimentation with a small CNC mill and lathe soon. I'm happy to discuss further, or show you the stuff I have running down at the lab sometime. -- Jason

=============================================================== From: Benjamin Stewart ------------------------------------------------------ The RepRap stuff feeds an Gcode to an Arduino via USB, but that software may be too specialized to easily retool for a CnC machine - I don't know. There are lots of different flavors of arduino firmware, and PC host software, though, so those might be worth checking out. I have no idea whether the RepRap firmwares use TTL on the back side, though. My knowledge just comes from having used the stock software a little. Good luck!

=============================================================== From: Dan Lyke ------------------------------------------------------ On Mon, 18 Nov 2013 16:54:22 -0500 Jason Brown wrote: I think this one's got an active area about 18"x36". So a bit smaller. He's got the driver boards to send TTL pulses to, and limit switches on the platform. I think he's been using an Arduino (or a homebrew one, we're both Atmel hackers), but I also think he's re-inventing the motion control wheel, and I just want something that works. Yeah, I'm becoming a bigger and bigger fan of "if it needs timing that precise, give it a separate processor". I think I'll head towards grbl. So I guess the rest of the question is about generating gcode, and it sounds like just starting with Inkscape and learning is the right way to go. Might have to learn something that has real dimensioning at some point... Love to, but I'm in Northern California and don't get back to 'nooga that often. Could happen, though... Dan

=============================================================== From: Jason Brown ------------------------------------------------------ I agree, for the machines I have been working on I keep changing around the hardware and re-wiring, so for now the ease of configuring a Linux machine wins, eventually a nice dedicated controller is quite attractive though. I use a Rambo board on my 3D printer and it works quite well. I hear great things about this: https://github.com/synthetos/TinyG The hardware has all the stepper drivers on board, but I am sure the code could be easily adapted to drive external stepper controllers. Especially if you are already an Atmel guy. Gcode converters exist for just about any input format. Here are some good ones: http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Simple

=============================================================== From: Jason Brown ------------------------------------------------------ And I forgot, a recent development in CNC news is BlenderCAM for gcode generation: http://blendercam.blogspot.com/p/documentation.html If you are already a Blender person, it might be useful. --Jason