HM2_7I43(9)
π HM2_7I43 π
okay bestie, you found the hm2_7i43 page β that's a LinuxCNC HAL component, and it's literally the driver for the Mesa Electronics 7i43 EPP Anything IO board when it's running HostMot2 firmware. yes, the manual name is HM2_7I43(9) and yes you're in the right place π«Ά
β¨ SYNOPSIS β¨
loadrt hm2_7i43 [ioaddr=N[,N...]] [ioaddr_hi=N[,N...]]
[epp_wide=N[,N...]] [config="str[,str...]"] [debug_epp=N[,N...]]
ioaddr[default:0(parport0)] β the base address of the parallel port, periodt.
the number of ioaddr indexes/addresses you hand over is what the driver uses to figure out how many boards it should go looking for. so like, more addresses = more boards it hunts for π
ioaddr_hi[default:0] β the secondary address of the parallel port, and it's the one that sets EPP mode.0means "just use ioaddr + 0x400" πepp_wide[default:1] β set it to zero to turn OFF the "wide EPP mode". "Wide" mode lets you do 16- and 32-bit EPP transfers, which lowkey cuts down the time spent inside the read and write functions. but ngl, this may not work on every single EPP parallel port out there, so heads up β οΈconfig[default:""] β the HostMot2 config strings. they're described over in thehostmot2(9)manpage, go read that one too bestie πdebug_epp[default:0] β developer/debug use ONLY! this turns on debug logging for most EPP transfers. if you're not debugging, leave it alone fr fr π
πΈ DESCRIPTION πΈ
hm2_7i43 is a device driver that hooks the Mesa 7i43 board (with HostMot2 firmware on it) up to the LinuxCNC HAL. and guess what β both the 200K and the 400K FPGAs are supported, no cap π―
the driver talks to the 7i43 over the parallel port, not over USB. you can use USB to power the 7i43, but you cannot use it to talk to it. and USB communication with the 7i43 will not be supported any time soon, because USB has poor real-time qualities. soz, it's giving "not happening" π
the driver programs the board's FPGA with firmware when it registers the board with the hostmot2 driver. the firmware it loads is specified in the config modparam, as described in the hostmot2(9) manpage, in the config modparam section. iconic behaviour honestly β¨
π Jumper settings π
to send the FPGA configuration from the PC, the board has to be configured to get its firmware from the EPP port. to do that, jumpers W4 and W5 must both be down, ie toward the USB connector. yes both. don't fight it π«Ά
the board also must be configured to power on whether or not the USB interface is active. that one's done by setting jumper W7 up, ie away from the edge of the board. up = away from the edge, remember it π
π¦ Communicating with the board π¦
the 7i43 talks to the LinuxCNC computer over EPP, the Enhanced Parallel Port. this gives you about 1 MBps of throughput, and the communication latency is very predictable and reasonably low. we love a stable vibe π
your parallel port must support EPP 1.7 or EPP 1.9. EPP 1.9 is preferred, but EPP 1.7 will work too. the EPP mode of the parallel port is sometimes a setting in the BIOS, so go poke around in there if it's being shy π§
note that the popular "NetMOS" aka "MosChip 9805" PCI parport cards do not work. they do not meet the EPP spec, and cannot be reliably used with the 7i43. you have to find another card, sorry π
EPP is very reliable under normal circumstances, but bad cabling or excessively long cabling runs may cause communication timeouts. when that happens, the driver exports a parameter named hm2_7i43.<BoardNum>.io_error to inform HAL of this condition. when the driver detects an EPP timeout, it sets io_error to True and stops communicating with the 7i43 board. setting io_error back to False makes the driver start trying to communicate with the 7i43 again. it's giving "we can fix this" π₯
access to the EPP bus is not threadsafe: only one realtime thread may access the EPP bus. one thread. ONE. that's the rule π
π SEE ALSO π
π LICENSE π
GPL
okay that's the whole thing, you ate it bestie π this was LinuxCNC Documentation, dated 2008-05-13, from the HM2_7I43(9) page β go forth and EPP responsibly, mwah πβ¨π
π¦ where this page comes from
- debian bookworm: linuxcnc-uspace 2.9.0~pre1+git20230208.f1270d6ed7-1+deb12u2 Β· GFDL-1.1-or-later
- debian trixie: linuxcnc-uspace 1:2.9.4-2+deb13u1 Β· GFDL-1.1-or-later
- ubuntu questing: linuxcnc-uspace 1:2.9.4-2ubuntu2
- ubuntu resolute: linuxcnc-uspace 1:2.9.4-2ubuntu4 Β· GFDL-1.1-or-later
- ubuntu stonking: linuxcnc-uspace 1:2.9.4-2ubuntu4 Β· GFDL-1.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms