The Mesa Electronics 5I25 FPGA card can implement a vast number of hardware I/O controllers, but I’ve only set up the few Kicad symbols required for my simple Sherline mill. The LinuxCNC hostmot2 doc gives the details.
The hm2_5i25.0
component (upper right) carries the pins and functions pertaining to the card itself:

If you have two such cards, you’ll also have an hm2_5i25.1
component. Kicad will annotate both with a zero, which Kicad-to-HAL
then strips off before attaching the pin names.
The read
and write
functions must attach to the first and last positions of the servo-thread
component, respectively, to make the thing work correctly.
The read_gpio
and write_gpio
functions are normally not connected; the *
prefix suppresses a Kicad-to-HAL
message about unconnected named pins. The code will strip the asterisk before connecting the pins, but that part is … lightly tested.
Similarly, the schematic shows the watchdog output connected to one of the on-card LEDs. I’m not sure how to test that and wouldn’t see it inside the PC case; it might work as described.
A hm2_5i25.0.gpio.000
Kicad symbol (middle) collects all of the HAL pins related to a single 5I25 GPIO pin; edit the three-digit pin identifier to match the hardware pin. Although the out
and in
names look backwards, they indicate the hardware direction: you write to the out
pin and read from the in
pin.
The Sherline uses four stepgen blocks, so that’s the only other Kicad symbol on offer:

The nets connecting those three components come directly from the LinuxCNC pncconf
configuration utility. Fancier machines surely require more attention to the coefficient details.
Connecting a true
parameter to the step.invert_output
and direction.invert_output
pins flips the polarity of those signals. The pins are aliases of the corresponding GPIO invert_output
pin, with the key advantage of not requiring you to figure out which GPIO pin corresponds to the FPGA’s output pin for each axis.
The 5I25 card requires a pair of loadrt
components to load the drivers and configure the FPGA:

The one-page demo schematic uses the same 5I25 configuration as the Sherline, with the LEDs driven by gamepad buttons to provide something to look at:

I should force-fit an LED into the Sherline driver box just to have something easier to see.
One thought on “Kicad-to-HAL: Mesa Electronics 5I25 FPGA Card”
Comments are closed.