I'm not sure using PPI for scanning (via MCP23017) is even possible. You could potentially use 'Compiled JS' or maybe even inline C to increase the poll speed though: http://www.espruino.com/Compilation
If so, you could use Compiled JS or Inline C to do the scanning and you could do it really fast - I don't think there'd be a need for PPI or anything like that to help you out.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
That sounds like a great project!
I'm not sure using PPI for scanning (via MCP23017) is even possible. You could potentially use 'Compiled JS' or maybe even inline C to increase the poll speed though: http://www.espruino.com/Compilation
You mentioned scanning a 4x16 matrix in http://forum.espruino.com/conversations/352979/#comment15489686 - you should be able to do that with http://www.espruino.com/MDBT42Q without an IO expander?
If so, you could use Compiled JS or Inline C to do the scanning and you could do it really fast - I don't think there'd be a need for PPI or anything like that to help you out.