Skip to content

Commit d7dfe9c

Browse files
authored
Merge pull request #10382 from dhalbert/keypad-rp2350-doc
improve keypad doc re RP2350 E-9 erratum
2 parents 35b202f + 7f1beb6 commit d7dfe9c

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

shared-bindings/keypad/KeyMatrix.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,14 @@
6767
//| in the respective state for ``debounce_threshold`` times on average.
6868
//| Successive measurements are spaced apart by ``interval`` seconds.
6969
//| The default is 1, which resolves immediately. The maximum is 127.
70+
//|
71+
//| .. warning:: On Raspberry Pi RP2350, using ``columns_to_anodes=False``
72+
//| normally depends on the internal pull-down resistors.
73+
//| This will not work, due to an RP2350 issue.
74+
//| The easiest fix is simply to swap the ``row_pins`` and ```column_pins`` and to set
75+
//| ``columns_to_anodes=True``. This requires no external components.
76+
//| An alternative is to add external pull-downs of 8.2 kohms or less, but that will draw more current.
77+
//| See the Warning in `digitalio` for more information.
7078
//| """
7179
//| ...
7280
//|

shared-bindings/keypad/Keys.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,12 @@
6969
//| in the respective state for ``debounce_threshold`` times on average.
7070
//| Successive measurements are spaced apart by ``interval`` seconds.
7171
//| The default is 1, which resolves immediately. The maximum is 127.
72+
//|
73+
//| .. warning:: On Raspberry Pi RP2350, using ``value_when_pressed=True`` and ``pull=True``,
74+
//| to enable using the internal pull-down resistor, will not work, due to an RP2350
75+
//| hardware issue. Instead, wire the switch to be ``value_when_pressed=False``, or add
76+
//| an external pull-down resistor of 8.2 kohms or less.
77+
//| See the Warning in `digitalio` for more information.
7278
//| """
7379
//| ...
7480
//|

shared-bindings/keypad/__init__.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ MP_PROPERTY_GETTER(keypad_generic_events_obj,
6565
//| due to a GPIO hardware issue that causes excessive leakage current (~120uA).
6666
//| A pin can read as high even when driven or pulled low, if the input signal is high
6767
//| impedance or if an attached pull-down resistor is too weak (has too high a value).
68-
//| See the warning in `digitalio` for more information.
68+
//| See the warnings in `keypad.Keys`, `keypad.KeyMatrix`, and `digitalio` for workarounds and more information.
6969
//|
7070
//| .. jinja
7171
//| """

0 commit comments

Comments
 (0)