You are reading a single comment by @chris.willing and its replies. Click here to read the full conversation.
  • Could the problem have something to do with the keypad type? I ran the following code:

    function onWatchX () {
      print(`onWatchX`);
    }
    
    setWatch(onWatchX, D22, {repeat:true, edge:'both'});
    setWatch(onWatchX, D21, {repeat:true, edge:'both'});
    setWatch(onWatchX, D19, {repeat:true, edge:'both'});
    
    setWatch(onWatchX, D18, {repeat:true, edge:'both'});
    

    where the first 3 pins are connected to column outputs of 4x3 membrane type keypad and last pin is connected to a single mechanical switch. The first three watches never trigger a callback whereas the last one always triggers the callback.

    I separately tried the mechanical switch on all of three pins used above for the 4x3 keypad columns and the mechanical switch triggered the callback every time.

    This all leads me to suspect something about the keypad itself. It's the same style as the first shown in the Espruino KeyPad Matrix page. I've tried both a 4x4 and a 4x3, both of which work using the plain keypad.read() yet don't seem watchable.

About