I want to use my cad files with this CNC machine
Ok i draw mostly carbon fiber plates for multirotors in my cad program.
The program can save STL files which i use with simplify3d on my RepRap Ormerod 2 machine.
Now i would like a simular toolchain for this machine if i am to buy it.
I dont want to do my designs in a paint program that is simply ridicuelous.
So simply I want to draw my Cad files in my 3D mechanical cad program then i want to save them as STL or one of the other formats my program supports. (STL,OBJ,DXF,SKP,XAML)
Then i want to turn that file into gcode that the stepcraft can work with and cut my carbon parts.
I would preffer opensource software.
There is so little information about this winpc application I do not feel i trust it enough too pay 199€ for it so Probably linuxCNC program would be the way to go. and transfer Gcode files to the machine running that in the garage by wireless network or usb stick or something simular.
LinuxCNC is cheapest as its open source - there is a post on this in the forum. See here
LinuxCNC is a Gcode controller so will accept Gcode programs.
WinPCNC is a Gcode controller that controls the machine and runs code.
Mach3 with UC100 USB controller will run Gcode. Mach3 will run machine in "free mode" but has a limit to the number of lines of code.
UCCNC with UCCNC is currently the cheapest commercial off the shelf Gcode controller, The UC100 is also extremely reliable.See herefor three videos showing the process from start to finish. We use UCCNC now on all our machines. We find it the best GUI and most reliable control system.
Linux CNC is free
Demo mac3 with limit of Gcode and UC100 is next cheapest
UCCNC is then next for full Gcode
Then Mach3 and UC100
The WinPC USB
Any/all of the above will need a CAM package. We use Vectric stuff. There are cheaper more open source options.
There are others sources of info too
Here
more discussion Here
more Here
Ok so I need to order the machine with no usb option? And buy that uc100 controller it can't run on lpt1 port without the interface?
I would get the starter optionanyway - and the LPT card to allow for conversion to others. The starter option is a good place to get going and first steps etc. And build confidence.
You can run Mach3 and LPT from a desktop/tower PC. And this means you don't need the UC100 USB controller. But the performance is then heavily related to the quality of the signals the Pc generates down the LPT output... its not as stable as the USB controller and often does not give as much power from the motors - but it can work with the right PC its just less reliable (potentially) and sensitive to how you use the PC when the machine operates.
This win pc starter app makes the machine useless to me, as you say you need to draw in a expensive paint program sounds like a toy And unprofessional.
I have several pc with lpt port. One mini itX 1ghz, one p3 800mhz with at least 384mb ram. And one laptop with 512mb ram and 1.6ghz. I can run win2k/xp/Linux on these machines. And will be 100% dedicated to run cnc machine.
how dos this uc100 work? Is it just a simple generic lpt to USB adapter. Simular to ftdi chip for serial? Can this adapter run in Linux and the Linux CNC app?
But this is the small issue the real thing is to find a good list of cam software that will convert stl to gcode.
What about just throwing the control board of this machine in the trash can and put something 32 bit with so card and network port in. Like my 3d printer use?
A well thankyou for your help. I think i will just buy the LPT modell its 19€ less in price and buying that uc100 adaptor and software is less then being locked in with this winpc thing for 199€. I see there are diy projects on the web where you can make your atmel lpt emulator and run with a rasberry pie over network instead of an 10year old big computer.
And with the machine i could make my own pcb to replace the lpt pcb later for hooking up a networked setup.
Now just need to decide for 420 or 600 model.
I foun a intel core i5 in my closset. with lpt on it is that fast enough? To handle without problems?
All boards that connect via USB have their own mikrocontroller which generate the singnals that the PC generates in a LPT setup by itself. The point with the LPT solution is, that on a PC a bunch of software is running. Even if you did not start a single program yet, there are tons of drivers and stuff running in the background. And you have another ton of hardware interrupts which occur. All this makes it impossible to generate signals with a precise timing. The question is: Is the quality of the signals still good enough for controlling a CNC.
Even older machines than your i5 should be able to handle a CNC, but the faster the better the quality of the signals. What you really should avoid is running other software during a cutting job. This can kill signal quality.
The benefit of the mikrocontroller solution is that it has only 2 things to do: communicate with the PC and control the CNC. The signal quality is higher (still not precise) and can be guaranteed to be the same during the whole job (well except there is a communication problem between PC and uC ;o) On the other hand, sending some kB of g-code is not that hard for the PC and you can run many other programs while running a cutting job.
SC 420 mit DIY parallel + Proxxon mit Mod + HF500 + SprintLayout + LibreCAD/QCAD + FreeCAD +WinPC starter/USB->EstlCAM + EstlCAM LPTAdapter + EstlCAM Handrad + DIY Vakuumtisch
Gruß, Andreas
So you are telling me that a linux system where i can disable all kind of hardware in custom kernel woulkd be preffered to operate on the LPT port.
No sound no nothin exept bare minimal to boot the pc.
Prefferably an older linux distro with less stuff going on in the background to run desktop.
All boards that connect via USB have their own mikrocontroller which generate the singnals that the PC generates in a LPT setup by itself. The point with the LPT solution is, that on a PC a bunch of software is running. Even if you did not start a single program yet, there are tons of drivers and stuff running in the background. And you have another ton of hardware interrupts which occur. All this makes it impossible to generate signals with a precise timing. The question is: Is the quality of the signals still good enough for controlling a CNC.
Even older machines than your i5 should be able to handle a CNC, but the faster the better the quality of the signals. What you really should avoid is running other software during a cutting job. This can kill signal quality.
The benefit of the mikrocontroller solution is that it has only 2 things to do: communicate with the PC and control the CNC. The signal quality is higher (still not precise) and can be guaranteed to be the same during the whole job (well except there is a communication problem between PC and uC ;o) On the other hand, sending some kB of g-code is not that hard for the PC and you can run many other programs while running a cutting job.
Yes - exactly... if you want to use on board hardware to run the signals down the LPT port then this is best solution. you can get good results on windows if you strip down the other stuff and don't run programmes when running the CNC... but its impossible to tell really. There is a "driver test" in Mach3 that lets you test the pulse stream quality... but even then its still not 100% clear if it will work well or not..
Micro controller is by far the best solution.
My personal CNC journey started about 10 months ago, and I had no idea what a two-flute cutter is,
appropriate feed rates and so on. I just wanted to make some prototype PCB boards for hobby projects
but ended up in woodworking.
I have a good background in electronics and 35 years of software development on my back.
As it turned out this was good for me as software determines what can be done.
There still is a lot to learn. My current setup is a small box running LinxCNC and I am
quite happy with that. To be honest I am not a Linux fan, and if it wasn't for LinuxCNC
I wouldn't have touched it.
What are the alternatives?
1)
There are users that dont't know much about computers, software, workflows and CNC routers
and they don't want to. They just want to cut some plywood for their RC models.
For these guys Stepcraft offers the following path:
Windows PC w/ WinPCNC Starter -> USB controller card -> router
Pros:
the USB controller handles all the real time stuff. Stepper motors need precisely timed pulses, otherwise they run a bit rough or stall.
All you need as input is a 2D HPGL file. The feed rate and cutting depth is set when you run the job.
This package has all you need to get you started and runs smooth and reliable.
The perfect "out of the box" experience.
Cons:
the limitation is in WinPCNC Starter. It only works with 2D files and does not support G-Code.
The USB controller is fine, but the interface protocol is proprietary. There is no other software
for it besides WinPCNC. To get around this you are supposed to buy the full version of WinPCNC.
There is a discount for upgrading but it is not exactly cheap, and you are still in a proprietary
environment.
(I did not buy the full version of WinPCNC as I was only on a hobby budget)
2a)
There are users that know a bit more about software and electronics. They use their own kind of
USB controller based on the Arduino hardware. The Arduino is a microcontroller based on an
Atmel chip. It has an USB interface to the PC and handles the real time requirements. The connection
to the router uses the LPT card.
Obviously you also need a program to control the Arduino. The CAM program "Estlcam" is very
popular around here. The unregistered version has all the features, but paused over time.
The registered Version is only 35 Euro. It is well worth the money and updates are free so far.
Estlcam can load a DXF or STL file and produces G-Code, but it can also directly talk to
the Arduino. So the path looks like this:
Windows PC w/ Estlcam -> Arduino -> LPT card -> router
Pros:
Cheaper than upgrading WinPCNC.
Support. There are quite some people on the forum running this setup and can answer questions.
Cons:
More work to do.
You have to build an Arduino based controller and hook it up to your router via the parallel card.
(I have not tried this setup myself as Estlcam did not support the Arduino at that time)
2b)
Using the Arduino approach you can do without Estlcam if you have some other means to produce
G-Code. One of the nice features of the Arduino is that you can change its program on the fly.
There are downloadable programs that implement a G-Code interpreter, for example GRBL.
The USB port of the Arduino then looks like a serial port to the PC. With a kind of terminal
program you can directly send your G-Code to the Arduino running GRBL.
You are now outside the Stepcraft realm and have to figure out a few things on your own.
For example you have to tell the Arduino the configuration settings for your router,
mm per revolution of the stepper, number of steps per revolution, ramp up time etc.
Windows/Linux PC w/ G-Code terminal program -> Arduino w/ GRBL -> LPT card -> router
Pros:
GRBL (or Tiny-G) and the terminal programs are for free.
Freedom, open source code.
Cons:
More work to do.
You have to build an Arduino based controller and hook it up to your router via the parallel card.
It should be mentioned here that the Arduino has just a little Microcontroller chip
and the internal memory is limited. This means that the G-Code interpreters have limitations,
e.g. no support for variables.
(I did not try this setup because I didn't know about it at that time.)
3)
The next step is a full featured control program like Mach3 that interprets your G-Code. Unfortunately for
a beginner Mach3 is not exactly cheap. There is a demo version available to check if you like the
look-and-feel and if it works with your hardware, but it is limited to 500 lines of G-Code.
There is not much you can do with that. You need a PC with a parallel port. The path is:
Windows w/ Mach3 -> LPT card -> router
(I probably would have done this, but my budget didn't allow that.)
4)
And then there is LinuxCNC, formerly known as EMC2. Many years ago the US government started a project
to develop a control program for CNC machines. Later they found that CNC control is not that special
any more and the source code was made publicly available. LinuxCNC was built on that code and there is
at least a million dollar of American tax payers money in it. This is not a toy.
This section will be a bit longer, reflecting the amount of time I spent on it.
LinuxCNC is not as easy to set up as the Windows based stuff. First it is only available for Linux,
second it will not run smoothly on any PC. The problem here again are the real time requirements
as the PC directly generates the step pulses for the stepper motors. Surprisingly a state of the art
motherboard in many cases does not work well and there is a lot of discussion in the LinixCNC
community about latency.
(Side note: in principle the setup is just the same as with Mach3, a PC directly controlling the router via
an LPT port, but with Linux instead of Windows. I haven't heard about latency problems running Mach3.
Could it be that Windows is much more a real-time operating system than Linux?)
What does that latency stuff mean? The Stepcraft moves 2mm per revolution of the stepper motors doing
400 steps. That are 200 steps per millimeter. If you want to move 10mm per second, which is not very fast,
the pulse frequency is 2000Hz. The PC therefore generates a square wave, but this is done in software by
toggling a pin on the parallel port. Now the PC has lots of other things to do at the same time, and some
of them may not always be immediately interruptible. This is called latency. The result is that the
distance from one pulse to the next varies a tiny little bit. Who cares? The stepper motor does!
When you go from the USB controller to LinuxCNC the sound of the machine changes.
With newer motherboards more an more hardware features were added, some of them competing for the memory bus,
or other resource. LinuxCNC comes with a utility to measure the latency of your board and the results
can be found on the web. Fortunately you don't need to install Linux to test. There are CD images available
that allow to start Linux and LinuxCNC from a CD and do the test without changes to your harddisk.
My first CNC box was an old Dell 620 with two cores. I also had another 620 with a four core CPU, but latency
was at lot worse. From the web I got me any ISO image with Ubuntu and LinuxCNC and installed from that.
It went surprisingly smooth with no hiccup at all. LinuxCNC comes with a utility to create the config files
for your machine. After quite some time of tweaking parameters I was happily cutting my way thru all
kinds of wood and even some aluminum.
After some time I needed the Dell so I build a new controller box with an old Intel D525MW motherboard
with just an Atom CPU at 1.6GHz. I picked that board because it has a good reputation regarding latency.
Linux PC w/ LinuxCNC -> LPT card -> router
Pros:
Freedom! .. and free of charge.
LinuxCNC supports the full G-Code with variables and loops.
Highly customizable. For example I added a Sony gamepad with two analog joysticks that makes setting
home positions a breeze.
You can also change the GUI, create your own buttons and functions etc.
Cons:
A lot more work than buying a turn-key system.
You will probably have to assemble your own control box.
Sorry for the long post. These are just my two cents.
Your mileage may vary.
Firstly - super post!! A lot of hard earned experience there!!
Just another thing to add to the mix of what is already quit a complex topic...
The conversion Gcode to stepper amplifier pulses is also important.
if we assume we have a perfect reliable way of producing pulses to the control card (stepper amplifiers)..
and we assume we have Gcode for a certain profile...
assume the stepper pulse frequency (square wave 5V pulses) dictates the motor speed.
its still important how the conversion from Gcode instruction through to stepper amplifier signal happens... Gcode in itself is just a set of instructions for movement based on geometry. its not compatible with "stepper motor amplifiers"
For example - moving across the sides of a square - G01X20...
The machine accelerates in the X direction... moves and then decelerates to the corner... stops...and then (G01Y20) Y axis takes over..... same process.
its important that the pulses are "reliable" in terms of being generated (no latency etc)... but also that the instruction given is optimised for smooth motion. increasing and decreasing in frequency smoothly in a symmetrical profile. Not a huge deal for simple 2D work - but if you start to machine faster or in 3D this becomes more interesting.
See here very interesting.
LinuxCNC is not as easy to set up as the Windows based stuff. First it is only available for Linux,
second it will not run smoothly on any PC. The problem here again are the real time requirements
as the PC directly generates the step pulses for the stepper motors. Surprisingly a state of the art
motherboard in many cases does not work well and there is a lot of discussion in the LinixCNC
community about latency.(Side note: in principle the setup is just the same as with Mach3, a PC directly controlling the router via
an LPT port, but with Linux instead of Windows. I haven't heard about latency problems running Mach3.
Could it be that Windows is much more a real-time operating system than Linux?)What does that latency stuff mean? The Stepcraft moves 2mm per revolution of the stepper motors doing
400 steps. That are 200 steps per millimeter. If you want to move 10mm per second, which is not very fast,
the pulse frequency is 2000Hz. The PC therefore generates a square wave, but this is done in software by
toggling a pin on the parallel port. Now the PC has lots of other things to do at the same time, and some
of them may not always be immediately interruptible. This is called latency. The result is that the
distance from one pulse to the next varies a tiny little bit. Who cares? The stepper motor does!
When you go from the USB controller to LinuxCNC the sound of the machine changes.
if the pulse frequency at a constant speed ... say 2000Hz gets interrupted... or the time between pulses changes even slightly.. the mootor sees this as changes in speed... Therefore "corrupting the motion"...
that is why (put very well here by Opa) the best method to drive an LPT based signal is with stable operation of Linux...
The motion controllers (UC100 and others) overcome this. you can change the machines performance just by adding a controller. The communication between the PC and machine happens via USB (at up to 100kHz in the case of the UC100) and the UC100 generates the signals.
if you watch this - you can see very different performance from a machine that in effect is the same machine. Just supplied with different signal sources.
in a proprietary
environment.
Cheapest most reliable controller combination that is compatible with windows and can be stable out of box on almost any windows PC - is the UC100 / UCCNC combination. In our opinion
Equivalent levels of performance can be achieved in the open source environment using LinuxCNC and other as outlines in detail here by Opa. It would be interesting to see a direct comparison in cycle time / accuracy / performance between UCCNC and these other control methods.
Best peroformance we have been able to achieve is UCCNC running wihth motion controller.
I remember back in the 90ies I was forced to manually set irq of for example sound card or it would not be able to play sounds without glitching sound. if irq low enough higher priority in interupt. Wonder if this still possible to do for the lpt port and give it the highest priority. Or may that irq manual thing disappeared with pentium 2 or 3.
Thank you for the long and great writeup. That estl cam seems to be the choice for me then. And I can start running with Linux cnc then later upgrade to some arm 32 bit solution with Web interface.
I totally agree that any pulse train generated with hardware support, and this can be a dedicated microcontroller chip, will be much more accurate than a software loop. I just don't see the problem that needs to be solved. My little Atom based LinuxCNC box can run another router with rapids in excess of 100 mm/s at 0.00625 mm/step. That is about 16000 steps per second and I haven't noticed any lost steps. This is way beyond the 30mm/s limit of a Stepcraft. I am completely happy with the LinuxCNC performance once I had found the right board.
Hi Emil,
the LPT port does not generate interrupts here.
It is all driven by timers.
- 44 Foren
- 7,406 Themen
- 63.4 K Beiträge
- 6 Online
- 26.5 K Mitglieder