My project is a G-CODE interpreter for the Arduino Mega Board to build a small CNC machine. It is mostly programmed in C, with some extra libraries native to the arduino. The idea is to use the FIRMATA protocol to comunicate with android or a computer (flash programs) so that the arduino board can recieve packets of g-code lines of command and then proccess those commands so that the arduino board can move at least 3 stepper motors (Output only has to be pulse and direction)..the idea is to do it with 4 or even 5 stepper motors. The main idea of doing it by packets is because i whant the interpreter to be able to decode several lines at once instead of one by one. The g-code interpreter needs to compute lineas interpolation and circular interpolation for different types of movements. Also, the program will have to be able to calculate acceleration and decceleration, so that the stepper motors can stop were they are supposed to, since precition is important.
Also, besides the g-code interpreter, the program needs to keep track of several sensors like, smoke detector, ultrasonic detector, heat detector, or any other kind (we could possible add more sensors along).
All of this is going to be used in a home buildt cnc machine with 3-5 axis....we hope to eventually do the 5 axis later, so it will be goot to structure the program so that we can add more axes (up to 5 or 6) without changing much in the firmware.
It will be nice if the program could be made in a way that allows for additional functions in the future
I am available to colaborate with you on the development of the program, any information needed i can provide it. I would be greatly pleased if you could help me develop this software.