HM2_7I90(9)

πŸ’– HM2_7I90 πŸ’–

okay bestie, sit down, we're talking about hm2_7i90 β€” a LinuxCNC HAL driver for the Mesa Electronics 7i90 EPP Anything IO board with HostMot2 firmware. she's giving parallel port realness and honestly? iconic. πŸŽ€


✨ SYNOPSIS ✨

loadrt hm2_7i90 [ioaddr=N[,N...]] [ioaddr_hi=N[,N...]]
       [epp_wide=N[,N...]] [debug_epp=N[,N...]]
  • ioaddr [default: 0 (parport0)] β€” this is the base address of the parallel port, bestie. πŸ’… and here's the lil glow-up: the driver counts how many ioaddr indexes/addresses you gave it to figure out how many boards to go looking for. it used to count config strings instead, but for the 7i90 a blank config string is, like, completely acceptable. so yeah. not that anymore.
  • ioaddr_hi [default: 0] β€” the secondary address of the parallel port, and she's the one who sets EPP mode. 0 means "just use ioaddr + 0x400", slay. ✨
  • epp_wide [default: 1] β€” set this to zero to disable "wide EPP mode". and what does wide mode do? she allows 16- and 32-bit EPP transfers, which can reduce the time spent in the read and write functions. periodt. but ⚠️ this may not work on all EPP parallel ports, so vibe check your hardware first.
  • config [default: ""] β€” HostMot2 config strings. all the deets live in the hostmot2(9) manpage, go read her. πŸ“–
  • debug_epp [default: 0] β€” developer/debug use only!! not me telling you to leave this alone πŸ™ˆ enable debug logging of most EPP transfers.

🌸 DESCRIPTION 🌸

hm2_7i90 is a device driver that interfaces the Mesa 7i90 board with the HostMot2 firmware to the LinuxCNC HAL. that's the whole assignment and she ate. πŸ”₯

here's the tea: the 7i90 firmware is stored on the 7i90 itself. the driver does not program it at load time, no cap. so if you wanna change that firmware? that's a job for the mesaflash program. πŸ’«

and the driver talks with the 7i90 over the parallel port, via EPP. yes, the parallel port. she's vintage, she's reliable, we love her. 🫢

πŸ¦‹ Communicating with the board πŸ¦‹

the 7i90 communicates with the LinuxCNC computer over EPP, aka the Enhanced Parallel Port. this provides about 1 MBps of throughput, and the communication latency is very predictable and reasonably low. lowkey perfect for realtime. ✨

the parallel port must support EPP 1.7 or EPP 1.9. EPP 1.9 is preferred, but EPP 1.7 will work too, she's not picky. and heads up β€” the EPP mode of the parallel port is sometimes a setting in the BIOS, so go poke around in there if things are acting up. πŸ’…

⚠️ NOT ME BEING THE BEARER OF BAD NEWS ⚠️ 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 7i90. you have to find another card, sorry. 😭 that's just how it is, fr fr.

EPP is very reliable under normal circumstances, but bad cabling or excessively long cabling runs may cause communication timeouts. πŸ’€ the driver exports a parameter named hm2_7i90.<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 7i90 board. setting io_error back to False makes the driver start trying to communicate with the 7i90 again. so like, you can fix it, you just have to tell her to try again. πŸ₯Ί

🚨 access to the EPP bus is not threadsafe: only one realtime thread may access the EPP bus. one. single. thread. don't test her. πŸ‘‘

πŸ‘€ SEE ALSO πŸ‘€


πŸ“œ LICENSE πŸ“œ

GPL


and that's the whole page, bestie! πŸŽ€ this lil slice of LinuxCNC Documentation is dated 2013-10-27 and goes by HM2_7I90(9) β€” go forth and EPP responsibly. mwah. πŸ’–βœ¨πŸ¦‹