avatar

klightspeed

Member Since: June 28, 2011

Country: Australia

  • One thing to consider is that this increases the wakeup time from 0.75us (6 clocks) to about 60us. It also won’t work with non-P variants of the ATMega microcontrollers.

  • The comment for the row pins in the source posted in the article was wrong. it should say: row pins are 3, 7, 6, and 1 of the keypad

    You’ve used 1-based indexes for your keypadPins indexes, where you need 0-based indexes.

    int rowPins[4] = {keypadPins[1], keypadPins[6], keypadPins[5], keypadPins[3]}; // row pins are 2, 7, 6, 4 of the keypad
    int columnPins[3] = {keypadPins[2], keypadPins[0], keypadPins[4]}; // column pins are pins 3, 1, 5 of the keypad
    

    Your keypad is:

     1 | 2 | 3  - 2
    ---+---+---
     4 | 5 | 6  - 7
    ---+---+---
     7 | 8 | 9  - 6
    ---+---+---
     * | 0 | #  - 4
     .   .   .
     3   1   5
    

    while you had programmed it as:

     2 |   | 0  - 2     1 | 2 | 3  - 3
    ---+---+---        ---+---+--- 
       |   |    - 7       |   |    - 8
    ---+---+---        ---+---+---
     3 |   | #  - 6       |   |    - 7
    ---+---+---        ---+---+---
     1 |   | *  - 4     * | 0 | #  - 5
     .   .   .          .   .   .
     3   1   5          4   2   6
    
  • You need to connect BATT to USB to get power to the device from the USB connector.
    I wonder if SparkFun could change the switch in future versions from a simple on-off switch to a source-select switch - i.e. select between LiPo and USB power.

No public wish lists :(