Thanks for the reply!

I built my code based in large part on the tables at the bottom of that page detailing the instructions and expected responses. I also tried to do a full initialization based on the excel sheet that curious inventor linked to.

I will probably borrow a scope from work and try to figure out what’s going on with the communication. I don’t have any debug outputs set up, and running the in-circuit debugger is only so effective for items like this since breaking the program to read memory values will cause communication problems (as you know, since you added the code to ensure the controller is pinged often enough.)

If I ever do find the issue I’ll report back here (and to curious inventor). The PS2 must be quite flexible. I wonder if Sony ever released the interface specification to 3rd party vendors, or if they just hacked the protocol and went with what worked.