Hi, thanks, I looked at grbl and liked it. Seems pretty easy and cheap to implement (and fun to play with!).
Have a couple of questions, if you don't mind:
1) It seems though that grbl it only supports 3 steppers. I need 4 as I want to also rotate the item that I want to dispense the glue on.
On the other hand I see some kits with 4 drivers available, for example: http://blog.protoneer.co.nz/arduino-cnc-shield/
I did not dig deep into it just yet, but I assume the 4th stepper can be added somehow?
How did you do 6 axes? What version of the CNC Shield would you recommend?
I believe the protoneer 4th axis is a slave axis - i.e. it runs in parallel with one of the other axes. For example some machines will have dual steppers on the X axis. Alternatively it can be jumpered to used the spindle output pins for an A-axis, but this isn't supported as standard so would need some hacking.
On an Arduino Mega you have many extra pins available, so it isn't hard to hack the code to add more axes. I've got a hacked 6-axis version of grbl 0.9 that you can look at (shouldn't be hard to re-apply to grbl-Mega 1.1)
https://github.com/electrokean/grbl/tree/6-AXISMost of the stepper shields do not make use of the optimised pin allocation used by grbl to get high performance (up to 30kHz) so I have generally built my own shields, especially for the 6-axis Mega (most mega shields are for Marlin which uses completely different, and sub-optimal, pinouts).
2)Is there any G codes to activate some digital outputs (to switch the dispenser on and off, for example) ? You said i need to use coolant enable/disable for that?
You could use the spindle enable or coolant enable outputs to drive a relay (through a transistor) to trigger the dispenser, or possibly even just an optoisolator. Recent grbl can also do PWM output for spindle speed control. On the Mega you could also hack in additional features if needed, but the Arduino Uno is pretty maxed out in terms of I/O and program memory.
3) Is there any limit switches support?
Yes, standard grbl supports 3 limit inputs (X/Y/Z), and you can handle more on a Mega.
4) Is there a (free?) software that can converts the movement path one creates in the software (like for example a 3d- curve in solidworks) into a sequence of G-code to move the dispenser head?
If you want to do it in Solidworks, I have no idea. If you can afford Solidworks, then generally you pay for something like SolidCAM.
There are plenty of free or open programs that can generate 2.5D g-code, like Inkscape, but more complex 3D paths usually involve paid software. You could potentially export in STEP or STL format into a free program. I'd suggest looking at Fusion 360 also (not free, but low cost).
Thanks!
PS I have programming experience in C and Asm for micro controllers (even though it was long ago). Did not touch arduino yet, but don't think I will have any issues with it.
If you have some programming background, then most of this is relatively easy. Heaps of help just a google search away. For some similar projects that I've worked on, I was basically an advisor helping the people who did the final implementation. They had very little programming experience, being from other engineering disciplines, but once the basic framework was implemented they just tweaked the timing and paths.
Just don't underestimate the time you'll need to get up to speed and get it working reliably. As packetbob mentions, you may need to adjust your dispensing method if you can't get reproducible results due to external factors like temperature. I've found viscosity of solder paste is much more variable than glue, and that really affects dispensing.