Have you looked at the RepRap code? It does everything you should need for a 3 axis milling, I have been porting that over to the mBed but have had troubles.
Some of the Gcode generated by a package I use (and other packages) spline circular moves into loads of little linear moves, This is fine usually but as we need to either feed in GCODE line at a time over RS232 or (as I have been playing with) read the lines in through the Local file system. With all these tiny (< 0.1 mm) the mBed can't keep up with all the processing, accel calcs and stepping.
I would also like to know how to use the aditional timers (no one resonded to my post asking for help! ). A simple idiots guide will do for now!!!! I think with a timer for each axis would be the best approach and would make linear interpolation very simple removing an amount of processing.
Again If it was in some way similar to the RepRap firmware I would do alot more processing out of the moves. By this I mean read the whole file line at a time parse & process then then generate a second file to be read from on the fly during the motion routines. It would contain step & output data only. Eg, XXX,YYY,ZZZ,###. The XYZ would be number of steps for each axis (pos or neg) rather than measurment units for the given move followed by a handful of bits to set output states or PWM values for spindles/lasers etc.
Below is a photo I laser etched with a 150mw!! Blu-Ray DVD diode. The machine was powered with an mBed!! Was dead easy as only contained 2 axis linear moves. The GCODE for it was generated by a VB app I wrote that uses error diffusion dithering to create the darker/lighter areas.
Here's another etching some tufnell!
Here's a nice render of the machine.
I have been busy working on a mbed based CNC controller following the good work of the people at RepRap...
I already have a working solution based on the more basic version of their GCODE interpreter (modified for a CNC router (subtractive process)) ported over to the mbed however....
It lacks functionality such as lookahead, ramping etc,
I have an Arduino version of the interpreter which does this but i'm struggling to port over to the mbed (as it is an uphill struggle for one novice man!) as it uses timer interupt routines for stepping etc. If anyone is interested in a CNC controller (Can interpret Gcode from a file and perform 3 axis linear interpolation and 2 axis circular) please let your interest known to my self! (michael at mickduffin.com) or indeed here on this thread!
I have sucsessfully used the basic version I have to controll a 3 axis machine, It can Mill, engrave, laser etch.... whatever!