HostMot2 is an FPGA configuration developed by [Mesa Electronics] for their line of "Anything I/O" motion control cards. The firmware is open source, portable and flexible. It can be configured (at compile-time) with zero or more instances of each of several Modules: encoders (quadrature counters), PWM generators, and step/dir generators. The firmware can be configured (at run-time) to connect each of these instances to pins on the boards' I/O headers. I/O pins not driven by a Module instance revert to general-purpose bi-directional digital I/O.
Several pre-compiled HostMot2 firmware binaries are available for the different Anything I/O boards. (This list may be incomplete, check the LinuxCNC distribution and Mesa's web site for more up-to-date firmware lists.)
7i43 (48 I/O pins):
5i20, 5i23, 4i65, 4i68 (72 I/O pins):
5i22 (96 I/O pins):
The LinuxCNC support for the HostMot2 firmware is split into a generic driver called "hostmot2" and two low-level I/O drivers for the Anything I/O boards. The low-level I/O drivers are "hm2_7i43" and "hm2_pci" (for all the PCI- and PC-104/Plus?-based "Anything I/O" boards). The hostmot2 driver must be loaded first, using a HAL command like this:
loadrt hostmot2See the hostmot2(9) man page (online [here]) for details.
The hostmot2 driver by itself does nothing, it needs access to actual boards running the HostMot2 firmware. The low-level I/O drivers provide this access. The low-level I/O drivers are loaded with commands like this:
loadrt hm2_pci config="firmware=hm2/5i20/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=1"
The config modparam is described in the [hostmot2 man page].