Still in testing phase (19-APR-2017)
This web page still under development as well....
Runs MachineKit control program on a BeagleBone Black processor board and Xilinx FPGA programmed with Mesa Hostmot2 firmware.
Uses pre-programmed uSD card for MachineKit control program storage (on board BBB emmc disabled as those pins are used by the XSMIO to access the processor GPMC system bus).
BBB HDMI and USB-A connectors accessible to allow a HDMI monitor and USB Keyboard and Mouse to be used through a user supplied USB hub. USB thumb drives can also be plugged in to the hub for removable storage. BBB Ethernet port is available for use for web access (though not recommended for use when running a CNC program). The BBB USB-B port is also available.
Four axes of Servo control:PWM/DIR out and single ended incremental encoder inputs. (See diagram below).
Each encoder input connector also has two discrete inputs (typical usage limit/home switches or fault inputs).
Single ended incremental encoder input for Spindle to enable CNC threading and tapping.
Spindle Control Connector with FWD, REV, and PWM Speed outputs and a Fault input.
MPG hand wheel input with A/B single encoder inputs and RXD/TXD UART I/O for switch input (axes select, jog rate select, and discrete button inputs).
Connector for Flood and Mist control outputs.
24 Pins of programmable I/O from Xilinx FPGA that can be programmed to mate with Mesa Electronics I/O daughter boards.
Requires a 5V power supply of around 4 Amps. A typical smaller wall-wart power supply for the BBB is around 2.0A and is not satisfactory for the system when powering all of the axis encoders and other I/O interfaces.
This BBB/XSMIO combination, with the addition of a USB Hub, USB keyboard and Mouse, and an HDMI monitor (with uHDMI connector) provides the user front end of a small servo based system. Add appropriate servo drives and servo motors with incremental encoder outputs for a minimal servo system. Add in MPGs for easier manual control along with limit/home switches and STOP switch for more safety. Finally, add in spindle speed control and encoder inputs for tapping/threading work.
The FPGA will be programmed with a bit-file by the MachineKit control program. The current bit-file does not program the extra FPGA I/O for specific use (only general I/O), and programs the other I/O for use as shown in the drawing above. Other bit-files can be generated (i.e. for using specific Mesa cards on the FPGA port, or generating STEP/DIR signals instead of PWM for servos). Matching HAL setup files link the FPGA hardware profile with MachineKit control program. Currently HAL and INI files for the board are only for servos (steppers system require different bit-file and HAL/INI files).
- The discrete outputs (PWM/DIR/relay control, etc.) are buffered by LVC541 drivers operating at 3.3 volts. These signals should be isolated from high voltage systems by using isolators on the device end (i.e. Digital Signal isolators or opto-isolators on the servo amplifier or relay board.
- The discrete inputs (limit switches/encoders inputs, etc.) are buffered through LVC541 buffers and have RC filtering on them. These signal inputs are 5V tolerant, but are not isolated (none of the signals on the board are galvanically isolated to the BBB or FPGA).
- The FPGA I/O are buffered through a FET switch, but are otherwise directly connected to the FPGA itself with no other buffering, filtering or isolation.
As of 19-APR-2017 the board has only been used to drive servo motors with encoder feedback on a 3 axis Taig machine. The MGP inputs are currently being tested.
Future testing will involve:
(1) Limit Switch operations.
(2) STOP switch operations.
(3) Spindle PWM speed control.
(4) Spindle Encoder input for threading.
(5) Coolant Flood and Mist control outputs.
(6) FPGA general I/O port testing.
(7) General rubustness testing.
Any questions regarding the product, please e-mail.