misc: It's starting to feel like it's ready for some kind of module abstraction... To standardize the semantics and make it easier to think about. Pull out the common code. add sample configs in configs/mesa-hostmot2 add firmwares in /usr/share/emc/firmware/ add support for the 5i22 next bfload add "bfload reset" 5i22 has wrong subdevice ids? SWP says it works on his 1.5M board add support for all the other PCI cards epp via the pci card doesnt work, epp via the onboard port works use pciutils-dev instead of upci? upci seems to be working fine translation ram (tram): just do it then do dma need to deal with the "strobe" bit encoders: use shielded encoder wires! performance: my motor shaft is spinning at 8K rpm, which is 133.33333 revs per second The encoder has 256 lines, so 1024 transitions per revolution, so 136533 transitions per second sampling at twice that would mean ~300 Ksamples/sec with the "quad filter" set to 3 clocks, the low-level input needs about 1 Msample/sec. with the "quad filter" set to 15 clocks, the low-level input needs about 5 Msample/sec. it's actually running at 50 MHz, so that shouldnt be a problem... The firmware is storing the quadrature count in a 16-bit register, which I'm reading about every ms (1 KHz) at 140K transitions/second, that should be max 140 counts per reading, which is *fine* How is encoder.XX.velocity computed? missing stuff: fancy velocity computation pins: velocity reset index-enable parameters: max-index-vel (optional) velocity-resolution (optional) functions: CDI just has a read() pwmgen: how to set pwm rate in firmware? Add support for different pdm mode (selected by the pwm-freq parameter...) what should the hal pwmgen scale parameter do exactly? same as the software hal component: output = (val / scale) + offset ioport: move inverted output from driver to fpga stepgen: the software stepgen uses float seconds for the timing, but that cuts off at like 100 ns, shouldnt it be u32 seconds instead? or wait, is it float nanoseconds? position commanding is very much hacked right now... setting .scale to 1600 (1600 steps/rev) and then commanding position to 1600 revs causes chaos, it runs in the wrong direction, some overflow bug not handled there... support maxvel support maxaccel support other stepping modes support velocity control watchdog: 7i43: can't get it to work with the pci card parport... test with the 400K board again 5i20: turn hm2_5i20 driver into a generic PCI driver: hm2_anyio_pci issues with the 2006-02-06 firmware: svst4_4: don't know what to do with this MD (LEDs?): m7i43_hm2: Module Descriptor 6 at 0x0488: m7i43_hm2: General Function Tag: 128 ((unknown-gtag-128)) m7i43_hm2: Version: 0 m7i43_hm2: Clock Tag: 1 m7i43_hm2: Instances: 1 m7i43_hm2: Base Address: 0x0200 m7i43_hm2: -- Num Registers: 1 m7i43_hm2: Register Stride: 0x00000100 m7i43_hm2: -- Instance Stride: 0x00000004 m7i43_hm2: -- Multiple Registers: 0x00000000 planned milestones: 1.0 add support for all other PCI cards IOPort connector names for the still-unsupported cards: 4I65: P1,P3,P4 4I68: P1,P2,P4 5I22: P2,P3,P4,P5 5I23: P2,P3,P4 add optional tram support add DMA support for PCI cards with TRAM llios should support multiple boards each complete support for encoder complete support for pwmgen complete support for stepgen complete support for gpios complete support for watchdog