I’m making a “shield” for an Arduino Due with the (TinyG) ‘g2’ firmware. Used in conjunction with an OpenBuilds OX.
So far I have 4 outputs: 1 x stepper X, 2 x stepper Y and 1 x stepper Z. I have 6 inputs: Xmin, Xmax, Ymin, Ymax, Zmin and Zmax.
What else should I include? What do you have on your CNC controllers?
Note: I use a VFD to drive the spindle, so no use for a PWM signal to control spindle-speed.
Sorry, “shield” is too big a word here
Making it on proto-pcb (but hey, you never know, it could be made into a real shield someday) - should have stated that…
About buck-converter: see your point. I have a 36V PSU (steppers), a 12V PSU (sensors) and a 5V PSU (for the Due and other stuff).
What I/O do you use for your CNC? Any buttons? (beside emergency stop)
@Jozsef_Tamas_Szabo I’ll be using the ‘g2’ controller-firmware for Arduino Due (that part is not for debate 
Nice, is the gshield fully open source? It would give a good place to start from once you are done with the proto.
@Jarrid_Kerns Sure, I’ll find a place to publish the schematic (no PCB layout).
Hardware cycle start and feed hold are nice to have.
@Eric_Edwards Thanks for the input. Had the same thoughts 
Been testing the proto-shield without the Due plugged in. Good thing I did that: the proto-pcb had a short between three traces - it resulted in partly melted plastic on the test-lead I connected to a 3.3V PSU (!) Had it been the Due that supplied that 3.3V it would probably have destroyed it …
Michael - take a look at the latest code in g2 Core - edge branch. The IO sub-system has been re-written so that there are just an arbitrary number of inputs that can be linked to any function (e.g. limit, shutdown, interlock, homing, probing, user defined functions, etc.) If you are making a shield then you can take advantage of this by breaking out the IO in a more general fashion than just Xmi/Xmax/Ymin… There are some other functions you should explore, like exposing the SPI lines as an alternative to USB control (something we are working on). Let me know if you want to chat about this further.
Next step was actually to download the latest edge version and assign pins 
Do you know if there’s an existing “board” file for the pin assignments as shown in the wiki: https://github.com/synthetos/g2/wiki/Arduino-DUE-Pinout-for-tinyG2
@Alden_Hart My VFD takes a 0-10VDC signal for spindle-speed. Any thoughts on how to create such a signal? SPI DAC perhaps?
Yes. I’d start with the gShield board file and go from there. The gShield only pins out 3 axes and limited IO, but the Due is capable of 6 axes and a LOT of IO.
We will be updating edge over the next few weeks with a lot of stuff we’ve been working on, so be sure to check back.
Exactly what I’ve been doing so far
Thx.
You could put an op-amp on an analog output. The G2 code doesn’t actually use the DACs, it uses timer outs to PWM. The vrefs are a 500 KHz PWM signal sent to and RC pair. This provides a really smooth yet responsive signal with almost no external parts. You could take that and power an op-amp circuit to make the voltage run from 0-10 volts. There are 5 or 6 vrefs available, so you could just grab one.
It’s all accessible through the Motate layer