Alright, I'm getting really close now (I think), but I'm to a point where I'm not 100% sure what the deal is. Unfortunately, the pin I needed to use for the QEI encoder module happens to be a bad pin on my SKR 1.4 Turbo apparently. I can't get it to pull high. I may have messed it up years ago trying to get neopixel LEDs working, I don't know. I set up a new pin as a digital input on the Y limit connector (Pin 1.28) and simply mapped the index pulse to that pin in my hal file. I'm seeing what appears to be a solid pulse in halscope. I'm also seeing it trigger on the phaseZ and index-enable pins. However, every time trying to do a threading operation, my program hangs at what appears to be waiting on the index pulse. I know the documentation states that the pins are pre-assigned and can't be changed, but I figured the index was handled differently since it included the remora.input.N is mapped in hal, but maybe something on the backend with the way the QEI encoder is handled. I apologize in advance if my HAL and INI look messy but everything else seems to work. I had to set my servo thread to 2000000 to get around the unexpected real-time delay error, but my latency in histogram --nobase seems great with isolcpus 1,2,3 on the Pi 4. I did try running the program with the servo period set to 1000000 in my INI just to see if that had something to do with a timing issue when registering the index-enable true when Linuxcnc expects to see it, but, it didn't work. Just about everything else seems to be working. Anyways here's my HAL again, my INI, and my config.txt