commit
2b4d12abcc
16
.github/workflows/build.yml
vendored
16
.github/workflows/build.yml
vendored
@ -37,7 +37,7 @@ jobs:
|
||||
run: |
|
||||
sudo apt-get install -y eatmydata
|
||||
sudo eatmydata apt-get install -y gettext librsvg2-bin mingw-w64 latexmk texlive-fonts-recommended texlive-latex-recommended texlive-latex-extra
|
||||
pip install requests sh click setuptools cpp-coveralls "Sphinx<4" sphinx-rtd-theme recommonmark sphinx-autoapi sphinxcontrib-svg2pdfconverter polib pyyaml astroid isort black awscli
|
||||
pip install requests sh click setuptools cpp-coveralls "Sphinx<4" sphinx-rtd-theme recommonmark sphinx-autoapi sphinxcontrib-svg2pdfconverter polib pyyaml astroid isort black awscli mypy
|
||||
- name: Versions
|
||||
run: |
|
||||
gcc --version
|
||||
@ -67,8 +67,8 @@ jobs:
|
||||
- name: mpy Tests
|
||||
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1 --via-mpy -d basics float
|
||||
working-directory: tests
|
||||
- name: Stubs
|
||||
run: make stubs -j2
|
||||
- name: Build and Validate Stubs
|
||||
run: make check-stubs -j2
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: stubs
|
||||
@ -111,11 +111,13 @@ jobs:
|
||||
with:
|
||||
name: mpy-cross.static-x64-windows
|
||||
path: mpy-cross/mpy-cross.static.exe
|
||||
- name: Upload mpy-cross builds to S3
|
||||
- name: Upload stubs and mpy-cross builds to S3
|
||||
run: |
|
||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static-raspbian s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-raspbian-${{ env.CP_VERSION }} --no-progress --region us-east-1
|
||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-amd64-linux-${{ env.CP_VERSION }} --no-progress --region us-east-1
|
||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static.exe s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-x64-windows-${{ env.CP_VERSION }}.exe --no-progress --region us-east-1
|
||||
zip -9r circuitpython-stubs.zip circuitpython-stubs
|
||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp circuitpython-stubs.zip s3://adafruit-circuit-python/bin/stubs/circuitpython-stubs-${{ env.CP_VERSION }}.zip --no-progress --region us-east-1
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
@ -131,7 +133,7 @@ jobs:
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
brew install gettext awscli
|
||||
brew install gettext
|
||||
echo >>$GITHUB_PATH /usr/local/opt/gettext/bin
|
||||
- name: Versions
|
||||
run: |
|
||||
@ -170,6 +172,7 @@ jobs:
|
||||
matrix:
|
||||
board:
|
||||
- "8086_commander"
|
||||
- "ADM_B_NRF52840_1"
|
||||
- "TG-Watch02A"
|
||||
- "aloriumtech_evo_m51"
|
||||
- "aramcon_badge_2019"
|
||||
@ -418,6 +421,7 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
board:
|
||||
- "adafruit_esp32s2_eink_portal"
|
||||
- "adafruit_metro_esp32s2"
|
||||
- "electroniccats_bastwifi"
|
||||
- "espressif_kaluga_1"
|
||||
@ -425,6 +429,8 @@ jobs:
|
||||
- "espressif_saola_1_wrover"
|
||||
- "microdev_micro_s2"
|
||||
- "muselab_nanoesp32_s2"
|
||||
- "targett_module_clip_wroom"
|
||||
- "targett_module_clip_wrover"
|
||||
- "unexpectedmaker_feathers2"
|
||||
- "unexpectedmaker_feathers2_prerelease"
|
||||
|
||||
|
@ -6,7 +6,7 @@ SPDX-License-Identifier: MIT
|
||||
|
||||
# Contributing
|
||||
Please note that this project is released with a
|
||||
[Contributor Code of Conduct](https://github.com/adafruit/circuitpython/blob/main/CODE_OF_CONDUCT.md).
|
||||
[Contributor Code of Conduct](CODE_OF_CONDUCT.md).
|
||||
By participating in this project you agree to abide by its terms. Participation
|
||||
covers any forum used to converse about CircuitPython including unofficial and official spaces. Failure to do
|
||||
so will result in corrective actions such as time out or ban from the project.
|
||||
|
26
README.rst
26
README.rst
@ -95,7 +95,6 @@ Differences from `MicroPython <https://github.com/micropython/micropython>`__
|
||||
CircuitPython:
|
||||
|
||||
- Supports native USB on all boards, allowing file editing without special tools.
|
||||
- Supports only SAMD21, SAMD51, nRF52840, CXD56, STM32F4 and i.MX RT ports.
|
||||
- Floats (aka decimals) are enabled for all builds.
|
||||
- Error messages are translated into 10+ languages.
|
||||
- Does not support concurrency within Python (including interrupts and threading). Some concurrency
|
||||
@ -137,8 +136,8 @@ Behavior
|
||||
API
|
||||
~~~
|
||||
|
||||
- Unified hardware APIs. Documented
|
||||
`on ReadTheDocs <https://circuitpython.readthedocs.io/en/latest/shared-bindings/index.html>`_.
|
||||
- Unified hardware APIs. Documented on
|
||||
`ReadTheDocs <https://circuitpython.readthedocs.io/en/latest/shared-bindings/index.html>`_.
|
||||
- API docs are rST within the C files in ``shared-bindings``.
|
||||
- No ``machine`` API.
|
||||
|
||||
@ -201,14 +200,27 @@ Ports
|
||||
Ports include the code unique to a microcontroller line and also
|
||||
variations based on the board.
|
||||
|
||||
- ``atmel-samd`` Support for SAMD21 and SAMD51 based boards.
|
||||
- ``nrf`` Support for the nRF52840 based boards.
|
||||
- ``unix`` Support for UNIX. Only used for automated testing.
|
||||
================ ============================================================
|
||||
Supported Support status
|
||||
================ ============================================================
|
||||
atmel-samd ``SAMD21`` stable | ``SAMD51`` stable
|
||||
cxd56 stable
|
||||
esp32s2 beta
|
||||
litex alpha
|
||||
mimxrt10xx alpha
|
||||
nrf stable
|
||||
stm ``F4`` stable | ``others`` beta
|
||||
unix alpha
|
||||
================ ============================================================
|
||||
|
||||
- ``stable`` Highly unlikely to have bugs or missing functionality.
|
||||
- ``beta`` Being actively improved but may be missing functionality and have bugs.
|
||||
- ``alpha`` Will have bugs and missing functionality.
|
||||
|
||||
The remaining port directories not listed above are in the repo to maintain compatibility with the
|
||||
`MicroPython <https://github.com/micropython/micropython>`__ parent project.
|
||||
|
||||
`back to top <#circuitpython>`__
|
||||
`Back to Top <#circuitpython>`__
|
||||
|
||||
.. |Build Status| image:: https://github.com/adafruit/circuitpython/workflows/Build%20CI/badge.svg
|
||||
:target: https://github.com/adafruit/circuitpython/actions?query=branch%3Amain
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 11a7ecff6d76a02644ff23a734b792afaa615e44
|
||||
Subproject commit 8242b84753355433b61230ab6631c06e5ac77f35
|
52
locale/ID.po
52
locale/ID.po
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2020-10-10 23:51+0000\n"
|
||||
"Last-Translator: oon arfiandwi <oon.arfiandwi@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -292,11 +292,16 @@ msgstr "Alamat harus sepanjang %d byte"
|
||||
msgid "Address type out of range"
|
||||
msgstr "Jenis alamat di luar batas"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Semua perangkat I2C 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 ""
|
||||
@ -413,6 +418,10 @@ msgstr ""
|
||||
"Auto-reload aktif. Silahkan simpan data-data (files) melalui USB untuk "
|
||||
"menjalankannya atau masuk ke REPL untukmenonaktifkan.\n"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -793,7 +802,7 @@ msgstr "Mode kendara tidak digunakan saat arah input."
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr "ECB hanya beroperasi pada 16 byte di satu waktu"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr ""
|
||||
|
||||
@ -919,6 +928,7 @@ msgid "File exists"
|
||||
msgstr "File sudah ada"
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
@ -1140,7 +1150,7 @@ msgstr "Pin untuk channel kanan tidak valid"
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1431,6 +1441,10 @@ msgstr ""
|
||||
"Hanya monokrom, 4bpp atau 8bpp yang diindeks, dan 16bpp atau lebih yang "
|
||||
"didukung: %d bpp diberikan"
|
||||
|
||||
#: shared-module/displayio/ColorConverter.c
|
||||
msgid "Only one color can be transparent at a time"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr ""
|
||||
@ -2154,6 +2168,10 @@ msgstr ""
|
||||
msgid "buffer too small"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr ""
|
||||
@ -2876,6 +2894,10 @@ msgstr ""
|
||||
msgid "long int not supported in this build"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr ""
|
||||
@ -2910,6 +2932,14 @@ msgstr ""
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3221,6 +3251,8 @@ msgstr ""
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3343,6 +3375,10 @@ msgstr "memulai ulang software(soft reboot)\n"
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr ""
|
||||
@ -3473,6 +3509,16 @@ msgstr ""
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\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"
|
||||
@ -288,11 +288,16 @@ msgstr ""
|
||||
msgid "Address type out of range"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: 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 ""
|
||||
@ -407,6 +412,10 @@ msgid ""
|
||||
"disable.\n"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -775,7 +784,7 @@ msgstr ""
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr ""
|
||||
|
||||
@ -901,6 +910,7 @@ msgid "File exists"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
@ -1119,7 +1129,7 @@ msgstr ""
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1404,6 +1414,10 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/ColorConverter.c
|
||||
msgid "Only one color can be transparent at a time"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr ""
|
||||
@ -2107,6 +2121,10 @@ msgstr ""
|
||||
msgid "buffer too small"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr ""
|
||||
@ -2829,6 +2847,10 @@ msgstr ""
|
||||
msgid "long int not supported in this build"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr ""
|
||||
@ -2863,6 +2885,14 @@ msgstr ""
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3173,6 +3203,8 @@ msgstr ""
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3295,6 +3327,10 @@ msgstr ""
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr ""
|
||||
@ -3424,6 +3460,16 @@ msgstr ""
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
|
52
locale/cs.po
52
locale/cs.po
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2020-05-24 03:22+0000\n"
|
||||
"Last-Translator: dronecz <mzuzelka@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -292,11 +292,16 @@ msgstr ""
|
||||
msgid "Address type out of range"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: 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 ""
|
||||
@ -411,6 +416,10 @@ msgid ""
|
||||
"disable.\n"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -779,7 +788,7 @@ msgstr ""
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr ""
|
||||
|
||||
@ -905,6 +914,7 @@ msgid "File exists"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
@ -1123,7 +1133,7 @@ msgstr ""
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1408,6 +1418,10 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/ColorConverter.c
|
||||
msgid "Only one color can be transparent at a time"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr ""
|
||||
@ -2111,6 +2125,10 @@ msgstr ""
|
||||
msgid "buffer too small"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr ""
|
||||
@ -2833,6 +2851,10 @@ msgstr ""
|
||||
msgid "long int not supported in this build"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr ""
|
||||
@ -2867,6 +2889,14 @@ msgstr ""
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3177,6 +3207,8 @@ msgstr ""
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3299,6 +3331,10 @@ msgstr ""
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr ""
|
||||
@ -3428,6 +3464,16 @@ msgstr ""
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
|
118
locale/de_DE.po
118
locale/de_DE.po
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2020-06-16 18:24+0000\n"
|
||||
"Last-Translator: Andreas Buchen <andreas.buchen@gmail.com>\n"
|
||||
"Language: de_DE\n"
|
||||
@ -73,7 +73,7 @@ msgstr "Der Index %q befindet sich außerhalb des Bereiches"
|
||||
|
||||
#: py/obj.c
|
||||
msgid "%q indices must be integers, not %q"
|
||||
msgstr ""
|
||||
msgstr "%q Indizes müssen Integer sein, nicht %q"
|
||||
|
||||
#: shared-bindings/vectorio/Polygon.c
|
||||
msgid "%q list must be a list"
|
||||
@ -81,7 +81,7 @@ msgstr "%q Liste muss eine Liste sein"
|
||||
|
||||
#: shared-bindings/memorymonitor/AllocationAlarm.c
|
||||
msgid "%q must be >= 0"
|
||||
msgstr ""
|
||||
msgstr "%q muss >= 0 sein"
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
#: shared-bindings/_bleio/PacketBuffer.c shared-bindings/displayio/Group.c
|
||||
@ -97,11 +97,11 @@ msgstr "%q muss ein Tupel der Länge 2 sein"
|
||||
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr ""
|
||||
msgstr "%q außerhalb des Bereichs"
|
||||
|
||||
#: ports/atmel-samd/common-hal/microcontroller/Pin.c
|
||||
msgid "%q pin invalid"
|
||||
msgstr ""
|
||||
msgstr "%q Pin ungültig"
|
||||
|
||||
#: shared-bindings/fontio/BuiltinFont.c
|
||||
msgid "%q should be an int"
|
||||
@ -117,11 +117,11 @@ msgstr "'%q' Argument erforderlich"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "'%q' object cannot assign attribute '%q'"
|
||||
msgstr ""
|
||||
msgstr "'%q' Objekt kann das Attribut '%q' nicht zuweisen"
|
||||
|
||||
#: py/proto.c
|
||||
msgid "'%q' object does not support '%q'"
|
||||
msgstr ""
|
||||
msgstr "'%q' Objekt unterstützt '%q' nicht"
|
||||
|
||||
#: py/obj.c
|
||||
msgid "'%q' object does not support item assignment"
|
||||
@ -129,11 +129,11 @@ msgstr ""
|
||||
|
||||
#: py/obj.c
|
||||
msgid "'%q' object does not support item deletion"
|
||||
msgstr ""
|
||||
msgstr "'%q' objekt unterstützt das "
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "'%q' object has no attribute '%q'"
|
||||
msgstr ""
|
||||
msgstr "'%q' Objekt hat kein Attribut '%q'"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "'%q' object is not an iterator"
|
||||
@ -141,7 +141,7 @@ msgstr ""
|
||||
|
||||
#: py/objtype.c py/runtime.c
|
||||
msgid "'%q' object is not callable"
|
||||
msgstr ""
|
||||
msgstr "'%q' Objekt ist kein callable"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "'%q' object is not iterable"
|
||||
@ -280,7 +280,7 @@ msgstr "Ein Hardware Interrupt Kanal wird schon benutzt"
|
||||
|
||||
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||
msgid "ADC2 is being used by WiFi"
|
||||
msgstr ""
|
||||
msgstr "ADC2 wird vom WiFi benutzt"
|
||||
|
||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||
#, c-format
|
||||
@ -291,11 +291,16 @@ msgstr "Die Adresse muss %d Bytes lang sein"
|
||||
msgid "Address type out of range"
|
||||
msgstr "Adresstyp außerhalb des zulässigen Bereichs"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Alle I2C-Peripheriegeräte sind in Benutzung"
|
||||
|
||||
#: 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 ""
|
||||
@ -346,11 +351,11 @@ msgstr ""
|
||||
#: shared-module/memorymonitor/AllocationAlarm.c
|
||||
#: shared-module/memorymonitor/AllocationSize.c
|
||||
msgid "Already running"
|
||||
msgstr ""
|
||||
msgstr "Läuft bereits"
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/Radio.c
|
||||
msgid "Already scanning for wifi networks"
|
||||
msgstr ""
|
||||
msgstr "Sucht bereits nach wifi Netzwerken"
|
||||
|
||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||
msgid "AnalogIn not supported on given pin"
|
||||
@ -390,7 +395,7 @@ msgstr "Es darf höchstens %d %q spezifiziert werden (nicht %d)"
|
||||
#: shared-module/memorymonitor/AllocationAlarm.c
|
||||
#, c-format
|
||||
msgid "Attempt to allocate %d blocks"
|
||||
msgstr ""
|
||||
msgstr "Versuche %d Blöcke zu allokieren"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Attempted heap allocation when MicroPython VM not running."
|
||||
@ -400,7 +405,7 @@ msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "Authentication failure"
|
||||
msgstr ""
|
||||
msgstr "Authentifizierungsfehler"
|
||||
|
||||
#: main.c
|
||||
msgid "Auto-reload is off.\n"
|
||||
@ -414,6 +419,10 @@ msgstr ""
|
||||
"Automatisches Neuladen ist aktiv. Speichere Dateien über USB um sie "
|
||||
"auszuführen oder verbinde dich mit der REPL zum Deaktivieren.\n"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -478,11 +487,11 @@ msgstr "Die Pufferlänge %d ist zu groß. Sie muss kleiner als %d sein"
|
||||
#: ports/atmel-samd/common-hal/sdioio/SDCard.c
|
||||
#: ports/cxd56/common-hal/sdioio/SDCard.c shared-module/sdcardio/SDCard.c
|
||||
msgid "Buffer length must be a multiple of 512"
|
||||
msgstr ""
|
||||
msgstr "Die Pufferlänge muss ein vielfaches von 512 sein"
|
||||
|
||||
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||
msgid "Buffer must be a multiple of 512 bytes"
|
||||
msgstr ""
|
||||
msgstr "Der Puffer muss ein vielfaches von 512 bytes sein"
|
||||
|
||||
#: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
|
||||
msgid "Buffer must be at least length 1"
|
||||
@ -660,7 +669,7 @@ msgstr "Beschädigter raw code"
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Could not initialize Camera"
|
||||
msgstr ""
|
||||
msgstr "Konnte Kamera nicht initialisieren"
|
||||
|
||||
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||
msgid "Could not initialize GNSS"
|
||||
@ -668,7 +677,7 @@ msgstr ""
|
||||
|
||||
#: ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
msgid "Could not initialize SDCard"
|
||||
msgstr ""
|
||||
msgstr "Konnte SDKarte nicht initialisieren"
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
@ -701,7 +710,7 @@ msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "Could not set address"
|
||||
msgstr ""
|
||||
msgstr "Konnte Adresse nicht setzen"
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Could not start PWM"
|
||||
@ -789,7 +798,7 @@ msgstr "Drive mode wird nicht verwendet, wenn die Richtung input ist."
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr "Die EZB arbeitet jeweils nur mit 16 Bytes"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr ""
|
||||
|
||||
@ -818,7 +827,7 @@ msgstr "Characteristic wird erwartet"
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "Expected a DigitalInOut"
|
||||
msgstr ""
|
||||
msgstr "DigitanInOut wird erwartet"
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c
|
||||
msgid "Expected a Service"
|
||||
@ -826,7 +835,7 @@ msgstr "Ein Service wird erwartet"
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "Expected a UART"
|
||||
msgstr ""
|
||||
msgstr "UART wird erwartet"
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
#: shared-bindings/_bleio/Service.c
|
||||
@ -853,7 +862,7 @@ msgstr "FFT ist nur für ndarrays definiert"
|
||||
|
||||
#: ports/esp32s2/common-hal/socketpool/Socket.c
|
||||
msgid "Failed SSL handshake"
|
||||
msgstr ""
|
||||
msgstr "SSL Handshake fehlgeschlagen"
|
||||
|
||||
#: shared-bindings/ps2io/Ps2.c
|
||||
msgid "Failed sending command."
|
||||
@ -916,18 +925,19 @@ msgid "File exists"
|
||||
msgstr "Datei existiert"
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
msgstr "Filter zu komplex"
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr ""
|
||||
msgstr "Format nicht unterstützt"
|
||||
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
#, c-format
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr ""
|
||||
msgstr "Framepuffer benötigt %d bytes"
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
@ -968,7 +978,7 @@ msgstr "Hardware in benutzung, probiere alternative Pins"
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "Hostname must be between 1 and 253 characters"
|
||||
msgstr ""
|
||||
msgstr "Der Hostname muss zwischen 1 und 253 Zeichen haben"
|
||||
|
||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||
msgid "I/O operation on closed file"
|
||||
@ -980,7 +990,7 @@ msgstr "I2C-Init-Fehler"
|
||||
|
||||
#: shared-bindings/audiobusio/I2SOut.c
|
||||
msgid "I2SOut not available"
|
||||
msgstr ""
|
||||
msgstr "I2SOut nicht verfügbar"
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
#, c-format
|
||||
@ -1026,12 +1036,12 @@ msgstr "Interner Fehler #%d"
|
||||
|
||||
#: shared-bindings/sdioio/SDCard.c
|
||||
msgid "Invalid %q"
|
||||
msgstr ""
|
||||
msgstr "Ungültiger %q"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Invalid %q pin"
|
||||
msgstr "Ungültiger %q pin"
|
||||
msgstr "Ungültiger %q Pin"
|
||||
|
||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||
@ -1049,7 +1059,7 @@ msgstr "Ungültige BMP-Datei"
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "Invalid BSSID"
|
||||
msgstr ""
|
||||
msgstr "Ungültige BSSID"
|
||||
|
||||
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||
@ -1100,7 +1110,7 @@ msgstr "Ungültige format chunk size"
|
||||
|
||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||
msgid "Invalid frequency"
|
||||
msgstr ""
|
||||
msgstr "Ungültige Frequenz"
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Invalid frequency supplied"
|
||||
@ -1140,7 +1150,7 @@ msgstr "Ungültiger Pin für rechten Kanal"
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1433,6 +1443,10 @@ msgstr ""
|
||||
"Nur monochrome, indizierte 4bpp oder 8bpp, und 16bpp oder größere BMPs "
|
||||
"unterstützt: %d bpp wurden gegeben"
|
||||
|
||||
#: shared-module/displayio/ColorConverter.c
|
||||
msgid "Only one color can be transparent at a time"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr ""
|
||||
@ -1986,8 +2000,8 @@ msgstr "WatchDogTimer läuft aktuell nicht"
|
||||
#: shared-bindings/watchdog/WatchDogTimer.c
|
||||
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
|
||||
msgstr ""
|
||||
"WatchDogTimer.mode kann nicht geändert werden, nachdem "
|
||||
"er auf WatchDogMode.RESET gesetzt wurde"
|
||||
"WatchDogTimer.mode kann nicht geändert werden, nachdem er auf WatchDogMode."
|
||||
"RESET gesetzt wurde"
|
||||
|
||||
#: shared-bindings/watchdog/WatchDogTimer.c
|
||||
msgid "WatchDogTimer.timeout must be greater than 0"
|
||||
@ -2170,6 +2184,10 @@ msgstr "Puffersegmente müssen gleich lang sein"
|
||||
msgid "buffer too small"
|
||||
msgstr "Der Puffer ist zu klein"
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr "Tasten müssen digitalio.DigitalInOut sein"
|
||||
@ -2912,6 +2930,10 @@ msgstr ""
|
||||
msgid "long int not supported in this build"
|
||||
msgstr "long int wird in diesem Build nicht unterstützt"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr "fehlformatierter f-string"
|
||||
@ -2946,6 +2968,14 @@ msgstr ""
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr "maximale Rekursionstiefe überschritten"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3260,6 +3290,8 @@ msgstr "pow () mit 3 Argumenten erfordert Integer"
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3384,6 +3416,10 @@ msgstr "weicher reboot\n"
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr "sortierungs Argument muss ein ndarray sein"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr ""
|
||||
@ -3514,6 +3550,16 @@ msgstr "Tupelindex außerhalb des Bereichs"
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr "tupel/list hat falsche Länge"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
|
52
locale/el.po
52
locale/el.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@ -287,11 +287,16 @@ msgstr ""
|
||||
msgid "Address type out of range"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: 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 ""
|
||||
@ -406,6 +411,10 @@ msgid ""
|
||||
"disable.\n"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -774,7 +783,7 @@ msgstr ""
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr ""
|
||||
|
||||
@ -900,6 +909,7 @@ msgid "File exists"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
@ -1118,7 +1128,7 @@ msgstr ""
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1403,6 +1413,10 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/ColorConverter.c
|
||||
msgid "Only one color can be transparent at a time"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr ""
|
||||
@ -2106,6 +2120,10 @@ msgstr ""
|
||||
msgid "buffer too small"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr ""
|
||||
@ -2828,6 +2846,10 @@ msgstr ""
|
||||
msgid "long int not supported in this build"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr ""
|
||||
@ -2862,6 +2884,14 @@ msgstr ""
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3172,6 +3202,8 @@ msgstr ""
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3294,6 +3326,10 @@ msgstr ""
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr ""
|
||||
@ -3423,6 +3459,16 @@ msgstr ""
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
|
104
locale/es.po
104
locale/es.po
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"PO-Revision-Date: 2020-10-17 02:31+0000\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2020-11-01 16:26+0000\n"
|
||||
"Last-Translator: Alvaro Figueroa <alvaro@greencore.co.cr>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: es\n"
|
||||
@ -16,7 +16,7 @@ msgstr ""
|
||||
"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.3.1-dev\n"
|
||||
"X-Generator: Weblate 4.3.2-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -33,7 +33,7 @@ msgid ""
|
||||
"https://github.com/adafruit/circuitpython/issues\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Reporte un problema con el contenido de su unidad CIRCUITPY en\n"
|
||||
"Presente un problema con el contenido de su unidad CIRCUITPY en\n"
|
||||
"https://github.com/adafruit/circuitpython/issues\n"
|
||||
|
||||
#: py/obj.c
|
||||
@ -168,7 +168,7 @@ msgstr "'%s' espera un registro"
|
||||
#: py/emitinlinethumb.c
|
||||
#, c-format
|
||||
msgid "'%s' expects a special register"
|
||||
msgstr "'%s' espera un carácter"
|
||||
msgstr "'%s' espera un registro especial"
|
||||
|
||||
#: py/emitinlinethumb.c
|
||||
#, c-format
|
||||
@ -239,7 +239,7 @@ msgstr "el objeto 'coroutine' no es un iterador"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "'data' requires at least 2 arguments"
|
||||
msgstr "'data' requiere como minomo 2 argumentos"
|
||||
msgstr "'data' requiere como mínimo 2 argumentos"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "'data' requires integer arguments"
|
||||
@ -255,7 +255,7 @@ msgstr "'return' fuera de una función"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "'yield from' inside async function"
|
||||
msgstr "'yield from' dentro función asincrónica"
|
||||
msgstr "'yield from' dentro de una función asincrónica"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "'yield' outside function"
|
||||
@ -289,17 +289,22 @@ msgstr "ADC2 está siendo usado por WiFi"
|
||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||
#, c-format
|
||||
msgid "Address must be %d bytes long"
|
||||
msgstr "La dirección debe ser %d bytes de largo"
|
||||
msgstr "La dirección debe tener %d bytes de largo"
|
||||
|
||||
#: shared-bindings/_bleio/Address.c
|
||||
msgid "Address type out of range"
|
||||
msgstr "Tipo de dirección fuera de rango"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr "Todos los periféricos CAN están en uso"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Todos los periféricos I2C están siendo usados"
|
||||
|
||||
#: 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 "Todos los FIFOs de RX en uso"
|
||||
@ -347,7 +352,7 @@ msgstr "Ya se encuentra publicando."
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
msgid "Already have all-matches listener"
|
||||
msgstr "Ya se tiene un escucha todas-las-coincidencias"
|
||||
msgstr "Ya se tiene un escucha de todas las coincidencias"
|
||||
|
||||
#: shared-module/memorymonitor/AllocationAlarm.c
|
||||
#: shared-module/memorymonitor/AllocationSize.c
|
||||
@ -370,7 +375,7 @@ msgstr "Funcionalidad AnalogOut no soportada"
|
||||
|
||||
#: shared-bindings/analogio/AnalogOut.c
|
||||
msgid "AnalogOut is only 16 bits. Value must be less than 65536."
|
||||
msgstr "AnalogOut es solo de 16 bits. Value debe ser menos a 65536."
|
||||
msgstr "AnalogOut es solo de 16 bits. El valor debe ser menor que 65536."
|
||||
|
||||
#: ports/atmel-samd/common-hal/analogio/AnalogOut.c
|
||||
msgid "AnalogOut not supported on given pin"
|
||||
@ -383,7 +388,7 @@ msgstr "Otro envío ya está activo"
|
||||
|
||||
#: shared-bindings/pulseio/PulseOut.c
|
||||
msgid "Array must contain halfwords (type 'H')"
|
||||
msgstr "Array debe contener media palabra (type 'H')"
|
||||
msgstr "El array debe contener medias palabras (escriba 'H')"
|
||||
|
||||
#: shared-bindings/nvm/ByteArray.c
|
||||
msgid "Array values should be single bytes."
|
||||
@ -420,6 +425,10 @@ msgstr ""
|
||||
"Auto-reload habilitado. Simplemente guarda los archivos via USB para "
|
||||
"ejecutarlos o entra al REPL para desabilitarlos.\n"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr "El periférico no maneja el Baudrate"
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -794,7 +803,7 @@ msgstr "Modo Drive no se usa cuando la dirección es input."
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr "ECB solo opera sobre 16 bytes a la vez"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr "Fallo ESP-IDF al tomar la memoria"
|
||||
|
||||
@ -920,6 +929,7 @@ msgid "File exists"
|
||||
msgstr "El archivo ya existe"
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr "Filtros muy complejos"
|
||||
@ -1141,7 +1151,7 @@ msgstr "Pin inválido para canal derecho"
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1432,6 +1442,10 @@ msgstr ""
|
||||
"Solo se admiten BMP monocromáticos, indexados de 4 bpp u 8 bpp y 16 bpp o "
|
||||
"más: %d bpp proporcionados"
|
||||
|
||||
#: 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"
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr "Solo se aceptan enteros crudos para ip"
|
||||
@ -1822,15 +1836,15 @@ msgstr "No se pudo encontrar el búfer para UART"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART De-init error"
|
||||
msgstr "Error de desinicialización de UARL"
|
||||
msgstr "Error de desinicialización de UART"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART Init Error"
|
||||
msgstr "Error de inicialización de UARL"
|
||||
msgstr "Error de inicialización de UART"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART Re-init error"
|
||||
msgstr "Error de reinicialización de UARL"
|
||||
msgstr "Error de reinicialización de UART"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
@ -2169,6 +2183,10 @@ msgstr "Las secciones del buffer necesitan tener longitud igual"
|
||||
msgid "buffer too small"
|
||||
msgstr "buffer demasiado pequeño"
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr "búfer muy pequeño para los bytes solicitados"
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr "los botones necesitan ser digitalio.DigitalInOut"
|
||||
@ -2901,6 +2919,10 @@ msgstr "variable local referenciada antes de la asignación"
|
||||
msgid "long int not supported in this build"
|
||||
msgstr "long int no soportado en esta compilación"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr "cadena-f mal formada"
|
||||
@ -2935,6 +2957,14 @@ msgstr "max_lenght debe ser > 0"
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr "profundidad máxima de recursión excedida"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3248,6 +3278,8 @@ msgstr "pow() con 3 argumentos requiere enteros"
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3372,6 +3404,10 @@ msgstr "reinicio suave\n"
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr "argumento de ordenado debe ser un ndarray"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr "el arreglo sos debe de forma (n_section, 6)"
|
||||
@ -3502,6 +3538,16 @@ msgstr "tuple index fuera de rango"
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr "tupla/lista tiene una longitud incorrecta"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
@ -4005,7 +4051,7 @@ msgstr "zi debe ser una forma (n_section,2)"
|
||||
#~ msgstr "Falló el iniciar borrado de flash, err 0x%04x"
|
||||
|
||||
#~ msgid "Flash write failed"
|
||||
#~ msgstr "Falló la escritura"
|
||||
#~ msgstr "Falló la escritura flash"
|
||||
|
||||
#~ msgid "Flash write failed to start, err 0x%04x"
|
||||
#~ msgstr "Falló el iniciar la escritura de flash, err 0x%04x"
|
||||
@ -4062,7 +4108,7 @@ msgstr "zi debe ser una forma (n_section,2)"
|
||||
#~ msgstr "Sin soporte PulseIn para %q"
|
||||
|
||||
#~ msgid "No hardware support for analog out."
|
||||
#~ msgstr "Sin soporte de hardware para analog out"
|
||||
#~ msgstr "Sin soporte de hardware para salida analógica"
|
||||
|
||||
#~ msgid "Not connected."
|
||||
#~ msgstr "No conectado."
|
||||
@ -4071,24 +4117,24 @@ msgstr "zi debe ser una forma (n_section,2)"
|
||||
#~ msgstr "Solo formato Windows, BMP sin comprimir soportado %d"
|
||||
|
||||
#~ msgid "Only bit maps of 8 bit color or less are supported"
|
||||
#~ msgstr "Solo se admiten bit maps de color de 8 bits o menos"
|
||||
#~ msgstr "Solo se admiten mapas de bits de color de 8 bits o menos"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Only monochrome, indexed 8bpp, and 16bpp or greater BMPs supported: %d "
|
||||
#~ "bpp given"
|
||||
#~ msgstr ""
|
||||
#~ "Solo se admiten BMP monocromos, indexados de 8bpp y 16bpp o superiores:%d "
|
||||
#~ "bppdado"
|
||||
#~ "bpp dado"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Only slices with step=1 (aka None) are supported"
|
||||
#~ msgstr "solo se admiten segmentos con step=1 (alias None)"
|
||||
#~ msgstr "Solo se admiten segmentos con step=1 (alias None)"
|
||||
|
||||
#~ msgid "Only true color (24 bpp or higher) BMP supported %x"
|
||||
#~ msgstr "Solo color verdadero (24 bpp o superior) BMP admitido %x"
|
||||
|
||||
#~ msgid "Only tx supported on UART1 (GPIO2)."
|
||||
#~ msgstr "Solo tx soportada en UART1 (GPIO2)"
|
||||
#~ msgstr "Solo tx soportada en UART1 (GPIO2)."
|
||||
|
||||
#~ msgid "PWM not supported on pin %d"
|
||||
#~ msgstr "El pin %d no soporta PWM"
|
||||
@ -4103,11 +4149,11 @@ msgstr "zi debe ser una forma (n_section,2)"
|
||||
#~ msgstr "Pines no válidos para SPI"
|
||||
|
||||
#~ msgid "Pixel beyond bounds of buffer"
|
||||
#~ msgstr "Pixel beyond bounds of buffer"
|
||||
#~ msgstr "Píxel fuera de los límites del búfer"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Range out of bounds"
|
||||
#~ msgstr "address fuera de límites"
|
||||
#~ msgstr "Rango fuera de límites"
|
||||
|
||||
#~ msgid "STA must be active"
|
||||
#~ msgstr "STA debe estar activo"
|
||||
@ -4127,10 +4173,10 @@ msgstr "zi debe ser una forma (n_section,2)"
|
||||
#~ msgstr ""
|
||||
#~ "El heap de CircuitPython estaba corrupto porque el stack era demasiado "
|
||||
#~ "pequeño.\n"
|
||||
#~ "Aumente los límites del tamaño del stacj y presione reset (después de "
|
||||
#~ "Aumente los límites del tamaño del stack y presione reset (después de "
|
||||
#~ "expulsarCIRCUITPY).\n"
|
||||
#~ "Si no cambió el stack, entonces reporte un issue aquí con el contenido "
|
||||
#~ "desu unidad CIRCUITPY:\n"
|
||||
#~ "Si no cambió el stack, entonces reporte un issue aquí con el contenido de "
|
||||
#~ "su unidad CIRCUITPY:\n"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "The microcontroller's power dipped. Please make sure your power supply "
|
||||
@ -4183,7 +4229,7 @@ msgstr "zi debe ser una forma (n_section,2)"
|
||||
#~ "malo ha sucedido.\n"
|
||||
|
||||
#~ msgid "bad GATT role"
|
||||
#~ msgstr "mal GATT role"
|
||||
#~ msgstr "rol de GATT malo"
|
||||
|
||||
#~ msgid "bits must be 8"
|
||||
#~ msgstr "bits debe ser 8"
|
||||
@ -4216,7 +4262,7 @@ msgstr "zi debe ser una forma (n_section,2)"
|
||||
#~ msgstr "no se puede establecer STA config"
|
||||
|
||||
#~ msgid "characteristics includes an object that is not a Characteristic"
|
||||
#~ msgstr "characteristics incluye un objeto que no es una Characteristica"
|
||||
#~ msgstr "characteristics incluye un objeto que no es una Characteristic"
|
||||
|
||||
#~ msgid "color buffer must be a buffer or int"
|
||||
#~ msgstr "color buffer deber ser un buffer o un int"
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
|
||||
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
|
||||
"Language-Team: fil\n"
|
||||
@ -289,11 +289,16 @@ msgstr "ang palette ay dapat 32 bytes ang haba"
|
||||
msgid "Address type out of range"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Lahat ng I2C peripherals ginagamit"
|
||||
|
||||
#: 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 ""
|
||||
@ -411,6 +416,10 @@ msgstr ""
|
||||
"Ang awtomatikong pag re-reload ay ON. i-save lamang ang mga files sa USB "
|
||||
"para patakbuhin sila o pasukin ang REPL para i-disable ito.\n"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -785,7 +794,7 @@ msgstr "Drive mode ay hindi ginagamit kapag ang direksyon ay input."
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr ""
|
||||
|
||||
@ -913,6 +922,7 @@ msgid "File exists"
|
||||
msgstr "Mayroong file"
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
@ -1133,7 +1143,7 @@ msgstr "Mali ang pin para sa kanang channel"
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1421,6 +1431,10 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/ColorConverter.c
|
||||
msgid "Only one color can be transparent at a time"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr ""
|
||||
@ -2139,6 +2153,10 @@ msgstr "aarehas na haba dapat ang buffer slices"
|
||||
msgid "buffer too small"
|
||||
msgstr "masyadong maliit ang buffer"
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr ""
|
||||
@ -2877,6 +2895,10 @@ msgstr "local variable na reference bago na i-assign"
|
||||
msgid "long int not supported in this build"
|
||||
msgstr "long int hindi sinusuportahan sa build na ito"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr ""
|
||||
@ -2911,6 +2933,14 @@ msgstr ""
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr "lumagpas ang maximum recursion depth"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3223,6 +3253,8 @@ msgstr "pow() na may 3 argumento kailangan ng integers"
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3347,6 +3379,10 @@ msgstr "malambot na reboot\n"
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr ""
|
||||
@ -3478,6 +3514,16 @@ msgstr "indeks ng tuple wala sa sakop"
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr "mali ang haba ng tuple/list"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
|
56
locale/fr.po
56
locale/fr.po
@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 0.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"PO-Revision-Date: 2020-10-17 15:35+0000\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2020-10-22 20:48+0000\n"
|
||||
"Last-Translator: Antonin ENFRUN <antonin.e@me.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.3.1-dev\n"
|
||||
"X-Generator: Weblate 4.3.1\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -296,11 +296,16 @@ msgstr "L'adresse doit être longue de %d octets"
|
||||
msgid "Address type out of range"
|
||||
msgstr "Type d'adresse hors plage"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Tous les périphériques I2C sont utilisés"
|
||||
|
||||
#: 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 "Tout les RX FIFOs sont utilisé"
|
||||
@ -420,6 +425,10 @@ msgstr ""
|
||||
"Auto-chargement activé. Copiez simplement les fichiers en USB pour les "
|
||||
"lancer ou entrez sur REPL pour le désactiver.\n"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -798,7 +807,7 @@ msgstr "Le mode Drive n'est pas utilisé quand la direction est 'input'."
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr "La BCE ne fonctionne que sur 16 octets à la fois"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr "ESP-IDF échec d'allocation de la mémoire"
|
||||
|
||||
@ -925,6 +934,7 @@ msgid "File exists"
|
||||
msgstr "Le fichier existe"
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr "Filtre trop complexe"
|
||||
@ -1146,7 +1156,7 @@ msgstr "Broche invalide pour le canal droit"
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1437,6 +1447,10 @@ msgstr ""
|
||||
"Prise en charge uniquement des monochromes, 4 bpp ou 8 bpp indexés et 16 bpp "
|
||||
"ou plus : %d bpp fournis"
|
||||
|
||||
#: shared-module/displayio/ColorConverter.c
|
||||
msgid "Only one color can be transparent at a time"
|
||||
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"
|
||||
@ -2179,6 +2193,10 @@ msgstr "les tranches de tampon doivent être de longueurs égales"
|
||||
msgid "buffer too small"
|
||||
msgstr "tampon trop petit"
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr "tampon trop petit pour le nombre d'octets demandé"
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr "les boutons doivent être des digitalio.DigitalInOut"
|
||||
@ -2923,6 +2941,10 @@ msgstr "variable locale référencée avant d'être assignée"
|
||||
msgid "long int not supported in this build"
|
||||
msgstr "entiers longs non supportés dans cette build"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr "f-string mal formé"
|
||||
@ -2957,6 +2979,14 @@ msgstr "max_length doit être > 0"
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr "profondeur maximale de récursivité dépassée"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3272,6 +3302,8 @@ msgstr "pow() avec 3 arguments nécessite des entiers"
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3396,6 +3428,10 @@ msgstr "redémarrage logiciel\n"
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr "l'argument de «sort» doit être un ndarray"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr "le tableau sos doit être de forme (n_section, 6)"
|
||||
@ -3526,6 +3562,16 @@ msgstr "index du tuple hors gamme"
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr "tuple/liste a une mauvaise longueur"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
|
52
locale/hi.po
52
locale/hi.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@ -287,11 +287,16 @@ msgstr ""
|
||||
msgid "Address type out of range"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: 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 ""
|
||||
@ -406,6 +411,10 @@ msgid ""
|
||||
"disable.\n"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -774,7 +783,7 @@ msgstr ""
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr ""
|
||||
|
||||
@ -900,6 +909,7 @@ msgid "File exists"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
@ -1118,7 +1128,7 @@ msgstr ""
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1403,6 +1413,10 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/ColorConverter.c
|
||||
msgid "Only one color can be transparent at a time"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr ""
|
||||
@ -2106,6 +2120,10 @@ msgstr ""
|
||||
msgid "buffer too small"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr ""
|
||||
@ -2828,6 +2846,10 @@ msgstr ""
|
||||
msgid "long int not supported in this build"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr ""
|
||||
@ -2862,6 +2884,14 @@ msgstr ""
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3172,6 +3202,8 @@ msgstr ""
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3294,6 +3326,10 @@ msgstr ""
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr ""
|
||||
@ -3423,6 +3459,16 @@ msgstr ""
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
|
||||
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
|
||||
"Language-Team: \n"
|
||||
@ -288,11 +288,16 @@ msgstr "la palette deve essere lunga 32 byte"
|
||||
msgid "Address type out of range"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Tutte le periferiche I2C sono in uso"
|
||||
|
||||
#: 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 ""
|
||||
@ -410,6 +415,10 @@ msgstr ""
|
||||
"L'auto-reload è attivo. Salva i file su USB per eseguirli o entra nel REPL "
|
||||
"per disabilitarlo.\n"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -785,7 +794,7 @@ msgstr ""
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr ""
|
||||
|
||||
@ -913,6 +922,7 @@ msgid "File exists"
|
||||
msgstr "File esistente"
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
@ -1135,7 +1145,7 @@ msgstr "Pin non valido per il canale destro"
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1426,6 +1436,10 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/ColorConverter.c
|
||||
msgid "Only one color can be transparent at a time"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr ""
|
||||
@ -2144,6 +2158,10 @@ msgstr "slice del buffer devono essere della stessa lunghezza"
|
||||
msgid "buffer too small"
|
||||
msgstr "buffer troppo piccolo"
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr ""
|
||||
@ -2879,6 +2897,10 @@ msgstr "variabile locale richiamata prima di un assegnamento"
|
||||
msgid "long int not supported in this build"
|
||||
msgstr "long int non supportata in questa build"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr ""
|
||||
@ -2913,6 +2935,14 @@ msgstr ""
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr "profondità massima di ricorsione superata"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3230,6 +3260,8 @@ msgstr "pow() con 3 argomenti richiede interi"
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3354,6 +3386,10 @@ msgstr "soft reboot\n"
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr ""
|
||||
@ -3485,6 +3521,16 @@ msgstr "indice della tupla fuori intervallo"
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr "tupla/lista ha la lunghezza sbagliata"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
|
52
locale/ja.po
52
locale/ja.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2020-09-25 18:20+0000\n"
|
||||
"Last-Translator: Taku Fukada <naninunenor@gmail.com>\n"
|
||||
"Language-Team: none\n"
|
||||
@ -294,11 +294,16 @@ msgstr "アドレスは、%dバイト長でなければなりません"
|
||||
msgid "Address type out of range"
|
||||
msgstr "address_typeが範囲外"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "全てのI2C周辺機器が使用中"
|
||||
|
||||
#: 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 "全てのRX FIFOが使用中"
|
||||
@ -415,6 +420,10 @@ msgstr ""
|
||||
"オートリロードがオンです。ファイルをUSB経由で保存するだけで実行できます。REPL"
|
||||
"に入ると無効化します。\n"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -787,7 +796,7 @@ msgstr "方向がinputのときドライブモードは使われません"
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr "ECBは一度に16バイトの演算のみを行います"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr ""
|
||||
|
||||
@ -913,6 +922,7 @@ msgid "File exists"
|
||||
msgstr "ファイルが存在します"
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
@ -1133,7 +1143,7 @@ msgstr "右チャネルのピンが不正"
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1420,6 +1430,10 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/ColorConverter.c
|
||||
msgid "Only one color can be transparent at a time"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr ""
|
||||
@ -2131,6 +2145,10 @@ msgstr "バッファのスライスは同じ長さでなければなりません
|
||||
msgid "buffer too small"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr "buttonsはdigitalio.DigitalInOutでなければなりません"
|
||||
@ -2858,6 +2876,10 @@ msgstr ""
|
||||
msgid "long int not supported in this build"
|
||||
msgstr "このビルドはlong intに非対応"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr "不正な形式のf-string"
|
||||
@ -2892,6 +2914,14 @@ msgstr "max_lengthは0より大きくなければなりません"
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr "最大の再帰深度を超えました"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3204,6 +3234,8 @@ msgstr "pow()の第3引数には整数が必要"
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3327,6 +3359,10 @@ msgstr "ソフトリブート\n"
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr ""
|
||||
@ -3456,6 +3492,16 @@ msgstr ""
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr "タプル/リストの長さが正しくありません"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
|
52
locale/ko.po
52
locale/ko.po
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\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"
|
||||
@ -290,11 +290,16 @@ msgstr ""
|
||||
msgid "Address type out of range"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "사용중인 모든 I2C주변 기기"
|
||||
|
||||
#: 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 ""
|
||||
@ -411,6 +416,10 @@ msgstr ""
|
||||
"자동 새로 고침이 켜져 있습니다. USB를 통해 파일을 저장하여 실행하십시오. 비활"
|
||||
"성화하려면 REPL을 입력하십시오.\n"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -779,7 +788,7 @@ msgstr ""
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr ""
|
||||
|
||||
@ -905,6 +914,7 @@ msgid "File exists"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
@ -1123,7 +1133,7 @@ msgstr "오른쪽 채널 핀이 잘못되었습니다"
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1408,6 +1418,10 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/ColorConverter.c
|
||||
msgid "Only one color can be transparent at a time"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr ""
|
||||
@ -2112,6 +2126,10 @@ msgstr ""
|
||||
msgid "buffer too small"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr ""
|
||||
@ -2834,6 +2852,10 @@ msgstr ""
|
||||
msgid "long int not supported in this build"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr ""
|
||||
@ -2868,6 +2890,14 @@ msgstr ""
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3178,6 +3208,8 @@ msgstr ""
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3300,6 +3332,10 @@ msgstr ""
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr ""
|
||||
@ -3429,6 +3465,16 @@ msgstr ""
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
|
170
locale/nl.po
170
locale/nl.po
@ -5,8 +5,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"PO-Revision-Date: 2020-09-09 16:05+0000\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2020-10-27 16:47+0000\n"
|
||||
"Last-Translator: Jelle Jager <jell@jjc.id.au>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: nl\n"
|
||||
@ -14,7 +14,7 @@ msgstr ""
|
||||
"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.3-dev\n"
|
||||
"X-Generator: Weblate 4.3.2-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -98,7 +98,7 @@ msgstr "%q moet een tuple van lengte 2 zijn"
|
||||
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr ""
|
||||
msgstr "%q buiten bereik"
|
||||
|
||||
#: ports/atmel-samd/common-hal/microcontroller/Pin.c
|
||||
msgid "%q pin invalid"
|
||||
@ -252,7 +252,7 @@ msgstr "'return' buiten de functie"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "'yield from' inside async function"
|
||||
msgstr ""
|
||||
msgstr "'yield from' binnen asynchrone functie"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "'yield' outside function"
|
||||
@ -281,7 +281,7 @@ msgstr "Een hardware interrupt kanaal is al in gebruik"
|
||||
|
||||
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||
msgid "ADC2 is being used by WiFi"
|
||||
msgstr ""
|
||||
msgstr "ADC2 wordt gebruikt door WiFi"
|
||||
|
||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||
#, c-format
|
||||
@ -292,14 +292,19 @@ msgstr "Adres moet %d bytes lang zijn"
|
||||
msgid "Address type out of range"
|
||||
msgstr "Adres type buiten bereik"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Alle I2C peripherals zijn in gebruik"
|
||||
|
||||
#: 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 "Alle RX FIFO's zijn in gebruik"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/nrf/common-hal/busio/SPI.c
|
||||
msgid "All SPI peripherals are in use"
|
||||
@ -342,7 +347,7 @@ msgstr "Advertising is al bezig."
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
msgid "Already have all-matches listener"
|
||||
msgstr ""
|
||||
msgstr "Heeft al een luisteraar voor 'all-matches'"
|
||||
|
||||
#: shared-module/memorymonitor/AllocationAlarm.c
|
||||
#: shared-module/memorymonitor/AllocationSize.c
|
||||
@ -351,7 +356,7 @@ msgstr "Wordt al uitgevoerd"
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/Radio.c
|
||||
msgid "Already scanning for wifi networks"
|
||||
msgstr ""
|
||||
msgstr "Zoekt al naar WiFi netwerken"
|
||||
|
||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||
msgid "AnalogIn not supported on given pin"
|
||||
@ -399,7 +404,7 @@ msgstr "heap allocatie geprobeerd terwijl MicroPython VM niet draait."
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "Authentication failure"
|
||||
msgstr ""
|
||||
msgstr "Authenticatiefout"
|
||||
|
||||
#: main.c
|
||||
msgid "Auto-reload is off.\n"
|
||||
@ -413,6 +418,10 @@ msgstr ""
|
||||
"Auto-herlaad staat aan. Sla bestanden simpelweg op over USB om uit te voeren "
|
||||
"of start REPL om uit te schakelen.\n"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -481,7 +490,7 @@ msgstr "Buffer lengte moet een veelvoud van 512 zijn"
|
||||
|
||||
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||
msgid "Buffer must be a multiple of 512 bytes"
|
||||
msgstr "Buffer moet een veelvoud van 512 zijn"
|
||||
msgstr "Buffer moet een veelvoud van 512 bytes zijn"
|
||||
|
||||
#: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
|
||||
msgid "Buffer must be at least length 1"
|
||||
@ -617,7 +626,7 @@ msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "CircuitPython was unable to allocate the heap.\n"
|
||||
msgstr ""
|
||||
msgstr "CircuitPython kon het heap geheugen niet toewijzen.\n"
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Clock pin init failed."
|
||||
@ -658,7 +667,7 @@ msgstr "Corrupt raw code"
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Could not initialize Camera"
|
||||
msgstr ""
|
||||
msgstr "Kon camera niet initialiseren"
|
||||
|
||||
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||
msgid "Could not initialize GNSS"
|
||||
@ -695,7 +704,7 @@ msgstr "Kan PWM niet herstarten"
|
||||
|
||||
#: ports/esp32s2/common-hal/neopixel_write/__init__.c
|
||||
msgid "Could not retrieve clock"
|
||||
msgstr ""
|
||||
msgstr "Kon klok niet ophalen"
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "Could not set address"
|
||||
@ -787,9 +796,9 @@ msgstr "Drive modus niet gebruikt als de richting input is."
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr "ECB werkt alleen met 16 bytes tegelijkertijd"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr ""
|
||||
msgstr "ESP-IDF geheugen toewijzing mislukt"
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
|
||||
@ -850,7 +859,7 @@ msgstr "FFT alleen voor ndarrays gedefineerd"
|
||||
|
||||
#: ports/esp32s2/common-hal/socketpool/Socket.c
|
||||
msgid "Failed SSL handshake"
|
||||
msgstr ""
|
||||
msgstr "SSL handdruk mislukt"
|
||||
|
||||
#: shared-bindings/ps2io/Ps2.c
|
||||
msgid "Failed sending command."
|
||||
@ -877,11 +886,11 @@ msgstr "Mislukt een RX buffer van %d bytes te alloceren"
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Failed to allocate Wifi memory"
|
||||
msgstr ""
|
||||
msgstr "Kon WiFi geheugen niet toewijzen"
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/ScannedNetworks.c
|
||||
msgid "Failed to allocate wifi scan memory"
|
||||
msgstr ""
|
||||
msgstr "Kon WiFi scan geheugen niet toewijzen"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Failed to connect: internal error"
|
||||
@ -893,7 +902,7 @@ msgstr "Verbinding mislukt: timeout"
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Failed to init wifi"
|
||||
msgstr ""
|
||||
msgstr "Kon WiFi niet initialiseren"
|
||||
|
||||
#: shared-module/audiomp3/MP3Decoder.c
|
||||
msgid "Failed to parse MP3 file"
|
||||
@ -913,13 +922,14 @@ msgid "File exists"
|
||||
msgstr "Bestand bestaat"
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
msgstr "Filters zijn te complex"
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr ""
|
||||
msgstr "Formaat wordt niet ondersteund"
|
||||
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
#, c-format
|
||||
@ -963,7 +973,7 @@ msgstr "Hardware in gebruik, probeer alternatieve pinnen"
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "Hostname must be between 1 and 253 characters"
|
||||
msgstr ""
|
||||
msgstr "Hostnaam moet tussen 1 en 253 karakters zijn"
|
||||
|
||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||
msgid "I/O operation on closed file"
|
||||
@ -996,7 +1006,7 @@ msgstr "Incorrecte buffer grootte"
|
||||
|
||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||
msgid "Input taking too long"
|
||||
msgstr ""
|
||||
msgstr "Invoer duurt te lang"
|
||||
|
||||
#: ports/esp32s2/common-hal/neopixel_write/__init__.c py/moduerrno.c
|
||||
msgid "Input/output error"
|
||||
@ -1044,7 +1054,7 @@ msgstr "Ongeldig BMP bestand"
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "Invalid BSSID"
|
||||
msgstr ""
|
||||
msgstr "Ongeldig BSSID"
|
||||
|
||||
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||
@ -1095,7 +1105,7 @@ msgstr "Ongeldig formaat stuk grootte"
|
||||
|
||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||
msgid "Invalid frequency"
|
||||
msgstr ""
|
||||
msgstr "Onjuiste frequentie"
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Invalid frequency supplied"
|
||||
@ -1135,7 +1145,7 @@ msgstr "Ongeldige pin voor rechter kanaal"
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1218,7 +1228,7 @@ msgstr "Maximale x waarde indien gespiegeld is %d"
|
||||
|
||||
#: shared-bindings/canio/Message.c
|
||||
msgid "Messages limited to 8 bytes"
|
||||
msgstr ""
|
||||
msgstr "Berichten zijn beperkt tot 8 bytes"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "MicroPython NLR jump failed. Likely memory corruption."
|
||||
@ -1330,11 +1340,11 @@ msgstr "Geen lange integer ondersteuning"
|
||||
|
||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||
msgid "No more channels available"
|
||||
msgstr ""
|
||||
msgstr "Geen kanalen meer beschikbaar"
|
||||
|
||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||
msgid "No more timers available"
|
||||
msgstr ""
|
||||
msgstr "Geen timers meer beschikbaar"
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "No more timers available on this pin."
|
||||
@ -1342,7 +1352,7 @@ msgstr "Geen timers meer beschikbaar op deze pin."
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "No network with that ssid"
|
||||
msgstr ""
|
||||
msgstr "Geen netwerk met dat SSID gevonden"
|
||||
|
||||
#: shared-module/touchio/TouchIn.c
|
||||
msgid "No pulldown on pin; 1Mohm recommended"
|
||||
@ -1366,7 +1376,7 @@ msgstr "Nordic Soft Device assertion mislukt."
|
||||
|
||||
#: shared-bindings/ipaddress/IPv4Address.c shared-bindings/ipaddress/__init__.c
|
||||
msgid "Not a valid IP string"
|
||||
msgstr ""
|
||||
msgstr "Geen geldige IP string"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
@ -1384,7 +1394,7 @@ msgstr "Opgeslagen code wordt niet uitgevoerd.\n"
|
||||
|
||||
#: shared-bindings/_bleio/__init__.c
|
||||
msgid "Not settable"
|
||||
msgstr ""
|
||||
msgstr "Niet instelbaar"
|
||||
|
||||
#: shared-bindings/util.c
|
||||
msgid ""
|
||||
@ -1403,11 +1413,11 @@ msgstr "Alleen 8 of 16 bit mono met "
|
||||
|
||||
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
|
||||
msgid "Only IPv4 SOCK_STREAM sockets supported"
|
||||
msgstr ""
|
||||
msgstr "Alleen IPv4 SOCK_STREAM sockets worden ondersteund"
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr ""
|
||||
msgstr "Alleen IPv4 adressen worden ondersteund"
|
||||
|
||||
#: shared-module/displayio/OnDiskBitmap.c
|
||||
#, c-format
|
||||
@ -1426,13 +1436,17 @@ msgstr ""
|
||||
"Alleen monochrome en 4bpp of 8bpp, en 16bpp of grotere geïndiceerde BMP's "
|
||||
"zijn ondersteund: %d bpp is gegeven"
|
||||
|
||||
#: 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"
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr ""
|
||||
msgstr "Alleen raw int ondersteund voor IP"
|
||||
|
||||
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
|
||||
msgid "Out of sockets"
|
||||
msgstr ""
|
||||
msgstr "Geen sockets meer beschikbaar"
|
||||
|
||||
#: shared-bindings/audiobusio/PDMIn.c
|
||||
msgid "Oversample must be multiple of 8."
|
||||
@ -1506,6 +1520,8 @@ msgid ""
|
||||
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
|
||||
"instead"
|
||||
msgstr ""
|
||||
"Poort ondersteund geen PWM drager. Geef een pin, frequentie en inschakeltijd "
|
||||
"op"
|
||||
|
||||
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
|
||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||
@ -1515,6 +1531,8 @@ msgid ""
|
||||
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
|
||||
"instead"
|
||||
msgstr ""
|
||||
"Poort accepteert geen pin of frequentie. Stel een PWMOut Carrier samen en "
|
||||
"geef die op"
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "Prefix buffer must be on the heap"
|
||||
@ -1580,7 +1598,7 @@ msgstr "Verversing te snel"
|
||||
|
||||
#: shared-bindings/canio/RemoteTransmissionRequest.c
|
||||
msgid "RemoteTransmissionRequests limited to 8 bytes"
|
||||
msgstr ""
|
||||
msgstr "RemoteTransmissionRequests is beperkt tot 8 bytes"
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "Requested AES mode is unsupported"
|
||||
@ -1653,11 +1671,11 @@ msgstr "Serializer in gebruik"
|
||||
|
||||
#: shared-bindings/ssl/SSLContext.c
|
||||
msgid "Server side context cannot have hostname"
|
||||
msgstr ""
|
||||
msgstr "Context aan de serverkant kan geen hostnaam hebben"
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Size not supported"
|
||||
msgstr ""
|
||||
msgstr "Afmeting niet ondersteund"
|
||||
|
||||
#: shared-bindings/nvm/ByteArray.c
|
||||
msgid "Slice and value different lengths."
|
||||
@ -1672,7 +1690,7 @@ msgstr "Slices niet ondersteund"
|
||||
|
||||
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
|
||||
msgid "SocketPool can only be used with wifi.radio"
|
||||
msgstr ""
|
||||
msgstr "SocketPool kan alleen met wifi.radio gebruikt worden"
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "Source and destination buffers must be the same length"
|
||||
@ -1720,7 +1738,7 @@ msgstr ""
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
|
||||
msgstr ""
|
||||
msgstr "De lengte van rgb_pins moet 6, 12, 18, 24 of 30 zijn"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -1779,7 +1797,7 @@ msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "To exit, please reset the board without "
|
||||
msgstr ""
|
||||
msgstr "Om te beëindigen, reset het bord zonder "
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
@ -1852,7 +1870,7 @@ msgstr "Niet in staat buffers voor gesigneerde conversie te alloceren"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c
|
||||
msgid "Unable to create lock"
|
||||
msgstr ""
|
||||
msgstr "Kan vergrendeling niet maken"
|
||||
|
||||
#: shared-module/displayio/I2CDisplay.c
|
||||
#, c-format
|
||||
@ -1883,11 +1901,11 @@ msgstr "Onverwacht mrfx uuid type"
|
||||
#: ports/esp32s2/common-hal/socketpool/Socket.c
|
||||
#, c-format
|
||||
msgid "Unhandled ESP TLS error %d %d %x %d"
|
||||
msgstr ""
|
||||
msgstr "Niet behandelde ESP TLS fout %d %d %x %d"
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "Unknown failure"
|
||||
msgstr ""
|
||||
msgstr "Onbekende fout"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||
#, c-format
|
||||
@ -2005,7 +2023,7 @@ msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "WiFi password must be between 8 and 63 characters"
|
||||
msgstr ""
|
||||
msgstr "WiFi wachtwoord moet tussen 8 en 63 karakters bevatten"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
|
||||
msgid "Writes not supported on Characteristic"
|
||||
@ -2158,6 +2176,10 @@ msgstr "buffer slices moeten van gelijke grootte zijn"
|
||||
msgid "buffer too small"
|
||||
msgstr "buffer te klein"
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr "buffer te klein voor gevraagde bytes"
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr "buttons moeten digitalio.DigitalInOut zijn"
|
||||
@ -2177,7 +2199,7 @@ msgstr "butes > 8 niet ondersteund"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "bytes length not a multiple of item size"
|
||||
msgstr ""
|
||||
msgstr "bytes lengte is geen veelvoud van itemgrootte"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "bytes value out of range"
|
||||
@ -2495,11 +2517,11 @@ msgstr "uitzonderingen moeten afleiden van BaseException"
|
||||
|
||||
#: shared-bindings/canio/CAN.c
|
||||
msgid "expected '%q' but got '%q'"
|
||||
msgstr ""
|
||||
msgstr "verwachtte '%q' maar ontving '%q'"
|
||||
|
||||
#: shared-bindings/canio/CAN.c
|
||||
msgid "expected '%q' or '%q' but got '%q'"
|
||||
msgstr ""
|
||||
msgstr "verwachtte '%q' of '%q' maar ontving '%q'"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "expected ':' after format specifier"
|
||||
@ -2713,7 +2735,7 @@ msgstr "oorspronkelijke waarden moeten itereerbaar zijn"
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "initial_value length is wrong"
|
||||
msgstr ""
|
||||
msgstr "lengte van initial_value is onjuist"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "inline assembler must be a function"
|
||||
@ -2790,7 +2812,7 @@ msgstr "ongeldige formaatspecificatie"
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "invalid hostname"
|
||||
msgstr ""
|
||||
msgstr "onjuiste hostnaam"
|
||||
|
||||
#: extmod/modussl_axtls.c
|
||||
msgid "invalid key"
|
||||
@ -2888,6 +2910,10 @@ msgstr "verwijzing naar een (nog) niet toegewezen lokale variabele"
|
||||
msgid "long int not supported in this build"
|
||||
msgstr "long int wordt niet ondersteund in deze build"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr "onjuist gevormde f-string"
|
||||
@ -2922,6 +2948,14 @@ msgstr "max_length moet >0 zijn"
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr "maximale recursiediepte overschreden"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3154,11 +3188,11 @@ msgstr "ord() verwacht een teken (char) maar vond een string van lengte %d"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of source"
|
||||
msgstr ""
|
||||
msgstr "buiten bereik van bron"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr ""
|
||||
msgstr "buiten bereik van doel"
|
||||
|
||||
#: py/objint_mpz.c
|
||||
msgid "overflow converting long int to machine word"
|
||||
@ -3167,7 +3201,7 @@ msgstr "overloop bij converteren van long int naar machine word"
|
||||
#: py/modstruct.c
|
||||
#, c-format
|
||||
msgid "pack expected %d items for packing (got %d)"
|
||||
msgstr ""
|
||||
msgstr "pack verwachtte %d elementen (ontving %d)"
|
||||
|
||||
#: shared-bindings/_stage/Layer.c shared-bindings/_stage/Text.c
|
||||
msgid "palette must be 32 bytes long"
|
||||
@ -3233,10 +3267,12 @@ msgstr "pow() met 3 argumenten vereist integers"
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr ""
|
||||
msgstr "druk bootknop in bij opstarten.\n"
|
||||
|
||||
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
|
||||
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
|
||||
@ -3244,7 +3280,7 @@ msgstr ""
|
||||
#: ports/atmel-samd/boards/escornabot_makech/mpconfigboard.h
|
||||
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
|
||||
msgid "pressing both buttons at start up.\n"
|
||||
msgstr ""
|
||||
msgstr "druk beide knoppen in bij opstarten.\n"
|
||||
|
||||
#: extmod/modutimeq.c
|
||||
msgid "queue overflow"
|
||||
@ -3357,6 +3393,10 @@ msgstr "zachte herstart\n"
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr "sorteerargument moet een ndarray zijn"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr "sos array moet vorm (n_section, 6) hebben"
|
||||
@ -3371,7 +3411,7 @@ msgstr "sosfilt vereist itereerbare argumenten"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr ""
|
||||
msgstr "bronpalet te groot"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
@ -3486,6 +3526,16 @@ msgstr "tuple index buiten bereik"
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr "tuple of lijst heeft onjuiste lengte"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
@ -3506,7 +3556,7 @@ msgstr "objecttype '%q' heeft geen attribuut '%q'"
|
||||
|
||||
#: py/objgenerator.c
|
||||
msgid "type object 'generator' has no attribute '__await__'"
|
||||
msgstr ""
|
||||
msgstr "het type object 'generator' heeft geen attribuut '__await__'"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "type takes 1 or 3 arguments"
|
||||
@ -3616,7 +3666,7 @@ msgstr "watchdog time-out moet groter zijn dan 0"
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
msgid "width must be greater than zero"
|
||||
msgstr ""
|
||||
msgstr "breedte moet groter dan nul zijn"
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "window must be <= interval"
|
||||
|
52
locale/pl.po
52
locale/pl.po
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2020-09-29 01:39+0000\n"
|
||||
"Last-Translator: Maciej Stankiewicz <tawezik@gmail.com>\n"
|
||||
"Language-Team: pl\n"
|
||||
@ -294,11 +294,16 @@ msgstr "Adres musi mieć %d bajtów"
|
||||
msgid "Address type out of range"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Wszystkie peryferia I2C w użyciu"
|
||||
|
||||
#: 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 ""
|
||||
@ -415,6 +420,10 @@ msgstr ""
|
||||
"Samo-przeładowywanie włączone. Po prostu zapisz pliki przez USB aby je "
|
||||
"uruchomić, albo wejdź w konsolę aby wyłączyć.\n"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -787,7 +796,7 @@ msgstr "Tryb sterowania nieużywany w trybie wejścia."
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr "ECB działa tylko na 16 bajtach naraz"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr ""
|
||||
|
||||
@ -913,6 +922,7 @@ msgid "File exists"
|
||||
msgstr "Plik istnieje"
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
@ -1133,7 +1143,7 @@ msgstr "Zła nóżka dla prawego kanału"
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1419,6 +1429,10 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/ColorConverter.c
|
||||
msgid "Only one color can be transparent at a time"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr ""
|
||||
@ -2128,6 +2142,10 @@ msgstr "fragmenty bufora muszą mieć tę samą długość"
|
||||
msgid "buffer too small"
|
||||
msgstr "zbyt mały bufor"
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr "buttons musi być digitalio.DigitalInOut"
|
||||
@ -2851,6 +2869,10 @@ msgstr "zmienna lokalna użyta przed przypisaniem"
|
||||
msgid "long int not supported in this build"
|
||||
msgstr "long int jest nieobsługiwany"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr ""
|
||||
@ -2885,6 +2907,14 @@ msgstr "max_length musi być > 0"
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr "przekroczono dozwoloną głębokość rekurencji"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3196,6 +3226,8 @@ msgstr "trzyargumentowe pow() wymaga liczb całkowitych"
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3319,6 +3351,10 @@ msgstr "programowy reset\n"
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr ""
|
||||
@ -3448,6 +3484,16 @@ msgstr "indeks krotki poza zakresem"
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr "krotka/lista ma złą długość"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
|
@ -5,8 +5,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"PO-Revision-Date: 2020-10-16 17:01+0000\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2020-10-28 21:45+0000\n"
|
||||
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: pt_BR\n"
|
||||
@ -14,7 +14,7 @@ msgstr ""
|
||||
"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.3.1-dev\n"
|
||||
"X-Generator: Weblate 4.3.2-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -296,11 +296,16 @@ msgstr "O endereço deve ter %d bytes de comprimento"
|
||||
msgid "Address type out of range"
|
||||
msgstr "O tipo do endereço está fora do alcance"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr "Todos os periféricos CAN estão em uso"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Todos os periféricos I2C estão em uso"
|
||||
|
||||
#: 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 "Todos os FIFOs RX estão em uso"
|
||||
@ -419,6 +424,10 @@ msgstr ""
|
||||
"O recarregamento automático está ativo. Simplesmente salve os arquivos via "
|
||||
"USB para executá-los ou digite REPL para desativar.\n"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr "O Baudrate não é suportado pelo periférico"
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -796,7 +805,7 @@ msgstr "O modo do controlador não é usado quando a direção for inserida."
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr "O BCE opera apenas com 16 bytes por vez"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr "Houve uma falha na alocação da memória ESP-IDF"
|
||||
|
||||
@ -922,6 +931,7 @@ msgid "File exists"
|
||||
msgstr "Arquivo já existe"
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr "Os filtros são muito complexos"
|
||||
@ -1144,7 +1154,7 @@ msgstr "Pino inválido para canal direito"
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1434,6 +1444,10 @@ msgstr ""
|
||||
"São compatíveis apenas os BMPs monocromáticos, indexados em 4bpp ou 8bpp e "
|
||||
"16bpp ou superior: determinado %d bpp"
|
||||
|
||||
#: 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"
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr "Apenas o int bruto é compatível para o ip"
|
||||
@ -2177,6 +2191,10 @@ msgstr "as fatias do buffer devem ter o mesmo comprimento"
|
||||
msgid "buffer too small"
|
||||
msgstr "o buffer é muito pequeno"
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr "o buffer é pequeno demais para os bytes requisitados"
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr "os botões devem ser digitalio.DigitalInOut"
|
||||
@ -2912,6 +2930,10 @@ msgstr "a variável local referenciada antes da atribuição"
|
||||
msgid "long int not supported in this build"
|
||||
msgstr "o long int não é suportado nesta compilação"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr "o loopback + o modo silencioso não é suportado pelo periférico"
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr "f-string malformado"
|
||||
@ -2946,6 +2968,14 @@ msgstr "max_length deve ser > 0"
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr "a recursão máxima da profundidade foi excedida"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr "maxiter deve ser > 0"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr "maxiter pode ser > 0"
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3263,6 +3293,8 @@ msgstr "o pow() com 3 argumentos requer números inteiros"
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3387,6 +3419,10 @@ msgstr "reinicialização soft\n"
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr "o argumento da classificação deve ser um ndarray"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr "o eixo ordenado não pode ser maior do que 65535"
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr "o sos da matriz deve estar na forma (n_section, 6)"
|
||||
@ -3516,6 +3552,16 @@ msgstr "o índice da tupla está fora do intervalo"
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr "a tupla/lista está com tamanho incorreto"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr "o twai_driver_install retornou um erro esp-idf #%d"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr "o twai_start retornou um erro esp-idf #%d"
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
|
62
locale/sv.po
62
locale/sv.po
@ -5,8 +5,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"PO-Revision-Date: 2020-10-14 18:12+0000\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2020-11-01 16:26+0000\n"
|
||||
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: sv\n"
|
||||
@ -14,7 +14,7 @@ msgstr ""
|
||||
"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.3-dev\n"
|
||||
"X-Generator: Weblate 4.3.2-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -292,11 +292,16 @@ msgstr "Adressen måste vara %d byte lång"
|
||||
msgid "Address type out of range"
|
||||
msgstr "Adresstyp utanför intervallet"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr "All I2C-kringutrustning används"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "All I2C-kringutrustning används"
|
||||
|
||||
#: 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 "Alla RX FIFO i bruk"
|
||||
@ -413,6 +418,10 @@ msgstr ""
|
||||
"Autoladdning är på. Spara bara filer via USB för att köra dem eller ange "
|
||||
"REPL för att inaktivera.\n"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr "Baudrate stöds inte av kringutrustning"
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -494,7 +503,7 @@ msgstr "Bufferten är för stor och kan inte allokeras"
|
||||
#: shared-bindings/_bleio/PacketBuffer.c
|
||||
#, c-format
|
||||
msgid "Buffer too short by %d bytes"
|
||||
msgstr "Buffert år %d bytes för kort"
|
||||
msgstr "Buffert är %d bytes för kort"
|
||||
|
||||
#: ports/atmel-samd/common-hal/displayio/ParallelBus.c
|
||||
#: ports/nrf/common-hal/displayio/ParallelBus.c
|
||||
@ -787,7 +796,7 @@ msgstr "Drivläge används inte när riktning är input."
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr "ECB arbetar endast på 16 byte åt gången"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr "ESP-IDF-minnetilldelning misslyckades"
|
||||
|
||||
@ -913,6 +922,7 @@ msgid "File exists"
|
||||
msgstr "Filen finns redan"
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr "Filter för komplexa"
|
||||
@ -961,7 +971,7 @@ msgstr "Hårdvaran används redan, prova alternativa pinnar"
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "Hostname must be between 1 and 253 characters"
|
||||
msgstr ""
|
||||
msgstr "Hostname måste vara mellan 1 och 253 tecken"
|
||||
|
||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||
msgid "I/O operation on closed file"
|
||||
@ -1133,7 +1143,7 @@ msgstr "Ogiltig pinne för höger kanal"
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1424,6 +1434,10 @@ msgstr ""
|
||||
"Endast monokrom, indexerad 4 bpp eller 8 bpp och 16 bpp eller högre BMP: er "
|
||||
"stöds: %d bpp angiven"
|
||||
|
||||
#: 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"
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr "Endast raw int stöds för ip"
|
||||
@ -2155,6 +2169,10 @@ msgstr "buffertsegmenten måste vara lika långa"
|
||||
msgid "buffer too small"
|
||||
msgstr "buffert för liten"
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr "buffert för liten för begärd längd"
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr "buttons måste vara digitalio.DigitalInOut"
|
||||
@ -2787,7 +2805,7 @@ msgstr "ogiltig formatspecificerare"
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "invalid hostname"
|
||||
msgstr ""
|
||||
msgstr "Ogiltigt värdnamn"
|
||||
|
||||
#: extmod/modussl_axtls.c
|
||||
msgid "invalid key"
|
||||
@ -2885,6 +2903,10 @@ msgstr "lokal variabel refererad före tilldelning"
|
||||
msgid "long int not supported in this build"
|
||||
msgstr "long int stöds inte i denna build"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr "loopback + tyst läge stöds inte av kringutrustning"
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr "f-sträng har felaktigt format"
|
||||
@ -2919,6 +2941,14 @@ msgstr "max_length måste vara > 0"
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr "maximal rekursionsdjup överskriden"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr "maxiter måste vara > 0"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr "maxiter bör vara > 0"
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3230,6 +3260,8 @@ msgstr "pow() med 3 argument kräver heltal"
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3354,6 +3386,10 @@ msgstr "mjuk omstart\n"
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr "argumentet sort måste vara en ndarray"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr "sorterad axel kan inte vara längre än 65535"
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr "sos array måste ha form (n_section, 6)"
|
||||
@ -3483,6 +3519,16 @@ msgstr "tupelindex utanför intervallet"
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr "tupel/lista har fel längd"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr "twai_driver_install returnerade esp-idf-fel #%d"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr "twai_start returnerade esp-idf-fel #%d"
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: circuitpython-cn\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||
"PO-Revision-Date: 2020-10-17 02:31+0000\n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2020-10-28 21:45+0000\n"
|
||||
"Last-Translator: hexthat <hexthat@gmail.com>\n"
|
||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||
"Language: zh_Latn_pinyin\n"
|
||||
@ -15,7 +15,7 @@ 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.1-dev\n"
|
||||
"X-Generator: Weblate 4.3.2-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -294,11 +294,16 @@ msgstr "Dìzhǐ bìxū shì %d zì jié zhǎng"
|
||||
msgid "Address type out of range"
|
||||
msgstr "Dìzhǐ lèixíng chāochū fànwéi"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr "suǒ yǒu CAN wài shè dōu zài shǐ yòng zhōng"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Suǒyǒu I2C wàiwéi qì zhèngzài shǐyòng"
|
||||
|
||||
#: 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 "Suǒyǒu shǐyòng zhōng de RX FIFO"
|
||||
@ -415,6 +420,10 @@ msgstr ""
|
||||
"Zìdòng chóngxīn jiāzài. Zhǐ xū tōngguò USB bǎocún wénjiàn lái yùnxíng tāmen "
|
||||
"huò shūrù REPL jìnyòng.\n"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr "wài shè bù zhī chí de bō tè lā tè"
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
@ -785,7 +794,7 @@ msgstr "Fāngxiàng shūrù shí qūdòng móshì méiyǒu shǐyòng."
|
||||
msgid "ECB only operates on 16 bytes at a time"
|
||||
msgstr "ECB yí cì zhǐ shǐ yòng 16 gè zì jié"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "ESP-IDF memory allocation failed"
|
||||
msgstr "ESP-IDF nèicún fēnpèi shībài"
|
||||
|
||||
@ -911,6 +920,7 @@ msgid "File exists"
|
||||
msgstr "Wénjiàn cúnzài"
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
msgid "Filters too complex"
|
||||
msgstr "guò lǜ qì tài fù zá"
|
||||
@ -1131,7 +1141,7 @@ msgstr "Yòuxián tōngdào yǐn jiǎo wúxiào"
|
||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||
#: ports/cxd56/common-hal/busio/UART.c ports/cxd56/common-hal/sdioio/SDCard.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
@ -1421,6 +1431,10 @@ msgstr ""
|
||||
"Jǐn zhīchí dān sè, suǒyǐn wéi 4bpp huò 8bpp yǐjí 16bpp huò gèng gāo de BMP: "
|
||||
"Gěi chū %d bpp"
|
||||
|
||||
#: 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"
|
||||
|
||||
#: shared-bindings/ipaddress/__init__.c
|
||||
msgid "Only raw int supported for ip"
|
||||
msgstr "Ip jǐn zhīchí raw int"
|
||||
@ -2147,6 +2161,10 @@ msgstr "huǎnchōng qū qiēpiàn bìxū chángdù xiāngděng"
|
||||
msgid "buffer too small"
|
||||
msgstr "huǎnchōng qū tài xiǎo"
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c
|
||||
msgid "buffer too small for requested bytes"
|
||||
msgstr "huǎn chōng qū tài xiǎo, duì yú qǐng qiú de zì jié"
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr "ànniǔ bìxū shì digitalio.DigitalInOut"
|
||||
@ -2875,6 +2893,10 @@ msgstr "fùzhí qián yǐnyòng de júbù biànliàng"
|
||||
msgid "long int not supported in this build"
|
||||
msgstr "cǐ bǎnběn bù zhīchí zhǎng zhěngshù"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr "Wài shè bù zhī chí huán huí + jìng yīn mó shì"
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr "jīxíng de f-string"
|
||||
@ -2909,6 +2931,14 @@ msgstr "Max_length bìxū > 0"
|
||||
msgid "maximum recursion depth exceeded"
|
||||
msgstr "chāochū zuìdà dìguī shēndù"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr "maxiter bì xū > 0"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr "maxiter yìng wéi > 0"
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "memory allocation failed, allocating %u bytes"
|
||||
@ -3219,6 +3249,8 @@ msgstr "pow() yǒu 3 cānshù xūyào zhěngshù"
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
@ -3277,7 +3309,7 @@ msgstr "yòubiān bìxū shì ndarray huò biāoliàng"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "rsplit(None,n)"
|
||||
msgstr "Rchāifēn(wú ,N)"
|
||||
msgstr "Rchāifēn(wú,N)"
|
||||
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid ""
|
||||
@ -3343,6 +3375,10 @@ msgstr "ruǎn chóngqǐ\n"
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr "páixù cānshù bìxū shì ndarray"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr "pái xù zhóu bù néng chāo guò 65535"
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
msgstr "sos shùzǔ de xíngzhuàng bìxū wèi (n_section, 6)"
|
||||
@ -3472,6 +3508,16 @@ msgstr "yuán zǔ suǒyǐn chāochū fànwéi"
|
||||
msgid "tuple/list has wrong length"
|
||||
msgstr "yuán zǔ/lièbiǎo chángdù cuòwù"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr "twai_driver_install fǎn huí esp-idf cuò wù #%d"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr "twai_start fǎn huí esp -idf cuò wù #%d"
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: shared-bindings/busio/UART.c shared-bindings/canio/CAN.c
|
||||
|
4
main.c
4
main.c
@ -234,10 +234,12 @@ void cleanup_after_vm(supervisor_allocation* heap) {
|
||||
common_hal_canio_reset();
|
||||
#endif
|
||||
|
||||
reset_port();
|
||||
// reset_board_busses() first because it may release pins from the never_reset state, so that
|
||||
// reset_port() can reset them.
|
||||
#if CIRCUITPY_BOARD
|
||||
reset_board_busses();
|
||||
#endif
|
||||
reset_port();
|
||||
reset_board();
|
||||
reset_status_led();
|
||||
}
|
||||
|
@ -197,6 +197,7 @@ endif
|
||||
|
||||
|
||||
LDFLAGS = $(CFLAGS) -nostartfiles -Wl,-nostdlib -Wl,-T,$(GENERATED_LD_FILE) -Wl,-Map=$@.map -Wl,-cref -Wl,-gc-sections -specs=nano.specs
|
||||
LDFLAGS += -flto=$(shell $(NPROC))
|
||||
LIBS := -lgcc -lc
|
||||
|
||||
# Use toolchain libm if we're not using our own.
|
||||
|
@ -12,14 +12,14 @@
|
||||
|
||||
#define BOARD_HAS_CRYSTAL 1
|
||||
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_PB02)
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_PB03)
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_PA16)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_PA17)
|
||||
#define DEFAULT_UART_BUS_RX (&pin_PB20)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_PB21)
|
||||
#define DEFAULT_SPI_BUS_MISO (&pin_PB23)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_PB24)
|
||||
#define DEFAULT_UART_BUS_RX (&pin_PB25)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_PC27)
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_PC28)
|
||||
#define MICROPY_HW_LED_STATUS (&pin_PA15)
|
||||
#define MICROPY_HW_LED_STATUS (&pin_PA23)
|
||||
#define MICROPY_HW_LED_RX (&pin_PC05)
|
||||
#define MICROPY_HW_LED_TX (&pin_PC06)
|
||||
|
||||
|
@ -1,64 +1,70 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PB08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A10), MP_ROM_PTR(&pin_PC00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A11), MP_ROM_PTR(&pin_PC01) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PB00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PB01) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_PB05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A8), MP_ROM_PTR(&pin_PB06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A9), MP_ROM_PTR(&pin_PB07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PC10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PC11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PB14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PB15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PC20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PC21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PB31) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A10), MP_ROM_PTR(&pin_PB07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A11), MP_ROM_PTR(&pin_PC00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PB08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PB09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PC02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PC03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_PB04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A8), MP_ROM_PTR(&pin_PB05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A9), MP_ROM_PTR(&pin_PB06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PB31) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PC16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PC13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PB12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PB13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PC17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PC18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PC19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PC20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PC21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PB18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PB19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PC12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DAC0), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DAC1), MP_ROM_PTR(&pin_PA05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_EN), MP_ROM_PTR(&pin_PC03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_EN), MP_ROM_PTR(&pin_PC15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_E5), MP_ROM_PTR(&pin_PC15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_GPIO0), MP_ROM_PTR(&pin_PA18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART3_RTS), MP_ROM_PTR(&pin_PA18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_E3), MP_ROM_PTR(&pin_PA18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_GPIO2), MP_ROM_PTR(&pin_PA19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART3_CTS), MP_ROM_PTR(&pin_PA19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_RESET), MP_ROM_PTR(&pin_PC02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_RX), MP_ROM_PTR(&pin_PB21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART3_RX), MP_ROM_PTR(&pin_PB21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_TX), MP_ROM_PTR(&pin_PB20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART3_TX), MP_ROM_PTR(&pin_PB20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C_SCL), MP_ROM_PTR(&pin_PB03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PB03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C_SDA), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_E4), MP_ROM_PTR(&pin_PA19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_RESET), MP_ROM_PTR(&pin_PC14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_E6), MP_ROM_PTR(&pin_PC14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_RX), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART3_RX), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C3_SCL), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_E2), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_TX), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART3_TX), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C3_SDA), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_E1), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C1_SCL), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C1_SDA), MP_ROM_PTR(&pin_PA17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_FS_0), MP_ROM_PTR(&pin_PA20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_FS_1), MP_ROM_PTR(&pin_PA23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_MCK_0), MP_ROM_PTR(&pin_PB17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_MCK_1), MP_ROM_PTR(&pin_PB13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_SCK_0), MP_ROM_PTR(&pin_PB16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_SCK_1), MP_ROM_PTR(&pin_PB12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_SDI), MP_ROM_PTR(&pin_PA22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_SDO), MP_ROM_PTR(&pin_PA21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_B), MP_ROM_PTR(&pin_PA15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_STATUS), MP_ROM_PTR(&pin_PA15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_G), MP_ROM_PTR(&pin_PB18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_R), MP_ROM_PTR(&pin_PB19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_B), MP_ROM_PTR(&pin_PA23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_STATUS), MP_ROM_PTR(&pin_PA23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_G), MP_ROM_PTR(&pin_PB15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_R), MP_ROM_PTR(&pin_PB14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_RX), MP_ROM_PTR(&pin_PC05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_TX), MP_ROM_PTR(&pin_PC06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_RE), MP_ROM_PTR(&pin_PC15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_RX), MP_ROM_PTR(&pin_PC13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_TE), MP_ROM_PTR(&pin_PC14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_TX), MP_ROM_PTR(&pin_PC12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_RE), MP_ROM_PTR(&pin_PB01) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_RX), MP_ROM_PTR(&pin_PB03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_TE), MP_ROM_PTR(&pin_PB00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_TX), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI_MISO), MP_ROM_PTR(&pin_PB23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI_MOSI), MP_ROM_PTR(&pin_PC27) },
|
||||
@ -67,14 +73,16 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PC28) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI_SS), MP_ROM_PTR(&pin_PB22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SS), MP_ROM_PTR(&pin_PB22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_CTS), MP_ROM_PTR(&pin_PC19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_RTS), MP_ROM_PTR(&pin_PC18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_RX), MP_ROM_PTR(&pin_PC17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_TX), MP_ROM_PTR(&pin_PC16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART2_RX), MP_ROM_PTR(&pin_PB25) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB25) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART2_TX), MP_ROM_PTR(&pin_PB24) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB24) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_CTS), MP_ROM_PTR(&pin_PC25) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_RTS), MP_ROM_PTR(&pin_PC24) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_RX), MP_ROM_PTR(&pin_PB24) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_TX), MP_ROM_PTR(&pin_PB25) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART2_RX), MP_ROM_PTR(&pin_PB20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C2_SCL), MP_ROM_PTR(&pin_PB20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART2_TX), MP_ROM_PTR(&pin_PB21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C2_SDA), MP_ROM_PTR(&pin_PB21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
|
@ -12,7 +12,7 @@ CIRCUITPY_FULL_BUILD = 0
|
||||
|
||||
# A number of modules are removed for RFM69 to make room for frozen libraries.
|
||||
# Many I/O functions are not available.
|
||||
CIRCUITPY_ANALOGIO = 0
|
||||
CIRCUITPY_ANALOGIO = 1
|
||||
CIRCUITPY_PULSEIO = 0
|
||||
CIRCUITPY_NEOPIXEL_WRITE = 1
|
||||
CIRCUITPY_ROTARYIO = 0
|
||||
|
@ -13,7 +13,7 @@ CIRCUITPY_FULL_BUILD = 0
|
||||
|
||||
# A number of modules are removed for RFM9x to make room for frozen libraries.
|
||||
# Many I/O functions are not available.
|
||||
CIRCUITPY_ANALOGIO = 0
|
||||
CIRCUITPY_ANALOGIO = 1
|
||||
CIRCUITPY_PULSEIO = 0
|
||||
CIRCUITPY_NEOPIXEL_WRITE = 1
|
||||
CIRCUITPY_ROTARYIO = 0
|
||||
|
@ -36,6 +36,7 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA13) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA18) },
|
||||
@ -45,14 +46,17 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA23) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PB03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL_POWER), MP_ROM_PTR(&pin_PB03) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_PB01) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_PB01) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_PB00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_PB00) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_BOOST_ENABLE), MP_ROM_PTR(&pin_PB13) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_CAN_RX), MP_ROM_PTR(&pin_PB15) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_CAN_TX), MP_ROM_PTR(&pin_PB14) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_CAN_STANDBY), MP_ROM_PTR(&pin_PB13) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_CAN_STANDBY), MP_ROM_PTR(&pin_PB12) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
// These are pins not to reset.
|
||||
// QSPI Data pins, PA23 is NeoPixel
|
||||
#define MICROPY_PORT_A (PORT_PA08 | PORT_PA09 | PORT_PA10 | PORT_PA11 | PA23)
|
||||
#define MICROPY_PORT_A (PORT_PA08 | PORT_PA09 | PORT_PA10 | PORT_PA11 | PORT_PA23)
|
||||
// QSPI CS, QSPI SCK
|
||||
#define MICROPY_PORT_B (PORT_PB10 | PORT_PB11)
|
||||
#define MICROPY_PORT_C (0)
|
||||
|
@ -16,8 +16,8 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_BUSY), MP_ROM_PTR(&pin_PA22) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RESET), MP_ROM_PTR(&pin_PA21) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RTS), MP_ROM_PTR(&pin_PA18) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_TX), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RX), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_TX), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RX), MP_ROM_PTR(&pin_PA12) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCL),MP_ROM_PTR(&pin_PB30) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SDA),MP_ROM_PTR(&pin_PB31) },
|
||||
|
@ -97,7 +97,8 @@ void board_init(void) {
|
||||
&pin_PA01, // busy_pin
|
||||
false, // busy_state
|
||||
5, // seconds_per_frame
|
||||
false); // chip_select (don't always toggle chip select)
|
||||
false, // chip_select (don't always toggle chip select)
|
||||
false); // grayscale
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -35,9 +35,6 @@
|
||||
#define IGNORE_PIN_PA12 1
|
||||
#define IGNORE_PIN_PA15 1
|
||||
#define IGNORE_PIN_PA16 1
|
||||
#define IGNORE_PIN_PA21 1
|
||||
#define IGNORE_PIN_PA22 1
|
||||
#define IGNORE_PIN_PA23 1
|
||||
#define IGNORE_PIN_PA27 1
|
||||
#define IGNORE_PIN_PA28 1
|
||||
|
||||
|
@ -16,8 +16,6 @@
|
||||
|
||||
#define IGNORE_PIN_PA27 1
|
||||
#define IGNORE_PIN_PA28 1
|
||||
#define IGNORE_PIN_PA30 1
|
||||
#define IGNORE_PIN_PA31 1
|
||||
|
||||
#define IGNORE_PIN_PB01 1
|
||||
#define IGNORE_PIN_PB02 1
|
||||
|
@ -1,14 +1,18 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PA03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_PA05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BOOST_EN), MP_ROM_PTR(&pin_PA14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_VEXT_SELECT), MP_ROM_PTR(&pin_PA15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_PA03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A8), MP_ROM_PTR(&pin_PA04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA10) },
|
||||
@ -19,8 +23,10 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_PA05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA31) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA30) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_PA03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) },
|
||||
|
@ -44,26 +44,36 @@
|
||||
#include "hpl/pm/hpl_pm_base.h"
|
||||
#endif
|
||||
|
||||
#define HAVE_ANALOGOUT ( \
|
||||
(defined(PIN_PA02) && !defined(IGNORE_PA02)) || \
|
||||
(defined(SAM_D5X_E5X) && defined(PIN_PA05) && !defined(IGNORE_PA05)) \
|
||||
)
|
||||
|
||||
void common_hal_analogio_analogout_construct(analogio_analogout_obj_t* self,
|
||||
const mcu_pin_obj_t *pin) {
|
||||
#if defined(SAMD21) && !defined(PIN_PA02)
|
||||
#if !HAVE_ANALOGOUT
|
||||
mp_raise_NotImplementedError(translate("No DAC on chip"));
|
||||
#else
|
||||
if (pin->number != PIN_PA02
|
||||
#ifdef SAM_D5X_E5X
|
||||
&& pin->number != PIN_PA05
|
||||
|
||||
int channel = -1;
|
||||
|
||||
#if defined(PIN_PA02) && !defined(IGNORE_PIN_PA02)
|
||||
if (pin->number != PIN_PA02) {
|
||||
channel = 0;
|
||||
}
|
||||
#endif
|
||||
) {
|
||||
#if defined(PIN_PA05) && defined(PIN_PA05) && !defined(IGNORE_PIN_PA05)
|
||||
if (pin->number != PIN_PA05) {
|
||||
channel = 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
if(channel == -1) {
|
||||
mp_raise_ValueError(translate("AnalogOut not supported on given pin"));
|
||||
return;
|
||||
}
|
||||
|
||||
self->channel = 0;
|
||||
#ifdef SAM_D5X_E5X
|
||||
if (pin->number == PIN_PA05) {
|
||||
self->channel = 1;
|
||||
}
|
||||
#endif
|
||||
self->channel = channel;
|
||||
|
||||
#ifdef SAM_D5X_E5X
|
||||
hri_mclk_set_APBDMASK_DAC_bit(MCLK);
|
||||
@ -105,11 +115,15 @@ void common_hal_analogio_analogout_construct(analogio_analogout_obj_t* self,
|
||||
}
|
||||
|
||||
bool common_hal_analogio_analogout_deinited(analogio_analogout_obj_t *self) {
|
||||
#if !HAVE_ANALOGOUT
|
||||
return false;
|
||||
#else
|
||||
return self->deinited;
|
||||
#endif
|
||||
}
|
||||
|
||||
void common_hal_analogio_analogout_deinit(analogio_analogout_obj_t *self) {
|
||||
#if (defined(SAMD21) && defined(PIN_PA02)) || defined(SAM_D5X_E5X)
|
||||
#if HAVE_ANALOGOUT
|
||||
if (common_hal_analogio_analogout_deinited(self)) {
|
||||
return;
|
||||
}
|
||||
@ -130,12 +144,11 @@ void common_hal_analogio_analogout_deinit(analogio_analogout_obj_t *self) {
|
||||
|
||||
void common_hal_analogio_analogout_set_value(analogio_analogout_obj_t *self,
|
||||
uint16_t value) {
|
||||
#if defined(SAMD21) && !defined(PIN_PA02)
|
||||
return;
|
||||
#endif
|
||||
#if HAVE_ANALOGOUT
|
||||
// Input is 16 bit so make sure and set LEFTADJ to 1 so it takes the top
|
||||
// bits. This is currently done in asf4_conf/*/hpl_dac_config.h.
|
||||
dac_sync_write(&self->descriptor, self->channel, &value, 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
void analogout_reset(void) {
|
||||
@ -143,7 +156,7 @@ void analogout_reset(void) {
|
||||
// if it was enabled, so do that instead if AudioOut is enabled.
|
||||
#if CIRCUITPY_AUDIOIO
|
||||
audioout_reset();
|
||||
#else
|
||||
#elif HAVE_ANALOGOUT
|
||||
#ifdef SAMD21
|
||||
while (DAC->STATUS.reg & DAC_STATUS_SYNCBUSY) {}
|
||||
#endif
|
||||
|
@ -223,9 +223,11 @@ bool common_hal_mcu_pin_is_free(const mcu_pin_obj_t* pin) {
|
||||
#ifdef MICROPY_HW_NEOPIXEL
|
||||
if (pin == MICROPY_HW_NEOPIXEL) {
|
||||
// Special case for Metro M0 where the NeoPixel is also SWCLK
|
||||
#ifndef IGNORE_PIN_PA30
|
||||
if (MICROPY_HW_NEOPIXEL == &pin_PA30 && DSU->STATUSB.bit.DBGPRES == 1) {
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
return !neopixel_in_use;
|
||||
}
|
||||
#endif
|
||||
|
@ -275,120 +275,119 @@ STATIC const mp_rom_map_elem_t mcu_pin_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_PB31), MP_ROM_PTR(&pin_PB31) },
|
||||
#endif
|
||||
|
||||
// These are SAMD51 specific so we assume we want them in RAM
|
||||
#if defined(PIN_PC00)
|
||||
#if defined(PIN_PC00) && !defined(IGNORE_PIN_PC00)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC00), MP_ROM_PTR(&pin_PC00) },
|
||||
#endif
|
||||
#if defined(PIN_PC01)
|
||||
#if defined(PIN_PC01) && !defined(IGNORE_PIN_PC01)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC01), MP_ROM_PTR(&pin_PC01) },
|
||||
#endif
|
||||
#if defined(PIN_PC02)
|
||||
#if defined(PIN_PC02) && !defined(IGNORE_PIN_PC02)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC02), MP_ROM_PTR(&pin_PC02) },
|
||||
#endif
|
||||
#if defined(PIN_PC03)
|
||||
#if defined(PIN_PC03) && !defined(IGNORE_PIN_PC03)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC03), MP_ROM_PTR(&pin_PC03) },
|
||||
#endif
|
||||
#if defined(PIN_PC04)
|
||||
#if defined(PIN_PC04) && !defined(IGNORE_PIN_PC04)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC04), MP_ROM_PTR(&pin_PC04) },
|
||||
#endif
|
||||
#if defined(PIN_PC05)
|
||||
#if defined(PIN_PC05) && !defined(IGNORE_PIN_PC05)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC05), MP_ROM_PTR(&pin_PC05) },
|
||||
#endif
|
||||
#if defined(PIN_PC06)
|
||||
#if defined(PIN_PC06) && !defined(IGNORE_PIN_PC06)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC06), MP_ROM_PTR(&pin_PC06) },
|
||||
#endif
|
||||
#if defined(PIN_PC07)
|
||||
#if defined(PIN_PC07) && !defined(IGNORE_PIN_PC07)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC07), MP_ROM_PTR(&pin_PC07) },
|
||||
#endif
|
||||
#if defined(PIN_PC10)
|
||||
#if defined(PIN_PC10) && !defined(IGNORE_PIN_PC10)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC10), MP_ROM_PTR(&pin_PC10) },
|
||||
#endif
|
||||
#if defined(PIN_PC11)
|
||||
#if defined(PIN_PC11) && !defined(IGNORE_PIN_PC11)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC11), MP_ROM_PTR(&pin_PC11) },
|
||||
#endif
|
||||
#if defined(PIN_PC12)
|
||||
#if defined(PIN_PC12) && !defined(IGNORE_PIN_PC12)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC12), MP_ROM_PTR(&pin_PC12) },
|
||||
#endif
|
||||
#if defined(PIN_PC13)
|
||||
#if defined(PIN_PC13) && !defined(IGNORE_PIN_PC13)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC13), MP_ROM_PTR(&pin_PC13) },
|
||||
#endif
|
||||
#if defined(PIN_PC14)
|
||||
#if defined(PIN_PC14) && !defined(IGNORE_PIN_PC14)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC14), MP_ROM_PTR(&pin_PC14) },
|
||||
#endif
|
||||
#if defined(PIN_PC15)
|
||||
#if defined(PIN_PC15) && !defined(IGNORE_PIN_PC15)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC15), MP_ROM_PTR(&pin_PC15) },
|
||||
#endif
|
||||
#if defined(PIN_PC16)
|
||||
#if defined(PIN_PC16) && !defined(IGNORE_PIN_PC16)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC16), MP_ROM_PTR(&pin_PC16) },
|
||||
#endif
|
||||
#if defined(PIN_PC17)
|
||||
#if defined(PIN_PC17) && !defined(IGNORE_PIN_PC17)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC17), MP_ROM_PTR(&pin_PC17) },
|
||||
#endif
|
||||
#if defined(PIN_PC18)
|
||||
#if defined(PIN_PC18) && !defined(IGNORE_PIN_PC18)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC18), MP_ROM_PTR(&pin_PC18) },
|
||||
#endif
|
||||
#if defined(PIN_PC19)
|
||||
#if defined(PIN_PC19) && !defined(IGNORE_PIN_PC19)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC19), MP_ROM_PTR(&pin_PC19) },
|
||||
#endif
|
||||
#if defined(PIN_PC20)
|
||||
#if defined(PIN_PC20) && !defined(IGNORE_PIN_PC20)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC20), MP_ROM_PTR(&pin_PC20) },
|
||||
#endif
|
||||
#if defined(PIN_PC21)
|
||||
#if defined(PIN_PC21) && !defined(IGNORE_PIN_PC21)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC21), MP_ROM_PTR(&pin_PC21) },
|
||||
#endif
|
||||
#if defined(PIN_PC22)
|
||||
#if defined(PIN_PC22) && !defined(IGNORE_PIN_PC22)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC22), MP_ROM_PTR(&pin_PC22) },
|
||||
#endif
|
||||
#if defined(PIN_PC23)
|
||||
#if defined(PIN_PC23) && !defined(IGNORE_PIN_PC23)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC23), MP_ROM_PTR(&pin_PC23) },
|
||||
#endif
|
||||
#if defined(PIN_PC24)
|
||||
#if defined(PIN_PC24) && !defined(IGNORE_PIN_PC24)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC24), MP_ROM_PTR(&pin_PC24) },
|
||||
#endif
|
||||
#if defined(PIN_PC25)
|
||||
#if defined(PIN_PC25) && !defined(IGNORE_PIN_PC25)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC25), MP_ROM_PTR(&pin_PC25) },
|
||||
#endif
|
||||
#if defined(PIN_PC26)
|
||||
#if defined(PIN_PC26) && !defined(IGNORE_PIN_PC26)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC26), MP_ROM_PTR(&pin_PC26) },
|
||||
#endif
|
||||
#if defined(PIN_PC27)
|
||||
#if defined(PIN_PC27) && !defined(IGNORE_PIN_PC27)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC27), MP_ROM_PTR(&pin_PC27) },
|
||||
#endif
|
||||
#if defined(PIN_PC28)
|
||||
#if defined(PIN_PC28) && !defined(IGNORE_PIN_PC28)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC28), MP_ROM_PTR(&pin_PC28) },
|
||||
#endif
|
||||
#if defined(PIN_PC30)
|
||||
#if defined(PIN_PC30) && !defined(IGNORE_PIN_PC30)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC30), MP_ROM_PTR(&pin_PC30) },
|
||||
#endif
|
||||
#if defined(PIN_PC31)
|
||||
#if defined(PIN_PC31) && !defined(IGNORE_PIN_PC31)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PC31), MP_ROM_PTR(&pin_PC31) },
|
||||
#endif
|
||||
|
||||
#if defined(PIN_PD00)
|
||||
#if defined(PIN_PD00) && !defined(IGNORE_PIN_PD00)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PD00), MP_ROM_PTR(&pin_PD00) },
|
||||
#endif
|
||||
#if defined(PIN_PD01)
|
||||
#if defined(PIN_PD01) && !defined(IGNORE_PIN_PD01)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PD01), MP_ROM_PTR(&pin_PD01) },
|
||||
#endif
|
||||
#if defined(PIN_PD08)
|
||||
#if defined(PIN_PD08) && !defined(IGNORE_PIN_PD08)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PD08), MP_ROM_PTR(&pin_PD08) },
|
||||
#endif
|
||||
#if defined(PIN_PD09)
|
||||
#if defined(PIN_PD09) && !defined(IGNORE_PIN_PD09)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PD09), MP_ROM_PTR(&pin_PD09) },
|
||||
#endif
|
||||
#if defined(PIN_PD10)
|
||||
#if defined(PIN_PD10) && !defined(IGNORE_PIN_PD10)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PD10), MP_ROM_PTR(&pin_PD10) },
|
||||
#endif
|
||||
#if defined(PIN_PD11)
|
||||
#if defined(PIN_PD11) && !defined(IGNORE_PIN_PD11)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PD11), MP_ROM_PTR(&pin_PD11) },
|
||||
#endif
|
||||
#if defined(PIN_PD12)
|
||||
#if defined(PIN_PD12) && !defined(IGNORE_PIN_PD12)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PD12), MP_ROM_PTR(&pin_PD12) },
|
||||
#endif
|
||||
#if defined(PIN_PD20)
|
||||
#if defined(PIN_PD20) && !defined(IGNORE_PIN_PD20)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PD20), MP_ROM_PTR(&pin_PD20) },
|
||||
#endif
|
||||
#if defined(PIN_PD21)
|
||||
#if defined(PIN_PD21) && !defined(IGNORE_PIN_PD21)
|
||||
{ MP_ROM_QSTR(MP_QSTR_PD21), MP_ROM_PTR(&pin_PD21) },
|
||||
#endif
|
||||
};
|
||||
|
@ -30,18 +30,20 @@ Connect these pins using a [USB adapter](https://www.adafruit.com/product/4090)
|
||||
|
||||
## Building and flashing ##
|
||||
|
||||
Before building or flashing the ESP32-S2, you must [install the esp-idf](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html). This must be re-done ever time the esp-idf is updated, but not every time you build. Run `cd ports/esp32s2` from `circuitpython/` to move to the esp32s2 port root, and run:
|
||||
Before building or flashing the ESP32-S2, you must [install the esp-idf](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/get-started/index.html). This must be re-done every time the esp-idf is updated, but not every time you build. Run `cd ports/esp32s2` from `circuitpython/` to move to the esp32s2 port root, and run:
|
||||
|
||||
```
|
||||
./esp-idf/install.sh
|
||||
```
|
||||
|
||||
Additionally, any time you open a new bash environment for building or flashing, you must add the esp-idf tools to your path:
|
||||
After this initial installation, you must add the esp-idf tools to your path. You must also do this **any time you open a new bash environment for building or flashing**:
|
||||
|
||||
```
|
||||
. esp-idf/export.sh
|
||||
```
|
||||
|
||||
When Circuitpython updates the ESP-IDF to a new release, you may need to run this installation process again. The exact commands used may also vary based on your bash environment.
|
||||
|
||||
Building boards such as the Saola is typically done through `make flash`. The default port is `tty.SLAB_USBtoUART`, which will only work on certain Mac setups. On most machines, both Mac and Linux, you will need to set the port yourself by running `ls /dev/tty.usb*` and selecting the one that only appears when your development board is plugged in. An example make command with the port setting is as follows:
|
||||
|
||||
```
|
||||
|
47
ports/esp32s2/boards/adafruit_esp32s2_eink_portal/board.c
Normal file
47
ports/esp32s2/boards/adafruit_esp32s2_eink_portal/board.c
Normal file
@ -0,0 +1,47 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* 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 "boards/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
|
||||
void board_init(void) {
|
||||
// USB
|
||||
common_hal_never_reset_pin(&pin_GPIO19);
|
||||
common_hal_never_reset_pin(&pin_GPIO20);
|
||||
|
||||
// Debug UART
|
||||
common_hal_never_reset_pin(&pin_GPIO43);
|
||||
common_hal_never_reset_pin(&pin_GPIO44);
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void reset_board(void) {
|
||||
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
//Micropython setup
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "EInk Portal"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32S2"
|
||||
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO1)
|
||||
|
||||
#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
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO34)
|
||||
#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)
|
@ -0,0 +1,17 @@
|
||||
USB_VID = 0x239A
|
||||
USB_PID = 0x80E6
|
||||
USB_PRODUCT = "EInk Portal"
|
||||
USB_MANUFACTURER = "Adafruit"
|
||||
|
||||
INTERNAL_FLASH_FILESYSTEM = 1
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
# The default queue depth of 16 overflows on release builds,
|
||||
# so increase it to 32.
|
||||
CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
|
||||
CIRCUITPY_ESP_FLASH_MODE=dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ=40m
|
||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||
|
||||
CIRCUITPY_MODULE=wrover
|
41
ports/esp32s2/boards/adafruit_esp32s2_eink_portal/pins.c
Normal file
41
ports/esp32s2/boards/adafruit_esp32s2_eink_portal/pins.c
Normal file
@ -0,0 +1,41 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_AD1), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPEAKER), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPEAKER_ENABLE), MP_ROM_PTR(&pin_GPIO16) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_EPD_BUSY), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_EPD_RESET), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_EPD_DC), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_EPD_CS), MP_ROM_PTR(&pin_GPIO8) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON_A), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON_B), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON_C), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON_D), MP_ROM_PTR(&pin_GPIO11) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_LIGHT), MP_ROM_PTR(&pin_GPIO3) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_GPIO4) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO33) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO34) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_CS), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO36) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO37) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL_POWER), MP_ROM_PTR(&pin_GPIO21) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO1) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
33
ports/esp32s2/boards/adafruit_esp32s2_eink_portal/sdkconfig
Normal file
33
ports/esp32s2/boards/adafruit_esp32s2_eink_portal/sdkconfig
Normal file
@ -0,0 +1,33 @@
|
||||
CONFIG_ESP32S2_SPIRAM_SUPPORT=y
|
||||
|
||||
#
|
||||
# SPI RAM config
|
||||
#
|
||||
# CONFIG_SPIRAM_TYPE_AUTO is not set
|
||||
CONFIG_SPIRAM_TYPE_ESPPSRAM16=y
|
||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
|
||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
|
||||
CONFIG_SPIRAM_SIZE=2097152
|
||||
|
||||
#
|
||||
# PSRAM clock and cs IO for ESP32S2
|
||||
#
|
||||
CONFIG_DEFAULT_PSRAM_CLK_IO=30
|
||||
CONFIG_DEFAULT_PSRAM_CS_IO=26
|
||||
# end of PSRAM clock and cs IO for ESP32S2
|
||||
|
||||
# CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set
|
||||
# CONFIG_SPIRAM_RODATA is not set
|
||||
# CONFIG_SPIRAM_SPEED_80M is not set
|
||||
CONFIG_SPIRAM_SPEED_40M=y
|
||||
# CONFIG_SPIRAM_SPEED_26M is not set
|
||||
# CONFIG_SPIRAM_SPEED_20M is not set
|
||||
CONFIG_SPIRAM=y
|
||||
CONFIG_SPIRAM_BOOT_INIT=y
|
||||
# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set
|
||||
CONFIG_SPIRAM_USE_MEMMAP=y
|
||||
# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set
|
||||
# CONFIG_SPIRAM_USE_MALLOC is not set
|
||||
CONFIG_SPIRAM_MEMTEST=y
|
||||
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
||||
# end of SPI RAM config
|
@ -2,41 +2,65 @@
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO3) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO17), MP_ROM_PTR(&pin_GPIO17) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO18), MP_ROM_PTR(&pin_GPIO18) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO1), MP_ROM_PTR(&pin_GPIO1) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO2), MP_ROM_PTR(&pin_GPIO2) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO3) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO3), MP_ROM_PTR(&pin_GPIO3) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO42) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO7), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO8), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO11), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO14), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO15), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO16), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO21), MP_ROM_PTR(&pin_GPIO21) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SDA),MP_ROM_PTR(&pin_GPIO33) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO33),MP_ROM_PTR(&pin_GPIO33) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCL),MP_ROM_PTR(&pin_GPIO34) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO34),MP_ROM_PTR(&pin_GPIO34) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO36) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO36), MP_ROM_PTR(&pin_GPIO36) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_MOSI),MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO35),MP_ROM_PTR(&pin_GPIO35) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_MISO),MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO37),MP_ROM_PTR(&pin_GPIO37) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO42), MP_ROM_PTR(&pin_GPIO42) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO42) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO45) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO45), MP_ROM_PTR(&pin_GPIO45) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_DEBUG_RX), MP_ROM_PTR(&pin_GPIO38) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_DEBUG_TX), MP_ROM_PTR(&pin_GPIO37) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO36) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_MOSI),MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_MISO),MP_ROM_PTR(&pin_GPIO37) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
|
@ -11,7 +11,7 @@ LONGINT_IMPL = MPZ
|
||||
CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
|
||||
CIRCUITPY_ESP_FLASH_MODE=dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ=40m
|
||||
CIRCUITPY_ESP_FLASH_FREQ=80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||
|
||||
CIRCUITPY_MODULE=wrover
|
||||
|
51
ports/esp32s2/boards/targett_module_clip_wroom/board.c
Normal file
51
ports/esp32s2/boards/targett_module_clip_wroom/board.c
Normal file
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* 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 "boards/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
|
||||
void board_init(void) {
|
||||
// USB
|
||||
common_hal_never_reset_pin(&pin_GPIO19);
|
||||
common_hal_never_reset_pin(&pin_GPIO20);
|
||||
|
||||
// Debug UART
|
||||
common_hal_never_reset_pin(&pin_GPIO43);
|
||||
common_hal_never_reset_pin(&pin_GPIO44);
|
||||
|
||||
// Crystal
|
||||
common_hal_never_reset_pin(&pin_GPIO15);
|
||||
common_hal_never_reset_pin(&pin_GPIO16);
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void reset_board(void) {
|
||||
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
//Micropython setup
|
||||
|
||||
//Essentially the same as the Saola board but without the neopixel
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "Targett Module Clip w/Wroom"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32S2"
|
||||
|
||||
//#define MICROPY_HW_NEOPIXEL (&pin_GPIO18)
|
||||
|
||||
#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
|
@ -0,0 +1,17 @@
|
||||
USB_VID = 0x1209
|
||||
USB_PID = 0x3252
|
||||
USB_PRODUCT = "Targett Module Clip w/Wroom"
|
||||
USB_MANUFACTURER = "Targett"
|
||||
|
||||
INTERNAL_FLASH_FILESYSTEM = 1
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
# The default queue depth of 16 overflows on release builds,
|
||||
# so increase it to 32.
|
||||
CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
|
||||
CIRCUITPY_ESP_FLASH_MODE=dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ=40m
|
||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||
|
||||
CIRCUITPY_MODULE=wroom
|
48
ports/esp32s2/boards/targett_module_clip_wroom/pins.c
Normal file
48
ports/esp32s2/boards/targett_module_clip_wroom/pins.c
Normal file
@ -0,0 +1,48 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO0), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO1), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO2), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO3), MP_ROM_PTR(&pin_GPIO3) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO7), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO8), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO11), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO14), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO15), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO16), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO17), MP_ROM_PTR(&pin_GPIO17) },
|
||||
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO18), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO19), MP_ROM_PTR(&pin_GPIO19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO20), MP_ROM_PTR(&pin_GPIO20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO21), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO26), MP_ROM_PTR(&pin_GPIO26) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO33), MP_ROM_PTR(&pin_GPIO33) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO34), MP_ROM_PTR(&pin_GPIO34) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO35), MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO36), MP_ROM_PTR(&pin_GPIO36) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO37), MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO38), MP_ROM_PTR(&pin_GPIO38) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO39), MP_ROM_PTR(&pin_GPIO39) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO40), MP_ROM_PTR(&pin_GPIO40) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO41), MP_ROM_PTR(&pin_GPIO41) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO42), MP_ROM_PTR(&pin_GPIO42) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO43) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO43), MP_ROM_PTR(&pin_GPIO43) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO44) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO44), MP_ROM_PTR(&pin_GPIO44) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO45), MP_ROM_PTR(&pin_GPIO45) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO46), MP_ROM_PTR(&pin_GPIO46) },
|
||||
|
||||
//{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO18) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
51
ports/esp32s2/boards/targett_module_clip_wrover/board.c
Normal file
51
ports/esp32s2/boards/targett_module_clip_wrover/board.c
Normal file
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* 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 "boards/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
|
||||
void board_init(void) {
|
||||
// USB
|
||||
common_hal_never_reset_pin(&pin_GPIO19);
|
||||
common_hal_never_reset_pin(&pin_GPIO20);
|
||||
|
||||
// Debug UART
|
||||
common_hal_never_reset_pin(&pin_GPIO43);
|
||||
common_hal_never_reset_pin(&pin_GPIO44);
|
||||
|
||||
//Crystal
|
||||
common_hal_never_reset_pin(&pin_GPIO15);
|
||||
common_hal_never_reset_pin(&pin_GPIO16);
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void reset_board(void) {
|
||||
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
//Micropython setup
|
||||
|
||||
//Same setup as the Saola board but with no Neopixel on board
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "Targett Module Clip w/Wrover"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32S2"
|
||||
|
||||
//#define MICROPY_HW_NEOPIXEL (&pin_GPIO18)
|
||||
|
||||
#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
|
@ -0,0 +1,17 @@
|
||||
USB_VID = 0x1209
|
||||
USB_PID = 0x3253
|
||||
USB_PRODUCT = "Targett Module Clip w/Wrover"
|
||||
USB_MANUFACTURER = "Targett"
|
||||
|
||||
INTERNAL_FLASH_FILESYSTEM = 1
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
# The default queue depth of 16 overflows on release builds,
|
||||
# so increase it to 32.
|
||||
CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
|
||||
CIRCUITPY_ESP_FLASH_MODE=dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ=40m
|
||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||
|
||||
CIRCUITPY_MODULE=wrover
|
48
ports/esp32s2/boards/targett_module_clip_wrover/pins.c
Normal file
48
ports/esp32s2/boards/targett_module_clip_wrover/pins.c
Normal file
@ -0,0 +1,48 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO0), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO1), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO2), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO3), MP_ROM_PTR(&pin_GPIO3) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO7), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO8), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO11), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO14), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO15), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO16), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO17), MP_ROM_PTR(&pin_GPIO17) },
|
||||
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO18), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO19), MP_ROM_PTR(&pin_GPIO19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO20), MP_ROM_PTR(&pin_GPIO20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO21), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO26), MP_ROM_PTR(&pin_GPIO26) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO33), MP_ROM_PTR(&pin_GPIO33) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO34), MP_ROM_PTR(&pin_GPIO34) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO35), MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO36), MP_ROM_PTR(&pin_GPIO36) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO37), MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO38), MP_ROM_PTR(&pin_GPIO38) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO39), MP_ROM_PTR(&pin_GPIO39) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO40), MP_ROM_PTR(&pin_GPIO40) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO41), MP_ROM_PTR(&pin_GPIO41) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO42), MP_ROM_PTR(&pin_GPIO42) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO43) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO43), MP_ROM_PTR(&pin_GPIO43) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO44) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO44), MP_ROM_PTR(&pin_GPIO44) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO45), MP_ROM_PTR(&pin_GPIO45) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO46), MP_ROM_PTR(&pin_GPIO46) },
|
||||
|
||||
//{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO18) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
33
ports/esp32s2/boards/targett_module_clip_wrover/sdkconfig
Normal file
33
ports/esp32s2/boards/targett_module_clip_wrover/sdkconfig
Normal file
@ -0,0 +1,33 @@
|
||||
CONFIG_ESP32S2_SPIRAM_SUPPORT=y
|
||||
|
||||
#
|
||||
# SPI RAM config
|
||||
#
|
||||
# CONFIG_SPIRAM_TYPE_AUTO is not set
|
||||
CONFIG_SPIRAM_TYPE_ESPPSRAM16=y
|
||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
|
||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
|
||||
CONFIG_SPIRAM_SIZE=2097152
|
||||
|
||||
#
|
||||
# PSRAM clock and cs IO for ESP32S2
|
||||
#
|
||||
CONFIG_DEFAULT_PSRAM_CLK_IO=30
|
||||
CONFIG_DEFAULT_PSRAM_CS_IO=26
|
||||
# end of PSRAM clock and cs IO for ESP32S2
|
||||
|
||||
# CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set
|
||||
# CONFIG_SPIRAM_RODATA is not set
|
||||
# CONFIG_SPIRAM_SPEED_80M is not set
|
||||
CONFIG_SPIRAM_SPEED_40M=y
|
||||
# CONFIG_SPIRAM_SPEED_26M is not set
|
||||
# CONFIG_SPIRAM_SPEED_20M is not set
|
||||
CONFIG_SPIRAM=y
|
||||
CONFIG_SPIRAM_BOOT_INIT=y
|
||||
# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set
|
||||
CONFIG_SPIRAM_USE_MEMMAP=y
|
||||
# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set
|
||||
# CONFIG_SPIRAM_USE_MALLOC is not set
|
||||
CONFIG_SPIRAM_MEMTEST=y
|
||||
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
||||
# end of SPI RAM config
|
@ -357,6 +357,9 @@ bool common_hal_busio_spi_transfer(busio_spi_obj_t *self, const uint8_t *data_ou
|
||||
} else {
|
||||
hal->dma_enabled = 0;
|
||||
burst_length = sizeof(hal->hw->data_buf);
|
||||
// When switching to non-DMA, we need to make sure DMA is off. Otherwise,
|
||||
// the S2 will transmit zeroes instead of our data.
|
||||
spi_ll_txdma_disable(hal->hw);
|
||||
}
|
||||
|
||||
// This rounds up.
|
||||
|
295
ports/esp32s2/common-hal/canio/CAN.c
Normal file
295
ports/esp32s2/common-hal/canio/CAN.c
Normal file
@ -0,0 +1,295 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Jeff Epler for Adafruit Industries
|
||||
*
|
||||
* 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 <string.h>
|
||||
|
||||
#include "py/runtime.h"
|
||||
#include "py/mperrno.h"
|
||||
|
||||
#include "common-hal/canio/CAN.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "shared-bindings/util.h"
|
||||
#include "supervisor/port.h"
|
||||
|
||||
#include "hal/twai_types.h"
|
||||
|
||||
STATIC bool reserved_can;
|
||||
|
||||
twai_timing_config_t get_t_config(int baudrate) {
|
||||
switch(baudrate) {
|
||||
case 1000000:
|
||||
{
|
||||
// TWAI_TIMING_CONFIG_abc expands to a C designated initializer list
|
||||
// { .brp = 4, ...}. This is only acceptable to the compiler as an
|
||||
// initializer and 'return TWAI_TIMING_CONFIG_1MBITS()` is not valid.
|
||||
// Instead, introduce a temporary, named variable and return it.
|
||||
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_1MBITS();
|
||||
return t_config;
|
||||
}
|
||||
case 800000:
|
||||
{
|
||||
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_800KBITS();
|
||||
return t_config;
|
||||
}
|
||||
case 500000:
|
||||
{
|
||||
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_500KBITS();
|
||||
return t_config;
|
||||
}
|
||||
case 250000:
|
||||
{
|
||||
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_250KBITS();
|
||||
return t_config;
|
||||
}
|
||||
case 125000:
|
||||
{
|
||||
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_125KBITS();
|
||||
return t_config;
|
||||
}
|
||||
case 100000:
|
||||
{
|
||||
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_100KBITS();
|
||||
return t_config;
|
||||
}
|
||||
case 50000:
|
||||
{
|
||||
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_50KBITS();
|
||||
return t_config;
|
||||
}
|
||||
case 25000:
|
||||
{
|
||||
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_25KBITS();
|
||||
return t_config;
|
||||
}
|
||||
case 20000:
|
||||
{
|
||||
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_20KBITS();
|
||||
return t_config;
|
||||
}
|
||||
case 16000:
|
||||
{
|
||||
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_16KBITS();
|
||||
return t_config;
|
||||
}
|
||||
case 12500:
|
||||
{
|
||||
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_12_5KBITS();
|
||||
return t_config;
|
||||
}
|
||||
case 10000:
|
||||
{
|
||||
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_10KBITS();
|
||||
return t_config;
|
||||
}
|
||||
case 5000:
|
||||
{
|
||||
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_5KBITS();
|
||||
return t_config;
|
||||
}
|
||||
case 1000:
|
||||
{
|
||||
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_1KBITS();
|
||||
return t_config;
|
||||
}
|
||||
default:
|
||||
mp_raise_ValueError(translate("Baudrate not supported by peripheral"));
|
||||
}
|
||||
}
|
||||
|
||||
void common_hal_canio_can_construct(canio_can_obj_t *self, mcu_pin_obj_t *tx, mcu_pin_obj_t *rx, int baudrate, bool loopback, bool silent)
|
||||
{
|
||||
#define DIV_ROUND(a, b) (((a) + (b)/2) / (b))
|
||||
#define DIV_ROUND_UP(a, b) (((a) + (b) - 1) / (b))
|
||||
if (reserved_can) {
|
||||
mp_raise_ValueError(translate("All CAN peripherals are in use"));
|
||||
}
|
||||
|
||||
if (loopback && silent) {
|
||||
mp_raise_ValueError(translate("loopback + silent mode not supported by peripheral"));
|
||||
}
|
||||
|
||||
twai_timing_config_t t_config = get_t_config(baudrate);
|
||||
twai_general_config_t g_config = TWAI_GENERAL_CONFIG_DEFAULT(-1, -1, TWAI_MODE_NORMAL);
|
||||
g_config.tx_io = tx->number;
|
||||
g_config.rx_io = rx->number;
|
||||
if (loopback) {
|
||||
g_config.mode = TWAI_MODE_NO_ACK;
|
||||
}
|
||||
if (silent) {
|
||||
g_config.mode = TWAI_MODE_LISTEN_ONLY;
|
||||
}
|
||||
|
||||
twai_filter_config_t f_config = TWAI_FILTER_CONFIG_ACCEPT_ALL();
|
||||
|
||||
esp_err_t result = twai_driver_install(&g_config, &t_config, &f_config);
|
||||
if (result == ESP_ERR_NO_MEM) {
|
||||
mp_raise_msg(&mp_type_MemoryError, translate("ESP-IDF memory allocation failed"));
|
||||
} else if (result == ESP_ERR_INVALID_ARG) {
|
||||
mp_raise_ValueError(translate("Invalid pins"));
|
||||
} else if (result != ESP_OK) {
|
||||
mp_raise_OSError_msg_varg(translate("twai_driver_install returned esp-idf error #%d"), (int)result);
|
||||
}
|
||||
|
||||
result = twai_start();
|
||||
if (result != ESP_OK) {
|
||||
mp_raise_OSError_msg_varg(translate("twai_start returned esp-idf error #%d"), (int)result);
|
||||
}
|
||||
|
||||
self->silent = silent;
|
||||
self->loopback = loopback;
|
||||
self->baudrate = baudrate;
|
||||
self->tx_pin = tx;
|
||||
self->rx_pin = rx;
|
||||
|
||||
claim_pin(tx);
|
||||
claim_pin(rx);
|
||||
|
||||
reserved_can = true;
|
||||
}
|
||||
|
||||
bool common_hal_canio_can_loopback_get(canio_can_obj_t *self)
|
||||
{
|
||||
return self->loopback;
|
||||
}
|
||||
|
||||
int common_hal_canio_can_baudrate_get(canio_can_obj_t *self)
|
||||
{
|
||||
return self->baudrate;
|
||||
}
|
||||
|
||||
int common_hal_canio_can_transmit_error_count_get(canio_can_obj_t *self)
|
||||
{
|
||||
twai_status_info_t info;
|
||||
twai_get_status_info(&info);
|
||||
return info.tx_error_counter;
|
||||
}
|
||||
|
||||
int common_hal_canio_can_receive_error_count_get(canio_can_obj_t *self)
|
||||
{
|
||||
twai_status_info_t info;
|
||||
twai_get_status_info(&info);
|
||||
return info.rx_error_counter;
|
||||
}
|
||||
|
||||
canio_bus_state_t common_hal_canio_can_state_get(canio_can_obj_t *self) {
|
||||
twai_status_info_t info;
|
||||
twai_get_status_info(&info);
|
||||
if (info.state == TWAI_STATE_BUS_OFF || info.state == TWAI_STATE_RECOVERING) {
|
||||
return BUS_STATE_OFF;
|
||||
}
|
||||
if (info.tx_error_counter > 127 || info.rx_error_counter > 127) {
|
||||
return BUS_STATE_ERROR_PASSIVE;
|
||||
}
|
||||
if (info.tx_error_counter > 96 || info.rx_error_counter > 96) {
|
||||
return BUS_STATE_ERROR_WARNING;
|
||||
}
|
||||
return BUS_STATE_ERROR_ACTIVE;
|
||||
}
|
||||
|
||||
static void can_restart(void) {
|
||||
twai_status_info_t info;
|
||||
twai_get_status_info(&info);
|
||||
if (info.state != TWAI_STATE_BUS_OFF) {
|
||||
return;
|
||||
}
|
||||
twai_initiate_recovery();
|
||||
// wait 100ms (hard coded for now) for bus to recover
|
||||
uint64_t deadline = port_get_raw_ticks(NULL) + 100;
|
||||
do {
|
||||
twai_get_status_info(&info);
|
||||
} while (port_get_raw_ticks(NULL) < deadline && (info.state == TWAI_STATE_BUS_OFF || info.state == TWAI_STATE_RECOVERING));
|
||||
}
|
||||
|
||||
void canio_maybe_auto_restart(canio_can_obj_t *self) {
|
||||
if (self->auto_restart) can_restart();
|
||||
}
|
||||
|
||||
void common_hal_canio_can_restart(canio_can_obj_t *self) {
|
||||
if (!common_hal_canio_can_auto_restart_get(self)) {
|
||||
can_restart();
|
||||
}
|
||||
}
|
||||
|
||||
bool common_hal_canio_can_auto_restart_get(canio_can_obj_t *self) {
|
||||
return self->auto_restart;
|
||||
}
|
||||
|
||||
void common_hal_canio_can_auto_restart_set(canio_can_obj_t *self, bool value) {
|
||||
self->auto_restart = value;
|
||||
canio_maybe_auto_restart(self);
|
||||
}
|
||||
|
||||
void common_hal_canio_can_send(canio_can_obj_t *self, mp_obj_t message_in)
|
||||
{
|
||||
canio_maybe_auto_restart(self);
|
||||
canio_message_obj_t *message = message_in;
|
||||
bool rtr = message->base.type == &canio_remote_transmission_request_type;
|
||||
twai_message_t message_out = {
|
||||
.extd = message->extended,
|
||||
.rtr = rtr,
|
||||
.self = self->loopback,
|
||||
.identifier = message->id,
|
||||
.data_length_code = message->size,
|
||||
};
|
||||
if (!rtr) {
|
||||
memcpy(message_out.data, message->data, message->size);
|
||||
}
|
||||
// Allow transmission to occur in background
|
||||
twai_transmit(&message_out, 0);
|
||||
}
|
||||
|
||||
bool common_hal_canio_can_silent_get(canio_can_obj_t *self) {
|
||||
return self->silent;
|
||||
}
|
||||
|
||||
bool common_hal_canio_can_deinited(canio_can_obj_t *self) {
|
||||
return !self->tx_pin;
|
||||
}
|
||||
|
||||
void common_hal_canio_can_check_for_deinit(canio_can_obj_t *self) {
|
||||
if (common_hal_canio_can_deinited(self)) {
|
||||
raise_deinited_error();
|
||||
}
|
||||
}
|
||||
|
||||
void common_hal_canio_can_deinit(canio_can_obj_t *self)
|
||||
{
|
||||
if (self->tx_pin) {
|
||||
(void)twai_stop();
|
||||
(void)twai_driver_uninstall();
|
||||
reset_pin_number(self->tx_pin->number);
|
||||
reset_pin_number(self->rx_pin->number);
|
||||
reserved_can = false;
|
||||
}
|
||||
self->tx_pin = NULL;
|
||||
self->rx_pin = NULL;
|
||||
}
|
||||
|
||||
void common_hal_canio_reset(void) {
|
||||
(void)twai_stop();
|
||||
(void)twai_driver_uninstall();
|
||||
reserved_can = false;
|
||||
}
|
49
ports/esp32s2/common-hal/canio/CAN.h
Normal file
49
ports/esp32s2/common-hal/canio/CAN.h
Normal file
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Jeff Epler for Adafruit Industries
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "py/obj.h"
|
||||
#include "shared-bindings/canio/__init__.h"
|
||||
#include "shared-bindings/canio/CAN.h"
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
#include "common-hal/canio/__init__.h"
|
||||
#include "shared-module/canio/Message.h"
|
||||
|
||||
#include "driver/twai.h"
|
||||
|
||||
#define FILTER_BANK_COUNT (28)
|
||||
|
||||
typedef struct canio_can_obj {
|
||||
mp_obj_base_t base;
|
||||
int baudrate;
|
||||
const mcu_pin_obj_t *rx_pin;
|
||||
const mcu_pin_obj_t *tx_pin;
|
||||
bool loopback:1;
|
||||
bool silent:1;
|
||||
bool auto_restart:1;
|
||||
bool fifo_in_use:1;
|
||||
} canio_can_obj_t;
|
182
ports/esp32s2/common-hal/canio/Listener.c
Normal file
182
ports/esp32s2/common-hal/canio/Listener.c
Normal file
@ -0,0 +1,182 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Jeff Epler for Adafruit Industries
|
||||
*
|
||||
* 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 <math.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "py/obj.h"
|
||||
#include "py/runtime.h"
|
||||
|
||||
#include "common-hal/canio/__init__.h"
|
||||
#include "common-hal/canio/Listener.h"
|
||||
#include "shared-bindings/canio/Listener.h"
|
||||
#include "shared-bindings/util.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
#include "supervisor/shared/safe_mode.h"
|
||||
|
||||
#include "hal/twai_ll.h"
|
||||
|
||||
// IDE = "extended ID" flag of packet header. We always add this bit to the
|
||||
// mask because a match is always for just one kind of address length
|
||||
#define FILTER16_IDE (1<<3)
|
||||
#define FILTER32_IDE (1<<2)
|
||||
|
||||
// Work around a problem reported at
|
||||
// https://github.com/espressif/esp-idf/issues/6020 where
|
||||
// twai_ll_set_acc_filter does not work under -Os optimization
|
||||
__attribute__((optimize("O0")))
|
||||
__attribute__((noinline))
|
||||
static void canio_set_acc_filter(twai_dev_t* hw, uint32_t code, uint32_t mask, bool single_filter)
|
||||
{
|
||||
uint32_t code_swapped = __builtin_bswap32(code);
|
||||
uint32_t mask_swapped = __builtin_bswap32(mask);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
hw->acceptance_filter.acr[i].val = ((code_swapped >> (i * 8)) & 0xFF);
|
||||
hw->acceptance_filter.amr[i].val = ((mask_swapped >> (i * 8)) & 0xFF);
|
||||
}
|
||||
hw->mode_reg.afm = single_filter;
|
||||
}
|
||||
|
||||
STATIC void install_standard_filter(canio_listener_obj_t *self, canio_match_obj_t *match) {
|
||||
canio_set_acc_filter(&TWAI, match->id << 21, ~(match->mask << 21), true);
|
||||
self->extended = false;
|
||||
self->standard = true;
|
||||
}
|
||||
|
||||
STATIC void install_extended_filter(canio_listener_obj_t *self, canio_match_obj_t *match) {
|
||||
canio_set_acc_filter(&TWAI, match->id << 3, ~(match->mask << 3), true);
|
||||
self->extended = true;
|
||||
self->standard = false;
|
||||
}
|
||||
|
||||
STATIC void install_all_match_filter(canio_listener_obj_t *self) {
|
||||
canio_set_acc_filter(&TWAI, 0u, ~0u, true);
|
||||
self->extended = true;
|
||||
self->standard = true;
|
||||
}
|
||||
|
||||
__attribute__((noinline,optimize("O0")))
|
||||
void set_filters(canio_listener_obj_t *self, size_t nmatch, canio_match_obj_t **matches) {
|
||||
twai_ll_enter_reset_mode(&TWAI);
|
||||
|
||||
if (!nmatch) {
|
||||
install_all_match_filter(self);
|
||||
} else {
|
||||
canio_match_obj_t *match = matches[0];
|
||||
if (match->extended) {
|
||||
install_extended_filter(self, match);
|
||||
} else {
|
||||
install_standard_filter(self, match);
|
||||
}
|
||||
}
|
||||
|
||||
twai_ll_exit_reset_mode(&TWAI);
|
||||
}
|
||||
|
||||
|
||||
void common_hal_canio_listener_construct(canio_listener_obj_t *self, canio_can_obj_t *can, size_t nmatch, canio_match_obj_t **matches, float timeout) {
|
||||
if (can->fifo_in_use) {
|
||||
mp_raise_ValueError(translate("All RX FIFOs in use"));
|
||||
}
|
||||
if (nmatch > 1) {
|
||||
mp_raise_ValueError(translate("Filters too complex"));
|
||||
}
|
||||
|
||||
// Nothing can fail now so it's safe to assign self->can
|
||||
can->fifo_in_use = 1;
|
||||
self->can = can;
|
||||
self->pending = false;
|
||||
|
||||
set_filters(self, nmatch, matches);
|
||||
self->extended = self->standard = true;
|
||||
|
||||
common_hal_canio_listener_set_timeout(self, timeout);
|
||||
}
|
||||
|
||||
void common_hal_canio_listener_set_timeout(canio_listener_obj_t *self, float timeout) {
|
||||
self->timeout_ms = (int)MICROPY_FLOAT_C_FUN(ceil)(timeout * 1000);
|
||||
}
|
||||
|
||||
float common_hal_canio_listener_get_timeout(canio_listener_obj_t *self) {
|
||||
return self->timeout_ms / 1000.0f;
|
||||
}
|
||||
|
||||
void common_hal_canio_listener_check_for_deinit(canio_listener_obj_t *self) {
|
||||
if (!self->can) {
|
||||
raise_deinited_error();
|
||||
}
|
||||
common_hal_canio_can_check_for_deinit(self->can);
|
||||
}
|
||||
|
||||
// The API has no peek method so we must receive a packet into a holding area
|
||||
// and then we can say that we have 1 message pending
|
||||
int common_hal_canio_listener_in_waiting(canio_listener_obj_t *self) {
|
||||
while (!self->pending && twai_receive(&self->message_in, 0) == ESP_OK) {
|
||||
if (self->message_in.extd && self->extended) {
|
||||
self->pending = true;
|
||||
}
|
||||
if (!self->message_in.extd && self->standard) {
|
||||
self->pending = true;
|
||||
}
|
||||
}
|
||||
return self->pending;
|
||||
}
|
||||
|
||||
mp_obj_t common_hal_canio_listener_receive(canio_listener_obj_t *self) {
|
||||
if (!common_hal_canio_listener_in_waiting(self)) {
|
||||
uint64_t deadline = supervisor_ticks_ms64() + self->timeout_ms;
|
||||
do {
|
||||
if (supervisor_ticks_ms64() > deadline) {
|
||||
return NULL;
|
||||
}
|
||||
} while (!common_hal_canio_listener_in_waiting(self));
|
||||
}
|
||||
|
||||
bool rtr = self->message_in.rtr;
|
||||
|
||||
int dlc = self->message_in.data_length_code;
|
||||
canio_message_obj_t *message = m_new_obj(canio_message_obj_t);
|
||||
message->base.type = rtr ? &canio_remote_transmission_request_type : &canio_message_type;
|
||||
message->extended = self->message_in.extd;
|
||||
message->id = self->message_in.identifier;
|
||||
message->size = dlc;
|
||||
|
||||
if (!rtr) {
|
||||
MP_STATIC_ASSERT(sizeof(self->message_in.data) == sizeof(message->data));
|
||||
memcpy(message->data, self->message_in.data, sizeof(message->data));
|
||||
}
|
||||
|
||||
self->pending = false;
|
||||
|
||||
return message;
|
||||
}
|
||||
|
||||
void common_hal_canio_listener_deinit(canio_listener_obj_t *self) {
|
||||
if (self->can) {
|
||||
self->can->fifo_in_use = false;
|
||||
}
|
||||
self->can = NULL;
|
||||
}
|
40
ports/esp32s2/common-hal/canio/Listener.h
Normal file
40
ports/esp32s2/common-hal/canio/Listener.h
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Jeff Epler for Adafruit Industries
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "common-hal/canio/CAN.h"
|
||||
#include "shared-module/canio/Match.h"
|
||||
|
||||
typedef struct canio_listener_obj {
|
||||
mp_obj_base_t base;
|
||||
canio_can_obj_t *can;
|
||||
bool extended:1;
|
||||
bool standard:1;
|
||||
bool pending:1;
|
||||
twai_message_t message_in;
|
||||
uint32_t timeout_ms;
|
||||
} canio_listener_obj_t;
|
25
ports/esp32s2/common-hal/canio/__init__.c
Normal file
25
ports/esp32s2/common-hal/canio/__init__.c
Normal file
@ -0,0 +1,25 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Jeff Epler for Adafruit Industries
|
||||
*
|
||||
* 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.
|
||||
*/
|
27
ports/esp32s2/common-hal/canio/__init__.h
Normal file
27
ports/esp32s2/common-hal/canio/__init__.h
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Jeff Epler for Adafruit Industries
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#pragma once
|
@ -125,4 +125,6 @@ void common_hal_neopixel_write (const digitalio_digitalinout_obj_t* digitalinout
|
||||
|
||||
// Free channel again
|
||||
esp32s2_peripherals_free_rmt(config.channel);
|
||||
// Swap pin back to GPIO mode
|
||||
gpio_set_direction(digitalinout->pin->number, GPIO_MODE_OUTPUT);
|
||||
}
|
||||
|
96
ports/esp32s2/common-hal/touchio/TouchIn.c
Normal file
96
ports/esp32s2/common-hal/touchio/TouchIn.c
Normal file
@ -0,0 +1,96 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2016 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* 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/touchio/TouchIn.h"
|
||||
#include "py/runtime.h"
|
||||
|
||||
#include "driver/touch_pad.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);
|
||||
if (touch_value > UINT16_MAX) {
|
||||
return UINT16_MAX;
|
||||
}
|
||||
return touch_value;
|
||||
}
|
||||
|
||||
void common_hal_touchio_touchin_construct(touchio_touchin_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);
|
||||
|
||||
touch_pad_init();
|
||||
touch_pad_config((touch_pad_t)pin->touch_channel);
|
||||
|
||||
touch_pad_set_fsm_mode(TOUCH_FSM_MODE_TIMER);
|
||||
touch_pad_fsm_start();
|
||||
|
||||
// wait for "raw 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.
|
||||
|
||||
self->pin = pin;
|
||||
self->threshold = get_raw_reading(self) + 100;
|
||||
}
|
||||
|
||||
bool common_hal_touchio_touchin_deinited(touchio_touchin_obj_t* self) {
|
||||
return self->pin == NULL;
|
||||
}
|
||||
|
||||
void common_hal_touchio_touchin_deinit(touchio_touchin_obj_t* self) {
|
||||
if (common_hal_touchio_touchin_deinited(self)) {
|
||||
return;
|
||||
}
|
||||
touch_pad_deinit();
|
||||
reset_pin_number(self->pin->touch_channel);
|
||||
self->pin = NULL;
|
||||
}
|
||||
|
||||
bool common_hal_touchio_touchin_get_value(touchio_touchin_obj_t *self) {
|
||||
uint16_t reading = get_raw_reading(self);
|
||||
return reading > self->threshold;
|
||||
}
|
||||
|
||||
uint16_t common_hal_touchio_touchin_get_raw_value(touchio_touchin_obj_t *self) {
|
||||
return get_raw_reading(self);
|
||||
}
|
||||
|
||||
uint16_t common_hal_touchio_touchin_get_threshold(touchio_touchin_obj_t *self) {
|
||||
return self->threshold;
|
||||
}
|
||||
|
||||
void common_hal_touchio_touchin_set_threshold(touchio_touchin_obj_t *self, uint16_t new_threshold) {
|
||||
self->threshold = new_threshold;
|
||||
}
|
42
ports/esp32s2/common-hal/touchio/TouchIn.h
Normal file
42
ports/esp32s2/common-hal/touchio/TouchIn.h
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2016 Scott Shawcroft
|
||||
*
|
||||
* 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_COMMON_HAL_TOUCHIO_TOUCHIN_H
|
||||
#define MICROPY_INCLUDED_ESP32S2_COMMON_HAL_TOUCHIO_TOUCHIN_H
|
||||
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
#include "py/obj.h"
|
||||
|
||||
typedef struct {
|
||||
mp_obj_base_t base;
|
||||
const mcu_pin_obj_t * pin;
|
||||
uint16_t threshold;
|
||||
} touchio_touchin_obj_t;
|
||||
|
||||
void touchin_reset(void);
|
||||
|
||||
#endif // MICROPY_INCLUDED_ESP32S2_COMMON_HAL_TOUCHIO_TOUCHIN_H
|
1
ports/esp32s2/common-hal/touchio/__init__.c
Normal file
1
ports/esp32s2/common-hal/touchio/__init__.c
Normal file
@ -0,0 +1 @@
|
||||
// No touchio module functions.
|
@ -25,6 +25,7 @@
|
||||
*/
|
||||
|
||||
#include "shared-bindings/wifi/Radio.h"
|
||||
#include "shared-bindings/wifi/Network.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
@ -38,6 +39,8 @@
|
||||
#include "components/esp_wifi/include/esp_wifi.h"
|
||||
#include "components/lwip/include/apps/ping/ping_sock.h"
|
||||
|
||||
#define MAC_ADDRESS_LENGTH 6
|
||||
|
||||
static void start_station(wifi_radio_obj_t *self) {
|
||||
if (self->sta_mode) {
|
||||
return;
|
||||
@ -50,6 +53,8 @@ static void start_station(wifi_radio_obj_t *self) {
|
||||
}
|
||||
esp_wifi_set_mode(next_mode);
|
||||
|
||||
self->sta_mode = 1;
|
||||
|
||||
esp_wifi_set_config(WIFI_MODE_STA, &self->sta_config);
|
||||
}
|
||||
|
||||
@ -73,8 +78,6 @@ void common_hal_wifi_radio_set_enabled(wifi_radio_obj_t *self, bool enabled) {
|
||||
}
|
||||
}
|
||||
|
||||
#define MAC_ADDRESS_LENGTH 6
|
||||
|
||||
mp_obj_t common_hal_wifi_radio_get_mac_address(wifi_radio_obj_t *self) {
|
||||
uint8_t mac[MAC_ADDRESS_LENGTH];
|
||||
esp_wifi_get_mac(ESP_IF_WIFI_STA, mac);
|
||||
@ -162,13 +165,66 @@ wifi_radio_error_t common_hal_wifi_radio_connect(wifi_radio_obj_t *self, uint8_t
|
||||
return WIFI_RADIO_ERROR_NONE;
|
||||
}
|
||||
|
||||
mp_obj_t common_hal_wifi_radio_get_ap_info(wifi_radio_obj_t *self) {
|
||||
if (!esp_netif_is_netif_up(self->netif)) {
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
// Make sure the interface is in STA mode
|
||||
if (!self->sta_mode){
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
wifi_network_obj_t *ap_info = m_new_obj(wifi_network_obj_t);
|
||||
ap_info->base.type = &wifi_network_type;
|
||||
// From esp_wifi.h, the possible return values (typos theirs):
|
||||
// ESP_OK: succeed
|
||||
// ESP_ERR_WIFI_CONN: The station interface don't initialized
|
||||
// ESP_ERR_WIFI_NOT_CONNECT: The station is in disconnect status
|
||||
if (esp_wifi_sta_get_ap_info(&self->ap_info.record) != ESP_OK){
|
||||
return mp_const_none;
|
||||
} else {
|
||||
memcpy(&ap_info->record, &self->ap_info.record, sizeof(wifi_ap_record_t));
|
||||
return MP_OBJ_FROM_PTR(ap_info);
|
||||
}
|
||||
}
|
||||
|
||||
mp_obj_t common_hal_wifi_radio_get_ipv4_gateway(wifi_radio_obj_t *self) {
|
||||
if (!esp_netif_is_netif_up(self->netif)) {
|
||||
return mp_const_none;
|
||||
}
|
||||
esp_netif_get_ip_info(self->netif, &self->ip_info);
|
||||
return common_hal_ipaddress_new_ipv4address(self->ip_info.gw.addr);
|
||||
}
|
||||
|
||||
mp_obj_t common_hal_wifi_radio_get_ipv4_subnet(wifi_radio_obj_t *self) {
|
||||
if (!esp_netif_is_netif_up(self->netif)) {
|
||||
return mp_const_none;
|
||||
}
|
||||
esp_netif_get_ip_info(self->netif, &self->ip_info);
|
||||
return common_hal_ipaddress_new_ipv4address(self->ip_info.netmask.addr);
|
||||
}
|
||||
|
||||
mp_obj_t common_hal_wifi_radio_get_ipv4_address(wifi_radio_obj_t *self) {
|
||||
if (!esp_netif_is_netif_up(self->netif)) {
|
||||
return mp_const_none;
|
||||
}
|
||||
esp_netif_ip_info_t ip_info;
|
||||
esp_netif_get_ip_info(self->netif, &ip_info);
|
||||
return common_hal_ipaddress_new_ipv4address(ip_info.ip.addr);
|
||||
esp_netif_get_ip_info(self->netif, &self->ip_info);
|
||||
return common_hal_ipaddress_new_ipv4address(self->ip_info.ip.addr);
|
||||
}
|
||||
|
||||
mp_obj_t common_hal_wifi_radio_get_ipv4_dns(wifi_radio_obj_t *self) {
|
||||
if (!esp_netif_is_netif_up(self->netif)) {
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
esp_netif_get_dns_info(self->netif, ESP_NETIF_DNS_MAIN, &self->dns_info);
|
||||
|
||||
// dns_info is of type esp_netif_dns_info_t, which is just ever so slightly
|
||||
// different than esp_netif_ip_info_t used for
|
||||
// common_hal_wifi_radio_get_ipv4_address (includes both ipv4 and 6),
|
||||
// so some extra jumping is required to get to the actual address
|
||||
return common_hal_ipaddress_new_ipv4address(self->dns_info.ip.u_addr.ip4.addr);
|
||||
}
|
||||
|
||||
mp_int_t common_hal_wifi_radio_ping(wifi_radio_obj_t *self, mp_obj_t ip_address, mp_float_t timeout) {
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include "components/esp_event/include/esp_event.h"
|
||||
|
||||
#include "shared-bindings/wifi/ScannedNetworks.h"
|
||||
#include "shared-bindings/wifi/Network.h"
|
||||
|
||||
// Event bits for the Radio event group.
|
||||
#define WIFI_SCAN_DONE_BIT BIT0
|
||||
@ -46,6 +47,9 @@ typedef struct {
|
||||
StaticEventGroup_t event_group;
|
||||
EventGroupHandle_t event_group_handle;
|
||||
wifi_config_t sta_config;
|
||||
wifi_network_obj_t ap_info;
|
||||
esp_netif_ip_info_t ip_info;
|
||||
esp_netif_dns_info_t dns_info;
|
||||
esp_netif_t *netif;
|
||||
bool started;
|
||||
bool ap_mode;
|
||||
|
@ -100,6 +100,13 @@ void common_hal_wifi_init(void) {
|
||||
wifi_radio_obj_t* self = &common_hal_wifi_radio_obj;
|
||||
self->netif = esp_netif_create_default_wifi_sta();
|
||||
|
||||
// Even though we just called esp_netif_create_default_wifi_sta,
|
||||
// station mode isn't actually ready for use until esp_wifi_set_mode()
|
||||
// is called and the configuration is loaded via esp_wifi_set_config().
|
||||
// Set both convienence flags to false so it's not forgotten.
|
||||
self->sta_mode = 0;
|
||||
self->ap_mode = 0;
|
||||
|
||||
self->event_group_handle = xEventGroupCreateStatic(&self->event_group);
|
||||
ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT,
|
||||
ESP_EVENT_ANY_ID,
|
||||
|
@ -16,6 +16,7 @@ LONGINT_IMPL = MPZ
|
||||
CIRCUITPY_FULL_BUILD = 1
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_AUDIOIO = 0
|
||||
CIRCUITPY_CANIO = 1
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
@ -26,4 +27,8 @@ CIRCUITPY_USB_MIDI = 0
|
||||
CIRCUITPY_WIFI = 1
|
||||
CIRCUITPY_ESPIDF = 1
|
||||
|
||||
ifndef CIRCUITPY_TOUCHIO_USE_NATIVE
|
||||
CIRCUITPY_TOUCHIO_USE_NATIVE = 1
|
||||
endif
|
||||
|
||||
CIRCUITPY_MODULE ?= none
|
||||
|
@ -29,55 +29,58 @@
|
||||
#define NO_ADC 0
|
||||
#define NO_ADC_CHANNEL ADC_CHANNEL_MAX
|
||||
|
||||
#define NO_TOUCH_CHANNEL TOUCH_PAD_MAX
|
||||
|
||||
// This macro is used to simplify pin definition in boards/<board>/pins.c
|
||||
#define PIN(p_name, p_number, p_adc_index, p_adc_channel) \
|
||||
#define PIN(p_name, p_number, p_adc_index, p_adc_channel, p_touch_channel) \
|
||||
const mcu_pin_obj_t pin_## p_name = { \
|
||||
PIN_PREFIX_VALUES \
|
||||
.number = p_number, \
|
||||
.adc_index = p_adc_index, \
|
||||
.adc_channel = p_adc_channel, \
|
||||
.touch_channel = p_touch_channel, \
|
||||
}
|
||||
|
||||
PIN(GPIO0, 0, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO1, 1, ADC_UNIT_1, ADC_CHANNEL_0);
|
||||
PIN(GPIO2, 2, ADC_UNIT_1, ADC_CHANNEL_1);
|
||||
PIN(GPIO3, 3, ADC_UNIT_1, ADC_CHANNEL_2);
|
||||
PIN(GPIO4, 4, ADC_UNIT_1, ADC_CHANNEL_3);
|
||||
PIN(GPIO5, 5, ADC_UNIT_1, ADC_CHANNEL_4);
|
||||
PIN(GPIO6, 6, ADC_UNIT_1, ADC_CHANNEL_5);
|
||||
PIN(GPIO7, 7, ADC_UNIT_1, ADC_CHANNEL_6);
|
||||
PIN(GPIO8, 8, ADC_UNIT_1, ADC_CHANNEL_7);
|
||||
PIN(GPIO9, 9, ADC_UNIT_1, ADC_CHANNEL_8);
|
||||
PIN(GPIO10, 10, ADC_UNIT_1, ADC_CHANNEL_9);
|
||||
PIN(GPIO11, 11, ADC_UNIT_2, ADC_CHANNEL_0);
|
||||
PIN(GPIO12, 12, ADC_UNIT_2, ADC_CHANNEL_1);
|
||||
PIN(GPIO13, 13, ADC_UNIT_2, ADC_CHANNEL_2);
|
||||
PIN(GPIO14, 14, ADC_UNIT_2, ADC_CHANNEL_3);
|
||||
PIN(GPIO15, 15, ADC_UNIT_2, ADC_CHANNEL_4);
|
||||
PIN(GPIO16, 16, ADC_UNIT_2, ADC_CHANNEL_5);
|
||||
PIN(GPIO17, 17, ADC_UNIT_2, ADC_CHANNEL_6);
|
||||
PIN(GPIO18, 18, ADC_UNIT_2, ADC_CHANNEL_7);
|
||||
PIN(GPIO19, 19, ADC_UNIT_2, ADC_CHANNEL_8);
|
||||
PIN(GPIO20, 20, ADC_UNIT_2, ADC_CHANNEL_9);
|
||||
PIN(GPIO21, 21, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO26, 26, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO27, 27, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO28, 28, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO29, 29, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO30, 30, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO31, 31, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO32, 32, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO33, 33, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO34, 34, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO35, 35, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO36, 36, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO37, 37, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO38, 38, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO39, 39, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO40, 40, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO41, 41, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO42, 42, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO43, 43, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO44, 44, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO45, 45, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO46, 46, NO_ADC, NO_ADC_CHANNEL);
|
||||
PIN(GPIO0, 0, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO1, 1, ADC_UNIT_1, ADC_CHANNEL_0, TOUCH_PAD_NUM1);
|
||||
PIN(GPIO2, 2, ADC_UNIT_1, ADC_CHANNEL_1, TOUCH_PAD_NUM2);
|
||||
PIN(GPIO3, 3, ADC_UNIT_1, ADC_CHANNEL_2, TOUCH_PAD_NUM3);
|
||||
PIN(GPIO4, 4, ADC_UNIT_1, ADC_CHANNEL_3, TOUCH_PAD_NUM4);
|
||||
PIN(GPIO5, 5, ADC_UNIT_1, ADC_CHANNEL_4, TOUCH_PAD_NUM5);
|
||||
PIN(GPIO6, 6, ADC_UNIT_1, ADC_CHANNEL_5, TOUCH_PAD_NUM6);
|
||||
PIN(GPIO7, 7, ADC_UNIT_1, ADC_CHANNEL_6, TOUCH_PAD_NUM7);
|
||||
PIN(GPIO8, 8, ADC_UNIT_1, ADC_CHANNEL_7, TOUCH_PAD_NUM8);
|
||||
PIN(GPIO9, 9, ADC_UNIT_1, ADC_CHANNEL_8, TOUCH_PAD_NUM9);
|
||||
PIN(GPIO10, 10, ADC_UNIT_1, ADC_CHANNEL_9, TOUCH_PAD_NUM10);
|
||||
PIN(GPIO11, 11, ADC_UNIT_2, ADC_CHANNEL_0, TOUCH_PAD_NUM11);
|
||||
PIN(GPIO12, 12, ADC_UNIT_2, ADC_CHANNEL_1, TOUCH_PAD_NUM12);
|
||||
PIN(GPIO13, 13, ADC_UNIT_2, ADC_CHANNEL_2, TOUCH_PAD_NUM13);
|
||||
PIN(GPIO14, 14, ADC_UNIT_2, ADC_CHANNEL_3, TOUCH_PAD_NUM14);
|
||||
PIN(GPIO15, 15, ADC_UNIT_2, ADC_CHANNEL_4, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO16, 16, ADC_UNIT_2, ADC_CHANNEL_5, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO17, 17, ADC_UNIT_2, ADC_CHANNEL_6, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO18, 18, ADC_UNIT_2, ADC_CHANNEL_7, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO19, 19, ADC_UNIT_2, ADC_CHANNEL_8, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO20, 20, ADC_UNIT_2, ADC_CHANNEL_9, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO21, 21, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO26, 26, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO27, 27, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO28, 28, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO29, 29, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO30, 30, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO31, 31, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO32, 32, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO33, 33, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO34, 34, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO35, 35, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO36, 36, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO37, 37, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO38, 38, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO39, 39, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO40, 40, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO41, 41, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO42, 42, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO43, 43, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO44, 44, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO45, 45, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
PIN(GPIO46, 46, NO_ADC, NO_ADC_CHANNEL, NO_TOUCH_CHANNEL);
|
||||
|
@ -37,12 +37,14 @@
|
||||
|
||||
#include "components/hal/include/hal/gpio_types.h"
|
||||
#include "components/hal/include/hal/adc_types.h"
|
||||
#include "components/hal/include/hal/touch_sensor_types.h"
|
||||
|
||||
typedef struct {
|
||||
PIN_PREFIX_FIELDS
|
||||
gpio_num_t number;
|
||||
uint8_t adc_index:2;
|
||||
uint8_t adc_channel:6;
|
||||
uint8_t touch_channel;
|
||||
} mcu_pin_obj_t;
|
||||
|
||||
extern const mcu_pin_obj_t pin_GPIO0;
|
||||
|
38
ports/nrf/boards/ADM_B_NRF52840_1/board.c
Normal file
38
ports/nrf/boards/ADM_B_NRF52840_1/board.c
Normal file
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* 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 "boards/board.h"
|
||||
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void reset_board(void) {
|
||||
|
||||
}
|
33
ports/nrf/boards/ADM_B_NRF52840_1/mpconfigboard.h
Normal file
33
ports/nrf/boards/ADM_B_NRF52840_1/mpconfigboard.h
Normal file
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2016 Glenn Ruben Bakke
|
||||
*
|
||||
*
|
||||
* 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 "nrfx/hal/nrf_gpio.h"
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "AtelierDuMaker nRF52840 Breakout"
|
||||
#define MICROPY_HW_MCU_NAME "nRF52840"
|
||||
|
||||
#define MICROPY_HW_LED_STATUS (&pin_P0_19)
|
8
ports/nrf/boards/ADM_B_NRF52840_1/mpconfigboard.mk
Normal file
8
ports/nrf/boards/ADM_B_NRF52840_1/mpconfigboard.mk
Normal file
@ -0,0 +1,8 @@
|
||||
USB_VID = 0x239A
|
||||
USB_PID = 0x80A0
|
||||
USB_PRODUCT = "ADM_B_NRF52840_1"
|
||||
USB_MANUFACTURER = "AtelierDuMaker"
|
||||
|
||||
MCU_CHIP = nrf52840
|
||||
|
||||
INTERNAL_FLASH_FILESYSTEM = 1
|
57
ports/nrf/boards/ADM_B_NRF52840_1/pins.c
Normal file
57
ports/nrf/boards/ADM_B_NRF52840_1/pins.c
Normal file
@ -0,0 +1,57 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_10), MP_ROM_PTR(&pin_P0_02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_11), MP_ROM_PTR(&pin_P1_11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_13), MP_ROM_PTR(&pin_P1_13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_15), MP_ROM_PTR(&pin_P1_15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_03), MP_ROM_PTR(&pin_P0_03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_02), MP_ROM_PTR(&pin_P0_02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_28), MP_ROM_PTR(&pin_P0_28) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_29), MP_ROM_PTR(&pin_P0_29) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_30), MP_ROM_PTR(&pin_P0_30) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_31), MP_ROM_PTR(&pin_P0_31) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_04), MP_ROM_PTR(&pin_P0_04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_05), MP_ROM_PTR(&pin_P0_05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_14), MP_ROM_PTR(&pin_P1_14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_12), MP_ROM_PTR(&pin_P1_12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_25), MP_ROM_PTR(&pin_P0_25) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_11), MP_ROM_PTR(&pin_P0_11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_08), MP_ROM_PTR(&pin_P1_08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_27), MP_ROM_PTR(&pin_P0_28) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_08), MP_ROM_PTR(&pin_P0_08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_06), MP_ROM_PTR(&pin_P0_06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_26), MP_ROM_PTR(&pin_P0_26) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_10), MP_ROM_PTR(&pin_P0_10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_09), MP_ROM_PTR(&pin_P0_09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_06), MP_ROM_PTR(&pin_P1_06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_04), MP_ROM_PTR(&pin_P1_04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_02), MP_ROM_PTR(&pin_P1_02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_01), MP_ROM_PTR(&pin_P1_01) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_03), MP_ROM_PTR(&pin_P1_03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_00), MP_ROM_PTR(&pin_P1_00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_22), MP_ROM_PTR(&pin_P0_22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_07), MP_ROM_PTR(&pin_P1_07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_05), MP_ROM_PTR(&pin_P1_05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_24), MP_ROM_PTR(&pin_P0_24) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_20), MP_ROM_PTR(&pin_P0_20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_17), MP_ROM_PTR(&pin_P0_17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_15), MP_ROM_PTR(&pin_P0_15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_14), MP_ROM_PTR(&pin_P0_14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_13), MP_ROM_PTR(&pin_P0_13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_16), MP_ROM_PTR(&pin_P0_16) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_07), MP_ROM_PTR(&pin_P0_07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_09), MP_ROM_PTR(&pin_P1_09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_12), MP_ROM_PTR(&pin_P0_12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_23), MP_ROM_PTR(&pin_P0_23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_21), MP_ROM_PTR(&pin_P0_21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_19), MP_ROM_PTR(&pin_P0_19) },
|
||||
|
||||
// RESET { MP_ROM_QSTR(MP_QSTR_P0_18), MP_ROM_PTR(&pin_P0_18) }
|
||||
|
||||
};
|
||||
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
@ -59,8 +59,8 @@
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_P0_04)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_P0_05)
|
||||
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_P0_05)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_P1_03)
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_P0_02)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_P0_03)
|
||||
#define DEFAULT_SPI_BUS_MISO (&pin_P0_29)
|
||||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_P0_30)
|
||||
|
@ -55,6 +55,8 @@ PYTHON3 ?= python3
|
||||
RM = rm
|
||||
RSYNC = rsync
|
||||
SED = sed
|
||||
# Linux has 'nproc', macOS has 'sysctl -n hw.logicalcpu', this is cross-platform
|
||||
NPROC = $(PYTHON) -c 'import multiprocessing as mp; print(mp.cpu_count())'
|
||||
|
||||
AS = $(CROSS_COMPILE)as
|
||||
CC = $(CROSS_COMPILE)gcc
|
||||
|
@ -28,6 +28,12 @@
|
||||
#include "py/runtime.h"
|
||||
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
#if BOARD_I2C
|
||||
#include "shared-bindings/busio/I2C.h"
|
||||
#endif
|
||||
#if BOARD_SPI
|
||||
#include "shared-bindings/busio/SPI.h"
|
||||
#endif
|
||||
|
||||
//| """Board specific pin names
|
||||
//|
|
||||
@ -45,7 +51,7 @@
|
||||
#if BOARD_I2C
|
||||
mp_obj_t board_i2c(void) {
|
||||
mp_obj_t singleton = common_hal_board_get_i2c();
|
||||
if (singleton != NULL) {
|
||||
if (singleton != NULL && !common_hal_busio_i2c_deinited(singleton)) {
|
||||
return singleton;
|
||||
}
|
||||
assert_pin_free(DEFAULT_I2C_BUS_SDA);
|
||||
@ -69,7 +75,7 @@ MP_DEFINE_CONST_FUN_OBJ_0(board_i2c_obj, board_i2c);
|
||||
#if BOARD_SPI
|
||||
mp_obj_t board_spi(void) {
|
||||
mp_obj_t singleton = common_hal_board_get_spi();
|
||||
if (singleton != NULL) {
|
||||
if (singleton != NULL && !common_hal_busio_spi_deinited(singleton)) {
|
||||
return singleton;
|
||||
}
|
||||
assert_pin_free(DEFAULT_SPI_BUS_SCK);
|
||||
|
@ -49,7 +49,7 @@
|
||||
//| loopback: bool = False,
|
||||
//| silent: bool = False,
|
||||
//| auto_restart: bool = False,
|
||||
//| ):
|
||||
//| ) -> None:
|
||||
//| """A common shared-bus protocol. The rx and tx pins are generally
|
||||
//| connected to a transceiver which controls the H and L pins on a
|
||||
//| shared bus.
|
||||
@ -171,7 +171,7 @@ STATIC const mp_obj_property_t canio_can_receive_error_count_obj = {
|
||||
(mp_obj_t)mp_const_none},
|
||||
};
|
||||
|
||||
//| state: State
|
||||
//| state: BusState
|
||||
//| """The current state of the bus. (read-only)"""
|
||||
STATIC mp_obj_t canio_can_state_get(mp_obj_t self_in) {
|
||||
canio_can_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
@ -214,7 +214,24 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(canio_can_restart_obj, canio_can_restart);
|
||||
//|
|
||||
//| An empty filter list causes all messages to be accepted.
|
||||
//|
|
||||
//| Timeout dictates how long receive() and next() will block."""
|
||||
//| Timeout dictates how long receive() and next() will block.
|
||||
//|
|
||||
//| Platform specific notes:
|
||||
//|
|
||||
//| SAM E5x supports two Listeners. Filter blocks are shared between the two
|
||||
//| listeners. There are 4 standard filter blocks and 4 extended filter blocks.
|
||||
//| Each block can either match 2 single addresses or a mask of addresses.
|
||||
//| The number of filter blocks can be increased, up to a hardware maximum, by
|
||||
//| rebuilding CircuitPython, but this decreases the CircuitPython free
|
||||
//| memory even if canio is not used.
|
||||
//|
|
||||
//| STM32F405 supports two Listeners. Filter blocks are shared between the two listeners.
|
||||
//| There are 14 filter blocks. Each block can match 2 standard addresses with
|
||||
//| mask or 1 extended address with mask.
|
||||
//|
|
||||
//| ESP32S2 supports one Listener. There is a single filter block, which can either match a
|
||||
//| standard address with mask or an extended address with mask.
|
||||
//| """
|
||||
//| ...
|
||||
//|
|
||||
STATIC mp_obj_t canio_can_listen(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
@ -274,7 +291,7 @@ STATIC const mp_obj_property_t canio_can_loopback_obj = {
|
||||
};
|
||||
|
||||
|
||||
//| def send(message: Union[RemoteTransmissionRequest, Message]) -> None:
|
||||
//| def send(self, message: Union[RemoteTransmissionRequest, Message]) -> None:
|
||||
//| """Send a message on the bus with the given data and id.
|
||||
//| If the message could not be sent due to a full fifo or a bus error condition, RuntimeError is raised.
|
||||
//| """
|
||||
@ -335,7 +352,7 @@ STATIC mp_obj_t canio_can_enter(mp_obj_t self_in) {
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(canio_can_enter_obj, canio_can_enter);
|
||||
|
||||
//| def __exit__(self, unused1, unused2, unused3) -> None:
|
||||
//| def __exit__(self, unused1: Optional[Type[BaseException]], unused2: Optional[BaseException], unused3: Optional[TracebackType]) -> None:
|
||||
//| """Calls deinit()"""
|
||||
//| ...
|
||||
STATIC mp_obj_t canio_can_exit(size_t num_args, const mp_obj_t args[]) {
|
||||
|
@ -123,7 +123,7 @@ STATIC mp_obj_t canio_listener_enter(mp_obj_t self_in) {
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(canio_listener_enter_obj, canio_listener_enter);
|
||||
|
||||
//| def __exit__(self, unused1, unused2, unused3) -> None:
|
||||
//| def __exit__(self, unused1: Optional[Type[BaseException]], unused2: Optional[BaseException], unused3: Optional[TracebackType]) -> None:
|
||||
//| """Calls deinit()"""
|
||||
//| ...
|
||||
STATIC mp_obj_t canio_listener_exit(size_t num_args, const mp_obj_t args[]) {
|
||||
|
@ -33,7 +33,7 @@
|
||||
//| """Describe CAN bus messages to match"""
|
||||
//|
|
||||
//|
|
||||
//| def __init__(self, id: int, *, mask: Optional[int] = None, extended: bool = False):
|
||||
//| def __init__(self, id: int, *, mask: Optional[int] = None, extended: bool = False) -> None:
|
||||
//| """Construct a Match with the given properties.
|
||||
//|
|
||||
//| If mask is not None, then the filter is for any id which matches all
|
||||
|
@ -31,7 +31,7 @@
|
||||
#include "py/runtime.h"
|
||||
|
||||
//| class Message:
|
||||
//| def __init__(self, id: int, data: bytes, *, extended: bool = False):
|
||||
//| def __init__(self, id: int, data: bytes, *, extended: bool = False) -> None:
|
||||
//| """Construct a Message to send on a CAN bus.
|
||||
//|
|
||||
//| :param int id: The numeric ID of the message
|
||||
|
@ -31,7 +31,7 @@
|
||||
#include "py/runtime.h"
|
||||
|
||||
//| class RemoteTransmissionRequest:
|
||||
//| def __init__(self, id: int, length: int, *, extended: bool = False):
|
||||
//| def __init__(self, id: int, length: int, *, extended: bool = False) -> None:
|
||||
//| """Construct a RemoteTransmissionRequest to send on a CAN bus.
|
||||
//|
|
||||
//| :param int id: The numeric ID of the requested message
|
||||
|
@ -172,7 +172,7 @@ STATIC mp_obj_t bitmap_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t val
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
//| def blit(self, x: int, y: int, source_bitmap: bitmap, *, x1: int, y1: int, x2: int, y2: int, skip_index: int) -> None:
|
||||
//| def blit(self, x: int, y: int, source_bitmap: Bitmap, *, x1: int, y1: int, x2: int, y2: int, skip_index: int) -> None:
|
||||
//| """Inserts the source_bitmap region defined by rectangular boundaries
|
||||
//| (x1,y1) and (x2,y2) into the bitmap at the specified (x,y) location.
|
||||
//|
|
||||
@ -274,7 +274,7 @@ STATIC mp_obj_t displayio_bitmap_obj_blit(size_t n_args, const mp_obj_t *pos_arg
|
||||
MP_DEFINE_CONST_FUN_OBJ_KW(displayio_bitmap_blit_obj, 4, displayio_bitmap_obj_blit);
|
||||
// `displayio_bitmap_obj_blit` requires at least 4 arguments
|
||||
|
||||
//| def fill(self, value: Any) -> None:
|
||||
//| def fill(self, value: int) -> None:
|
||||
//| """Fills the bitmap with the supplied palette index value."""
|
||||
//| ...
|
||||
//|
|
||||
|
@ -52,7 +52,7 @@ STATIC mp_obj_t displayio_colorconverter_make_new(const mp_obj_type_t *type, siz
|
||||
enum { ARG_dither};
|
||||
|
||||
static const mp_arg_t allowed_args[] = {
|
||||
{ MP_QSTR_dither, MP_ARG_KW_ONLY | MP_ARG_BOOL, {.u_bool = false} },
|
||||
{ MP_QSTR_dither, MP_ARG_KW_ONLY | MP_ARG_BOOL, {.u_bool = false} }
|
||||
};
|
||||
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);
|
||||
@ -110,9 +110,35 @@ const mp_obj_property_t displayio_colorconverter_dither_obj = {
|
||||
(mp_obj_t)&mp_const_none_obj},
|
||||
};
|
||||
|
||||
//| def make_transparent(self, pixel: int) -> None:
|
||||
//| """Sets a pixel to not opaque."""
|
||||
//|
|
||||
STATIC mp_obj_t displayio_colorconverter_make_transparent(mp_obj_t self_in, mp_obj_t transparent_color_obj) {
|
||||
displayio_colorconverter_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
|
||||
mp_int_t transparent_color = mp_obj_get_int(&transparent_color);
|
||||
common_hal_displayio_colorconverter_make_transparent(self, transparent_color);
|
||||
return mp_const_none;
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_2(displayio_colorconverter_make_transparent_obj, displayio_colorconverter_make_transparent);
|
||||
|
||||
//| def make_opaque(self, pixel: int) -> None:
|
||||
//| """Sets a pixel to opaque."""
|
||||
//|
|
||||
STATIC mp_obj_t displayio_colorconverter_make_opaque(mp_obj_t self_in, mp_obj_t transparent_color_obj) {
|
||||
displayio_colorconverter_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
|
||||
mp_int_t transparent_color = mp_obj_get_int(&transparent_color);
|
||||
common_hal_displayio_colorconverter_make_opaque(self, transparent_color);
|
||||
return mp_const_none;
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_2(displayio_colorconverter_make_opaque_obj, displayio_colorconverter_make_opaque);
|
||||
|
||||
STATIC const mp_rom_map_elem_t displayio_colorconverter_locals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_convert), MP_ROM_PTR(&displayio_colorconverter_convert_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_dither), MP_ROM_PTR(&displayio_colorconverter_dither_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_make_transparent), MP_ROM_PTR(&displayio_colorconverter_make_transparent_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_make_opaque), MP_ROM_PTR(&displayio_colorconverter_make_opaque_obj) },
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_DICT(displayio_colorconverter_locals_dict, displayio_colorconverter_locals_dict_table);
|
||||
|
||||
|
@ -39,4 +39,7 @@ void common_hal_displayio_colorconverter_convert(displayio_colorconverter_t *col
|
||||
void common_hal_displayio_colorconverter_set_dither(displayio_colorconverter_t* self, bool dither);
|
||||
bool common_hal_displayio_colorconverter_get_dither(displayio_colorconverter_t* self);
|
||||
|
||||
void common_hal_displayio_colorconverter_make_transparent(displayio_colorconverter_t* self, uint32_t transparent_color);
|
||||
void common_hal_displayio_colorconverter_make_opaque(displayio_colorconverter_t* self, uint32_t transparent_color);
|
||||
|
||||
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_COLORCONVERTER_H
|
||||
|
@ -39,7 +39,7 @@
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
#include "supervisor/shared/translate.h"
|
||||
|
||||
//| _DisplayBus = Union[FourWire, ParallelBus, I2CDisplay]
|
||||
//| _DisplayBus = Union['FourWire', 'ParallelBus', 'I2CDisplay']
|
||||
//| """:py:class:`FourWire`, :py:class:`ParallelBus` or :py:class:`I2CDisplay`"""
|
||||
//|
|
||||
|
||||
|
@ -49,7 +49,19 @@
|
||||
//| Most people should not use this class directly. Use a specific display driver instead that will
|
||||
//| contain the startup and shutdown sequences at minimum."""
|
||||
//|
|
||||
//| def __init__(self, display_bus: _DisplayBus, start_sequence: ReadableBuffer, stop_sequence: ReadableBuffer, *, width: int, height: int, ram_width: int, ram_height: int, colstart: int = 0, rowstart: int = 0, rotation: int = 0, set_column_window_command: Optional[int] = None, set_row_window_command: Optional[int] = None, single_byte_bounds: bool = False, write_black_ram_command: int, black_bits_inverted: bool = False, write_color_ram_command: Optional[int] = None, color_bits_inverted: bool = False, highlight_color: int = 0x000000, refresh_display_command: int, refresh_time: float = 40, busy_pin: Optional[microcontroller.Pin] = None, busy_state: bool = True, seconds_per_frame: float = 180, always_toggle_chip_select: bool = False) -> None:
|
||||
//| def __init__(self, display_bus: _DisplayBus,
|
||||
//| start_sequence: ReadableBuffer, stop_sequence: ReadableBuffer, *,
|
||||
//| width: int, height: int, ram_width: int, ram_height: int,
|
||||
//| colstart: int = 0, rowstart: int = 0, rotation: int = 0,
|
||||
//| set_column_window_command: Optional[int] = None,
|
||||
//| set_row_window_command: Optional[int] = None, single_byte_bounds: bool = False,
|
||||
//| write_black_ram_command: int, black_bits_inverted: bool = False,
|
||||
//| write_color_ram_command: Optional[int] = None,
|
||||
//| color_bits_inverted: bool = False, highlight_color: int = 0x000000,
|
||||
//| refresh_display_command: int, refresh_time: float = 40,
|
||||
//| busy_pin: Optional[microcontroller.Pin] = None, busy_state: bool = True,
|
||||
//| seconds_per_frame: float = 180, always_toggle_chip_select: bool = False,
|
||||
//| grayscale: bool = False) -> None:
|
||||
//| """Create a EPaperDisplay object on the given display bus (`displayio.FourWire` or `displayio.ParallelBus`).
|
||||
//|
|
||||
//| The ``start_sequence`` and ``stop_sequence`` are bitpacked to minimize the ram impact. Every
|
||||
@ -84,11 +96,18 @@
|
||||
//| :param microcontroller.Pin busy_pin: Pin used to signify the display is busy
|
||||
//| :param bool busy_state: State of the busy pin when the display is busy
|
||||
//| :param float seconds_per_frame: Minimum number of seconds between screen refreshes
|
||||
//| :param bool always_toggle_chip_select: When True, chip select is toggled every byte"""
|
||||
//| :param bool always_toggle_chip_select: When True, chip select is toggled every byte
|
||||
//| :param bool grayscale: When true, the color ram is the low bit of 2-bit grayscale"""
|
||||
//| ...
|
||||
//|
|
||||
STATIC mp_obj_t displayio_epaperdisplay_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
enum { ARG_display_bus, ARG_start_sequence, ARG_stop_sequence, ARG_width, ARG_height, ARG_ram_width, ARG_ram_height, ARG_colstart, ARG_rowstart, ARG_rotation, ARG_set_column_window_command, ARG_set_row_window_command, ARG_set_current_column_command, ARG_set_current_row_command, ARG_write_black_ram_command, ARG_black_bits_inverted, ARG_write_color_ram_command, ARG_color_bits_inverted, ARG_highlight_color, ARG_refresh_display_command, ARG_refresh_time, ARG_busy_pin, ARG_busy_state, ARG_seconds_per_frame, ARG_always_toggle_chip_select };
|
||||
enum { ARG_display_bus, ARG_start_sequence, ARG_stop_sequence, ARG_width, ARG_height,
|
||||
ARG_ram_width, ARG_ram_height, ARG_colstart, ARG_rowstart, ARG_rotation,
|
||||
ARG_set_column_window_command, ARG_set_row_window_command, ARG_set_current_column_command,
|
||||
ARG_set_current_row_command, ARG_write_black_ram_command, ARG_black_bits_inverted,
|
||||
ARG_write_color_ram_command, ARG_color_bits_inverted, ARG_highlight_color,
|
||||
ARG_refresh_display_command, ARG_refresh_time, ARG_busy_pin, ARG_busy_state,
|
||||
ARG_seconds_per_frame, ARG_always_toggle_chip_select, ARG_grayscale };
|
||||
static const mp_arg_t allowed_args[] = {
|
||||
{ MP_QSTR_display_bus, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||
{ MP_QSTR_start_sequence, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||
@ -115,6 +134,7 @@ STATIC mp_obj_t displayio_epaperdisplay_make_new(const mp_obj_type_t *type, size
|
||||
{ MP_QSTR_busy_state, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = true} },
|
||||
{ MP_QSTR_seconds_per_frame, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_obj = MP_OBJ_NEW_SMALL_INT(180)} },
|
||||
{ MP_QSTR_always_toggle_chip_select, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = false} },
|
||||
{ MP_QSTR_grayscale, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = false} },
|
||||
};
|
||||
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);
|
||||
@ -151,11 +171,14 @@ STATIC mp_obj_t displayio_epaperdisplay_make_new(const mp_obj_type_t *type, size
|
||||
self,
|
||||
display_bus,
|
||||
start_bufinfo.buf, start_bufinfo.len, stop_bufinfo.buf, stop_bufinfo.len,
|
||||
args[ARG_width].u_int, args[ARG_height].u_int, args[ARG_ram_width].u_int, args[ARG_ram_height].u_int, args[ARG_colstart].u_int, args[ARG_rowstart].u_int, rotation,
|
||||
args[ARG_width].u_int, args[ARG_height].u_int, args[ARG_ram_width].u_int, args[ARG_ram_height].u_int,
|
||||
args[ARG_colstart].u_int, args[ARG_rowstart].u_int, rotation,
|
||||
args[ARG_set_column_window_command].u_int, args[ARG_set_row_window_command].u_int,
|
||||
args[ARG_set_current_column_command].u_int, args[ARG_set_current_row_command].u_int,
|
||||
args[ARG_write_black_ram_command].u_int, args[ARG_black_bits_inverted].u_bool, write_color_ram_command, args[ARG_color_bits_inverted].u_bool, highlight_color, args[ARG_refresh_display_command].u_int, refresh_time,
|
||||
busy_pin, args[ARG_busy_state].u_bool, seconds_per_frame, args[ARG_always_toggle_chip_select].u_bool
|
||||
args[ARG_write_black_ram_command].u_int, args[ARG_black_bits_inverted].u_bool, write_color_ram_command,
|
||||
args[ARG_color_bits_inverted].u_bool, highlight_color, args[ARG_refresh_display_command].u_int, refresh_time,
|
||||
busy_pin, args[ARG_busy_state].u_bool, seconds_per_frame,
|
||||
args[ARG_always_toggle_chip_select].u_bool, args[ARG_grayscale].u_bool
|
||||
);
|
||||
|
||||
return self;
|
||||
|
@ -44,7 +44,7 @@ void common_hal_displayio_epaperdisplay_construct(displayio_epaperdisplay_obj_t*
|
||||
uint16_t set_column_window_command, uint16_t set_row_window_command,
|
||||
uint16_t set_current_column_command, uint16_t set_current_row_command,
|
||||
uint16_t write_black_ram_command, bool black_bits_inverted, uint16_t write_color_ram_command, bool color_bits_inverted, uint32_t highlight_color, uint16_t refresh_display_command, mp_float_t refresh_time,
|
||||
const mcu_pin_obj_t* busy_pin, bool busy_state, mp_float_t seconds_per_frame, bool always_toggle_chip_select);
|
||||
const mcu_pin_obj_t* busy_pin, bool busy_state, mp_float_t seconds_per_frame, bool always_toggle_chip_select, bool grayscale);
|
||||
|
||||
bool common_hal_displayio_epaperdisplay_refresh(displayio_epaperdisplay_obj_t* self);
|
||||
|
||||
|
@ -126,7 +126,7 @@ const mp_obj_property_t ipaddress_ipv4address_version_obj = {
|
||||
(mp_obj_t)&mp_const_none_obj},
|
||||
};
|
||||
|
||||
//| def __eq__(self, other: IPv4Address) -> bool:
|
||||
//| def __eq__(self, other: object) -> bool:
|
||||
//| """Two Address objects are equal if their addresses and address types are equal."""
|
||||
//| ...
|
||||
//|
|
||||
|
@ -49,7 +49,14 @@ STATIC const mp_obj_type_t socket_type;
|
||||
|
||||
//| class socket:
|
||||
//|
|
||||
//| def __init__(self, family: int, type: int, proto: int) -> None:
|
||||
//| AF_INET: int
|
||||
//| AF_INET6: int
|
||||
//| SOCK_STREAM: int
|
||||
//| SOCK_DGRAM: int
|
||||
//| SOCK_RAW: int
|
||||
//| IPPROTO_TCP: int
|
||||
//|
|
||||
//| def __init__(self, family: int = AF_INET, type: int = SOCK_STREAM, proto: int = IPPROTO_TCP) -> None:
|
||||
//| """Create a new socket
|
||||
//|
|
||||
//| :param int family: AF_INET or AF_INET6
|
||||
@ -57,12 +64,6 @@ STATIC const mp_obj_type_t socket_type;
|
||||
//| :param int proto: IPPROTO_TCP, IPPROTO_UDP or IPPROTO_RAW (ignored)"""
|
||||
//| ...
|
||||
//|
|
||||
//| AF_INET: int
|
||||
//| AF_INET6: int
|
||||
//| SOCK_STREAM: int
|
||||
//| SOCK_DGRAM: int
|
||||
//| SOCK_RAW: int
|
||||
//|
|
||||
|
||||
STATIC mp_obj_t socket_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
|
||||
mp_arg_check_num(n_args, kw_args, 0, 4, false);
|
||||
|
@ -161,7 +161,7 @@ STATIC mp_obj_t socketpool_socket_close(mp_obj_t self_in) {
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(socketpool_socket_close_obj, socketpool_socket_close);
|
||||
|
||||
//| def connect(self, address: tuple) -> None:
|
||||
//| def connect(self, address: Tuple[str, int]) -> None:
|
||||
//| """Connect a socket to a remote address
|
||||
//|
|
||||
//| :param ~tuple address: tuple of (remote_address, remote_port)"""
|
||||
@ -257,6 +257,9 @@ STATIC mp_obj_t socketpool_socket_recv_into(size_t n_args, const mp_obj_t *args)
|
||||
mp_int_t len = bufinfo.len;
|
||||
if (n_args == 3) {
|
||||
mp_int_t given_len = mp_obj_get_int(args[2]);
|
||||
if (given_len > len) {
|
||||
mp_raise_ValueError(translate("buffer too small for requested bytes"));
|
||||
}
|
||||
if (given_len > 0 && given_len < len) {
|
||||
len = given_len;
|
||||
}
|
||||
|
@ -57,8 +57,14 @@ STATIC mp_obj_t socketpool_socketpool_make_new(const mp_obj_type_t *type, size_t
|
||||
return MP_OBJ_FROM_PTR(s);
|
||||
}
|
||||
|
||||
|
||||
//| def socket(self, family: int = AF_INET, type: int = SOCK_STREAM, proto: int = IPPROTO_TCP) -> None:
|
||||
//| AF_INET: int
|
||||
//| AF_INET6: int
|
||||
//| SOCK_STREAM: int
|
||||
//| SOCK_DGRAM: int
|
||||
//| SOCK_RAW: int
|
||||
//| IPPROTO_TCP: int
|
||||
//|
|
||||
//| def socket(self, family: int = AF_INET, type: int = SOCK_STREAM, proto: int = IPPROTO_TCP) -> socketpool.Socket:
|
||||
//| """Create a new socket
|
||||
//|
|
||||
//| :param ~int family: AF_INET or AF_INET6
|
||||
@ -66,6 +72,7 @@ STATIC mp_obj_t socketpool_socketpool_make_new(const mp_obj_type_t *type, size_t
|
||||
//| :param ~int proto: IPPROTO_TCP, IPPROTO_UDP or IPPROTO_RAW (ignored)"""
|
||||
//| ...
|
||||
//|
|
||||
|
||||
STATIC mp_obj_t socketpool_socketpool_socket(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
mp_arg_check_num(n_args, kw_args, 0, 5, false);
|
||||
|
||||
@ -82,7 +89,7 @@ STATIC mp_obj_t socketpool_socketpool_socket(size_t n_args, const mp_obj_t *pos_
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_KW(socketpool_socketpool_socket_obj, 1, socketpool_socketpool_socket);
|
||||
|
||||
//| def getaddrinfo(host: str, port: int, family: int = 0, type: int = 0, proto: int = 0, flags: int = 0) -> tuple:
|
||||
//| def getaddrinfo(host: str, port: int, family: int = 0, type: int = 0, proto: int = 0, flags: int = 0) -> Tuple[int, int, int, str, Tuple[str, int]]:
|
||||
//| """Gets the address information for a hostname and port
|
||||
//|
|
||||
//| Returns the appropriate family, socket type, socket protocol and
|
||||
|
@ -51,7 +51,7 @@ STATIC mp_obj_t ssl_sslcontext_make_new(const mp_obj_type_t *type, size_t n_args
|
||||
return MP_OBJ_FROM_PTR(s);
|
||||
}
|
||||
|
||||
//| def wrap_socket(sock: socketpool.Socket, *, server_side: bool = False, server_hostname: str = None) -> socketpool.Socket:
|
||||
//| def wrap_socket(sock: socketpool.Socket, *, server_side: bool = False, server_hostname: Optional[str] = None) -> socketpool.Socket:
|
||||
//| """Wraps the socket into a socket-compatible class that handles SSL negotiation.
|
||||
//| The socket must be of type SOCK_STREAM."""
|
||||
//| ...
|
||||
|
@ -79,7 +79,7 @@ const mp_obj_property_t wifi_radio_mac_address_obj = {
|
||||
};
|
||||
|
||||
|
||||
//| def start_scanning_networks(self, *, start_channel=1, stop_channel=11) -> Iterable[Network]:
|
||||
//| def start_scanning_networks(self, *, start_channel: int = 1, stop_channel: int = 11) -> Iterable[Network]:
|
||||
//| """Scans for available wifi networks over the given channel range. Make sure the channels are allowed in your country."""
|
||||
//| ...
|
||||
//|
|
||||
@ -203,6 +203,38 @@ STATIC mp_obj_t wifi_radio_connect(size_t n_args, const mp_obj_t *pos_args, mp_m
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(wifi_radio_connect_obj, 1, wifi_radio_connect);
|
||||
|
||||
//| ipv4_gateway: Optional[ipaddress.IPv4Address]
|
||||
//| """IP v4 Address of the gateway when connected to an access point. None otherwise."""
|
||||
//|
|
||||
STATIC mp_obj_t wifi_radio_get_ipv4_gateway(mp_obj_t self) {
|
||||
return common_hal_wifi_radio_get_ipv4_gateway(self);
|
||||
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(wifi_radio_get_ipv4_gateway_obj, wifi_radio_get_ipv4_gateway);
|
||||
|
||||
const mp_obj_property_t wifi_radio_ipv4_gateway_obj = {
|
||||
.base.type = &mp_type_property,
|
||||
.proxy = { (mp_obj_t)&wifi_radio_get_ipv4_gateway_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
(mp_obj_t)&mp_const_none_obj },
|
||||
};
|
||||
|
||||
//| ipv4_subnet: Optional[ipaddress.IPv4Address]
|
||||
//| """IP v4 Address of the subnet when connected to an access point. None otherwise."""
|
||||
//|
|
||||
STATIC mp_obj_t wifi_radio_get_ipv4_subnet(mp_obj_t self) {
|
||||
return common_hal_wifi_radio_get_ipv4_subnet(self);
|
||||
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(wifi_radio_get_ipv4_subnet_obj, wifi_radio_get_ipv4_subnet);
|
||||
|
||||
const mp_obj_property_t wifi_radio_ipv4_subnet_obj = {
|
||||
.base.type = &mp_type_property,
|
||||
.proxy = { (mp_obj_t)&wifi_radio_get_ipv4_subnet_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
(mp_obj_t)&mp_const_none_obj },
|
||||
};
|
||||
|
||||
//| ipv4_address: Optional[ipaddress.IPv4Address]
|
||||
//| """IP v4 Address of the radio when connected to an access point. None otherwise."""
|
||||
//|
|
||||
@ -219,7 +251,39 @@ const mp_obj_property_t wifi_radio_ipv4_address_obj = {
|
||||
(mp_obj_t)&mp_const_none_obj },
|
||||
};
|
||||
|
||||
//| def ping(self, ip, *, timeout: float = 0.5) -> float:
|
||||
//| ipv4_dns: Optional[ipaddress.IPv4Address]
|
||||
//| """IP v4 Address of the DNS server in use when connected to an access point. None otherwise."""
|
||||
//|
|
||||
STATIC mp_obj_t wifi_radio_get_ipv4_dns(mp_obj_t self) {
|
||||
return common_hal_wifi_radio_get_ipv4_dns(self);
|
||||
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(wifi_radio_get_ipv4_dns_obj, wifi_radio_get_ipv4_dns);
|
||||
|
||||
const mp_obj_property_t wifi_radio_ipv4_dns_obj = {
|
||||
.base.type = &mp_type_property,
|
||||
.proxy = { (mp_obj_t)&wifi_radio_get_ipv4_dns_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
(mp_obj_t)&mp_const_none_obj },
|
||||
};
|
||||
|
||||
//| ap_info: Optional[Network]
|
||||
//| """Network object containing BSSID, SSID, channel, and RSSI when connected to an access point. None otherwise."""
|
||||
//|
|
||||
STATIC mp_obj_t wifi_radio_get_ap_info(mp_obj_t self) {
|
||||
return common_hal_wifi_radio_get_ap_info(self);
|
||||
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(wifi_radio_get_ap_info_obj, wifi_radio_get_ap_info);
|
||||
|
||||
const mp_obj_property_t wifi_radio_ap_info_obj = {
|
||||
.base.type = &mp_type_property,
|
||||
.proxy = { (mp_obj_t)&wifi_radio_get_ap_info_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
(mp_obj_t)&mp_const_none_obj },
|
||||
};
|
||||
|
||||
//| def ping(self, ip: ipaddress.IPv4Address, *, timeout: Optional[float] = 0.5) -> float:
|
||||
//| """Ping an IP to test connectivity. Returns echo time in seconds.
|
||||
//| Returns None when it times out."""
|
||||
//| ...
|
||||
@ -261,6 +325,10 @@ STATIC const mp_rom_map_elem_t wifi_radio_locals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_connect), MP_ROM_PTR(&wifi_radio_connect_obj) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_connect_to_enterprise), MP_ROM_PTR(&wifi_radio_connect_to_enterprise_obj) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_ap_info), MP_ROM_PTR(&wifi_radio_ap_info_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ipv4_dns), MP_ROM_PTR(&wifi_radio_ipv4_dns_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ipv4_gateway), MP_ROM_PTR(&wifi_radio_ipv4_gateway_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ipv4_subnet), MP_ROM_PTR(&wifi_radio_ipv4_subnet_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ipv4_address), MP_ROM_PTR(&wifi_radio_ipv4_address_obj) },
|
||||
|
||||
// { MP_ROM_QSTR(MP_QSTR_access_point_active), MP_ROM_PTR(&wifi_radio_access_point_active_obj) },
|
||||
|
@ -55,6 +55,10 @@ extern void common_hal_wifi_radio_stop_scanning_networks(wifi_radio_obj_t *self)
|
||||
|
||||
extern wifi_radio_error_t common_hal_wifi_radio_connect(wifi_radio_obj_t *self, uint8_t* ssid, size_t ssid_len, uint8_t* password, size_t password_len, uint8_t channel, mp_float_t timeout, uint8_t* bssid, size_t bssid_len);
|
||||
|
||||
extern mp_obj_t common_hal_wifi_radio_get_ap_info(wifi_radio_obj_t *self);
|
||||
extern mp_obj_t common_hal_wifi_radio_get_ipv4_dns(wifi_radio_obj_t *self);
|
||||
extern mp_obj_t common_hal_wifi_radio_get_ipv4_gateway(wifi_radio_obj_t *self);
|
||||
extern mp_obj_t common_hal_wifi_radio_get_ipv4_subnet(wifi_radio_obj_t *self);
|
||||
extern mp_obj_t common_hal_wifi_radio_get_ipv4_address(wifi_radio_obj_t *self);
|
||||
|
||||
extern mp_int_t common_hal_wifi_radio_ping(wifi_radio_obj_t *self, mp_obj_t ip_address, mp_float_t timeout);
|
||||
|
@ -55,9 +55,8 @@ mp_obj_t common_hal_board_get_i2c(void) {
|
||||
}
|
||||
|
||||
mp_obj_t common_hal_board_create_i2c(void) {
|
||||
if (i2c_singleton != NULL) {
|
||||
return i2c_singleton;
|
||||
}
|
||||
// All callers have either already verified this or come so early that it can't be otherwise.
|
||||
assert(i2c_singleton == NULL || common_hal_busio_i2c_deinited(i2c_singleton));
|
||||
busio_i2c_obj_t *self = &i2c_obj;
|
||||
self->base.type = &busio_i2c_type;
|
||||
|
||||
@ -79,9 +78,8 @@ mp_obj_t common_hal_board_get_spi(void) {
|
||||
}
|
||||
|
||||
mp_obj_t common_hal_board_create_spi(void) {
|
||||
if (spi_singleton != NULL) {
|
||||
return spi_singleton;
|
||||
}
|
||||
// All callers have either already verified this or come so early that it can't be otherwise.
|
||||
assert(spi_singleton == NULL || common_hal_busio_spi_deinited(spi_singleton));
|
||||
busio_spi_obj_t *self = &spi_obj;
|
||||
self->base.type = &busio_spi_type;
|
||||
|
||||
@ -139,14 +137,17 @@ void reset_board_busses(void) {
|
||||
bool display_using_i2c = false;
|
||||
#if CIRCUITPY_DISPLAYIO
|
||||
for (uint8_t i = 0; i < CIRCUITPY_DISPLAY_LIMIT; i++) {
|
||||
if (displays[i].i2cdisplay_bus.bus == i2c_singleton) {
|
||||
if (displays[i].bus_base.type == &displayio_i2cdisplay_type && displays[i].i2cdisplay_bus.bus == i2c_singleton) {
|
||||
display_using_i2c = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (!display_using_i2c) {
|
||||
i2c_singleton = NULL;
|
||||
if (i2c_singleton != NULL) {
|
||||
if (!display_using_i2c) {
|
||||
common_hal_busio_i2c_deinit(i2c_singleton);
|
||||
i2c_singleton = NULL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if BOARD_SPI
|
||||
@ -169,9 +170,10 @@ void reset_board_busses(void) {
|
||||
// make sure SPI lock is not held over a soft reset
|
||||
if (spi_singleton != NULL) {
|
||||
common_hal_busio_spi_unlock(spi_singleton);
|
||||
}
|
||||
if (!display_using_spi) {
|
||||
spi_singleton = NULL;
|
||||
if (!display_using_spi) {
|
||||
common_hal_busio_spi_deinit(spi_singleton);
|
||||
spi_singleton = NULL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if BOARD_UART
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include "shared-bindings/displayio/ColorConverter.h"
|
||||
|
||||
#include "py/misc.h"
|
||||
#include "py/runtime.h"
|
||||
|
||||
uint32_t displayio_colorconverter_dither_noise_1 (uint32_t n)
|
||||
{
|
||||
@ -128,9 +129,27 @@ bool common_hal_displayio_colorconverter_get_dither(displayio_colorconverter_t*
|
||||
return self->dither;
|
||||
}
|
||||
|
||||
void common_hal_displayio_colorconverter_make_transparent(displayio_colorconverter_t* self, uint32_t transparent_color) {
|
||||
if (self->transparent_color >= 0x1000000) {
|
||||
mp_raise_RuntimeError(translate("Only one color can be transparent at a time"));
|
||||
}
|
||||
self->transparent_color = transparent_color;
|
||||
}
|
||||
|
||||
void common_hal_displayio_colorconverter_make_opaque(displayio_colorconverter_t* self, uint32_t transparent_color) {
|
||||
(void) transparent_color;
|
||||
// 0x1000000 will never equal a valid color
|
||||
self->transparent_color = 0x1000000;
|
||||
}
|
||||
|
||||
void displayio_colorconverter_convert(displayio_colorconverter_t *self, const _displayio_colorspace_t* colorspace, const displayio_input_pixel_t *input_pixel, displayio_output_pixel_t *output_color) {
|
||||
uint32_t pixel = input_pixel->pixel;
|
||||
|
||||
if (self->transparent_color == pixel) {
|
||||
output_color->opaque = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (self->dither){
|
||||
uint8_t randr = (displayio_colorconverter_dither_noise_2(input_pixel->tile_x,input_pixel->tile_y));
|
||||
uint8_t randg = (displayio_colorconverter_dither_noise_2(input_pixel->tile_x+33,input_pixel->tile_y));
|
||||
@ -146,9 +165,9 @@ void displayio_colorconverter_convert(displayio_colorconverter_t *self, const _d
|
||||
g8 = MIN(255,g8 + (randg&0x03));
|
||||
} else {
|
||||
int bitmask = 0xFF >> colorspace->depth;
|
||||
b8 = MIN(255,b8 + (randb&bitmask));
|
||||
r8 = MIN(255,r8 + (randr&bitmask));
|
||||
g8 = MIN(255,g8 + (randg&bitmask));
|
||||
b8 = MIN(255,b8 + (randb & bitmask));
|
||||
r8 = MIN(255,r8 + (randr & bitmask));
|
||||
g8 = MIN(255,g8 + (randg & bitmask));
|
||||
}
|
||||
pixel = r8 << 16 | g8 << 8 | b8;
|
||||
}
|
||||
@ -177,7 +196,8 @@ void displayio_colorconverter_convert(displayio_colorconverter_t *self, const _d
|
||||
return;
|
||||
} else if (colorspace->grayscale && colorspace->depth <= 8) {
|
||||
uint8_t luma = displayio_colorconverter_compute_luma(pixel);
|
||||
output_color->pixel = luma >> (8 - colorspace->depth);
|
||||
size_t bitmask = (1 << colorspace->depth) - 1;
|
||||
output_color->pixel = (luma >> colorspace->grayscale_bit) & bitmask;
|
||||
output_color->opaque = true;
|
||||
return;
|
||||
}
|
||||
|
@ -36,6 +36,7 @@
|
||||
typedef struct {
|
||||
mp_obj_base_t base;
|
||||
bool dither;
|
||||
uint32_t transparent_color;
|
||||
} displayio_colorconverter_t;
|
||||
|
||||
bool displayio_colorconverter_needs_refresh(displayio_colorconverter_t *self);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user