CNC FPGA

This is the board I designed to interface a PC running Linux and EMC2 with the Industrial Hobbies milling machine I converted to servo-based CNC operation. It is compatible with the Pluto-P servo driver in EMC2.

These are photos of the first prototype raw boards:

And here's a photo of one of them loaded:

Features

User View

  • 25-pin male D-shell connector in parallel with 26-pin box header for connection to PC parallel port
  • 4 15-pin female D-shell connectors for servo channels
  • 9-pin female D-shell connector for misc signals
  • barrel connector for 9-12 volt DC power input
  • dual-color LED, green when PC heartbeat present, red when not
  • green LEDs on each of the three power supply rails
  • RC low-pass filtering on all input pins
  • 5.1 x 2.5 inch 4-layer board, fits in Hammond 1590P1 die-cast aluminum box

Developer View

Artifacts

The design files can be found on git.gag.com in the project hw/cncfpga.

Issues

Notes about things learned or observed during debugging:

  • The RC networks for the input pins are closer to the stacked 15-pin connectors than I'm really comfortable with. Nothing is making contact or shorting, but I'd be tempted to increase the spacing on a future board cut.
  • The SMT 330uF cap is kind of a pain, and doesn't seem all that mechanically solid after reflow. Switch this for a through-hole part in the future?

Future Plans

As of late December 2011, the first prototype v0.1 board has been loaded and is being debugged and tested. If the board "works for me", then I'm likely to make enough of these to sell to others who are interested.

Unfortunately, in June of 2013, our house fell victim to the Black Forest Fire. The prototypes of this board were lost, along with everything else. I do not know if or when I might ever get back to this...