summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Epler <jepler@gmail.com>2021-01-07 14:11:14 -0600
committerJeff Epler <jepler@gmail.com>2021-01-07 14:11:14 -0600
commit30c6dd3f76e7d3c0f8b3a6eb20de627b097dbf09 (patch)
tree5e79dc8cafbaa623462be7acf01e605d5f706aae
parent42cad23dea7c4b6fdfb7a8a294cfeb8048f74cac (diff)
parentf6f1ef7dc26f9e253f09d48a8ec822a2f5e805fb (diff)
Merge remote-tracking branch 'origin/main' into audioout-esp32
m---------extmod/ulab0
m---------frozen/Adafruit_CircuitPython_BLE0
m---------frozen/Adafruit_CircuitPython_DRV26050
m---------frozen/Adafruit_CircuitPython_DS32310
m---------frozen/Adafruit_CircuitPython_ESP32SPI0
m---------frozen/Adafruit_CircuitPython_LIS3DH0
m---------frozen/Adafruit_CircuitPython_LSM6DS0
m---------frozen/Adafruit_CircuitPython_Motor0
m---------frozen/Adafruit_CircuitPython_RFM9x0
m---------frozen/Adafruit_CircuitPython_Register0
m---------frozen/Adafruit_CircuitPython_Requests0
m---------frozen/Adafruit_CircuitPython_seesaw0
-rw-r--r--locale/ID.po83
-rw-r--r--locale/circuitpython.pot33
-rw-r--r--locale/cs.po11
-rw-r--r--locale/de_DE.po11
-rw-r--r--locale/el.po11
-rw-r--r--locale/es.po21
-rw-r--r--locale/fil.po11
-rw-r--r--locale/fr.po451
-rw-r--r--locale/hi.po11
-rw-r--r--locale/it_IT.po11
-rw-r--r--locale/ja.po11
-rw-r--r--locale/ko.po11
-rw-r--r--locale/nl.po11
-rw-r--r--locale/pl.po11
-rw-r--r--locale/pt_BR.po13
-rw-r--r--locale/sv.po11
-rw-r--r--locale/zh_Latn_pinyin.po11
-rwxr-xr-xmain.c2
-rw-r--r--ports/atmel-samd/boards/8086_commander/mpconfigboard.mk1
-rw-r--r--ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.mk1
-rw-r--r--ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.mk1
-rw-r--r--ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.mk1
-rw-r--r--ports/atmel-samd/boards/hallowing_m0_express/mpconfigboard.mk1
-rw-r--r--ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.mk3
-rw-r--r--ports/atmel-samd/boards/pycubed/mpconfigboard.mk1
-rw-r--r--ports/atmel-samd/boards/pycubed_mram/mpconfigboard.mk1
-rw-r--r--ports/atmel-samd/boards/sam32/mpconfigboard.mk1
-rw-r--r--ports/atmel-samd/boards/xinabox_cc03/mpconfigboard.mk1
-rw-r--r--ports/atmel-samd/boards/xinabox_cs11/mpconfigboard.mk1
-rw-r--r--ports/esp32s2/Makefile1
-rw-r--r--ports/esp32s2/README.md2
-rw-r--r--ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h1
-rw-r--r--ports/esp32s2/boards/unexpectedmaker_feathers2/pins.c22
-rw-r--r--ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h10
-rw-r--r--ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/pins.c24
-rw-r--r--ports/esp32s2/common-hal/alarm/__init__.c26
-rw-r--r--ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c153
-rw-r--r--ports/esp32s2/common-hal/alarm/touch/TouchAlarm.h46
-rw-r--r--ports/esp32s2/common-hal/touchio/TouchIn.c28
-rw-r--r--ports/esp32s2/common-hal/touchio/TouchIn.h5
-rw-r--r--ports/esp32s2/peripherals/pins.h2
-rw-r--r--ports/esp32s2/peripherals/touch.c53
-rw-r--r--ports/esp32s2/peripherals/touch.h36
-rw-r--r--ports/esp32s2/supervisor/port.c4
-rw-r--r--py/circuitpy_defns.mk1
-rw-r--r--shared-bindings/_pixelbuf/PixelBuf.c2
-rw-r--r--shared-bindings/alarm/__init__.c27
-rw-r--r--shared-bindings/alarm/__init__.h2
-rw-r--r--shared-bindings/alarm/touch/TouchAlarm.c91
-rw-r--r--shared-bindings/alarm/touch/TouchAlarm.h40
62 files changed, 968 insertions, 356 deletions
diff --git a/extmod/ulab b/extmod/ulab
-Subproject aa7e741530df471d206a4a321823a37a913a0eb
+Subproject c4b06e419f3d515478b05bb8ce03ebdb29cddec
diff --git a/frozen/Adafruit_CircuitPython_BLE b/frozen/Adafruit_CircuitPython_BLE
-Subproject 41f7a3530d4cacdbf668399d3a015ea29c7e169
+Subproject 8bb1210eebed4846dae7e76ff1db86a010b132b
diff --git a/frozen/Adafruit_CircuitPython_DRV2605 b/frozen/Adafruit_CircuitPython_DRV2605
-Subproject 209edd164eb640a8ced561a54505792fc99a67b
+Subproject ce30b04a3c8e557d48a0607ddcb25272b196a43
diff --git a/frozen/Adafruit_CircuitPython_DS3231 b/frozen/Adafruit_CircuitPython_DS3231
-Subproject 5d81a9ea822a85e46be4a512ac44abf21e77d81
+Subproject 4f5dc66d50e43ca8d413ab0d86c125a7a13d394
diff --git a/frozen/Adafruit_CircuitPython_ESP32SPI b/frozen/Adafruit_CircuitPython_ESP32SPI
-Subproject 01f3f6674b4493ba29b857e0f43deb69975736e
+Subproject fce466bd2bb70ca86b79e5cb36bbaca00afacfd
diff --git a/frozen/Adafruit_CircuitPython_LIS3DH b/frozen/Adafruit_CircuitPython_LIS3DH
-Subproject 9fe8f314c032cee89b9ad7697d61e9cba76431f
+Subproject bea5d4a347aeece71a421ee292551264e3bf7ae
diff --git a/frozen/Adafruit_CircuitPython_LSM6DS b/frozen/Adafruit_CircuitPython_LSM6DS
-Subproject f1cc47f024b27e670b9bf2a51c89e32f93c1b95
+Subproject fee951908cc5f1ba7db5edd2537fade09d62673
diff --git a/frozen/Adafruit_CircuitPython_Motor b/frozen/Adafruit_CircuitPython_Motor
-Subproject 434e5b5346cb0a1a9eb15989b00278be87cb2ff
+Subproject 608291801ce7112b280d32518de79993cc80963
diff --git a/frozen/Adafruit_CircuitPython_RFM9x b/frozen/Adafruit_CircuitPython_RFM9x
-Subproject cfffc233784961929d722ea4e9acfe578679060
+Subproject 4696e07638eff28392b57162d2a70e20473e97b
diff --git a/frozen/Adafruit_CircuitPython_Register b/frozen/Adafruit_CircuitPython_Register
-Subproject 6143ec2a96a6d218041e9cab5968de26702d7bb
+Subproject dd7cc167c528a94a9feed81f9c52b5d372f6825
diff --git a/frozen/Adafruit_CircuitPython_Requests b/frozen/Adafruit_CircuitPython_Requests
-Subproject 53902152c674b0ba31536b50291f7ddd28960f4
+Subproject c070f6e8dbc37757cbcb444269c6cd6a4b67664
diff --git a/frozen/Adafruit_CircuitPython_seesaw b/frozen/Adafruit_CircuitPython_seesaw
-Subproject 88738da275a83acabb14b7140d1c79b33cdc7b0
+Subproject 9d91ec849efb5fbc3d26d350a75a61f15d19bc4
diff --git a/locale/ID.po b/locale/ID.po
index 45b35f195..ca26f01bd 100644
--- a/locale/ID.po
+++ b/locale/ID.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
-"PO-Revision-Date: 2020-10-10 23:51+0000\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
+"PO-Revision-Date: 2020-12-30 22:25+0000\n"
"Last-Translator: oon arfiandwi <oon.arfiandwi@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: ID\n"
@@ -14,13 +14,15 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.3-dev\n"
+"X-Generator: Weblate 4.4.1-dev\n"
#: main.c
msgid ""
"\n"
"Code done running.\n"
msgstr ""
+"\n"
+"Kode selesai beroperasi.\n"
#: main.c
msgid ""
@@ -62,7 +64,7 @@ msgstr "pin alamat %d dan pin rgb %d menunjukkan tinggi %d, bukan %d"
#: ports/atmel-samd/common-hal/sdioio/SDCard.c
msgid "%q failure: %d"
-msgstr ""
+msgstr "%q gagal: %d"
#: shared-bindings/microcontroller/Pin.c
msgid "%q in use"
@@ -78,7 +80,7 @@ msgstr "%q indeks di luar batas"
#: py/obj.c
msgid "%q indices must be integers, not %q"
-msgstr ""
+msgstr "%q indeks harus bilangan bulat, bukan %q"
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
@@ -86,7 +88,7 @@ msgstr "daftar %q harus berupa daftar"
#: shared-bindings/memorymonitor/AllocationAlarm.c
msgid "%q must be >= 0"
-msgstr ""
+msgstr "%q harus >= 0"
#: shared-bindings/_bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/PacketBuffer.c shared-bindings/displayio/Group.c
@@ -102,7 +104,7 @@ msgstr "%q harus berupa tuple dengan panjang 2"
#: shared-bindings/canio/Match.c
msgid "%q out of range"
-msgstr ""
+msgstr "%q di luar jangkauan"
#: ports/atmel-samd/common-hal/microcontroller/Pin.c
msgid "%q pin invalid"
@@ -126,23 +128,23 @@ msgstr ""
#: py/proto.c
msgid "'%q' object does not support '%q'"
-msgstr ""
+msgstr "Objek '%q' tidak mendukung '%q'"
#: py/obj.c
msgid "'%q' object does not support item assignment"
-msgstr ""
+msgstr "Objek '%q' tidak mendukung penugasan item"
#: py/obj.c
msgid "'%q' object does not support item deletion"
-msgstr ""
+msgstr "Objek '%q' tidak mendukung penghapusan item"
#: py/runtime.c
msgid "'%q' object has no attribute '%q'"
-msgstr ""
+msgstr "Objek '%q' tidak memiliki atribut '%q'"
#: py/runtime.c
msgid "'%q' object is not an iterator"
-msgstr ""
+msgstr "Objek '%q' bukan merupakan iterator"
#: py/objtype.c py/runtime.c
msgid "'%q' object is not callable"
@@ -150,7 +152,7 @@ msgstr ""
#: py/runtime.c
msgid "'%q' object is not iterable"
-msgstr ""
+msgstr "Objek '%q' tidak dapat diulang"
#: py/obj.c
msgid "'%q' object is not subscriptable"
@@ -224,7 +226,7 @@ msgstr "'await' diluar fungsi"
#: py/compile.c
msgid "'await', 'async for' or 'async with' outside async function"
-msgstr ""
+msgstr "'await', 'async for' atau 'async with' di luar fungsi async"
#: py/compile.c
msgid "'break' outside loop"
@@ -256,7 +258,7 @@ msgstr "'return' diluar fungsi"
#: py/compile.c
msgid "'yield from' inside async function"
-msgstr ""
+msgstr "'yield from' di dalam fungsi async"
#: py/compile.c
msgid "'yield' outside function"
@@ -285,7 +287,7 @@ msgstr "Sebuah channel hardware interrupt sedang digunakan"
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "ADC2 is being used by WiFi"
-msgstr ""
+msgstr "ADC2 sedang digunakan oleh WiFi"
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
#, c-format
@@ -308,13 +310,13 @@ msgstr "Semua perangkat I2C sedang digunakan"
#: ports/esp32s2/common-hal/frequencyio/FrequencyIn.c
#: ports/esp32s2/common-hal/rotaryio/IncrementalEncoder.c
msgid "All PCNT units in use"
-msgstr ""
+msgstr "Semua unit PCNT sedang digunakan"
#: ports/atmel-samd/common-hal/canio/Listener.c
#: ports/esp32s2/common-hal/canio/Listener.c
#: ports/stm/common-hal/canio/Listener.c
msgid "All RX FIFOs in use"
-msgstr ""
+msgstr "Semua RX FIFO sedang digunakan"
#: ports/esp32s2/common-hal/busio/SPI.c ports/nrf/common-hal/busio/SPI.c
msgid "All SPI peripherals are in use"
@@ -1188,6 +1190,7 @@ msgstr "Fase tidak valid"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1512,6 +1515,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr ""
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr ""
@@ -1825,18 +1832,21 @@ msgid ""
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY).\n"
msgstr ""
+"Kekuatan mikrokontroler menurun. Pastikan catu daya Anda menyediakan\n"
+"daya yang cukup untuk seluruh rangkaian dan tekan reset (setelah "
+"mengeluarkan CIRCUITPY).\n"
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's bits_per_sample does not match the mixer's"
-msgstr ""
+msgstr "Sampel bits_per_sampel tidak cocok dengan mixer"
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's channel count does not match the mixer's"
-msgstr ""
+msgstr "Jumlah saluran sampel tidak cocok dengan mixer"
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's sample rate does not match the mixer's"
-msgstr ""
+msgstr "Tingkat sampel dari sampel tidak cocok dengan mixer"
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's signedness does not match the mixer's"
@@ -1848,15 +1858,15 @@ msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile index out of bounds"
-msgstr ""
+msgstr "Indeks ubin di luar batas"
#: shared-bindings/displayio/TileGrid.c
msgid "Tile value out of bounds"
-msgstr ""
+msgstr "Nilai ubin di luar batas"
#: shared-bindings/displayio/TileGrid.c
msgid "Tile width must exactly divide bitmap width"
-msgstr ""
+msgstr "Lebar ubin harus persis membagi lebar bitmap"
#: shared-bindings/alarm/time/TimeAlarm.c
msgid "Time is in the past."
@@ -1882,15 +1892,20 @@ msgstr "Terlalu banyak channel dalam sampel"
#: shared-module/displayio/__init__.c
msgid "Too many display busses"
-msgstr ""
+msgstr "Terlalu banyak tampilan bus"
#: shared-module/displayio/__init__.c
msgid "Too many displays"
-msgstr ""
+msgstr "Terlalu banyak tampilan"
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
+"Total data yang akan ditulis lebih besar daripada outgoing_packet_length"
+
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr ""
#: py/obj.c
msgid "Traceback (most recent call last):\n"
@@ -1898,35 +1913,35 @@ msgstr ""
#: shared-bindings/time/__init__.c
msgid "Tuple or struct_time argument required"
-msgstr ""
+msgstr "Diperlukan argumen Tuple atau struct_time"
#: ports/stm/common-hal/busio/UART.c
msgid "UART Buffer allocation error"
-msgstr ""
+msgstr "Kesalahan alokasi Buffer UART"
#: ports/stm/common-hal/busio/UART.c
msgid "UART De-init error"
-msgstr ""
+msgstr "Kesalahan UART De-init"
#: ports/stm/common-hal/busio/UART.c
msgid "UART Init Error"
-msgstr ""
+msgstr "Kesalahan Init UART"
#: ports/stm/common-hal/busio/UART.c
msgid "UART Re-init error"
-msgstr ""
+msgstr "Kesalahan Re-init UART"
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
-msgstr ""
+msgstr "Kesalahan penulisan UART"
#: shared-module/usb_hid/Device.c
msgid "USB Busy"
-msgstr ""
+msgstr "USB Sibuk"
#: shared-module/usb_hid/Device.c
msgid "USB Error"
-msgstr ""
+msgstr "Kesalahan USB"
#: shared-bindings/_bleio/UUID.c
msgid "UUID integer value must be 0-0xffff"
diff --git a/locale/circuitpython.pot b/locale/circuitpython.pot
index 9016a38c9..dd591bbdf 100644
--- a/locale/circuitpython.pot
+++ b/locale/circuitpython.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-29 16:31-0600\n"
+"POT-Creation-Date: 2021-01-07 14:11-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1184,6 +1184,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1514,6 +1515,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr ""
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr ""
@@ -2551,6 +2556,10 @@ msgstr ""
msgid "data must be of equal length"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "data type not understood"
+msgstr ""
+
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr ""
@@ -2861,7 +2870,7 @@ msgid "input and output shapes are not compatible"
msgstr ""
#: extmod/ulab/code/ulab_create.c
-msgid "input argument must be an integer or a 2-tuple"
+msgid "input argument must be an integer, a tuple, or a list"
msgstr ""
#: extmod/ulab/code/fft/fft.c
@@ -3104,6 +3113,10 @@ msgstr ""
msgid "maxiter should be > 0"
msgstr ""
+#: extmod/ulab/code/numerical/numerical.c
+msgid "median argument must be an ndarray"
+msgstr ""
+
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@@ -3334,10 +3347,6 @@ msgid "operation is implemented for 1D Boolean arrays only"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
-msgid "operation is not implemented for flattened array"
-msgstr ""
-
-#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr ""
@@ -3680,6 +3689,10 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr ""
+#: extmod/ulab/code/ulab_create.c
+msgid "too many dimensions"
+msgstr ""
+
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr ""
@@ -3690,6 +3703,10 @@ msgid "too many values to unpack (expected %d)"
msgstr ""
#: extmod/ulab/code/approx/approx.c
+msgid "trapz is defined for 1D arrays"
+msgstr ""
+
+#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
@@ -3697,10 +3714,6 @@ msgstr ""
msgid "trigger level must be 0 or 1"
msgstr ""
-#: extmod/ulab/code/linalg/linalg.c
-msgid "tuple index out of range"
-msgstr ""
-
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr ""
diff --git a/locale/cs.po b/locale/cs.po
index 7ceb85db7..88380fbea 100644
--- a/locale/cs.po
+++ b/locale/cs.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: 2020-12-04 18:33+0000\n"
"Last-Translator: vkuthan <vit.kuthan@seznam.cz>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1172,6 +1172,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1490,6 +1491,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr ""
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr ""
@@ -1860,6 +1865,10 @@ msgstr ""
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr ""
+
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr ""
diff --git a/locale/de_DE.po b/locale/de_DE.po
index e481e52c1..39e1071f9 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: 2020-11-26 03:11+0000\n"
"Last-Translator: Daniel Bravo Darriba <bravodarriba@gmail.com>\n"
"Language: de_DE\n"
@@ -1187,6 +1187,7 @@ msgstr "Ungültige Phase"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1513,6 +1514,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr ""
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr ""
@@ -1900,6 +1905,10 @@ msgstr ""
"Die Gesamtzahl der zu schreibenden Daten ist größer als "
"outgoing_packet_length"
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr ""
+
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Zurückverfolgung (jüngste Aufforderung zuletzt):\n"
diff --git a/locale/el.po b/locale/el.po
index 80aebe497..21a0942a6 100644
--- a/locale/el.po
+++ b/locale/el.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -1169,6 +1169,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1487,6 +1488,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr ""
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr ""
@@ -1857,6 +1862,10 @@ msgstr ""
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr ""
+
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr ""
diff --git a/locale/es.po b/locale/es.po
index 1e3e3be5b..bac7d2840 100644
--- a/locale/es.po
+++ b/locale/es.po
@@ -7,16 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
-"PO-Revision-Date: 2020-11-27 18:34+0000\n"
-"Last-Translator: Iván Montiel Cardona <ivan_montiel2013@hotmail.com>\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
+"PO-Revision-Date: 2020-12-30 22:25+0000\n"
+"Last-Translator: Hugo Dahl <hugo@code-jedi.com>\n"
"Language-Team: \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4-dev\n"
+"X-Generator: Weblate 4.4.1-dev\n"
#: main.c
msgid ""
@@ -1190,6 +1190,7 @@ msgstr "Fase inválida"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1236,7 +1237,7 @@ msgstr "Modo de ejecución inválido."
#: shared-module/_bleio/Attribute.c
msgid "Invalid security_mode"
-msgstr "Modo de seguridad no válido"
+msgstr "'security_mode' no válido"
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
@@ -1276,7 +1277,7 @@ msgstr "Length debe ser un int"
#: py/objslice.c
msgid "Length must be non-negative"
-msgstr "Longitud no deberia ser negativa"
+msgstr "Length no deberia ser negativa"
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
@@ -1514,6 +1515,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr ""
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr "Solo un color puede ser transparente a la vez"
@@ -1907,6 +1912,10 @@ msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
"Los datos totales a escribir son más grandes que outgoing_packet_length"
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr ""
+
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Traceback (ultima llamada reciente):\n"
diff --git a/locale/fil.po b/locale/fil.po
index 09dcfad66..86386cf1f 100644
--- a/locale/fil.po
+++ b/locale/fil.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
"Language-Team: fil\n"
@@ -1184,6 +1184,7 @@ msgstr "Mali ang phase"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1505,6 +1506,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr ""
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr ""
@@ -1877,6 +1882,10 @@ msgstr ""
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr ""
+
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Traceback (pinakahuling huling tawag): \n"
diff --git a/locale/fr.po b/locale/fr.po
index 0eac4c4b4..c25da7888 100644
--- a/locale/fr.po
+++ b/locale/fr.po
@@ -7,27 +7,31 @@ msgid ""
msgstr ""
"Project-Id-Version: 0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
-"PO-Revision-Date: 2020-12-08 19:21+0000\n"
-"Last-Translator: Antonin ENFRUN <antonin.e@me.com>\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
+"PO-Revision-Date: 2021-01-01 04:29+0000\n"
+"Last-Translator: Hugo Dahl <hugo@code-jedi.com>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.4-dev\n"
+"X-Generator: Weblate 4.4.1-dev\n"
#: main.c
msgid ""
"\n"
"Code done running.\n"
msgstr ""
+"\n"
+"Exécution du code complété.\n"
#: main.c
msgid ""
"\n"
"Code stopped by auto-reload.\n"
msgstr ""
+"\n"
+"Exécution du code arrêté par l'auto-rechargement.\n"
#: supervisor/shared/safe_mode.c
msgid ""
@@ -55,7 +59,7 @@ msgstr " sortie :\n"
#: py/objstr.c
#, c-format
msgid "%%c requires int or char"
-msgstr "%%c nécessite un entier 'int' ou un caractère 'char'"
+msgstr "%%c nécessite un chiffre entier 'int' ou un caractère 'char'"
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
@@ -70,7 +74,7 @@ msgstr "Échec de %q : %d"
#: shared-bindings/microcontroller/Pin.c
msgid "%q in use"
-msgstr "%q utilisé"
+msgstr "%q en cours d'utilisation"
#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
@@ -78,7 +82,7 @@ msgstr "%q utilisé"
#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c
#: py/objstrunicode.c
msgid "%q index out of range"
-msgstr "index %q hors gamme"
+msgstr "index %q hors de portée"
#: py/obj.c
msgid "%q indices must be integers, not %q"
@@ -98,7 +102,7 @@ msgstr "%q doit être >= 0"
#: shared-bindings/memorymonitor/AllocationAlarm.c
#: shared-bindings/vectorio/Circle.c shared-bindings/vectorio/Rectangle.c
msgid "%q must be >= 1"
-msgstr "%q doit être >=1"
+msgstr "%q doit être >= 1"
#: shared-module/vectorio/Polygon.c
msgid "%q must be a tuple of length 2"
@@ -110,19 +114,19 @@ msgstr "%q est hors de porté"
#: ports/atmel-samd/common-hal/microcontroller/Pin.c
msgid "%q pin invalid"
-msgstr "PIN %q invalide"
+msgstr "broche %q invalide"
#: shared-bindings/fontio/BuiltinFont.c
msgid "%q should be an int"
-msgstr "%q doit être un entier (int)"
+msgstr "%q doit être un chiffre entier (int)"
#: py/bc.c py/objnamedtuple.c
msgid "%q() takes %d positional arguments but %d were given"
-msgstr "%q() prend %d arguments positionnels mais %d ont été donnés"
+msgstr "%q() prend %d paramètres positionnels mais %d ont été donnés"
#: py/argcheck.c
msgid "'%q' argument required"
-msgstr "'%q' argument requis"
+msgstr "paramètre '%q' requis"
#: py/runtime.c
msgid "'%q' object cannot assign attribute '%q'"
@@ -163,7 +167,7 @@ msgstr "l'objet '%q' n'est pas souscriptable"
#: py/emitinlinethumb.c py/emitinlinextensa.c
#, c-format
msgid "'%s' expects a label"
-msgstr "'%s' attend un label"
+msgstr "'%s' attend une étiquette"
#: py/emitinlinethumb.c py/emitinlinextensa.c
#, c-format
@@ -188,12 +192,12 @@ msgstr "'%s' attend une adresse de la forme [a, b]"
#: py/emitinlinethumb.c py/emitinlinextensa.c
#, c-format
msgid "'%s' expects an integer"
-msgstr "'%s' attend un entier"
+msgstr "'%s' attend un chiffre entier"
#: py/emitinlinethumb.c
#, c-format
msgid "'%s' expects at most r%d"
-msgstr "'%s' s'attend au plus à r%d"
+msgstr "'%s' attend au plus r%d"
#: py/emitinlinethumb.c
#, c-format
@@ -203,16 +207,16 @@ msgstr "'%s' attend {r0, r1, ...}"
#: py/emitinlinextensa.c
#, c-format
msgid "'%s' integer %d is not within range %d..%d"
-msgstr "'%s' l'entier %d n'est pas dans la gamme %d..%d"
+msgstr "'%s' le chiffre entier %d n'est pas dans la portée %d..%d"
#: py/emitinlinethumb.c
#, c-format
msgid "'%s' integer 0x%x does not fit in mask 0x%x"
-msgstr "'%s' l'entier 0x%x ne correspond pas au masque 0x%x"
+msgstr "'%s' le chiffre entier 0x%x ne correspond pas au masque 0x%x"
#: py/objstr.c
msgid "'=' alignment not allowed in string format specifier"
-msgstr "'=' alignement non autorisé dans la spéc. de format de chaîne"
+msgstr "'=' alignement non permis dans la spécification du format de chaîne"
#: shared-module/struct/__init__.c
msgid "'S' and 'O' are not supported format types"
@@ -220,43 +224,43 @@ msgstr "'S' et 'O' ne sont pas des types de format supportés"
#: py/compile.c
msgid "'align' requires 1 argument"
-msgstr "'align' nécessite 1 argument"
+msgstr "'align' nécessite 1 paramètre"
#: py/compile.c
msgid "'await' outside function"
-msgstr "'await' en dehors d'une fonction"
+msgstr "'await' dehors d'une fonction"
#: py/compile.c
msgid "'await', 'async for' or 'async with' outside async function"
-msgstr "'await', 'async for' ou 'async with' au dehors d'une fonction async"
+msgstr "'await', 'async for' ou 'async with' dehors d'une fonction async"
#: py/compile.c
msgid "'break' outside loop"
-msgstr "'break' en dehors d'une boucle"
+msgstr "'break' dehors d'une boucle"
#: py/compile.c
msgid "'continue' outside loop"
-msgstr "'continue' en dehors d'une boucle"
+msgstr "'continue' dehors d'une boucle"
#: py/objgenerator.c
msgid "'coroutine' object is not an iterator"
-msgstr "L'objet « coroutine » n'est pas un itérateur"
+msgstr "L'objet \"coroutine\" n'est pas un itérateur"
#: py/compile.c
msgid "'data' requires at least 2 arguments"
-msgstr "'data' nécessite au moins 2 arguments"
+msgstr "'data' nécessite au moins 2 paramètres"
#: py/compile.c
msgid "'data' requires integer arguments"
-msgstr "'data' nécessite des arguments entiers"
+msgstr "'data' nécessite des paramètre de chiffres entiers"
#: py/compile.c
msgid "'label' requires 1 argument"
-msgstr "'label' nécessite 1 argument"
+msgstr "'label' nécessite 1 paramètre"
#: py/compile.c
msgid "'return' outside function"
-msgstr "'return' en dehors d'une fonction"
+msgstr "'return' dehors d'une fonction"
#: py/compile.c
msgid "'yield from' inside async function"
@@ -264,7 +268,7 @@ msgstr "'yield from' dans une fonction async"
#: py/compile.c
msgid "'yield' outside function"
-msgstr "'yield' en dehors d'une fonction"
+msgstr "'yield' dehors d'une fonction"
#: py/compile.c
msgid "*x must be assignment target"
@@ -280,12 +284,12 @@ msgstr "0.0 à une puissance complexe"
#: py/modbuiltins.c
msgid "3-arg pow() not supported"
-msgstr "pow() non supporté avec 3 arguments"
+msgstr "pow() non supporté avec 3 paramètres"
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
-msgstr "Un canal d'interruptions matérielles est déjà utilisé"
+msgstr "Un canal d'interruptions matériel est déjà utilisé"
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "ADC2 is being used by WiFi"
@@ -298,7 +302,7 @@ msgstr "L'adresse doit être longue de %d octets"
#: shared-bindings/_bleio/Address.c
msgid "Address type out of range"
-msgstr "Type d'adresse hors plage"
+msgstr "Type d'adresse hors portée"
#: ports/esp32s2/common-hal/canio/CAN.c
msgid "All CAN peripherals are in use"
@@ -334,11 +338,11 @@ msgstr "Tous les canaux d'événements sont utilisés"
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
-msgstr "Tous les canaux d'événements de synchro sont utilisés"
+msgstr "Tous les canaux d'événements sync (sync event channels) sont utilisés"
#: shared-bindings/pwmio/PWMOut.c
msgid "All timers for this pin are in use"
-msgstr "Tous les timers pour cette broche sont utilisés"
+msgstr "Tous les minuteurs pour cette broche sont utilisés"
#: ports/atmel-samd/common-hal/_pew/PewPew.c
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
@@ -354,7 +358,7 @@ msgstr "Tous les timers pour cette broche sont utilisés"
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
#: ports/stm/peripherals/timers.c shared-bindings/pwmio/PWMOut.c
msgid "All timers in use"
-msgstr "Tous les timers sont utilisés"
+msgstr "Tous les minuteurs sont utilisés"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Already advertising."
@@ -386,7 +390,8 @@ msgstr "Fonctionnalité AnalogOut non supportée"
#: shared-bindings/analogio/AnalogOut.c
msgid "AnalogOut is only 16 bits. Value must be less than 65536."
msgstr ""
-"AnalogOut est seulement 16 bits. Les valeurs doivent être inf. à 65536."
+"AnalogOut est seulement 16 bits. Les valeurs doivent être inférieures à "
+"65536."
#: ports/atmel-samd/common-hal/analogio/AnalogOut.c
msgid "AnalogOut not supported on given pin"
@@ -403,7 +408,7 @@ msgstr "Le tableau doit contenir des demi-mots (type 'H')"
#: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes."
-msgstr "Les valeurs du tableau doivent être des octets simples 'bytes'."
+msgstr "Les valeurs du tableau doivent être des octets singuliers."
#: shared-bindings/microcontroller/Pin.c
msgid "At most %d %q may be specified (not %d)"
@@ -433,17 +438,17 @@ msgid ""
"Auto-reload is on. Simply save files over USB to run them or enter REPL to "
"disable.\n"
msgstr ""
-"Auto-chargement activé. Copiez simplement les fichiers en USB pour les "
-"lancer ou entrez sur REPL pour le désactiver.\n"
+"Auto-chargement activé. Copiez ou sauvegardez les fichiers via USB pour les "
+"lancer ou démarrez le REPL pour le désactiver.\n"
#: ports/esp32s2/common-hal/canio/CAN.c
msgid "Baudrate not supported by peripheral"
-msgstr "Baudrate non prise en charge par le périphérique"
+msgstr "Baudrate non supporté par le périphérique"
#: shared-module/displayio/Display.c
#: shared-module/framebufferio/FramebufferDisplay.c
msgid "Below minimum frame rate"
-msgstr "Inférieur à la fréquence d'images minimale"
+msgstr "Au-dessous de la fréquence d'images minimale"
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Bit clock and word select must share a clock unit"
@@ -452,7 +457,7 @@ msgstr "'bit clock' et 'word select' doivent partager une horloge"
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
-msgstr "Bit depth doit être compris entre 1 et 6 inclus, et non %d"
+msgstr "Bit depth doit être entre 1 et 6 inclusivement, et non %d"
#: shared-bindings/audiobusio/PDMIn.c
msgid "Bit depth must be multiple of 8."
@@ -464,7 +469,7 @@ msgstr "RX et TX requis pour le contrôle de flux"
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
-msgstr "Les deux entrées doivent supporter les interruptions matérielles"
+msgstr "Les deux broches doivent supporter les interruptions matérielles"
#: shared-bindings/displayio/Display.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@@ -553,15 +558,19 @@ msgstr "Appelez super () .__ init __ () avant d'accéder à l'objet natif."
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
msgid "Can only alarm on RTC IO from deep sleep."
-msgstr ""
+msgstr "L'alarme peut seulement être depuis TRC IO depuis le someil profond."
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
msgstr ""
+"L'alarme peut seulement être sur une broche basse tandis que d'autres "
+"alarment sont sur des broches hautes depuis le someil profond."
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
msgid "Can only alarm on two low pins from deep sleep."
msgstr ""
+"L'alarme peut seulement être sur deux broches basses depuis le someil "
+"profond."
#: ports/nrf/common-hal/_bleio/Characteristic.c
msgid "Can't set CCCD on local Characteristic"
@@ -582,7 +591,7 @@ msgstr "Impossible de supprimer les valeurs"
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
-msgstr "Ne peut être tiré ('pull') en mode 'output'"
+msgstr "Ne peut être tiré ('pull') en mode sortie ('output')"
#: ports/nrf/common-hal/microcontroller/Processor.c
msgid "Cannot get temperature"
@@ -600,7 +609,7 @@ msgstr "Les 2 canaux de sortie ne peuvent être sur la même broche"
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
msgid "Cannot pull on input-only pin."
-msgstr ""
+msgstr "Ne peut tirer ('pull') sur une broche d'entrée ('input') seule."
#: shared-module/bitbangio/SPI.c
msgid "Cannot read without MISO pin."
@@ -623,7 +632,8 @@ msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
-msgstr "Impossible d'affecter une valeur quand la direction est 'input'."
+msgstr ""
+"Impossible d'affecter une valeur quand la direction est entrentre ('input')."
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
@@ -640,16 +650,15 @@ msgstr "Pas de transfert sans broches MOSI et MISO."
#: extmod/moductypes.c
msgid "Cannot unambiguously get sizeof scalar"
-msgstr "Impossible d'obtenir la taille du scalaire sans ambigüité"
+msgstr "Impossible d'obtenir la taille (sizeof) du scalaire sans ambigüité"
#: ports/stm/common-hal/pwmio/PWMOut.c
msgid "Cannot vary frequency on a timer that is already in use"
-msgstr ""
-"Impossible de faire varier la fréquence sur une minuterie déjà utilisée"
+msgstr "Impossible de faire varier la fréquence sur un minuteur déjà utilisée"
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
msgid "Cannot wake on pin edge. Only level."
-msgstr ""
+msgstr "Ne peut reveillé sur le board de broche. Seuleument à niveau."
#: shared-module/bitbangio/SPI.c
msgid "Cannot write without MOSI pin."
@@ -674,11 +683,11 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap.\n"
-msgstr "CircuitPython n'as pu faire l'allocation de la pile\n"
+msgstr "CircuitPython n'as pu faire l'allocation de la pile.\n"
#: shared-module/bitbangio/SPI.c
msgid "Clock pin init failed."
-msgstr "Echec de l'init. de la broche d'horloge."
+msgstr "Échec de l'initialization de la broche d'horloge."
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
@@ -695,7 +704,7 @@ msgstr "L'entrée 'Column' doit être un digitalio.DigitalInOut"
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/I2CDisplay.c
#: shared-bindings/displayio/ParallelBus.c
msgid "Command must be an int between 0 and 255"
-msgstr "La commande doit être un entier entre 0 et 255"
+msgstr "La commande doit être un chiffre entier entre 0 et 255"
#: shared-bindings/_bleio/Connection.c
msgid ""
@@ -715,7 +724,7 @@ msgstr "Code brut corrompu"
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Could not initialize Camera"
-msgstr "Impossible d'initialisé la Camera"
+msgstr "Impossible d'initialiser Camera"
#: ports/cxd56/common-hal/gnss/GNSS.c
msgid "Could not initialize GNSS"
@@ -728,19 +737,19 @@ msgstr "Impossible d'initialiser la carte SD"
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
msgid "Could not initialize UART"
-msgstr "L'UART n'a pu être initialisé"
+msgstr "Impossible d'initialiser UART"
#: ports/esp32s2/common-hal/pwmio/PWMOut.c ports/stm/common-hal/pwmio/PWMOut.c
msgid "Could not initialize channel"
-msgstr "Impossible d'initialiser la chaîne"
+msgstr "Impossible d'initialiser le canal"
#: ports/esp32s2/common-hal/pwmio/PWMOut.c ports/stm/common-hal/pwmio/PWMOut.c
msgid "Could not initialize timer"
-msgstr "Impossible d'initialiser la minuterie"
+msgstr "Impossible d'initialiser le minuteur"
#: ports/stm/common-hal/pwmio/PWMOut.c
msgid "Could not re-init channel"
-msgstr "Impossible de réinitialiser la chaîne"
+msgstr "Impossible de réinitialiser le canal"
#: ports/stm/common-hal/pwmio/PWMOut.c
msgid "Could not re-init timer"
@@ -773,7 +782,7 @@ msgstr "Impossible d'allouer le décodeur"
#: shared-module/audiocore/WaveFile.c shared-module/audiomixer/Mixer.c
#: shared-module/audiomp3/MP3Decoder.c
msgid "Couldn't allocate first buffer"
-msgstr "Impossible d'allouer le 1er tampon"
+msgstr "Impossible d'allouer le premier tampon"
#: shared-module/audiomp3/MP3Decoder.c
msgid "Couldn't allocate input buffer"
@@ -782,11 +791,11 @@ msgstr "Impossible d'allouer le tampon d'entrée"
#: shared-module/audiocore/WaveFile.c shared-module/audiomixer/Mixer.c
#: shared-module/audiomp3/MP3Decoder.c
msgid "Couldn't allocate second buffer"
-msgstr "Impossible d'allouer le 2e tampon"
+msgstr "Impossible d'allouer le deuxième tampon"
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
-msgstr "Crash dans le HardFault_Handler."
+msgstr "Échec vers le HardFault_Handler."
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
@@ -807,11 +816,11 @@ msgstr "La broche 'Data 0' doit être aligné sur l'octet"
#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
-msgstr "Un bloc de données doit suivre un bloc de format"
+msgstr "Un bloc de données doit suivre un bloc fmt"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Data too large for advertisement packet"
-msgstr "Données trop volumineuses pour un paquet de diffusion"
+msgstr "Données trop volumineuses pour un paquet d'avertissement"
#: shared-bindings/audiobusio/PDMIn.c
msgid "Destination capacity is smaller than destination_length."
@@ -838,7 +847,8 @@ msgstr "La rotation d'affichage doit se faire par incréments de 90 degrés"
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Drive mode not used when direction is input."
-msgstr "Le mode Drive n'est pas utilisé quand la direction est 'input'."
+msgstr ""
+"Le mode Drive n'est pas utilisé quand la direction est entrante ('input')."
#: shared-bindings/aesio/aes.c
msgid "ECB only operates on 16 bytes at a time"
@@ -877,11 +887,11 @@ msgstr "Un 'DigitalInOut' est attendu"
#: shared-bindings/_bleio/Characteristic.c
msgid "Expected a Service"
-msgstr "Attendu un service"
+msgstr "Un Service est attendu"
#: shared-bindings/_bleio/Adapter.c
msgid "Expected a UART"
-msgstr "Un 'UART' est attendu"
+msgstr "Un UART est attendu"
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
#: shared-bindings/_bleio/Service.c
@@ -890,11 +900,11 @@ msgstr "Un UUID est attendu"
#: shared-bindings/_bleio/Adapter.c
msgid "Expected an Address"
-msgstr "Attendu une adresse"
+msgstr "Un Address est attendu"
#: shared-bindings/alarm/__init__.c
msgid "Expected an alarm"
-msgstr ""
+msgstr "Une alarme était prévue"
#: shared-module/_pixelbuf/PixelBuf.c
#, c-format
@@ -904,11 +914,11 @@ msgstr "Tuple de longueur %d attendu, obtenu %d"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Extended advertisements with scan response not supported."
msgstr ""
-"Les publicités étendues avec réponse d'analyse ne sont pas prises en charge."
+"Les avertissement étendues avec analyse de réponse ne sont pas supportées."
#: extmod/ulab/code/fft/fft.c
msgid "FFT is defined for ndarrays only"
-msgstr "La FFT est définie pour les ndarrays uniquement"
+msgstr "La FFT est définie uniquement pour les ndarrays"
#: extmod/ulab/code/fft/fft.c
msgid "FFT is implemented for linear arrays only"
@@ -955,7 +965,7 @@ msgstr "Impossible de se connecter : erreur interne"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to connect: timeout"
-msgstr "Impossible de se connecter : délai d'expiration"
+msgstr "Impossible de se connecter: délai dépassé"
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Failed to init wifi"
@@ -972,7 +982,7 @@ msgstr "Impossible de libérer mutex, err 0x%04x"
#: supervisor/shared/safe_mode.c
msgid "Failed to write internal flash."
-msgstr "Échec de l'écriture du flash interne."
+msgstr "Échec de l'écriture vers flash interne."
#: py/moduerrno.c
msgid "File exists"
@@ -982,11 +992,11 @@ msgstr "Le fichier existe"
#: ports/esp32s2/common-hal/canio/Listener.c
#: ports/stm/common-hal/canio/Listener.c
msgid "Filters too complex"
-msgstr "Filtre trop complexe"
+msgstr "Filtres trop complexe"
#: ports/esp32s2/common-hal/dualbank/__init__.c
msgid "Firmware image is invalid"
-msgstr ""
+msgstr "Image du microprogramme est invalide"
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Format not supported"
@@ -995,17 +1005,18 @@ msgstr "Format non supporté"
#: shared-module/framebufferio/FramebufferDisplay.c
#, c-format
msgid "Framebuffer requires %d bytes"
-msgstr "Le framebuffer nécessite %d octets"
+msgstr "FrameBuffer nécessite %d octets"
#: ports/stm/common-hal/pwmio/PWMOut.c
msgid "Frequency must match existing PWMOut using this timer"
msgstr ""
-"La fréquence doit correspondre à PWMOut existant à l'aide de cette minuterie"
+"La fréquence doit correspondre à PWMOut existant à l'utilisation de ce "
+"minuteur"
#: shared-bindings/bitbangio/I2C.c shared-bindings/bitbangio/SPI.c
#: shared-bindings/busio/I2C.c shared-bindings/busio/SPI.c
msgid "Function requires lock"
-msgstr "La fonction nécessite un verrou"
+msgstr "La fonction nécessite un verrou ('lock')"
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
@@ -1029,11 +1040,11 @@ msgstr "Matériel utilisé, essayez d'autres broches"
#: shared-bindings/wifi/Radio.c
msgid "Hostname must be between 1 and 253 characters"
-msgstr "Hostname doit faire entre 1 et 253 caractères"
+msgstr "Hostname doit être entre 1 et 253 caractères"
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
-msgstr "opération d'E/S sur un fichier fermé"
+msgstr "Opération d'E/S sur un fichier fermé"
#: ports/stm/common-hal/busio/I2C.c
msgid "I2C Init Error"
@@ -1045,19 +1056,19 @@ msgstr "I2SOut n'est pas disponible"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
-msgstr ""
+msgstr "IOs 0, 2 & 4 ne supportent pas l'éleveuse interne en mode someil"
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
-msgstr "IV doit être long de %d octets"
+msgstr "IV doit être de longueur de %d octets"
#: py/persistentcode.c
msgid ""
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
"mpy-update for more info."
msgstr ""
-"Fichier .mpy incompatible. Merci de mettre à jour tous les fichiers .mpy."
+"Fichier .mpy incompatible. Merci de mettre à jour tous les fichiers .mpy. "
"Voir http://adafru.it/mpy-update pour plus d'informations."
#: shared-bindings/_pew/PewPew.c
@@ -1066,7 +1077,7 @@ msgstr "Taille de tampon incorrecte"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
-msgstr "L'initialisation a échoué par manque de mémoire"
+msgstr "Échec d'initialisation par manque de mémoire"
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
msgid "Input taking too long"
@@ -1106,7 +1117,7 @@ msgstr "Broche invalide pour '%q'"
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
#: ports/stm/common-hal/sdioio/SDCard.c
msgid "Invalid %q pin selection"
-msgstr "Sélection de pin %q invalide"
+msgstr "Sélection de broche %q invalide"
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Invalid ADC Unit value"
@@ -1118,7 +1129,7 @@ msgstr "Fichier BMP invalide"
#: shared-bindings/wifi/Radio.c
msgid "Invalid BSSID"
-msgstr "BSSID Invalide"
+msgstr "BSSID invalide"
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
#: ports/stm/common-hal/analogio/AnalogOut.c
@@ -1133,11 +1144,11 @@ msgstr "Fréquence de PWM invalide"
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
-msgstr ""
+msgstr "Broche invalide"
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
-msgstr "Argument invalide"
+msgstr "Paramètre invalide"
#: shared-module/displayio/Bitmap.c
msgid "Invalid bits per value"
@@ -1149,12 +1160,12 @@ msgstr "Longueur de tampon invalide"
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "Invalid byteorder string"
-msgstr "Chaîne d'octets non valide"
+msgstr "Chaîne byteorder non valide"
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
#: ports/esp32s2/common-hal/frequencyio/FrequencyIn.c
msgid "Invalid capture period. Valid range: 1 - 500"
-msgstr "Période de capture invalide. Gamme valide : 1 à 500"
+msgstr "Période de capture invalide. Portée valide : 1 à 500"
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid channel count"
@@ -1174,7 +1185,7 @@ msgstr "Taille de bloc de formatage invalide"
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
msgid "Invalid frequency"
-msgstr "fréquence non Valide"
+msgstr "Fréquence non valide"
#: ports/stm/common-hal/pwmio/PWMOut.c
msgid "Invalid frequency supplied"
@@ -1182,7 +1193,7 @@ msgstr "Fréquence invalide fournie"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
-msgstr "Accès mémoire invalide."
+msgstr "Accès à la mémoire invalide."
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
msgid "Invalid number of bits"
@@ -1195,6 +1206,7 @@ msgstr "Phase invalide"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1224,7 +1236,7 @@ msgstr "Broches invalides"
#: ports/stm/common-hal/pwmio/PWMOut.c
msgid "Invalid pins for PWMOut"
-msgstr "Broches non valides pour PWMOut"
+msgstr "Broches invalides pour PWMOut"
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
#: shared-bindings/displayio/FourWire.c
@@ -1233,7 +1245,7 @@ msgstr "Polarité invalide"
#: shared-bindings/_bleio/Characteristic.c
msgid "Invalid properties"
-msgstr "Propriétés non valides"
+msgstr "Propriétés invalides"
#: shared-bindings/microcontroller/__init__.c
msgid "Invalid run mode."
@@ -1241,7 +1253,7 @@ msgstr "Mode de lancement invalide."
#: shared-module/_bleio/Attribute.c
msgid "Invalid security_mode"
-msgstr "'mode_security' non valide"
+msgstr "'security_mode' invalide"
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
@@ -1257,7 +1269,7 @@ msgstr "Fichier WAVE invalide"
#: ports/stm/common-hal/busio/UART.c
msgid "Invalid word/bit length"
-msgstr "Longueur de mot / bit non valide"
+msgstr "Longueur de mot / bit invalide"
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
@@ -1277,32 +1289,32 @@ msgstr "'Layer' doit être un 'Group' ou une sous-classe 'TileGrid'."
#: py/objslice.c
msgid "Length must be an int"
-msgstr "La longueur doit être un nombre entier"
+msgstr "Length doit être un chiffre entier (int)"
#: py/objslice.c
msgid "Length must be non-negative"
-msgstr "La longueur ne doit pas être négative"
+msgstr "Length ne doit pas être négatif"
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
-msgstr "Echec de l'init. de la broche MISO."
+msgstr "Échec de l'initialization de la broche MISO."
#: shared-module/bitbangio/SPI.c
msgid "MOSI pin init failed."
-msgstr "Echec de l'init. de la broche MOSI."
+msgstr "Échec de l'initialization de la broche MOSI."
#: shared-module/displayio/Shape.c
#, c-format
msgid "Maximum x value when mirrored is %d"
-msgstr "La valeur max. de x est %d lors d'une opération miroir"
+msgstr "La valeur maximale de x est %d lors d'une opération miroir"
#: shared-bindings/canio/Message.c
msgid "Messages limited to 8 bytes"
-msgstr "Message limité a 8 bytes"
+msgstr "Messages limités à 8 octets"
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
-msgstr "Le saut MicroPython NLR a échoué. Altération probable de la mémoire."
+msgstr "Échec du saut MicroPython NLR. Corruption de la mémoire probable."
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
@@ -1398,7 +1410,7 @@ msgstr "Pas de GCLK libre"
#: shared-bindings/os/__init__.c
msgid "No hardware random available"
-msgstr "Pas de source matérielle d'aléa disponible"
+msgstr "Aucunes source de valeurs aléatoire matérielle disponible"
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
msgid "No hardware support on clk pin"
@@ -1415,7 +1427,7 @@ msgstr "Aucune clé n'a été spécifiée"
#: shared-bindings/time/__init__.c
msgid "No long integer support"
-msgstr "Pas de support entier long"
+msgstr "Pas de support pour chiffre entier long"
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
msgid "No more channels available"
@@ -1423,7 +1435,7 @@ msgstr "Pas de canal supplémentaire disponible"
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
msgid "No more timers available"
-msgstr "Pas d'horloge supplémentaire disponible"
+msgstr "Plus de minuteurs disponibles"
#: ports/stm/common-hal/pwmio/PWMOut.c
msgid "No more timers available on this pin."
@@ -1439,15 +1451,15 @@ msgstr "Pas de pulldown sur la broche ; 1Mohm recommandé"
#: py/moduerrno.c
msgid "No space left on device"
-msgstr "Il n'y a plus d'espace libre sur le périphérique"
+msgstr "Aucun espace libre sur le dispositif"
#: py/moduerrno.c
msgid "No such file/directory"
-msgstr "Fichier/dossier introuvable"
+msgstr "Fichier/répertoire introuvable"
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "No timer available"
-msgstr "Pas de minuterie disponible"
+msgstr "Aucun minuteur disponible"
#: supervisor/shared/safe_mode.c
msgid "Nordic Soft Device failure assertion."
@@ -1492,18 +1504,18 @@ msgstr "Uniquement 8 ou 16 bit mono avec "
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
-msgstr "Seules les adresses IPv4 sont prises en charge"
+msgstr "Seulement les adresses IPv4 sont supportées"
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Only IPv4 sockets supported"
-msgstr "Seules les sockets IPv4 sont prises en charge"
+msgstr "Seulement les sockets IPv4 sont supportés"
#: shared-module/displayio/OnDiskBitmap.c
#, c-format
msgid ""
"Only Windows format, uncompressed BMP supported: given header size is %d"
msgstr ""
-"Seul le format BMP Windows, non compressé est supporté : la taille de "
+"Seulement le format BMP Windows, non compressé est supporté : la taille de "
"l'entête fournie est %d"
#: shared-module/displayio/OnDiskBitmap.c
@@ -1512,12 +1524,16 @@ msgid ""
"Only monochrome, indexed 4bpp or 8bpp, and 16bpp or greater BMPs supported: "
"%d bpp given"
msgstr ""
-"Prise en charge uniquement des monochromes, 4 bpp ou 8 bpp indexés et 16 bpp "
-"ou plus : %d bpp fournis"
+"Seulement les BMP monochromes, 4 bpp ou 8 bpp, ou 16 bpp et plus sont "
+"supportés: %d bpp fournis"
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
-msgstr ""
+msgstr "Seulement une alarme alarm.time peut être réglée."
+
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr "Seulement une alarme alarm.touch peut être réglée."
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
@@ -1525,7 +1541,7 @@ msgstr "Une seule couleur peut être transparente à la fois"
#: shared-bindings/ipaddress/__init__.c
msgid "Only raw int supported for ip"
-msgstr "IP n'accepte que les entiers bruts"
+msgstr "IP n'accepte que les chiffres entiers bruts"
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
@@ -1539,8 +1555,8 @@ msgstr "Le sur-échantillonage doit être un multiple de 8."
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
msgstr ""
-"La valeur de cycle PWM doit être entre 0 et 65535 inclus (résolution de 16 "
-"bits)"
+"La valeur de duty_cycle de PWM doit être entre 0 et 65535 inclusivement "
+"(résolution de 16 bits)"
#: shared-bindings/pwmio/PWMOut.c
msgid ""
@@ -1553,7 +1569,7 @@ msgstr ""
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
-msgstr "ParallelBus pas encore pris en charge"
+msgstr "ParallelBus pas encore supporté"
#: py/moduerrno.c
msgid "Permission denied"
@@ -1566,7 +1582,7 @@ msgstr "Permission refusée"
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
-msgstr "La broche ne peut être utilisée pour l'ADC"
+msgstr "La broche 'pin' ne supporte pas les capacitées ADC"
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c
@@ -1575,11 +1591,11 @@ msgstr "La broche est entrée uniquement"
#: ports/atmel-samd/common-hal/countio/Counter.c
msgid "Pin must support hardware interrupts"
-msgstr "La broche doit prendre en charge les interruptions matérielles"
+msgstr "La broche doit supporter les interruptions matérielles"
#: ports/stm/common-hal/pulseio/PulseIn.c
msgid "Pin number already reserved by EXTI"
-msgstr "Numéro de broche déjà réservé par EXTI"
+msgstr "Numéro de broche 'pin' déjà réservé par EXTI"
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
@@ -1594,19 +1610,19 @@ msgstr ""
#: py/builtinhelp.c
msgid "Plus any modules on the filesystem\n"
-msgstr "Ainsi que tout autre module présent sur le système de fichiers\n"
+msgstr "Ainsi que tout autres modules présents sur le système de fichiers\n"
#: shared-module/vectorio/Polygon.c
msgid "Polygon needs at least 3 points"
-msgstr "Polygone a besoin d’au moins 3 points"
+msgstr "Polygon a besoin d’au moins 3 points"
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
-"Ce portage n'accepte pas de PWM carrier. Précisez plutôt pin, frequency et "
-"duty cycle"
+"Ce port n'accepte pas de PWM carrier. Précisez plutôt les valeurs pin, "
+"frequency et duty_cycle"
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
@@ -1616,20 +1632,23 @@ msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
-"Ce portage n'accepte pas pins ou frequency. Construisez et passez un PWMOut "
-"Carrier à la place"
+"Ce port n'accepte pas de broches ou de fréquence. Construisez plutôt en "
+"passant un PWMOut Carrier"
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
-msgstr "Le tampon de préfixe doit être sur le tas"
+msgstr "Le tampon de préfixe doit être sur la pile"
#: main.c
msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
msgstr ""
+"Appuyez sur n'importe quelle touche pour utiliser le REPL. Utilisez CTRL-D "
+"pour relancer.\n"
#: main.c
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr ""
+"Feinte de someil profond jusqu'à l'alarme, CTRL-C ou écriture au fichier.\n"
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
@@ -1637,34 +1656,34 @@ msgstr "Le tirage 'pull' n'est pas utilisé quand la direction est 'output'."
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
-msgstr "Erreur RNG DeInit"
+msgstr "Erreur de désinitiation du RNG (RNG DeInit)"
#: ports/stm/common-hal/os/__init__.c
msgid "RNG Init Error"
-msgstr "Erreur d'initialisation RNG"
+msgstr "Erreur d'initialisation du RNG (RNG Init)"
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
-msgstr "Inversion RS485 spécifiée lorsqu'elle n'est pas en mode RS485"
+msgstr "Inversion RS485 spécifiée sans être en mode RS485"
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
-msgstr "étalonnage de la RTC non supportée sur cette carte"
+msgstr "La calibration du RTC non supportée sur cette carte"
#: shared-bindings/alarm/time/TimeAlarm.c shared-bindings/time/__init__.c
msgid "RTC is not supported on this board"
-msgstr "RTC non supportée sur cette carte"
+msgstr "RTC non supporté sur cette carte"
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
-msgstr "RTS / CTS / RS485 Pas encore pris en charge sur cet appareil"
+msgstr "RTS / CTS / RS485 Pas encore supporté sur cet appareil"
#: ports/stm/common-hal/os/__init__.c
msgid "Random number generation error"
-msgstr "Erreur de génération de nombres aléatoires"
+msgstr "Erreur de génération de chiffres aléatoires"
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
@@ -1681,7 +1700,7 @@ msgstr "Objet en lecture seule"
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
-msgstr "Rafraîchissez trop tôt"
+msgstr "Rafraîchissement trop tôt"
#: shared-bindings/canio/RemoteTransmissionRequest.c
msgid "RemoteTransmissionRequests limited to 8 bytes"
@@ -1689,7 +1708,7 @@ msgstr "RemoteTransmissionRequests limité à 8 octets"
#: shared-bindings/aesio/aes.c
msgid "Requested AES mode is unsupported"
-msgstr "Le mode AES demandé n'est pas pris en charge"
+msgstr "Le mode AES demandé n'est pas supporté"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
@@ -1701,11 +1720,11 @@ msgstr "L'entrée de ligne 'Row' doit être un digitalio.DigitalInOut"
#: main.c
msgid "Running in safe mode! "
-msgstr "Tourne en mode sécurisé "
+msgstr "Exécution en mode sécurisé! "
#: shared-module/sdcardio/SDCard.c
msgid "SD card CSD format not supported"
-msgstr "Le format de carte SD CSD n'est pas pris en charge"
+msgstr "Le format de carte SD CSD n'est pas supporté"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
@@ -1715,12 +1734,12 @@ msgstr "SDA ou SCL a besoin d'une résistance de tirage ('pull up')"
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
-msgstr "SDIO GetCardInfo erreur %d"
+msgstr "Erreur de SDIO GetCardInfo %d"
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO Init Error %d"
-msgstr "SDIO Init erreur %d"
+msgstr "Erreur d'initialisation SDIO %d"
#: ports/stm/common-hal/busio/SPI.c
msgid "SPI Init Error"
@@ -1737,7 +1756,7 @@ msgstr "Le taux d'échantillonage doit être positif"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#, c-format
msgid "Sample rate too high. It must be less than %d"
-msgstr "Taux d'échantillonage trop élevé. Doit être inf. à %d"
+msgstr "Taux d'échantillonage trop élevé. Doit être inférieur à %d"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Scan already in progess. Stop with stop_scan."
@@ -1745,11 +1764,11 @@ msgstr "Scan déjà en cours. Arrêtez avec stop_scan."
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Selected CTS pin not valid"
-msgstr "Broche CTS sélectionnée non valide"
+msgstr "La broche CTS sélectionnée n'est pas valide"
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Selected RTS pin not valid"
-msgstr "Broche RTS sélectionnée non valide"
+msgstr "La broche RTS sélectionnée n'est pas valide"
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
@@ -1762,7 +1781,7 @@ msgstr "Un contexte niveau serveur ne peut avoir de hostname"
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
-msgstr "Taille non prise en charge"
+msgstr "Taille n'est pas supportée"
#: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths."
@@ -1809,7 +1828,7 @@ msgstr "L'entrée du système doit être gnss.SatelliteSystem"
#: ports/stm/common-hal/microcontroller/Processor.c
msgid "Temperature read timed out"
-msgstr "Temporisation de lecture dépassée"
+msgstr "Délais de lecture de température dépassée"
#: supervisor/shared/safe_mode.c
msgid ""
@@ -1824,7 +1843,7 @@ msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode.\n"
msgstr ""
-"Le module `microcontrôleur` a été utilisé pour démarrer en mode sans échec. "
+"Le module `microcontroller` a été utilisé pour démarrer en mode sans échec. "
"Appuyez sur reset pour quitter le mode sans échec.\n"
#: shared-bindings/rgbmatrix/RGBMatrix.c
@@ -1838,7 +1857,7 @@ msgid ""
"CIRCUITPY).\n"
msgstr ""
"La puissance du microcontrôleur a baissé. Assurez-vous que votre "
-"alimentation\n"
+"alimentation fournit\n"
"assez de puissance pour tout le circuit et appuyez sur reset (après avoir "
"éjecté CIRCUITPY).\n"
@@ -1877,7 +1896,7 @@ msgstr "La largeur de la tuile doit diviser exactement la largeur de l'image"
#: shared-bindings/alarm/time/TimeAlarm.c
msgid "Time is in the past."
-msgstr ""
+msgstr "L'heure est dans le passé."
#: ports/nrf/common-hal/_bleio/Adapter.c
#, c-format
@@ -1888,12 +1907,12 @@ msgstr "Le délai est trop long : le délai maximal est de %d secondes"
msgid ""
"Timer was reserved for internal use - declare PWM pins earlier in the program"
msgstr ""
-"Timer est reservé pour un usage interne - déclarez la broche PWM plus tôt "
-"dans le programme"
+"Le minuteur est reservé pour un usage interne - déclarez la broche PWM plus "
+"tôt dans le programme"
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without "
-msgstr "Pour quitter, redémarrez la carte SVP sans "
+msgstr "Pour quitter, SVP redémarrez la carte sans "
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample."
@@ -1912,13 +1931,17 @@ msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
"Le nombre total de données à écrire est supérieur à outgoing_packet_length"
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr "TouchAlarm n'est pas disponible en mode someil léger"
+
#: py/obj.c
msgid "Traceback (most recent call last):\n"
-msgstr "Trace (appels les plus récents en dernier) :\n"
+msgstr "Traceback (appels les plus récents en dernier) :\n"
#: shared-bindings/time/__init__.c
msgid "Tuple or struct_time argument required"
-msgstr "Argument de type tuple ou struct_time nécessaire"
+msgstr "Paramètre de type tuple ou struct_time requis"
#: ports/stm/common-hal/busio/UART.c
msgid "UART Buffer allocation error"
@@ -1950,7 +1973,7 @@ msgstr "Erreur USB"
#: shared-bindings/_bleio/UUID.c
msgid "UUID integer value must be 0-0xffff"
-msgstr "La valeur entière UUID doit être 0-0xffff"
+msgstr "La valeur du chiffre entier de UUID doit être 0-0xffff"
#: shared-bindings/_bleio/UUID.c
msgid "UUID string not 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'"
@@ -1960,8 +1983,8 @@ msgstr ""
#: shared-bindings/_bleio/UUID.c
msgid "UUID value is not str, int or byte buffer"
msgstr ""
-"la valeur de l'UUID n'est pas une chaîne de caractères, un entier ou un "
-"tampon d'octets"
+"La valeur de l'UUID n'est pas une chaîne de caractères, un chiffre entier ou "
+"un tampon d'octets"
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
@@ -1970,7 +1993,7 @@ msgstr "Impossible d'allouer des tampons pour une conversion signée"
#: ports/esp32s2/common-hal/busio/I2C.c
msgid "Unable to create lock"
-msgstr "Impossible de créer un verrou"
+msgstr "Impossible de créer un verrou ('lock')"
#: shared-module/displayio/I2CDisplay.c
#, c-format
@@ -1992,11 +2015,11 @@ msgstr "Impossible de lire les données de la palette de couleurs"
#: shared-bindings/nvm/ByteArray.c
msgid "Unable to write to nvm."
-msgstr "Impossible d'écrire sur la mémoire non-volatile."
+msgstr "Écriture impossible vers nvm."
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
-msgstr ""
+msgstr "Écriture impossible vers sleep_memory."
#: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type"
@@ -2047,7 +2070,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
-msgstr "Débit non supporté"
+msgstr "Débit en bauds non supporté"
#: shared-module/displayio/display_core.c
msgid "Unsupported display bus type"
@@ -2067,7 +2090,7 @@ msgstr "Valeur de tirage 'pull' non supportée."
#: ports/esp32s2/common-hal/dualbank/__init__.c
msgid "Update Failed"
-msgstr ""
+msgstr "Mise-à-jour échouée"
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
@@ -2105,7 +2128,7 @@ msgstr "WatchDogTimer n'est pas en cours d'exécution"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
msgstr ""
-"WatchDogTimer.mode ne peut pas être changé une fois réglé pour WatchDogMode."
+"WatchDogTimer.mode ne peut pas être changé une fois réglé à WatchDogMode."
"RESET"
#: shared-bindings/watchdog/WatchDogTimer.c
@@ -2137,11 +2160,11 @@ msgstr "Le mot de passe WiFi doit faire entre 8 et 63 caractères"
#: main.c
msgid "Woken up by alarm.\n"
-msgstr ""
+msgstr "Réveil par alarme.\n"
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
msgid "Writes not supported on Characteristic"
-msgstr "Écritures non prises en charge sur la caractéristique"
+msgstr "Écritures non supporté vers les Characteristic"
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode: something unanticipated happened.\n"
@@ -2207,19 +2230,19 @@ msgstr "l'argument doit être un ndarray"
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
msgid "argument num/types mismatch"
-msgstr "argument num/types ne correspond pas"
+msgstr "Nombre/types de paramètres ne correspondent pas"
#: py/runtime.c
msgid "argument should be a '%q' not a '%q'"
-msgstr "l'argument devrait être un(e) '%q', pas '%q'"
+msgstr "le paramètre devrait être un(e) '%q', pas '%q'"
#: extmod/ulab/code/linalg/linalg.c extmod/ulab/code/numerical/numerical.c
msgid "arguments must be ndarrays"
-msgstr "les arguments doivent être des ndarrays"
+msgstr "les paramètres doivent être des ndarrays"
#: extmod/ulab/code/ndarray.c
msgid "array and index length must be equal"
-msgstr "la longueur du tableau et de l'index doit être égale"
+msgstr "la longueur du tableau et de l'index doivent être égaux"
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
@@ -2462,7 +2485,7 @@ msgstr ""
#: extmod/ulab/code/ndarray_operators.c
msgid "cannot cast output with casting rule"
-msgstr ""
+msgstr "output ne peut être projeté sans règle de projection"
#: py/objtype.c
msgid "cannot create '%q' instances"
@@ -2490,11 +2513,11 @@ msgstr "tampon de caractères trop petit"
#: py/modbuiltins.c
msgid "chr() arg not in range(0x110000)"
-msgstr "argument de chr() hors de la gamme range(0x11000)"
+msgstr "paramètre de chr() hors les bornes de range(0x11000)"
#: py/modbuiltins.c
msgid "chr() arg not in range(256)"
-msgstr "argument de chr() hors de la gamme range(256)"
+msgstr "paramètre de chr() hors les bornes de range(256)"
#: shared-module/vectorio/Circle.c
msgid "circle can only be registered in one parent"
@@ -2607,7 +2630,7 @@ msgstr "l'argument diff doit être un ndarray"
#: extmod/ulab/code/numerical/numerical.c
msgid "differentiation order out of range"
-msgstr "differentiation order hors plage"
+msgstr "differentiation order hors de portée"
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
#: shared-bindings/math/__init__.c
@@ -2640,7 +2663,7 @@ msgstr "end_x doit être un entier 'int'"
#: shared-bindings/alarm/time/TimeAlarm.c
msgid "epoch_time not supported on this board"
-msgstr ""
+msgstr "epoch_time n'est pas supporté sur ce panneau"
#: ports/nrf/common-hal/busio/UART.c
#, c-format
@@ -2794,7 +2817,7 @@ msgstr "La fonction n'est définie que pour les ndarrays"
#: py/argcheck.c
#, c-format
msgid "function missing %d required positional arguments"
-msgstr "il manque %d arguments obligatoires à la fonction"
+msgstr "il manque %d argument(s) positionnel(s) requis pour la fonction"
#: py/bc.c
msgid "function missing keyword-only argument"
@@ -2861,7 +2884,7 @@ msgstr "l'index est hors limites"
#: extmod/ulab/code/numerical/numerical.c
#: ports/esp32s2/common-hal/pulseio/PulseIn.c py/obj.c
msgid "index out of range"
-msgstr "index hors gamme"
+msgstr "index est hors bornes"
#: py/obj.c
msgid "indices must be integers"
@@ -2922,11 +2945,11 @@ msgstr "l'entrée doit être un tenseur de rang 2"
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/user/user.c
msgid "input must be an ndarray"
-msgstr ""
+msgstr "l'entrée doit être un ndarray"
#: extmod/ulab/code/filter/filter.c
msgid "input must be one-dimensional"
-msgstr ""
+msgstr "l'entrée doit être uni-dimensionelle"
#: extmod/ulab/code/linalg/linalg.c
msgid "input must be square matrix"
@@ -2934,7 +2957,7 @@ msgstr "l'entrée doit être une matrice carrée"
#: extmod/ulab/code/numerical/numerical.c
msgid "input must be tuple, list, range, or ndarray"
-msgstr "l'entrée doit être tuple, list, range ou ndarray"
+msgstr "l'entrée 'input' doit être tuple, list, range ou ndarray"
#: extmod/ulab/code/poly/poly.c
msgid "input vectors must be of equal length"
@@ -2942,7 +2965,7 @@ msgstr "les vecteurs d'entrée doivent être de longueur égale"
#: extmod/ulab/code/poly/poly.c
msgid "inputs are not iterable"
-msgstr ""
+msgstr "les entrées ne sont pas itérables"
#: py/parsenum.c
msgid "int() arg 2 must be >= 2 and <= 36"
@@ -2959,7 +2982,7 @@ msgstr "interp est défini pour les tableaux 1D de longueur égale"
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
-msgstr "l'intervalle doit être dans la plage %s-%s"
+msgstr "interval doit être dans la portée %s-%s"
#: lib/netutils/netutils.c
msgid "invalid arguments"
@@ -3016,7 +3039,7 @@ msgstr "syntaxe invalide pour un nombre"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
-msgstr ""
+msgstr "io doit être rtc io"
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
@@ -3056,11 +3079,11 @@ msgstr "label '%q' non supporté"
#: py/compile.c
msgid "label redefined"
-msgstr "label redéfini"
+msgstr "étiquette redéfinie"
#: py/stream.c
msgid "length argument not allowed for this type"
-msgstr "argument 'length' non-permis pour ce type"
+msgstr "paramètre 'length' non-permis pour ce type"
#: shared-bindings/audiomixer/MixerVoice.c
msgid "level must be between 0 and 1"
@@ -3118,11 +3141,11 @@ msgstr "max_length doit être 0-%d lorsque fixed_length est %s"
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
msgid "max_length must be >= 0"
-msgstr ""
+msgstr "max_length doit être >= 0"
#: extmod/ulab/code/ndarray.c
msgid "maximum number of dimensions is 4"
-msgstr ""
+msgstr "nombre maximal de dimensions est 4"
#: py/runtime.c
msgid "maximum recursion depth exceeded"
@@ -3183,7 +3206,7 @@ msgstr "nom non défini"
#: py/compile.c
msgid "name reused for argument"
-msgstr "nom réutilisé comme argument"
+msgstr "nom réutilisé comme paramètre"
#: py/emitnative.c
msgid "native yield"
@@ -3258,15 +3281,15 @@ msgstr "argument non-nommé après argument nommé"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "non-zero timeout must be > 0.01"
-msgstr ""
+msgstr "le délai non-zéro doit être > 0.01"
#: shared-bindings/_bleio/Adapter.c
msgid "non-zero timeout must be >= interval"
-msgstr ""
+msgstr "le délai non-zéro doit être >= interval"
#: extmod/ulab/code/linalg/linalg.c
msgid "norm is defined for 1D and 2D arrays"
-msgstr ""
+msgstr "norm est défini pour des tableaux 1D et 2D"
#: shared-bindings/_bleio/UUID.c
msgid "not a 128-bit UUID"
@@ -3335,11 +3358,11 @@ msgstr "chaîne de longueur impaire"
#: extmod/ulab/code/ulab_create.c
msgid "offset is too large"
-msgstr ""
+msgstr "offset est trop large"
#: shared-bindings/dualbank/__init__.c
msgid "offset must be >= 0"
-msgstr ""
+msgstr "offset doit être >= 0"
#: py/objstr.c py/objstrunicode.c
msgid "offset out of bounds"
@@ -3365,11 +3388,11 @@ msgstr "les opérandes ne pouvaient pas être diffusés ensemble"
#: extmod/ulab/code/ndarray.c
msgid "operation is implemented for 1D Boolean arrays only"
-msgstr ""
+msgstr "opération implémentée que pour des tableaux 1D booléennes"
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
-msgstr ""
+msgstr "l'opération n'est pas implémentée pour un tableau applatit"
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
@@ -3510,7 +3533,7 @@ msgstr "la longueur requise est %d mais l'objet est long de %d"
#: extmod/ulab/code/ndarray_operators.c
msgid "results cannot be cast to specified type"
-msgstr ""
+msgstr "résultats ne peuvent être transformé au type spécifié"
#: py/compile.c
msgid "return annotation must be an identifier"
@@ -3532,7 +3555,7 @@ msgstr "rgb_pins[%d] n'est pas sur le même port que l'horloge"
#: extmod/ulab/code/numerical/numerical.c
msgid "roll argument must be an ndarray"
-msgstr ""
+msgstr "paramêtre roll doit être un ndarray"
#: py/objstr.c
msgid "rsplit(None,n)"
@@ -3548,7 +3571,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "sampling rate out of range"
-msgstr "taux d'échantillonage hors gamme"
+msgstr "taux d'échantillonage hors bornes"
#: py/modmicropython.c
msgid "schedule stack full"
@@ -3560,7 +3583,7 @@ msgstr "compilation de script non supportée"
#: extmod/ulab/code/ndarray.c
msgid "shape must be a tuple"
-msgstr ""
+msgstr "forme doit être un tuple"
#: py/objstr.c
msgid "sign not allowed in string format specifier"
@@ -3677,7 +3700,7 @@ msgstr "erreur de syntaxe dans le descripteur d'uctypes"
#: shared-bindings/touchio/TouchIn.c
msgid "threshold must be in the range 0-65536"
-msgstr "le seuil doit être dans la gamme 0-65536"
+msgstr "le seuil doit être dans la portée 0-65536"
#: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence"
@@ -3694,7 +3717,7 @@ msgstr "le délai doit être compris entre 0.0 et 100.0 secondes"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "timeout must be < 655.35 secs"
-msgstr ""
+msgstr "le délai (timeout) doit être < 655.35 secondes"
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "timeout must be >= 0.0"
@@ -3710,11 +3733,11 @@ msgstr "Délai d’expiration dépassé en attendant une carte v2"
#: shared-bindings/time/__init__.c
msgid "timestamp out of range for platform time_t"
-msgstr "'timestamp' hors bornes pour 'time_t' de la plateforme"
+msgstr "timestamp hors bornes pour 'time_t' de la plateforme"
#: extmod/ulab/code/ndarray.c
msgid "tobytes can be invoked for dense arrays only"
-msgstr ""
+msgstr "tobytes ne peut être appelé que pour des tableaux dense"
#: shared-module/struct/__init__.c
msgid "too many arguments provided with the given format"
@@ -3735,11 +3758,11 @@ msgstr "trapz n'est défini que pour des tableaux 1D de longueur égale"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
-msgstr ""
+msgstr "niveau du déclencheur doit être 0 ou 1"
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
-msgstr "index du tuple hors gamme"
+msgstr "index du tuple hors de portée"
#: py/obj.c
msgid "tuple/list has wrong length"
@@ -3795,11 +3818,11 @@ msgstr "indentation inattendue"
#: py/bc.c
msgid "unexpected keyword argument"
-msgstr "argument nommé inattendu"
+msgstr "paramètre nommé inattendu"
#: py/bc.c py/objnamedtuple.c
msgid "unexpected keyword argument '%q'"
-msgstr "argument nommé '%q' inattendu"
+msgstr "paramètre nommé '%q' inattendu"
#: py/lexer.c
msgid "unicode name escapes"
@@ -3842,12 +3865,12 @@ msgstr "type %q non pris on charge"
#: py/emitinlinethumb.c
#, c-format
msgid "unsupported Thumb instruction '%s' with %d arguments"
-msgstr "instruction Thumb '%s' non supportée avec %d arguments"
+msgstr "instruction Thumb '%s' non supportée avec %d paramètres"
#: py/emitinlinextensa.c
#, c-format
msgid "unsupported Xtensa instruction '%s' with %d arguments"
-msgstr "instruction Xtensa '%s' non supportée avec %d arguments"
+msgstr "instruction Xtensa '%s' non supportée avec %d paramètres"
#: py/objstr.c
#, c-format
@@ -3881,11 +3904,11 @@ msgstr "les vecteurs doivent avoir la même longueur"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
-msgstr ""
+msgstr "conflit au réveil"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
-msgstr "chien de garde non initialisé"
+msgstr "chien de garde (watchdog) non initialisé"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "watchdog timeout must be greater than 0"
@@ -3897,15 +3920,15 @@ msgstr "width doit être plus grand que zero"
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
-msgstr "la fenêtre doit être <= intervalle"
+msgstr "la fenêtre (window) doit être <= intervalle (interval)"
#: extmod/ulab/code/numerical/numerical.c
msgid "wrong axis index"
-msgstr ""
+msgstr "index d'axe incorrecte"
#: extmod/ulab/code/ulab_create.c
msgid "wrong axis specified"
-msgstr ""
+msgstr "axe incorrecte spécifiée"
#: extmod/ulab/code/vector/vectorise.c
msgid "wrong input type"
diff --git a/locale/hi.po b/locale/hi.po
index 5a75cf401..34d0238f6 100644
--- a/locale/hi.po
+++ b/locale/hi.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -1169,6 +1169,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1487,6 +1488,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr ""
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr ""
@@ -1857,6 +1862,10 @@ msgstr ""
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr ""
+
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr ""
diff --git a/locale/it_IT.po b/locale/it_IT.po
index fe742d588..dbefb87a8 100644
--- a/locale/it_IT.po
+++ b/locale/it_IT.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
"Language-Team: \n"
@@ -1186,6 +1186,7 @@ msgstr "Fase non valida"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1510,6 +1511,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr ""
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr ""
@@ -1889,6 +1894,10 @@ msgstr "Troppi schermi"
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr ""
+
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Traceback (chiamata più recente per ultima):\n"
diff --git a/locale/ja.po b/locale/ja.po
index dbab57219..6ccdc158e 100644
--- a/locale/ja.po
+++ b/locale/ja.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: 2020-11-27 18:34+0000\n"
"Last-Translator: sporeball <sporeballdev@gmail.com>\n"
"Language-Team: none\n"
@@ -1182,6 +1182,7 @@ msgstr "不正なphase"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1502,6 +1503,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr ""
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr ""
@@ -1879,6 +1884,10 @@ msgstr ""
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr ""
+
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "トレースバック(最新の呼び出しが末尾):\n"
diff --git a/locale/ko.po b/locale/ko.po
index e0006f000..c2272af7b 100644
--- a/locale/ko.po
+++ b/locale/ko.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: 2020-10-05 12:12+0000\n"
"Last-Translator: Michal Čihař <michal@cihar.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1172,6 +1172,7 @@ msgstr "단계가 잘못되었습니다"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1490,6 +1491,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr ""
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr ""
@@ -1860,6 +1865,10 @@ msgstr ""
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr ""
+
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr ""
diff --git a/locale/nl.po b/locale/nl.po
index 57bd8cd0b..73aeade01 100644
--- a/locale/nl.po
+++ b/locale/nl.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: 2020-12-23 20:14+0000\n"
"Last-Translator: _fonzlate <vooralfred@gmail.com>\n"
"Language-Team: none\n"
@@ -1183,6 +1183,7 @@ msgstr "Ongeldige fase"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1507,6 +1508,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr "Slechts één alarm.time alarm kan worden ingesteld."
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr ""
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr "Er kan maar één kleur per keer transparant zijn"
@@ -1899,6 +1904,10 @@ msgstr "Teveel beeldschermen"
msgid "Total data to write is larger than outgoing_packet_length"
msgstr "Totale data om te schrijven is groter dan outgoing_packet_length"
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr ""
+
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Traceback (meest recente call laatst):\n"
diff --git a/locale/pl.po b/locale/pl.po
index fe969af3d..deefb878b 100644
--- a/locale/pl.po
+++ b/locale/pl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: 2020-12-02 20:29+0000\n"
"Last-Translator: Maciej Stankiewicz <tawezik@gmail.com>\n"
"Language-Team: pl\n"
@@ -1182,6 +1182,7 @@ msgstr "Zła faza"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1501,6 +1502,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr ""
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr "W danym momencie przezroczysty może być tylko jeden kolor"
@@ -1871,6 +1876,10 @@ msgstr "Zbyt wiele wyświetlaczy"
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr ""
+
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Ślad wyjątku (najnowsze wywołanie na końcu):\n"
diff --git a/locale/pt_BR.po b/locale/pt_BR.po
index 1d8819a69..73922b3d3 100644
--- a/locale/pt_BR.po
+++ b/locale/pt_BR.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
-"PO-Revision-Date: 2020-12-29 16:08+0000\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
+"PO-Revision-Date: 2021-01-01 04:29+0000\n"
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
"Language-Team: \n"
"Language: pt_BR\n"
@@ -1199,6 +1199,7 @@ msgstr "Fase Inválida"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1522,6 +1523,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr "Apenas um alarme alarm.time pode ser definido."
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr "Apenas um alarme alarm.touch pode ser definido."
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr "Apenas uma cor pode ser transparente de cada vez"
@@ -1922,6 +1927,10 @@ msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
"O total dos dados que serão gravados é maior que outgoing_packet_length"
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr "O TouchAlarm não está disponívle no modo light sleep"
+
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Traceback (a última chamada mais recente):\n"
diff --git a/locale/sv.po b/locale/sv.po
index 0d17fc539..71b1c3a86 100644
--- a/locale/sv.po
+++ b/locale/sv.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: 2020-12-28 17:59+0000\n"
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1182,6 +1182,7 @@ msgstr "Ogiltig fas"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1506,6 +1507,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr "Endast ett alarm.time kan ställas in."
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr ""
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr "Bara en färg kan vara genomskinlig i taget"
@@ -1897,6 +1902,10 @@ msgstr "För många displayer"
msgid "Total data to write is larger than outgoing_packet_length"
msgstr "Total data som ska skrivas är större än outgoing_packet_length"
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr ""
+
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Traceback (senaste anrop):\n"
diff --git a/locale/zh_Latn_pinyin.po b/locale/zh_Latn_pinyin.po
index ff1d89a31..b372b067a 100644
--- a/locale/zh_Latn_pinyin.po
+++ b/locale/zh_Latn_pinyin.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: circuitpython-cn\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-12-23 23:04-0500\n"
+"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: 2020-11-19 01:28+0000\n"
"Last-Translator: hexthat <hexthat@gmail.com>\n"
"Language-Team: Chinese Hanyu Pinyin\n"
@@ -1180,6 +1180,7 @@ msgstr "Jiēduàn wúxiào"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
@@ -1503,6 +1504,10 @@ msgstr ""
msgid "Only one alarm.time alarm can be set."
msgstr ""
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "Only one alarm.touch alarm can be set."
+msgstr ""
+
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr "Yīcì zhǐ néng yǒuyī zhǒng yánsè shì tòumíng de"
@@ -1887,6 +1892,10 @@ msgstr "Xiǎnshì tài duō"
msgid "Total data to write is larger than outgoing_packet_length"
msgstr "Yào xiě rù de zǒng shùjù dàyú outgoing_packet_length"
+#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
+msgid "TouchAlarm not available in light sleep"
+msgstr ""
+
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Traceback (Zuìjìn yīcì dǎ diànhuà):\n"
diff --git a/main.c b/main.c
index 9c4055a28..91b6a062d 100755
--- a/main.c
+++ b/main.c
@@ -157,7 +157,7 @@ STATIC void start_mp(supervisor_allocation* heap) {
#if CIRCUITPY_ALARM
// Record which alarm woke us up, if any. An object may be created so the heap must be functional.
- alarm_save_wakeup_alarm();
+ alarm_save_wake_alarm();
// Reset alarm module only after we retrieved the wakeup alarm.
alarm_reset();
#endif
diff --git a/ports/atmel-samd/boards/8086_commander/mpconfigboard.mk b/ports/atmel-samd/boards/8086_commander/mpconfigboard.mk
index f976dfe78..b5a4bc735 100644
--- a/ports/atmel-samd/boards/8086_commander/mpconfigboard.mk
+++ b/ports/atmel-samd/boards/8086_commander/mpconfigboard.mk
@@ -22,6 +22,7 @@ CIRCUITPY_GAMEPAD = 1
CIRCUITPY_BUSDEVICE = 1
# Include these Python libraries in firmware.
+FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_HID
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_SD
#FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_ADXL34x
diff --git a/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.mk b/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.mk
index 331a3110e..5624144e8 100644
--- a/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.mk
+++ b/ports/atmel-samd/boards/feather_m0_express_crickit/mpconfigboard.mk
@@ -20,6 +20,7 @@ CIRCUITPY_GAMEPAD = 0
CFLAGS_INLINE_LIMIT = 50
# Include these Python libraries in firmware.
+FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Crickit
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Motor
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
diff --git a/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.mk b/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.mk
index 6ea21ed82..6e089bb90 100644
--- a/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.mk
+++ b/ports/atmel-samd/boards/feather_m0_rfm69/mpconfigboard.mk
@@ -28,4 +28,5 @@ CFLAGS_INLINE_LIMIT = 35
SUPEROPT_GC = 0
# Include these Python libraries in firmware.
+FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_RFM69
diff --git a/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.mk b/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.mk
index 76a6be2e3..383b6a6df 100644
--- a/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.mk
+++ b/ports/atmel-samd/boards/feather_m0_rfm9x/mpconfigboard.mk
@@ -29,4 +29,5 @@ CFLAGS_INLINE_LIMIT = 35
SUPEROPT_GC = 0
# Include these Python libraries in firmware.
+FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_RFM9x
diff --git a/ports/atmel-samd/boards/hallowing_m0_express/mpconfigboard.mk b/ports/atmel-samd/boards/hallowing_m0_express/mpconfigboard.mk
index 2b211abd4..1931ceb9a 100644
--- a/ports/atmel-samd/boards/hallowing_m0_express/mpconfigboard.mk
+++ b/ports/atmel-samd/boards/hallowing_m0_express/mpconfigboard.mk
@@ -27,6 +27,7 @@ CFLAGS_INLINE_LIMIT = 55
SUPEROPT_GC = 0
# Include these Python libraries in firmware.
+FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_LIS3DH
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
diff --git a/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.mk b/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.mk
index 393adf839..321ee5f47 100644
--- a/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.mk
+++ b/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.mk
@@ -15,3 +15,6 @@ LONGINT_IMPL = MPZ
CIRCUITPY_AUDIOBUSIO = 0
CIRCUITPY_BITBANG_APA102 = 1
+
+#Include these Python libraries in firmware.
+FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_DotStar
diff --git a/ports/atmel-samd/boards/pycubed/mpconfigboard.mk b/ports/atmel-samd/boards/pycubed/mpconfigboard.mk
index a82362b8d..b7b8073ab 100644
--- a/ports/atmel-samd/boards/pycubed/mpconfigboard.mk
+++ b/ports/atmel-samd/boards/pycubed/mpconfigboard.mk
@@ -21,6 +21,7 @@ CIRCUITPY_GAMEPAD = 0
CIRCUITPY_RGBMATRIX = 0
CIRCUITPY_PS2IO = 0
+FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_SD
diff --git a/ports/atmel-samd/boards/pycubed_mram/mpconfigboard.mk b/ports/atmel-samd/boards/pycubed_mram/mpconfigboard.mk
index 3bf42d705..f49bb3fef 100644
--- a/ports/atmel-samd/boards/pycubed_mram/mpconfigboard.mk
+++ b/ports/atmel-samd/boards/pycubed_mram/mpconfigboard.mk
@@ -21,6 +21,7 @@ CIRCUITPY_GAMEPAD = 0
CIRCUITPY_RGBMATRIX = 0
CIRCUITPY_PS2IO = 0
+FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_SD
diff --git a/ports/atmel-samd/boards/sam32/mpconfigboard.mk b/ports/atmel-samd/boards/sam32/mpconfigboard.mk
index 9ac24a014..1dc686ef8 100644
--- a/ports/atmel-samd/boards/sam32/mpconfigboard.mk
+++ b/ports/atmel-samd/boards/sam32/mpconfigboard.mk
@@ -13,4 +13,5 @@ LONGINT_IMPL = MPZ
CIRCUITPY_AUDIOBUSIO = 0
CIRCUITPY_USTACK = 1
+FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
diff --git a/ports/atmel-samd/boards/xinabox_cc03/mpconfigboard.mk b/ports/atmel-samd/boards/xinabox_cc03/mpconfigboard.mk
index d6f333b5b..3562228c7 100644
--- a/ports/atmel-samd/boards/xinabox_cc03/mpconfigboard.mk
+++ b/ports/atmel-samd/boards/xinabox_cc03/mpconfigboard.mk
@@ -24,3 +24,4 @@ CIRCUITPY_TOUCHIO=0
CIRCUITPY_BUSDEVICE=1
# Include these Python libraries in firmware.
+FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
diff --git a/ports/atmel-samd/boards/xinabox_cs11/mpconfigboard.mk b/ports/atmel-samd/boards/xinabox_cs11/mpconfigboard.mk
index fd2fa044a..53908293f 100644
--- a/ports/atmel-samd/boards/xinabox_cs11/mpconfigboard.mk
+++ b/ports/atmel-samd/boards/xinabox_cs11/mpconfigboard.mk
@@ -27,4 +27,5 @@ CIRCUITPY_COUNTIO=0
CIRCUITPY_BUSDEVICE=1
# Include these Python libraries in firmware.
+FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_SD
diff --git a/ports/esp32s2/Makefile b/ports/esp32s2/Makefile
index c1e20d17a..4a334a2eb 100644
--- a/ports/esp32s2/Makefile
+++ b/ports/esp32s2/Makefile
@@ -194,6 +194,7 @@ SRC_C += \
lib/utils/sys_stdio_mphal.c \
lib/netutils/netutils.c \
peripherals/timer.c \
+ peripherals/touch.c \
peripherals/pcnt.c \
peripherals/pins.c \
peripherals/rmt.c \
diff --git a/ports/esp32s2/README.md b/ports/esp32s2/README.md
index 0738d520e..f5a2bfe5c 100644
--- a/ports/esp32s2/README.md
+++ b/ports/esp32s2/README.md
@@ -7,7 +7,7 @@ This port adds the ESP32-S2 line of modules from Espressif to Circuitpython. ESP
- **bindings/** contains some required bindings to the ESP-IDF for exceptions and memory.
- **boards/** contains the configuration files for each development board and breakout available on the port.
- **common-hal/** contains the port-specific module implementations, used by shared-module and shared-bindings.
-- **esp-idf/** contains the Espressif IoT development framework installation, includign all the drivers for the port.
+- **esp-idf/** contains the Espressif IoT development framework installation, including all the drivers for the port.
- **modules/** contains information specific to certain ESP32-S2 hardware modules, such as the pins used for flash and RAM on the WROVER and WROOM.
- **peripherals/** contains peripheral setup files and peripheral mapping information, sorted by family and sub-variant. Most files in this directory can be generated with the python scripts in **tools/**.
- **supervisor/** contains port-specific implementations of internal flash, serial and USB, as well as the **port.c** file, which initializes the port at startup.
diff --git a/ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h b/ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
index b68a31b9e..e100ac118 100644
--- a/ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
+++ b/ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
@@ -30,7 +30,6 @@
#define MICROPY_HW_MCU_NAME "ESP32S2"
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO0)
-
#define BOARD_USER_SAFE_MODE_ACTION translate("pressing boot button at start up.\n")
#define AUTORESET_DELAY_MS 500
diff --git a/ports/esp32s2/boards/unexpectedmaker_feathers2/pins.c b/ports/esp32s2/boards/unexpectedmaker_feathers2/pins.c
index c294fb9d3..bef2001ba 100644
--- a/ports/esp32s2/boards/unexpectedmaker_feathers2/pins.c
+++ b/ports/esp32s2/boards/unexpectedmaker_feathers2/pins.c
@@ -9,9 +9,9 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_GPIO18) },
- { MP_ROM_QSTR(MP_QSTR_IO13), MP_ROM_PTR(&pin_GPIO13) },
- { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO13) },
- { MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_GPIO13) },
+ { MP_ROM_QSTR(MP_QSTR_IO14), MP_ROM_PTR(&pin_GPIO14) },
+ { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO14) },
+ { MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_GPIO14) },
{ MP_ROM_QSTR(MP_QSTR_IO12), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO12) },
@@ -82,18 +82,16 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO11) },
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_GPIO11) },
- { MP_ROM_QSTR(MP_QSTR_APA102_MOSI), MP_ROM_PTR(&pin_GPIO40) }, // MTDO
- { MP_ROM_QSTR(MP_QSTR_APA102_SCK), MP_ROM_PTR(&pin_GPIO45) },
+ { MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO13) }, // Blue LED
+ { MP_ROM_QSTR(MP_QSTR_APA102_MOSI), MP_ROM_PTR(&pin_GPIO40) }, // APA102
+ { MP_ROM_QSTR(MP_QSTR_APA102_SCK), MP_ROM_PTR(&pin_GPIO45) }, // APA102
- { MP_ROM_QSTR(MP_QSTR_LDO2), MP_ROM_PTR(&pin_GPIO21) },
- { MP_ROM_QSTR(MP_QSTR_IO21), MP_ROM_PTR(&pin_GPIO21) },
+ { MP_ROM_QSTR(MP_QSTR_LDO2), MP_ROM_PTR(&pin_GPIO21) }, // Second LDO Enable control
+ { MP_ROM_QSTR(MP_QSTR_IO21), MP_ROM_PTR(&pin_GPIO21) }, // Second LDO Enable control
- { MP_ROM_QSTR(MP_QSTR_IO13), MP_ROM_PTR(&pin_GPIO13) },
- { MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO13) },
-
- { MP_ROM_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },
- { MP_ROM_QSTR(MP_QSTR_AMB), MP_ROM_PTR(&pin_GPIO4) },
+ { MP_ROM_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) }, // Ambient Light Sensor
+ { MP_ROM_QSTR(MP_QSTR_AMB), MP_ROM_PTR(&pin_GPIO4) }, // Ambient Light Sensor
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
diff --git a/ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h b/ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
index 93d901bec..d550ff64f 100644
--- a/ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
+++ b/ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
@@ -36,3 +36,13 @@
// #define MICROPY_HW_APA102_MOSI (&pin_GPIO40)
// #define MICROPY_HW_APA102_SCK (&pin_GPIO45)
+
+#define DEFAULT_I2C_BUS_SCL (&pin_GPIO38)
+#define DEFAULT_I2C_BUS_SDA (&pin_GPIO33)
+
+#define DEFAULT_SPI_BUS_SCK (&pin_GPIO36)
+#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO35)
+#define DEFAULT_SPI_BUS_MISO (&pin_GPIO37)
+
+#define DEFAULT_UART_BUS_RX (&pin_GPIO44)
+#define DEFAULT_UART_BUS_TX (&pin_GPIO43)
diff --git a/ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/pins.c b/ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/pins.c
index a1036f850..57ac27aeb 100644
--- a/ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/pins.c
+++ b/ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/pins.c
@@ -9,10 +9,9 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_GPIO18) },
- { MP_ROM_QSTR(MP_QSTR_IO13), MP_ROM_PTR(&pin_GPIO13) },
- { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO13) },
- { MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_GPIO13) },
- { MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO13) },
+ { MP_ROM_QSTR(MP_QSTR_IO14), MP_ROM_PTR(&pin_GPIO14) },
+ { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO14) },
+ { MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_GPIO14) },
{ MP_ROM_QSTR(MP_QSTR_IO12), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO12) },
@@ -26,7 +25,7 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_D19), MP_ROM_PTR(&pin_GPIO5) },
- { MP_ROM_QSTR(MP_QSTR_IO36), MP_ROM_PTR(&pin_GPIO36) },
+ { MP_ROM_QSTR(MP_QSTR_IO36), MP_ROM_PTR(&pin_GPIO36) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO36) },
{ MP_ROM_QSTR(MP_QSTR_D25), MP_ROM_PTR(&pin_GPIO36) },
@@ -83,17 +82,16 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO11) },
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_GPIO11) },
- { MP_ROM_QSTR(MP_QSTR_APA102_MOSI), MP_ROM_PTR(&pin_GPIO40) }, // MTDO
- { MP_ROM_QSTR(MP_QSTR_APA102_SCK), MP_ROM_PTR(&pin_GPIO45) },
+ { MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO13) }, // Blue LED
- { MP_ROM_QSTR(MP_QSTR_LDO2), MP_ROM_PTR(&pin_GPIO21) },
- { MP_ROM_QSTR(MP_QSTR_IO21), MP_ROM_PTR(&pin_GPIO21) },
+ { MP_ROM_QSTR(MP_QSTR_APA102_MOSI), MP_ROM_PTR(&pin_GPIO40) }, // APA102
+ { MP_ROM_QSTR(MP_QSTR_APA102_SCK), MP_ROM_PTR(&pin_GPIO45) }, // APA102
- { MP_ROM_QSTR(MP_QSTR_IO13), MP_ROM_PTR(&pin_GPIO13) },
- { MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO13) },
+ { MP_ROM_QSTR(MP_QSTR_LDO2), MP_ROM_PTR(&pin_GPIO21) }, // Second LDO Enable control
+ { MP_ROM_QSTR(MP_QSTR_IO21), MP_ROM_PTR(&pin_GPIO21) }, // Second LDO Enable control
- { MP_ROM_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },
- { MP_ROM_QSTR(MP_QSTR_AMB), MP_ROM_PTR(&pin_GPIO4) },
+ { MP_ROM_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) }, // Ambient Light Sensor
+ { MP_ROM_QSTR(MP_QSTR_AMB), MP_ROM_PTR(&pin_GPIO4) }, // Ambient Light Sensor
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
diff --git a/ports/esp32s2/common-hal/alarm/__init__.c b/ports/esp32s2/common-hal/alarm/__init__.c
index f2686cf18..47764a03a 100644
--- a/ports/esp32s2/common-hal/alarm/__init__.c
+++ b/ports/esp32s2/common-hal/alarm/__init__.c
@@ -31,11 +31,13 @@
#include "py/runtime.h"
#include "shared-bindings/alarm/__init__.h"
-#include "shared-bindings/alarm/pin/PinAlarm.h"
#include "shared-bindings/alarm/SleepMemory.h"
+#include "shared-bindings/alarm/pin/PinAlarm.h"
#include "shared-bindings/alarm/time/TimeAlarm.h"
-#include "shared-bindings/microcontroller/__init__.h"
+#include "shared-bindings/alarm/touch/TouchAlarm.h"
+
#include "shared-bindings/wifi/__init__.h"
+#include "shared-bindings/microcontroller/__init__.h"
#include "supervisor/port.h"
#include "supervisor/shared/workflow.h"
@@ -53,20 +55,23 @@ const alarm_sleep_memory_obj_t alarm_sleep_memory_obj = {
};
void alarm_reset(void) {
- alarm_time_timealarm_reset();
- alarm_pin_pinalarm_reset();
alarm_sleep_memory_reset();
+ alarm_pin_pinalarm_reset();
+ alarm_time_timealarm_reset();
+ alarm_touch_touchalarm_reset();
esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_ALL);
}
STATIC esp_sleep_wakeup_cause_t _get_wakeup_cause(void) {
+ if (alarm_pin_pinalarm_woke_us_up()) {
+ return ESP_SLEEP_WAKEUP_GPIO;
+ }
if (alarm_time_timealarm_woke_us_up()) {
return ESP_SLEEP_WAKEUP_TIMER;
}
- if (alarm_pin_pinalarm_woke_us_up()) {
- return ESP_SLEEP_WAKEUP_GPIO;
+ if (alarm_touch_touchalarm_woke_us_up()) {
+ return ESP_SLEEP_WAKEUP_TOUCHPAD;
}
-
return esp_sleep_get_wakeup_cause();
}
@@ -88,8 +93,7 @@ STATIC mp_obj_t _get_wake_alarm(size_t n_alarms, const mp_obj_t *alarms) {
}
case ESP_SLEEP_WAKEUP_TOUCHPAD:
- // TODO: implement TouchIO
- // Wake up from touch on pad, esp_sleep_get_touchpad_wakeup_status()
+ return alarm_touch_touchalarm_get_wakeup_alarm(n_alarms, alarms);
break;
case ESP_SLEEP_WAKEUP_UNDEFINED:
@@ -108,6 +112,7 @@ mp_obj_t common_hal_alarm_get_wake_alarm(void) {
STATIC void _setup_sleep_alarms(bool deep_sleep, size_t n_alarms, const mp_obj_t *alarms) {
alarm_pin_pinalarm_set_alarms(deep_sleep, n_alarms, alarms);
alarm_time_timealarm_set_alarms(deep_sleep, n_alarms, alarms);
+ alarm_touch_touchalarm_set_alarm(deep_sleep, n_alarms, alarms);
}
STATIC void _idle_until_alarm(void) {
@@ -116,9 +121,9 @@ STATIC void _idle_until_alarm(void) {
RUN_BACKGROUND_TASKS;
// Allow ctrl-C interrupt.
if (alarm_woken_from_sleep()) {
+ alarm_save_wake_alarm();
return;
}
-
port_idle_until_interrupt();
}
}
@@ -144,6 +149,7 @@ void common_hal_alarm_set_deep_sleep_alarms(size_t n_alarms, const mp_obj_t *ala
void NORETURN alarm_enter_deep_sleep(void) {
alarm_pin_pinalarm_prepare_for_deep_sleep();
+ alarm_touch_touchalarm_prepare_for_deep_sleep();
// The ESP-IDF caches the deep sleep settings and applies them before sleep.
// We don't need to worry about resetting them in the interim.
esp_deep_sleep_start();
diff --git a/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c b/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
new file mode 100644
index 000000000..20553877c
--- /dev/null
+++ b/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
@@ -0,0 +1,153 @@
+/*
+ * This file is part of the MicroPython project, http://micropython.org/
+ *
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 microDev
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include "shared-bindings/alarm/touch/TouchAlarm.h"
+#include "shared-bindings/microcontroller/__init__.h"
+
+#include "esp_sleep.h"
+#include "peripherals/touch.h"
+#include "supervisor/esp_port.h"
+
+static volatile bool woke_up = false;
+static touch_pad_t touch_channel = TOUCH_PAD_MAX;
+
+void common_hal_alarm_touch_touchalarm_construct(alarm_touch_touchalarm_obj_t *self, const mcu_pin_obj_t *pin) {
+ if (pin->touch_channel == TOUCH_PAD_MAX) {
+ mp_raise_ValueError(translate("Invalid pin"));
+ }
+ claim_pin(pin);
+ self->pin = pin;
+}
+
+mp_obj_t alarm_touch_touchalarm_get_wakeup_alarm(const size_t n_alarms, const mp_obj_t *alarms) {
+ // First, check to see if we match any given alarms.
+ for (size_t i = 0; i < n_alarms; i++) {
+ if (MP_OBJ_IS_TYPE(alarms[i], &alarm_touch_touchalarm_type)) {
+ return alarms[i];
+ }
+ }
+
+ alarm_touch_touchalarm_obj_t *alarm = m_new_obj(alarm_touch_touchalarm_obj_t);
+ alarm->base.type = &alarm_touch_touchalarm_type;
+ alarm->pin = NULL;
+
+ // Map the pin number back to a pin object.
+ for (size_t i = 0; i < mcu_pin_globals.map.used; i++) {
+ const mcu_pin_obj_t* pin_obj = MP_OBJ_TO_PTR(mcu_pin_globals.map.table[i].value);
+ if (pin_obj->touch_channel == touch_channel) {
+ alarm->pin = mcu_pin_globals.map.table[i].value;
+ break;
+ }
+ }
+
+ return alarm;
+}
+
+// This is used to wake the main CircuitPython task.
+void touch_interrupt(void *arg) {
+ (void) arg;
+ woke_up = true;
+ BaseType_t task_wakeup;
+ vTaskNotifyGiveFromISR(circuitpython_task, &task_wakeup);
+ if (task_wakeup) {
+ portYIELD_FROM_ISR();
+ }
+}
+
+void alarm_touch_touchalarm_set_alarm(const bool deep_sleep, const size_t n_alarms, const mp_obj_t *alarms) {
+ bool touch_alarm_set = false;
+ alarm_touch_touchalarm_obj_t *touch_alarm = MP_OBJ_NULL;
+
+ for (size_t i = 0; i < n_alarms; i++) {
+ if (MP_OBJ_IS_TYPE(alarms[i], &alarm_touch_touchalarm_type)) {
+ if (!touch_alarm_set) {
+ touch_alarm = MP_OBJ_TO_PTR(alarms[i]);
+ touch_alarm_set = true;
+ } else {
+ mp_raise_ValueError(translate("Only one alarm.touch alarm can be set."));
+ }
+ }
+ }
+ if (!touch_alarm_set) {
+ return;
+ }
+
+ touch_channel = touch_alarm->pin->touch_channel;
+
+ // configure interrupt for pretend to deep sleep
+ // this will be disabled if we actually deep sleep
+
+ // intialize touchpad
+ peripherals_touch_reset();
+ peripherals_touch_never_reset(true);
+ peripherals_touch_init(touch_channel);
+
+ // wait for touch data to reset
+ mp_hal_delay_ms(10);
+
+ // configure trigger threshold
+ uint32_t touch_value;
+ touch_pad_read_benchmark(touch_channel, &touch_value);
+ touch_pad_set_thresh(touch_channel, touch_value * 0.1); //10%
+
+ // configure touch interrupt
+ touch_pad_timeout_set(true, SOC_TOUCH_PAD_THRESHOLD_MAX);
+ touch_pad_isr_register(touch_interrupt, NULL, TOUCH_PAD_INTR_MASK_ALL);
+ touch_pad_intr_enable(TOUCH_PAD_INTR_MASK_ACTIVE | TOUCH_PAD_INTR_MASK_INACTIVE | TOUCH_PAD_INTR_MASK_TIMEOUT);
+}
+
+void alarm_touch_touchalarm_prepare_for_deep_sleep(void) {
+ // intialize touchpad
+ peripherals_touch_never_reset(false);
+ peripherals_touch_reset();
+ peripherals_touch_init(touch_channel);
+
+ // configure touchpad for sleep
+ touch_pad_sleep_channel_enable(touch_channel, true);
+ touch_pad_sleep_channel_enable_proximity(touch_channel, false);
+
+ // wait for touch data to reset
+ mp_hal_delay_ms(10);
+
+ // configure trigger threshold
+ uint32_t touch_value;
+ touch_pad_sleep_channel_read_smooth(touch_channel, &touch_value);
+ touch_pad_sleep_set_threshold(touch_channel, touch_value * 0.1); //10%
+
+ // enable touchpad wakeup
+ esp_sleep_enable_touchpad_wakeup();
+ esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
+}
+
+bool alarm_touch_touchalarm_woke_us_up(void) {
+ return woke_up;
+}
+
+void alarm_touch_touchalarm_reset(void) {
+ woke_up = false;
+ touch_channel = TOUCH_PAD_MAX;
+ peripherals_touch_never_reset(false);
+}
diff --git a/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.h b/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.h
new file mode 100644
index 000000000..755a3977a
--- /dev/null
+++ b/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.h
@@ -0,0 +1,46 @@
+/*
+ * This file is part of the MicroPython project, http://micropython.org/
+ *
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 microDev
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef MICROPY_INCLUDED_COMMON_HAL_ALARM_TOUCH_TOUCHALARM_H
+#define MICROPY_INCLUDED_COMMON_HAL_ALARM_TOUCH_TOUCHALARM_H
+
+#include "py/obj.h"
+#include "common-hal/microcontroller/Pin.h"
+
+typedef struct {
+ mp_obj_base_t base;
+ const mcu_pin_obj_t *pin;
+} alarm_touch_touchalarm_obj_t;
+
+// Find the alarm object that caused us to wake up or create an equivalent one.
+mp_obj_t alarm_touch_touchalarm_get_wakeup_alarm(const size_t n_alarms, const mp_obj_t *alarms);
+// Check for the wake up alarm from pretend deep sleep.
+void alarm_touch_touchalarm_set_alarm(const bool deep_sleep, const size_t n_alarms, const mp_obj_t *alarms);
+void alarm_touch_touchalarm_prepare_for_deep_sleep(void);
+bool alarm_touch_touchalarm_woke_us_up(void);
+void alarm_touch_touchalarm_reset(void);
+
+#endif // MICROPY_INCLUDED_COMMON_HAL_ALARM_TOUCH_TOUCHALARM_H
diff --git a/ports/esp32s2/common-hal/touchio/TouchIn.c b/ports/esp32s2/common-hal/touchio/TouchIn.c
index b27cbcf86..401b84d5c 100644
--- a/ports/esp32s2/common-hal/touchio/TouchIn.c
+++ b/ports/esp32s2/common-hal/touchio/TouchIn.c
@@ -27,20 +27,11 @@
#include "shared-bindings/touchio/TouchIn.h"
#include "py/runtime.h"
-#include "driver/touch_pad.h"
-
-bool touch_inited = false;
-
-void touchin_reset(void) {
- if (touch_inited) {
- touch_pad_deinit();
- touch_inited = false;
- }
-}
+#include "peripherals/touch.h"
static uint16_t get_raw_reading(touchio_touchin_obj_t *self) {
uint32_t touch_value;
- touch_pad_read_raw_data((touch_pad_t)self->pin->touch_channel, &touch_value);
+ touch_pad_read_raw_data(self->pin->touch_channel, &touch_value);
if (touch_value > UINT16_MAX) {
return UINT16_MAX;
}
@@ -54,21 +45,12 @@ void common_hal_touchio_touchin_construct(touchio_touchin_obj_t* self,
}
claim_pin(pin);
- if (!touch_inited) {
- touch_pad_init();
- touch_pad_set_fsm_mode(TOUCH_FSM_MODE_TIMER);
- touch_pad_fsm_start();
- touch_inited = true;
- }
-
- touch_pad_config((touch_pad_t)pin->touch_channel);
+ // initialize touchpad
+ peripherals_touch_init(pin->touch_channel);
- // wait for "raw data" to reset
+ // wait for touch data to reset
mp_hal_delay_ms(10);
- // Initial values for pins will vary, depending on what peripherals the pins
- // share on-chip.
-
// Set a "touched" threshold not too far above the initial value.
// For simple finger touch, the values may vary as much as a factor of two,
// but for touches using fruit or other objects, the difference is much less.
diff --git a/ports/esp32s2/common-hal/touchio/TouchIn.h b/ports/esp32s2/common-hal/touchio/TouchIn.h
index 91de20931..2f7c66d2b 100644
--- a/ports/esp32s2/common-hal/touchio/TouchIn.h
+++ b/ports/esp32s2/common-hal/touchio/TouchIn.h
@@ -27,9 +27,8 @@
#ifndef MICROPY_INCLUDED_ESP32S2_COMMON_HAL_TOUCHIO_TOUCHIN_H
#define MICROPY_INCLUDED_ESP32S2_COMMON_HAL_TOUCHIO_TOUCHIN_H
-#include "common-hal/microcontroller/Pin.h"
-
#include "py/obj.h"
+#include "common-hal/microcontroller/Pin.h"
typedef struct {
mp_obj_base_t base;
@@ -37,6 +36,4 @@ typedef struct {
uint16_t threshold;
} touchio_touchin_obj_t;
-void touchin_reset(void);
-
#endif // MICROPY_INCLUDED_ESP32S2_COMMON_HAL_TOUCHIO_TOUCHIN_H
diff --git a/ports/esp32s2/peripherals/pins.h b/ports/esp32s2/peripherals/pins.h
index 8bad937ef..e0f5e7ddf 100644
--- a/ports/esp32s2/peripherals/pins.h
+++ b/ports/esp32s2/peripherals/pins.h
@@ -44,7 +44,7 @@ typedef struct {
gpio_num_t number;
uint8_t adc_index:2;
uint8_t adc_channel:6;
- uint8_t touch_channel;
+ touch_pad_t touch_channel;
} mcu_pin_obj_t;
extern const mcu_pin_obj_t pin_GPIO0;
diff --git a/ports/esp32s2/peripherals/touch.c b/ports/esp32s2/peripherals/touch.c
new file mode 100644
index 000000000..6cf33b2bd
--- /dev/null
+++ b/ports/esp32s2/peripherals/touch.c
@@ -0,0 +1,53 @@
+/*
+ * This file is part of the MicroPython project, http://micropython.org/
+ *
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 microDev
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include "components/soc/include/hal/gpio_types.h"
+// above include fixes build error in idf@v4.2
+#include "peripherals/touch.h"
+
+static bool touch_inited = false;
+static bool touch_never_reset = false;
+
+void peripherals_touch_reset(void) {
+ if (touch_inited && !touch_never_reset) {
+ touch_pad_deinit();
+ touch_inited = false;
+ }
+}
+
+void peripherals_touch_never_reset(const bool enable) {
+ touch_never_reset = enable;
+}
+
+void peripherals_touch_init(const touch_pad_t touchpad) {
+ if (!touch_inited) {
+ touch_pad_init();
+ touch_pad_set_fsm_mode(TOUCH_FSM_MODE_TIMER);
+ touch_pad_fsm_start();
+ touch_inited = true;
+ }
+ touch_pad_config(touchpad);
+}
diff --git a/ports/esp32s2/peripherals/touch.h b/ports/esp32s2/peripherals/touch.h
new file mode 100644
index 000000000..218045f39
--- /dev/null
+++ b/ports/esp32s2/peripherals/touch.h
@@ -0,0 +1,36 @@
+/*
+ * This file is part of the MicroPython project, http://micropython.org/
+ *
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 microDev
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef MICROPY_INCLUDED_ESP32S2_PERIPHERALS_TOUCH_HANDLER_H
+#define MICROPY_INCLUDED_ESP32S2_PERIPHERALS_TOUCH_HANDLER_H
+
+#include "driver/touch_pad.h"
+
+extern void peripherals_touch_reset(void);
+extern void peripherals_touch_never_reset(const bool enable);
+extern void peripherals_touch_init(const touch_pad_t touchpad);
+
+#endif // MICROPY_INCLUDED_ESP32S2_PERIPHERALS_TOUCH_HANDLER_H
diff --git a/ports/esp32s2/supervisor/port.c b/ports/esp32s2/supervisor/port.c
index 75492492e..ead12003d 100644
--- a/ports/esp32s2/supervisor/port.c
+++ b/ports/esp32s2/supervisor/port.c
@@ -45,7 +45,6 @@
#include "common-hal/ps2io/Ps2.h"
#include "common-hal/pulseio/PulseIn.h"
#include "common-hal/pwmio/PWMOut.h"
-#include "common-hal/touchio/TouchIn.h"
#include "common-hal/watchdog/WatchDogTimer.h"
#include "common-hal/wifi/__init__.h"
#include "supervisor/memory.h"
@@ -55,6 +54,7 @@
#include "peripherals/rmt.h"
#include "peripherals/pcnt.h"
#include "peripherals/timer.h"
+#include "peripherals/touch.h"
#include "components/esp_rom/include/esp32s2/rom/ets_sys.h"
#include "components/heap/include/esp_heap_caps.h"
#include "components/xtensa/include/esp_debug_helpers.h"
@@ -198,7 +198,7 @@ void reset_port(void) {
#endif
#if CIRCUITPY_TOUCHIO_USE_NATIVE
- touchin_reset();
+ peripherals_touch_reset();
#endif
#if CIRCUITPY_WATCHDOG
diff --git a/py/circuitpy_defns.mk b/py/circuitpy_defns.mk
index 94f8ba42e..d6d192a95 100644
--- a/py/circuitpy_defns.mk
+++ b/py/circuitpy_defns.mk
@@ -311,6 +311,7 @@ SRC_COMMON_HAL_ALL = \
alarm/__init__.c \
alarm/pin/PinAlarm.c \
alarm/time/TimeAlarm.c \
+ alarm/touch/TouchAlarm.c \
analogio/AnalogIn.c \
analogio/AnalogOut.c \
analogio/__init__.c \
diff --git a/shared-bindings/_pixelbuf/PixelBuf.c b/shared-bindings/_pixelbuf/PixelBuf.c
index 88e8aa801..a4b5b5b1b 100644
--- a/shared-bindings/_pixelbuf/PixelBuf.c
+++ b/shared-bindings/_pixelbuf/PixelBuf.c
@@ -185,7 +185,7 @@ MP_DEFINE_CONST_FUN_OBJ_1(pixelbuf_pixelbuf_get_brightness_obj, pixelbuf_pixelbu
STATIC mp_obj_t pixelbuf_pixelbuf_obj_set_brightness(mp_obj_t self_in, mp_obj_t value) {
- mp_float_t brightness = mp_obj_float_get(value);
+ mp_float_t brightness = mp_obj_get_float(value);
if (brightness > 1) {
brightness = 1;
} else if (brightness < 0) {
diff --git a/shared-bindings/alarm/__init__.c b/shared-bindings/alarm/__init__.c
index dc5309353..7023c70e5 100644
--- a/shared-bindings/alarm/__init__.c
+++ b/shared-bindings/alarm/__init__.c
@@ -32,6 +32,7 @@
#include "shared-bindings/alarm/SleepMemory.h"
#include "shared-bindings/alarm/pin/PinAlarm.h"
#include "shared-bindings/alarm/time/TimeAlarm.h"
+#include "shared-bindings/alarm/touch/TouchAlarm.h"
#include "shared-bindings/supervisor/Runtime.h"
#include "shared-bindings/time/__init__.h"
#include "supervisor/shared/autoreload.h"
@@ -72,7 +73,8 @@
void validate_objs_are_alarms(size_t n_args, const mp_obj_t *objs) {
for (size_t i = 0; i < n_args; i++) {
if (MP_OBJ_IS_TYPE(objs[i], &alarm_pin_pinalarm_type) ||
- MP_OBJ_IS_TYPE(objs[i], &alarm_time_timealarm_type)) {
+ MP_OBJ_IS_TYPE(objs[i], &alarm_time_timealarm_type) ||
+ MP_OBJ_IS_TYPE(objs[i], &alarm_touch_touchalarm_type)) {
continue;
}
mp_raise_TypeError_varg(translate("Expected an alarm"));
@@ -182,6 +184,18 @@ STATIC const mp_obj_module_t alarm_time_module = {
.globals = (mp_obj_dict_t*)&alarm_time_globals,
};
+STATIC const mp_map_elem_t alarm_touch_globals_table[] = {
+ { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_touch) },
+ { MP_ROM_QSTR(MP_QSTR_TouchAlarm), MP_OBJ_FROM_PTR(&alarm_touch_touchalarm_type) },
+};
+
+STATIC MP_DEFINE_CONST_DICT(alarm_touch_globals, alarm_touch_globals_table);
+
+STATIC const mp_obj_module_t alarm_touch_module = {
+ .base = { &mp_type_module },
+ .globals = (mp_obj_dict_t*)&alarm_touch_globals,
+};
+
// The module table is mutable because .wake_alarm is a mutable attribute.
STATIC mp_map_elem_t alarm_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_alarm) },
@@ -195,6 +209,7 @@ STATIC mp_map_elem_t alarm_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_pin), MP_OBJ_FROM_PTR(&alarm_pin_module) },
{ MP_ROM_QSTR(MP_QSTR_time), MP_OBJ_FROM_PTR(&alarm_time_module) },
+ { MP_ROM_QSTR(MP_QSTR_touch), MP_OBJ_FROM_PTR(&alarm_touch_module) },
{ MP_ROM_QSTR(MP_QSTR_SleepMemory), MP_OBJ_FROM_PTR(&alarm_sleep_memory_type) },
{ MP_ROM_QSTR(MP_QSTR_sleep_memory), MP_OBJ_FROM_PTR(&alarm_sleep_memory_obj) },
@@ -212,21 +227,17 @@ mp_obj_t alarm_get_wake_alarm(void) {
}
}
-STATIC void alarm_set_wake_alarm(mp_obj_t alarm) {
+// Initialize .wake_alarm value.
+void alarm_save_wake_alarm(void) {
// Equivalent of:
// alarm.wake_alarm = alarm
mp_map_elem_t *elem =
mp_map_lookup(&alarm_module_globals.map, MP_ROM_QSTR(MP_QSTR_wake_alarm), MP_MAP_LOOKUP);
if (elem) {
- elem->value = alarm;
+ elem->value = common_hal_alarm_get_wake_alarm();
}
}
-// Initialize .wake_alarm value.
-void alarm_save_wakeup_alarm(void) {
- alarm_set_wake_alarm(common_hal_alarm_get_wake_alarm());
-}
-
const mp_obj_module_t alarm_module = {
.base = { &mp_type_module },
.globals = (mp_obj_dict_t*)&alarm_module_globals,
diff --git a/shared-bindings/alarm/__init__.h b/shared-bindings/alarm/__init__.h
index 4c12e0e70..154f91e26 100644
--- a/shared-bindings/alarm/__init__.h
+++ b/shared-bindings/alarm/__init__.h
@@ -50,7 +50,7 @@ extern void common_hal_alarm_gc_collect(void);
extern mp_obj_t common_hal_alarm_get_wake_alarm(void);
// Used by wake-up code.
-void alarm_save_wakeup_alarm(void);
+void alarm_save_wake_alarm(void);
// True if an alarm is alerting. This is most useful for pretend deep sleep.
diff --git a/shared-bindings/alarm/touch/TouchAlarm.c b/shared-bindings/alarm/touch/TouchAlarm.c
new file mode 100644
index 000000000..4259b71bd
--- /dev/null
+++ b/shared-bindings/alarm/touch/TouchAlarm.c
@@ -0,0 +1,91 @@
+/*
+ * This file is part of the MicroPython project, http://micropython.org/
+ *
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 microDev
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include "shared-bindings/alarm/touch/TouchAlarm.h"
+#include "shared-bindings/board/__init__.h"
+
+#include "py/objproperty.h"
+
+//| class TouchAlarm:
+//| """Trigger an alarm when touch is detected."""
+//|
+//| def __init__(self, *pin: microcontroller.Pin) -> None:
+//| """Create an alarm that will be triggered when the given pin is touched.
+//| The alarm is not active until it is passed to an `alarm`-enabling function, such as
+//| `alarm.light_sleep_until_alarms()` or `alarm.exit_and_deep_sleep_until_alarms()`.
+//|
+//| :param microcontroller.Pin pin: The pin to monitor. On some ports, the choice of pin
+//| may be limited due to hardware restrictions, particularly for deep-sleep alarms.
+//| """
+//| ...
+//|
+STATIC mp_obj_t alarm_touch_touchalarm_make_new(const mp_obj_type_t *type,
+ mp_uint_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
+ alarm_touch_touchalarm_obj_t *self = m_new_obj(alarm_touch_touchalarm_obj_t);
+ self->base.type = &alarm_touch_touchalarm_type;
+
+ enum { ARG_pin };
+ static const mp_arg_t allowed_args[] = {
+ { MP_QSTR_pin, MP_ARG_REQUIRED | MP_ARG_OBJ },
+ };
+
+ mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
+ mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
+
+ const mcu_pin_obj_t *pin = validate_obj_is_free_pin(args[ARG_pin].u_obj);
+
+ common_hal_alarm_touch_touchalarm_construct(self, pin);
+
+ return MP_OBJ_FROM_PTR(self);
+}
+
+//| pin: microcontroller.Pin
+//| """The trigger pin."""
+//|
+STATIC mp_obj_t alarm_touch_touchalarm_obj_get_pin(mp_obj_t self_in) {
+ alarm_touch_touchalarm_obj_t *self = MP_OBJ_TO_PTR(self_in);
+ return MP_OBJ_FROM_PTR(self->pin);
+}
+MP_DEFINE_CONST_FUN_OBJ_1(alarm_touch_touchalarm_get_pin_obj, alarm_touch_touchalarm_obj_get_pin);
+
+const mp_obj_property_t alarm_touch_touchalarm_pin_obj = {
+ .base.type = &mp_type_property,
+ .proxy = {(mp_obj_t)&alarm_touch_touchalarm_get_pin_obj,
+ (mp_obj_t)&mp_const_none_obj,
+ (mp_obj_t)&mp_const_none_obj},
+};
+
+STATIC const mp_rom_map_elem_t alarm_touch_touchalarm_locals_dict_table[] = {
+ { MP_ROM_QSTR(MP_QSTR_pin), MP_ROM_PTR(&alarm_touch_touchalarm_pin_obj) },
+};
+STATIC MP_DEFINE_CONST_DICT(alarm_touch_touchalarm_locals_dict, alarm_touch_touchalarm_locals_dict_table);
+
+const mp_obj_type_t alarm_touch_touchalarm_type = {
+ { &mp_type_type },
+ .name = MP_QSTR_TouchAlarm,
+ .make_new = alarm_touch_touchalarm_make_new,
+ .locals_dict = (mp_obj_t)&alarm_touch_touchalarm_locals_dict,
+};
diff --git a/shared-bindings/alarm/touch/TouchAlarm.h b/shared-bindings/alarm/touch/TouchAlarm.h
new file mode 100644
index 000000000..1b70d4dae
--- /dev/null
+++ b/shared-bindings/alarm/touch/TouchAlarm.h
@@ -0,0 +1,40 @@
+/*
+ * This file is part of the MicroPython project, http://micropython.org/
+ *
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 microDev
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_TOUCH_TOUCHALARM_H
+#define MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_TOUCH_TOUCHALARM_H
+
+#include "py/obj.h"
+#include "py/runtime.h"
+
+#include "common-hal/microcontroller/Pin.h"
+#include "common-hal/alarm/touch/TouchAlarm.h"
+
+extern const mp_obj_type_t alarm_touch_touchalarm_type;
+
+extern void common_hal_alarm_touch_touchalarm_construct(alarm_touch_touchalarm_obj_t *self, const mcu_pin_obj_t *pin);
+
+#endif // MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_TOUCH_TOUCHALARM_H