what FPGA chip you plan use?
Yes, I will install required software, and participate
I will test your solution, hardware and software
I will test, only if I can buy dev. board.
No, I don't have resources (time/money/etc)
Hello
I have one idea: an open source CNC controller, with ethernet interface.
It will use cheap microcontroller and FPGA, and work with windows and linux. The biggest problem is to implement g-code compiler in FPGA.
Processing power is not a problem any more but I don't have time to fully understand and develop software for this, although I have previous experience with CNC, ethernet microcontrollers and FPGA design.
I could post schematic (but FPGA it's not fun to solder), and current development files.
How do I make sure that project remain open-source?
Similar Threads:
what FPGA chip you plan use?
i thinks we need begin with interpolation algorithms
If anyone can implement the necessary ETH module in FPGA, it will be perfect.
Here is a good start:
http://www.fpga4fun.com/10BASE-T0.html
The real advantage of FPGA is that modules are working separately, so if something is bug-free - will not be affected if oter module is modified.
Yes. but I suspect this algorithms are already implemented somewhere, close to what we need.
1. My idea is that FPGA receive a g-code line, and interpret-it.
2. One advantage will be if the X/Y/Z/A/... coordinated are expressed in stepper's steps. It can be implemented right from the program that generates g-code.
3. A Java applet will take that file and send-it line by line to FPGA through ethernet. This way any operating system can be used.
4. Any new computer can be used, from anywhere in the local network with CNC controller (no need for parallel port, USB, or RS232)
5. There will be no need for optical isolation between computer and controller (ethernet is enough)
6. Java (although big and somehow slow) can do almost anything - from talking through ethernet to real-time animation of the CNC tool.
i found same article on fpagfun, it is usefull
http://www.fpga4fun.com/CNC.html
Have you looked at the mesanet.com 5I20 and similar FPGA PCI-cards.
They are currently being used with EMC2 and there is open-source VHDL for PWM-generation, encoder counting, step generation etc. There is also a "softdmc" motion-controller implemented for this FPGA.
On the EMC2 list there has been talk about a real-time (RTAI) port of Linux for the beagle board (http://beagleboard.org/). This could be another way of approaching embedded motion-control.
I would encourage you to seriously look what EMC2 already has and how you can extend that to what you want or how you could use parts of it.
Why wouldn't the beagle-board, running real-time linux and EMC2 qualify ?
If you want to write your own real-time operating system, g-code interpreter, graphics drivers, PID-loops, etc. etc. etc. then please go ahead, but unless you are very talented and have lots of resources (time+money) it will be difficult.
To me it seems the real-time port for the beagle-board would be an excellent way to go.
if you want to receive G-code over ethernet, interpret it, show it on screen, and run a machine you need a lot of the software components that are already there in place with a linux+EMC2 solution.
IMO working on an fpga-based kick-ass I/O module for the beagle-board would be time more well spent.
There has been a need for this for awhile. Over the last 20 years, I have had alot of these pc based cnc controllers, on many different machines. The best ones to this date, I have had, were were centriod, linux based, and emc linux for sure.
Build a cnc controller the will cut parts, and do it well.
By far, the controller on HAAS mill is just down right awesome.
Some of the best applications I have ever ran, were open source, seems like the open source people really get programming.
Good luck with your venture
HAAS VF3-5 axis trunion
Mastercam X3
While I will wait for your opinion, please, comment about my idea:
- Software can be developed on a Digilent Basys/Basys2 boars (already have-it)
http://www.digilentinc.com/Products/...791&Prod=BASYS
Two days ago, it was 59$ for academic use. Now it's 89$!
- You must install ISE Webpack for FPGA any other idea is welcomed
*it's not that I really hate-it, but...
*you need to download 2G of software
*install-it as 5G in program files
*if you want to install the latest update, you need 10G more on program's partition.
*and you will use at most 1G of those files....)
-Project can be a mix of low-level/hierarchy schematics and vhdl/verliog language
-Programming FPGA - with USB cable from Digilent board
-Schematics of the board can be downloaded from Digilent site -some parts of the schematics can be reused in final design
-I will use small DRV8811 drivers, with small bipolar steppers - just for fun
I will start seriously the work, in january 2010. Until then - documentation stage
Get yourself a copy of altium to evaluate, its fpga dev tools are far more user friendly then the webpack by itself, and they give away a 30 day trial on their website. Also they support c-to-hardware compiling, that might get you round the limitations you are facing with using a micro for this job.
personally I would go for an fpga card with a PCI interface on it, as that way you could theoretically add support for EMC at a later date, whilst a USB solution would be problematic for that due to rt-linux support.
EDIT: personally this kind of approach doesn't appeal to me, as i am looking to move towards having drives and IO on a standard fieldbus like EtherCat, and a small embedded PC for machine control. The benefit of this is you don't have to bit bang steps out of the printer port, so your timing becomes less problematic, as you are commanding the drive setpoints directly over ethernet. I have heard of people getting 20khz position update rates over ethercat, which is more then enough for any cnc machine. You can get off the shelf interface ICs that speak ethercat, and the host software is free, with an open source implementation available.
I have tested once: like-it, but stability is a problem for Altium (at least in my case). And I can't be sure that its output code is optimal for used FPGA.
On the same idea you can use a high-end acquisition board, and Matlab, Labview, or any other software.
I don't want a CNC controller based on a PC! I don't care about Mach, EMC, RS232, or USB. All this require using a computer, with a software package installed; and in most of the situations, that software is licensed on that particularly hardware PC, so you are close-linked to that PC.
If my idea with CNC as eth. server will be implemented, all you will need to run the CNC will be a web browser with Java; nothing more.
From experience altium's output is exactly the same as using the vendor build tools, it actually runs them behind the scenes.
So you still need a dedicated pc for each machine tool, just one that now does nothing more then run a browser? And to get to this stage you need to rewrite the whole of mach's UI functionality yourself.
Good luck, i think you have a lot of work ahead of you.