Merge branch 'main' into atexit

This commit is contained in:
microDev 2021-08-20 09:45:54 +05:30
commit 25437dcb33
No known key found for this signature in database
GPG Key ID: 2C0867BE60967730
294 changed files with 7613 additions and 2509 deletions

View File

@ -79,6 +79,10 @@ jobs:
- name: Test all
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython-coverage ./run-tests.py -j1
working-directory: tests
- name: Print failure info
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython-coverage ./run-tests.py -j1 --print-failures
if: failure()
working-directory: tests
- name: Native Tests
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython-coverage ./run-tests.py -j1 --emit native
working-directory: tests
@ -228,6 +232,7 @@ jobs:
- "bdmicro_vina_d51_pcb7"
- "bless_dev_board_multi_sensor"
- "blm_badge"
- "bluemicro840"
- "capablerobot_usbhub"
- "catwan_usbstick"
- "circuitbrains_basic_m0"
@ -321,11 +326,13 @@ jobs:
- "pewpew10"
- "pewpew_m4"
- "picoplanet"
- "pimoroni_interstate75"
- "pimoroni_keybow2040"
- "pimoroni_pga2040"
- "pimoroni_picolipo_16mb"
- "pimoroni_picolipo_4mb"
- "pimoroni_picosystem"
- "pimoroni_plasma2040"
- "pimoroni_tiny2040"
- "pitaya_go"
- "pyb_nano_v2"
@ -341,6 +348,7 @@ jobs:
- "qtpy_m0_haxpress"
- "raspberry_pi_pico"
- "raytac_mdbt50q-db-40"
- "raytac_mdbt50q-rx"
- "robohatmm1_m4"
- "sam32"
- "same54_xplained"
@ -364,6 +372,7 @@ jobs:
- "sparkfun_samd21_mini"
- "sparkfun_samd51_micromod"
- "sparkfun_samd51_thing_plus"
- "sparkfun_stm32f405_micromod"
- "sparkfun_thing_plus_rp2040"
- "spresense"
- "stackrduino_m0_pro"
@ -455,7 +464,7 @@ jobs:
- name: Install deps
run: |
sudo apt-get install -y gettext
pip install requests sh click setuptools awscli
pip install -r requirements-dev.txt
wget https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-centos6.tar.gz
sudo tar -C /usr --strip-components=1 -xaf riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-centos6.tar.gz
- name: Versions
@ -495,8 +504,10 @@ jobs:
- "adafruit_funhouse"
- "adafruit_magtag_2.9_grayscale"
- "adafruit_metro_esp32s2"
- "ai_thinker_esp_12k_nodemcu"
- "artisense_rd00"
- "atmegazero_esp32s2"
- "crumpspace_crumps2"
- "electroniccats_bastwifi"
- "espressif_kaluga_1"
- "espressif_kaluga_1.3"
@ -504,10 +515,16 @@ jobs:
- "espressif_saola_1_wrover"
- "franzininho_wifi_wroom"
- "franzininho_wifi_wrover"
- "gravitech_cucumber_m"
- "gravitech_cucumber_ms"
- "gravitech_cucumber_r"
- "gravitech_cucumber_rs"
- "lilygo_ttgo_t8_s2_st7789"
- "microdev_micro_s2"
- "morpheans_morphesp-240"
- "muselab_nanoesp32_s2_wroom"
- "muselab_nanoesp32_s2_wrover"
- "odt_pixelwing_esp32_s2"
- "targett_module_clip_wroom"
- "targett_module_clip_wrover"
- "unexpectedmaker_feathers2"

3
.gitmodules vendored
View File

@ -188,3 +188,6 @@
[submodule "frozen/Adafruit_CircuitPython_SimpleIO"]
path = frozen/Adafruit_CircuitPython_SimpleIO
url = https://github.com/adafruit/adafruit_circuitpython_simpleio
[submodule "lib/quirc"]
path = lib/quirc
url = https://github.com/adafruit/quirc.git

View File

@ -21,7 +21,7 @@ besides a text editor (we recommend `Mu <https://codewith.mu/>`_ for beginners.)
Starting with CircuitPython 7.0.0, some boards may only be connectable over Bluetooth Low Energy
(BLE). Those boards provide serial and file access over BLE instead of USB using open protocols.
(Some boards may use both USB and BLE.) BLE access can be done from a variety of apps including
`code.circuitpythonn.org <https://code.circuitpython.org>`_.
`code.circuitpython.org <https://code.circuitpython.org>`_.
CircuitPython features unified Python core APIs and a growing list of 300+ device libraries and
drivers that work with it. These libraries also work on single board computers with regular

View File

@ -7,7 +7,7 @@ These instructions also apply to `analogio`, `busio`, `pulseio` and `touchio`. M
Common HAL related files are found in these locations:
* `shared-bindings` Shared home for the Python <-> C bindings which includes inline RST documentation for the created interfaces. The common hal functions are defined in the .h files of the corresponding C files.
* `shared-modules` Shared home for C code built on the Common HAL and used by all ports. This code only uses `common_hal` methods defined in `shared-bindings`.
* `shared-module` Shared home for C code built on the Common HAL and used by all ports. This code only uses `common_hal` methods defined in `shared-bindings`.
* `<port>/common-hal` Port-specific implementation of the Common HAL.
Each folder has the substructure of <python module name>/<class name> and they should match 1:1. `__init__.c` is used for module globals that are not classes (similar to `__init__.py`).

View File

@ -152,7 +152,6 @@ shared-bindings/ustack/__init__.rst shared-bindings/ustack/
shared-bindings/vectorio/Circle.rst shared-bindings/vectorio/#vectorio.Circle
shared-bindings/vectorio/Polygon.rst shared-bindings/vectorio/#vectorio.Polygon
shared-bindings/vectorio/Rectangle.rst shared-bindings/vectorio/#vectorio.Rectangle
shared-bindings/vectorio/VectorShape.rst shared-bindings/vectorio/#vectorio.VectorShape
shared-bindings/vectorio/__init__.rst shared-bindings/vectorio/
shared-bindings/watchdog/WatchDogMode.rst shared-bindings/watchdog/#watchdog.WatchDogMode
shared-bindings/watchdog/WatchDogTimer.rst shared-bindings/watchdog/#watchdog.WatchDogTimer

1
lib/quirc Submodule

@ -0,0 +1 @@
Subproject commit 8c6ffa228a4c7643daed7039d3c51d38a43991b8

@ -1 +1 @@
Subproject commit 184f1b723fb811016063deccab9e81640e5c3e7f
Subproject commit 3a248951e2744ba89f5fb96eda85a971001115f0

View File

@ -167,7 +167,7 @@ STATIC int parse_compile_execute(const void *source, mp_parse_input_kind_t input
mp_hal_stdout_tx_strn("\x04", 1);
}
// check for SystemExit
if (mp_obj_is_subclass_fast(MP_OBJ_FROM_PTR(((mp_obj_base_t *)nlr.ret_val)->type), MP_OBJ_FROM_PTR(&mp_type_SystemExit))) {
if (mp_obj_is_subclass_fast(mp_obj_get_type((mp_obj_t)nlr.ret_val), MP_OBJ_FROM_PTR(&mp_type_SystemExit))) {
// at the moment, the value of SystemExit is unused
ret = pyexec_system_exit;
#if CIRCUITPY_ALARM
@ -183,7 +183,12 @@ STATIC int parse_compile_execute(const void *source, mp_parse_input_kind_t input
}
if (result != NULL) {
result->return_code = ret;
#if CIRCUITPY_ALARM
// Don't set the exception object if we exited for deep sleep.
if (ret != 0 && ret != PYEXEC_DEEP_SLEEP) {
#else
if (ret != 0) {
#endif
mp_obj_t return_value = (mp_obj_t)nlr.ret_val;
result->exception = return_value;
result->exception_line = -1;
@ -260,7 +265,7 @@ STATIC mp_uint_t mp_reader_stdin_readbyte(void *data) {
mp_hal_stdout_tx_strn("\x04", 1); // indicate end to host
if (c == CHAR_CTRL_C) {
#if MICROPY_KBD_EXCEPTION
MP_STATE_VM(mp_kbd_exception).traceback_data = NULL;
MP_STATE_VM(mp_kbd_exception).traceback->data = NULL;
nlr_raise(MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_kbd_exception)));
#else
mp_raise_type(&mp_type_KeyboardInterrupt);

View File

@ -98,6 +98,10 @@ msgstr "indeks %q harus bilangan bulat, bukan %s"
msgid "%q length must be %q"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr "daftar %q harus berupa daftar"
@ -110,14 +114,6 @@ msgstr ""
msgid "%q must be %d-%d"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr ""
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr ""
@ -134,10 +130,6 @@ msgstr "%q harus >= 0"
msgid "%q must be >= 1"
msgstr "%q harus >= 1"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr ""
#: py/argcheck.c
msgid "%q must be a string"
msgstr ""
@ -175,6 +167,10 @@ msgstr "%q harus berupa int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() mengambil posisi argumen %d tapi %d yang diberikan"
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -325,6 +321,10 @@ msgstr "'yield from' di dalam fungsi async"
msgid "'yield' outside function"
msgstr "'yield' diluar fungsi"
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr "*x harus menjadi target assignment"
@ -496,6 +496,10 @@ msgstr ""
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr ""
@ -1205,11 +1209,6 @@ msgstr ""
msgid "Input/output error"
msgstr "Kesalahan input/output"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1238,6 +1237,10 @@ msgstr "Otentikasi tidak cukup"
msgid "Insufficient encryption"
msgstr "Enkripsi tidak cukup"
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr "Kesalahan definisi internal"
@ -1247,7 +1250,7 @@ msgstr "Kesalahan definisi internal"
msgid "Internal error #%d"
msgstr "Kesalahan internal #%d"
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr ""
@ -1526,6 +1529,16 @@ msgstr ""
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "Harus berupa subclass %q."
@ -1907,21 +1920,6 @@ msgstr "Tambahkan module apapun pada filesystem\n"
msgid "Polygon needs at least 3 points"
msgstr ""
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr "Buffer awalan harus ada di heap"
@ -2112,7 +2110,6 @@ msgid "Size not supported"
msgstr ""
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr ""
@ -2567,7 +2564,7 @@ msgid "argument name reused"
msgstr ""
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr "argumen num/types tidak cocok"
@ -3131,6 +3128,10 @@ msgstr ""
msgid "file must be a file opened in byte mode"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr ""
@ -3418,6 +3419,10 @@ msgstr ""
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr "format tidak valid"
@ -3455,6 +3460,10 @@ msgstr ""
msgid "invalid syntax for number"
msgstr ""
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr ""
@ -3651,10 +3660,6 @@ msgstr ""
msgid "no active exception to reraise"
msgstr ""
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr ""
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr "tidak ada ikatan/bind pada temuan nonlocal"
@ -3950,6 +3955,10 @@ msgstr ""
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4148,7 +4157,7 @@ msgstr ""
msgid "stop not reachable from start"
msgstr ""
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr ""
@ -4357,7 +4366,7 @@ msgid "unreadable attribute"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr ""

View File

@ -66,6 +66,14 @@ msgid ""
"%d address pins, %d rgb pins and %d tiles indicate a height of %d, not %d"
msgstr ""
#: shared-bindings/microcontroller/Pin.c
msgid "%q and %q contain duplicate pins"
msgstr ""
#: shared-bindings/microcontroller/Pin.c
msgid "%q contains duplicate pins"
msgstr ""
#: ports/atmel-samd/common-hal/sdioio/SDCard.c
msgid "%q failure: %d"
msgstr ""
@ -91,6 +99,10 @@ msgstr ""
msgid "%q length must be %q"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr ""
@ -103,14 +115,6 @@ msgstr ""
msgid "%q must be %d-%d"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr ""
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr ""
@ -127,10 +131,6 @@ msgstr ""
msgid "%q must be >= 1"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr ""
#: py/argcheck.c
msgid "%q must be a string"
msgstr ""
@ -168,6 +168,10 @@ msgstr ""
msgid "%q() takes %d positional arguments but %d were given"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -318,6 +322,10 @@ msgstr ""
msgid "'yield' outside function"
msgstr ""
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr ""
@ -489,6 +497,10 @@ msgstr ""
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr ""
@ -1213,6 +1225,10 @@ msgstr ""
msgid "Insufficient encryption"
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr ""
@ -1222,7 +1238,7 @@ msgstr ""
msgid "Internal error #%d"
msgstr ""
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr ""
@ -1506,6 +1522,11 @@ msgstr ""
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
@ -2063,7 +2084,6 @@ msgid "Size not supported"
msgstr ""
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr ""
@ -3074,6 +3094,10 @@ msgstr ""
msgid "file must be a file opened in byte mode"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr ""
@ -3361,6 +3385,10 @@ msgstr ""
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr ""
@ -3398,6 +3426,10 @@ msgstr ""
msgid "invalid syntax for number"
msgstr ""
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr ""
@ -3888,6 +3920,10 @@ msgstr ""
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4086,7 +4122,7 @@ msgstr ""
msgid "stop not reachable from start"
msgstr ""
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr ""
@ -4295,7 +4331,7 @@ msgid "unreadable attribute"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr ""

View File

@ -94,6 +94,10 @@ msgstr "Indexy %q musí být celá čísla, nikoli %s"
msgid "%q length must be %q"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr "Seznam %q musí být seznam"
@ -106,14 +110,6 @@ msgstr ""
msgid "%q must be %d-%d"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr ""
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr ""
@ -130,10 +126,6 @@ msgstr "%q musí být >= 0"
msgid "%q must be >= 1"
msgstr "%q musí být > = 1"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr ""
#: py/argcheck.c
msgid "%q must be a string"
msgstr ""
@ -171,6 +163,10 @@ msgstr "%q by měl být int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() vyžaduje %d pozičních argumentů, ale %d jich bylo zadáno"
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -321,6 +317,10 @@ msgstr ""
msgid "'yield' outside function"
msgstr ""
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr ""
@ -492,6 +492,10 @@ msgstr ""
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr ""
@ -1188,11 +1192,6 @@ msgstr ""
msgid "Input/output error"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1221,6 +1220,10 @@ msgstr ""
msgid "Insufficient encryption"
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr ""
@ -1230,7 +1233,7 @@ msgstr ""
msgid "Internal error #%d"
msgstr ""
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr ""
@ -1509,6 +1512,16 @@ msgstr ""
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
@ -1880,21 +1893,6 @@ msgstr ""
msgid "Polygon needs at least 3 points"
msgstr ""
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr ""
@ -2081,7 +2079,6 @@ msgid "Size not supported"
msgstr ""
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr ""
@ -2528,7 +2525,7 @@ msgid "argument name reused"
msgstr ""
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr ""
@ -3092,6 +3089,10 @@ msgstr ""
msgid "file must be a file opened in byte mode"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr ""
@ -3379,6 +3380,10 @@ msgstr ""
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr ""
@ -3416,6 +3421,10 @@ msgstr ""
msgid "invalid syntax for number"
msgstr ""
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr ""
@ -3612,10 +3621,6 @@ msgstr ""
msgid "no active exception to reraise"
msgstr ""
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr ""
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr ""
@ -3910,6 +3915,10 @@ msgstr ""
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4108,7 +4117,7 @@ msgstr ""
msgid "stop not reachable from start"
msgstr ""
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr ""
@ -4317,7 +4326,7 @@ msgid "unreadable attribute"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr ""

View File

@ -99,6 +99,10 @@ msgstr "%q Indizes müssen Integer sein, nicht %s"
msgid "%q length must be %q"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr "%q Liste muss eine Liste sein"
@ -111,14 +115,6 @@ msgstr ""
msgid "%q must be %d-%d"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr "%q muss 0-255 sein"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr "%q muss 1-255 sein"
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr ""
@ -135,10 +131,6 @@ msgstr "%q muss >= 0 sein"
msgid "%q must be >= 1"
msgstr "%q muss >= 1 sein"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr "%q muss None oder zwischen 1 und len(report_descriptor)-1 sein"
#: py/argcheck.c
msgid "%q must be a string"
msgstr ""
@ -177,6 +169,10 @@ msgid "%q() takes %d positional arguments but %d were given"
msgstr ""
"%q() nimmt %d Argumente ohne Schlüsselwort an, aber es wurden %d angegeben"
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -327,6 +323,10 @@ msgstr "'yield from' innerhalb einer async Funktion"
msgid "'yield' outside function"
msgstr "'yield' außerhalb einer Funktion"
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr "*x muss Zuordnungsziel sein"
@ -498,6 +498,10 @@ msgstr "Versuche %d Blöcke zu allokieren"
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr ""
@ -1205,11 +1209,6 @@ msgstr "Input benötigt zu lange"
msgid "Input/output error"
msgstr "Eingabe-/Ausgabefehler"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1238,6 +1237,10 @@ msgstr "Unzureichende Authentifizierung"
msgid "Insufficient encryption"
msgstr "Unzureichende Verschlüsselung"
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr "Interner Definitionsfehler"
@ -1247,7 +1250,7 @@ msgstr "Interner Definitionsfehler"
msgid "Internal error #%d"
msgstr "Interner Fehler #%d"
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr "Ungültiger %q"
@ -1527,6 +1530,16 @@ msgstr "Fehlender first_out_pin. Instruktion %d schreibt Pin(s)"
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr "Fehlender first_set_pin. Instruktion %d setzt Pin(s)"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "Muss eine %q Unterklasse sein."
@ -1907,21 +1920,6 @@ msgstr "und alle Module im Dateisystem \n"
msgid "Polygon needs at least 3 points"
msgstr "Polygone brauchen mindestens 3 Punkte"
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr "Der Präfixbuffer muss sich auf dem Heap befinden"
@ -2110,7 +2108,6 @@ msgid "Size not supported"
msgstr ""
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr ""
@ -2573,7 +2570,7 @@ msgid "argument name reused"
msgstr ""
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr "Anzahl/Typen der Argumente passen nicht"
@ -3149,6 +3146,10 @@ msgstr "f-string: einzelne '}' nicht erlaubt"
msgid "file must be a file opened in byte mode"
msgstr "Die Datei muss eine im Byte-Modus geöffnete Datei sein"
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr "Das Dateisystem muss eine Mount-Methode bereitstellen"
@ -3438,6 +3439,10 @@ msgstr ""
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr "ungültiges Format"
@ -3475,6 +3480,10 @@ msgstr "ungültige Syntax für integer mit Basis %d"
msgid "invalid syntax for number"
msgstr "ungültige Syntax für number"
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() arg 1 muss eine Klasse sein"
@ -3677,10 +3686,6 @@ msgstr ""
msgid "no active exception to reraise"
msgstr "Keine aktive Ausnahme zu verusachen (raise)"
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr "kein verfügbares Netzwerkadapter (NIC)"
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr "Kein Binding für nonlocal gefunden"
@ -3979,6 +3984,10 @@ msgstr "pow () mit 3 Argumenten erfordert Integer"
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4179,7 +4188,7 @@ msgstr "stop muss 1 oder 2 sein"
msgid "stop not reachable from start"
msgstr "stop ist von start aus nicht erreichbar"
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr "stream operation ist nicht unterstützt"
@ -4393,7 +4402,7 @@ msgid "unreadable attribute"
msgstr "nicht lesbares Attribut"
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr "Nicht unterstützter %q-Typ"
@ -4514,6 +4523,18 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "%q must be 0-255"
#~ msgstr "%q muss 0-255 sein"
#~ msgid "%q must be 1-255"
#~ msgstr "%q muss 1-255 sein"
#~ msgid "%q must be None or between 1 and len(report_descriptor)-1"
#~ msgstr "%q muss None oder zwischen 1 und len(report_descriptor)-1 sein"
#~ msgid "no available NIC"
#~ msgstr "kein verfügbares Netzwerkadapter (NIC)"
#~ msgid "Instruction %d jumps on pin"
#~ msgstr "Instruktion %d springt auf Pin"

View File

@ -91,6 +91,10 @@ msgstr ""
msgid "%q length must be %q"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr ""
@ -103,14 +107,6 @@ msgstr ""
msgid "%q must be %d-%d"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr ""
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr ""
@ -127,10 +123,6 @@ msgstr ""
msgid "%q must be >= 1"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr ""
#: py/argcheck.c
msgid "%q must be a string"
msgstr ""
@ -168,6 +160,10 @@ msgstr ""
msgid "%q() takes %d positional arguments but %d were given"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -318,6 +314,10 @@ msgstr ""
msgid "'yield' outside function"
msgstr ""
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr ""
@ -489,6 +489,10 @@ msgstr ""
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr ""
@ -1185,11 +1189,6 @@ msgstr ""
msgid "Input/output error"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1218,6 +1217,10 @@ msgstr ""
msgid "Insufficient encryption"
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr ""
@ -1227,7 +1230,7 @@ msgstr ""
msgid "Internal error #%d"
msgstr ""
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr ""
@ -1506,6 +1509,16 @@ msgstr ""
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
@ -1877,21 +1890,6 @@ msgstr ""
msgid "Polygon needs at least 3 points"
msgstr ""
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr ""
@ -2078,7 +2076,6 @@ msgid "Size not supported"
msgstr ""
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr ""
@ -2525,7 +2522,7 @@ msgid "argument name reused"
msgstr ""
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr ""
@ -3089,6 +3086,10 @@ msgstr ""
msgid "file must be a file opened in byte mode"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr ""
@ -3376,6 +3377,10 @@ msgstr ""
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr ""
@ -3413,6 +3418,10 @@ msgstr ""
msgid "invalid syntax for number"
msgstr ""
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr ""
@ -3609,10 +3618,6 @@ msgstr ""
msgid "no active exception to reraise"
msgstr ""
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr ""
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr ""
@ -3907,6 +3912,10 @@ msgstr ""
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4105,7 +4114,7 @@ msgstr ""
msgid "stop not reachable from start"
msgstr ""
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr ""
@ -4314,7 +4323,7 @@ msgid "unreadable attribute"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr ""

View File

@ -100,6 +100,10 @@ msgstr ""
msgid "%q length must be %q"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr "%q list must be a list"
@ -112,14 +116,6 @@ msgstr ""
msgid "%q must be %d-%d"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr ""
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr ""
@ -136,10 +132,6 @@ msgstr "%q must be >= 0"
msgid "%q must be >= 1"
msgstr "%q must be >= 1"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr ""
#: py/argcheck.c
msgid "%q must be a string"
msgstr ""
@ -177,6 +169,10 @@ msgstr "%q should be an int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() takes %d positional arguments but %d were given"
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -327,6 +323,10 @@ msgstr "'yield from' inside async function"
msgid "'yield' outside function"
msgstr "'yield' outside function"
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr "*x must be assignment target"
@ -498,6 +498,10 @@ msgstr "Attempt to allocate %d blocks"
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr ""
@ -1200,11 +1204,6 @@ msgstr "Input taking too long"
msgid "Input/output error"
msgstr "Input/output error"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1233,6 +1232,10 @@ msgstr "Insufficient authentication"
msgid "Insufficient encryption"
msgstr "Insufficient encryption"
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr "Internal define error"
@ -1242,7 +1245,7 @@ msgstr "Internal define error"
msgid "Internal error #%d"
msgstr "Internal error #%d"
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr "Invalid %q"
@ -1521,6 +1524,16 @@ msgstr "Missing first_out_pin. Instruction %d writes pin(s)"
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr "Missing first_set_pin. Instruction %d sets pin(s)"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "Must be a %q subclass."
@ -1901,25 +1914,6 @@ msgstr "Plus any modules on the filesystem\n"
msgid "Polygon needs at least 3 points"
msgstr "Polygon needs at least 3 points"
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr "Prefix buffer must be on the heap"
@ -2106,7 +2100,6 @@ msgid "Size not supported"
msgstr "Size not supported"
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr ""
@ -2560,7 +2553,7 @@ msgid "argument name reused"
msgstr ""
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr "argument num/types mismatch"
@ -3127,6 +3120,10 @@ msgstr "f-string: single '}' is not allowed"
msgid "file must be a file opened in byte mode"
msgstr "file must be a file opened in byte mode"
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr "filesystem must provide mount method"
@ -3414,6 +3411,10 @@ msgstr "invalid element size %d for bits_per_pixel %d\n"
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr "invalid element_size %d, must be, 1, 2, or 4"
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr "invalid format"
@ -3452,6 +3453,10 @@ msgstr "invalid syntax for integer with base %d"
msgid "invalid syntax for number"
msgstr "invalid syntax for number"
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() arg 1 must be a class"
@ -3648,10 +3653,6 @@ msgstr "no SD card"
msgid "no active exception to reraise"
msgstr "no active exception to reraise"
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr "no available NIC"
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr "no binding for nonlocal found"
@ -3946,6 +3947,10 @@ msgstr "pow() with 3 arguments requires integers"
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4146,7 +4151,7 @@ msgstr "stop must be 1 or 2"
msgid "stop not reachable from start"
msgstr "stop not reachable from start"
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr "stream operation not supported"
@ -4355,7 +4360,7 @@ msgid "unreadable attribute"
msgstr "unreadable attribute"
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr "unsupported %q type"
@ -4476,6 +4481,23 @@ msgstr "zi must be of float type"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi must be of shape (n_section, 2)"
#~ msgid "no available NIC"
#~ msgstr "no available NIC"
#~ msgid ""
#~ "Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
#~ "instead"
#~ msgstr ""
#~ "Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
#~ "instead"
#~ msgid ""
#~ "Port does not accept pins or frequency. Construct and pass a PWMOut "
#~ "Carrier instead"
#~ msgstr ""
#~ "Port does not accept pins or frequency. Construct and pass a PWMOut "
#~ "Carrier instead"
#~ msgid "Instruction %d jumps on pin"
#~ msgstr "Instruction %d jumps on pin"

View File

@ -102,6 +102,10 @@ msgstr "%q indices deben ser enteros, no %s"
msgid "%q length must be %q"
msgstr "el tamaño de %q debe ser %q"
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr "%q lista debe ser una lista"
@ -114,14 +118,6 @@ msgstr "%q debe ser <= %d"
msgid "%q must be %d-%d"
msgstr "%q debe ser %d-%d"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr "%q debe ser de 0-255"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr "%q debe estar entre 1-255"
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr "%q debe ser >= %d"
@ -138,10 +134,6 @@ msgstr "%q debe ser >= 0"
msgid "%q must be >= 1"
msgstr "%q debe ser >= 1"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr "%q debe ser None o entre 1 y len(report_descriptor)-1"
#: py/argcheck.c
msgid "%q must be a string"
msgstr "%q debe ser una cadena"
@ -179,6 +171,10 @@ msgstr "%q debe ser un int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() toma %d argumentos posicionales pero %d fueron dados"
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -329,6 +325,10 @@ msgstr "'yield from' dentro de una función asincrónica"
msgid "'yield' outside function"
msgstr "'yield' fuera de una función"
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr "*x debe ser objetivo de la tarea"
@ -502,6 +502,10 @@ msgstr "Tratando de localizar %d bloques"
msgid "Attempted heap allocation when VM not running."
msgstr "Asignación del montículo mientras la VM no esta ejecutándose."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr "AuthMode.OPEN no se usa con contraseña"
@ -1218,11 +1222,6 @@ msgstr "La entrada está durando mucho tiempo"
msgid "Input/output error"
msgstr "error Input/output"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1251,6 +1250,10 @@ msgstr "Autenticación insuficiente"
msgid "Insufficient encryption"
msgstr "Cifrado insuficiente"
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr "Error interno de definición"
@ -1260,7 +1263,7 @@ msgstr "Error interno de definición"
msgid "Internal error #%d"
msgstr "Error interno #%d"
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr "%q inválido"
@ -1543,6 +1546,16 @@ msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
"first_set_pin no encontrado. La instrucción %d configura el/los pin(es)"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "Debe de ser una subclase de %q."
@ -1925,25 +1938,6 @@ msgstr "Además de cualquier módulo en el sistema de archivos\n"
msgid "Polygon needs at least 3 points"
msgstr "El polígono necesita al menos 3 puntos"
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
"Port no acepta un carrier de PWM. Pase en cambio un pin, una frecuencia o un "
"ciclo de actividad"
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
"Port no acepta los pines o la frecuencia. Construya y pase en su lugar un "
"Carrier de PWMOut"
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr "El prefijo del buffer debe estar en el heap"
@ -2134,7 +2128,6 @@ msgid "Size not supported"
msgstr "Sin capacidades para el tamaño"
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr "Memoria de sueño no disponible"
@ -2604,7 +2597,7 @@ msgid "argument name reused"
msgstr "nombre de argumento reutilizado"
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr "argumento número/tipos no coinciden"
@ -3175,6 +3168,10 @@ msgstr "cadena-f: solo '}' no está permitido"
msgid "file must be a file opened in byte mode"
msgstr "el archivo deberia ser una archivo abierto en modo byte"
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr "sistema de archivos debe proporcionar método de montaje"
@ -3462,6 +3459,10 @@ msgstr "el tamaño del elemento no es valido%d por bits_per_pixel %d\n"
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr "el element_size %d,no es valido, debe ser 1,2 ó 4"
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr "formato inválido"
@ -3499,6 +3500,10 @@ msgstr "sintaxis inválida para entero con base %d"
msgid "invalid syntax for number"
msgstr "sintaxis inválida para número"
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() arg 1 debe ser una clase"
@ -3699,10 +3704,6 @@ msgstr "no hay tarjeta SD"
msgid "no active exception to reraise"
msgstr "exception no activa para reraise"
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr "NIC no disponible"
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr "no se ha encontrado ningún enlace para nonlocal"
@ -4000,6 +4001,10 @@ msgstr "pow() con 3 argumentos requiere enteros"
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4200,7 +4205,7 @@ msgstr "stop debe ser 1 ó 2"
msgid "stop not reachable from start"
msgstr "stop no se puede alcanzar del principio"
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr "operación stream no soportada"
@ -4410,7 +4415,7 @@ msgid "unreadable attribute"
msgstr "atributo no legible"
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr "tipo de %q no soportado"
@ -4531,6 +4536,32 @@ msgstr "zi debe ser de tipo flotante"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi debe ser una forma (n_section,2)"
#~ msgid "%q must be 0-255"
#~ msgstr "%q debe ser de 0-255"
#~ msgid "%q must be 1-255"
#~ msgstr "%q debe estar entre 1-255"
#~ msgid "%q must be None or between 1 and len(report_descriptor)-1"
#~ msgstr "%q debe ser None o entre 1 y len(report_descriptor)-1"
#~ msgid "no available NIC"
#~ msgstr "NIC no disponible"
#~ msgid ""
#~ "Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
#~ "instead"
#~ msgstr ""
#~ "Port no acepta un carrier de PWM. Pase en cambio un pin, una frecuencia o "
#~ "un ciclo de actividad"
#~ msgid ""
#~ "Port does not accept pins or frequency. Construct and pass a PWMOut "
#~ "Carrier instead"
#~ msgstr ""
#~ "Port no acepta los pines o la frecuencia. Construya y pase en su lugar un "
#~ "Carrier de PWMOut"
#~ msgid "Instruction %d jumps on pin"
#~ msgstr "La instruction %d salta en pin"

View File

@ -90,6 +90,10 @@ msgstr "%q indeks ay dapat integers, hindi %s"
msgid "%q length must be %q"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr ""
@ -102,14 +106,6 @@ msgstr ""
msgid "%q must be %d-%d"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr ""
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr ""
@ -127,10 +123,6 @@ msgstr ""
msgid "%q must be >= 1"
msgstr "aarehas na haba dapat ang buffer slices"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr ""
#: py/argcheck.c
msgid "%q must be a string"
msgstr ""
@ -170,6 +162,10 @@ msgid "%q() takes %d positional arguments but %d were given"
msgstr ""
"Ang %q() ay kumukuha ng %d positional arguments pero %d lang ang binigay"
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -320,6 +316,10 @@ msgstr ""
msgid "'yield' outside function"
msgstr "'yield' sa labas ng function"
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr "*x ay dapat na assignment target"
@ -492,6 +492,10 @@ msgstr ""
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr ""
@ -1200,11 +1204,6 @@ msgstr ""
msgid "Input/output error"
msgstr "May mali sa Input/Output"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1233,6 +1232,10 @@ msgstr ""
msgid "Insufficient encryption"
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr ""
@ -1242,7 +1245,7 @@ msgstr ""
msgid "Internal error #%d"
msgstr ""
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr ""
@ -1521,6 +1524,16 @@ msgstr ""
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
@ -1896,21 +1909,6 @@ msgstr "Kasama ang kung ano pang modules na sa filesystem\n"
msgid "Polygon needs at least 3 points"
msgstr ""
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr ""
@ -2098,7 +2096,6 @@ msgid "Size not supported"
msgstr ""
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr ""
@ -2553,7 +2550,7 @@ msgid "argument name reused"
msgstr ""
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr "hindi tugma ang argument num/types"
@ -3129,6 +3126,10 @@ msgstr ""
msgid "file must be a file opened in byte mode"
msgstr "file ay dapat buksan sa byte mode"
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr "ang filesystem dapat mag bigay ng mount method"
@ -3417,6 +3418,10 @@ msgstr ""
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr "hindi wastong pag-format"
@ -3454,6 +3459,10 @@ msgstr "maling sintaks sa integer na may base %d"
msgid "invalid syntax for number"
msgstr "maling sintaks sa number"
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() arg 1 ay dapat na class"
@ -3654,10 +3663,6 @@ msgstr ""
msgid "no active exception to reraise"
msgstr "walang aktibong exception para i-reraise"
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr "walang magagamit na NIC"
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr "no binding para sa nonlocal, nahanap"
@ -3954,6 +3959,10 @@ msgstr "pow() na may 3 argumento kailangan ng integers"
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4155,7 +4164,7 @@ msgstr "stop dapat 1 o 2"
msgid "stop not reachable from start"
msgstr "stop hindi maabot sa simula"
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr "stream operation hindi sinusuportahan"
@ -4365,7 +4374,7 @@ msgid "unreadable attribute"
msgstr "hindi mabasa ang attribute"
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr "Hindi supportadong tipo ng %q"
@ -4488,6 +4497,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "no available NIC"
#~ msgstr "walang magagamit na NIC"
#~ msgid "USB Busy"
#~ msgstr "Busy ang USB"

View File

@ -102,6 +102,10 @@ msgstr "les indices %q doivent être des entiers, pas %s"
msgid "%q length must be %q"
msgstr "La longueur de %q doit être de %q"
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr "La liste %q doit être une liste"
@ -114,14 +118,6 @@ msgstr ""
msgid "%q must be %d-%d"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr "%q doit être compris entre 0 et 255"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr "%q doit être compris entre 1 et 255"
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr ""
@ -138,10 +134,6 @@ msgstr "%q doit être >= 0"
msgid "%q must be >= 1"
msgstr "%q doit être >= 1"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr ""
#: py/argcheck.c
msgid "%q must be a string"
msgstr "%q doit être une chaîne de caractères"
@ -179,6 +171,10 @@ msgstr "%q doit être un chiffre entier (int)"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() prend %d paramètres positionnels mais %d ont été donnés"
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -329,6 +325,10 @@ msgstr "'yield from' dans une fonction async"
msgid "'yield' outside function"
msgstr "'yield' dehors d'une fonction"
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr "*x doit être la cible de l'assignement"
@ -504,6 +504,10 @@ msgstr ""
"Tentative d'allocation à la pile quand la Machine Virtuelle n'est pas en "
"exécution."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr "AuthMode.OPEN n'est pas utilisé avec un mot de passe"
@ -1224,11 +1228,6 @@ msgstr "L'entrée prend trop de temps"
msgid "Input/output error"
msgstr "Erreur d'entrée/sortie"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1261,6 +1260,10 @@ msgstr "Authentification insuffisante"
msgid "Insufficient encryption"
msgstr "Chiffrement insuffisant"
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr "Erreur de définition interne"
@ -1270,7 +1273,7 @@ msgstr "Erreur de définition interne"
msgid "Internal error #%d"
msgstr "Erreur interne #%d"
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr "%q invalide"
@ -1551,6 +1554,16 @@ msgstr "first_out_pin manquant. Instruction %d écrit un/des broche(s)"
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr "first_set_pin manquant. L'instruction %d règle la/les broche(s)"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "Doit être une sous-classe de %q."
@ -1935,25 +1948,6 @@ msgstr "Ainsi que tout autres modules présents sur le système de fichiers\n"
msgid "Polygon needs at least 3 points"
msgstr "Polygon a besoin dau moins 3 points"
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
"Ce port n'accepte pas de PWM carrier. Précisez plutôt les valeurs pin, "
"frequency et duty_cycle"
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
"Ce port n'accepte pas de broches ou de fréquence. Construisez plutôt en "
"passant un PWMOut Carrier"
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr "Le tampon de préfixe doit être sur la pile"
@ -2143,7 +2137,6 @@ msgid "Size not supported"
msgstr "Taille n'est pas supportée"
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr ""
@ -2606,7 +2599,7 @@ msgid "argument name reused"
msgstr ""
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr "Nombre/types de paramètres ne correspondent pas"
@ -3183,6 +3176,10 @@ msgstr "f-string : single '}' n'est pas autorisé"
msgid "file must be a file opened in byte mode"
msgstr "le fichier doit être un fichier ouvert en mode 'byte'"
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr "le system de fichier doit fournir une méthode 'mount'"
@ -3471,6 +3468,10 @@ msgstr "taille d'élément %d est invalide pour bits_per_pixel %d\n"
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr "element_size %d est invalide, doit être 1, 2 ou 4"
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr "format invalide"
@ -3508,6 +3509,10 @@ msgstr "syntaxe invalide pour un entier de base %d"
msgid "invalid syntax for number"
msgstr "syntaxe invalide pour un nombre"
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "l'argument 1 de issubclass() doit être une classe"
@ -3708,10 +3713,6 @@ msgstr "pas de carte SD"
msgid "no active exception to reraise"
msgstr "aucune exception active à relever"
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr "adapteur réseau non disponible"
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr "pas de lien trouvé pour nonlocal"
@ -4011,6 +4012,10 @@ msgstr "pow() avec 3 arguments nécessite des entiers"
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4211,7 +4216,7 @@ msgstr "stop doit être 1 ou 2"
msgid "stop not reachable from start"
msgstr "stop n'est pas accessible au démarrage"
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr "opération de flux non supportée"
@ -4421,7 +4426,7 @@ msgid "unreadable attribute"
msgstr "attribut illisible"
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr "type %q non pris on charge"
@ -4542,6 +4547,29 @@ msgstr "zi doit être de type float"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi doit être de forme (n_section, 2)"
#~ msgid "%q must be 0-255"
#~ msgstr "%q doit être compris entre 0 et 255"
#~ msgid "%q must be 1-255"
#~ msgstr "%q doit être compris entre 1 et 255"
#~ msgid "no available NIC"
#~ msgstr "adapteur réseau non disponible"
#~ msgid ""
#~ "Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
#~ "instead"
#~ msgstr ""
#~ "Ce port n'accepte pas de PWM carrier. Précisez plutôt les valeurs pin, "
#~ "frequency et duty_cycle"
#~ msgid ""
#~ "Port does not accept pins or frequency. Construct and pass a PWMOut "
#~ "Carrier instead"
#~ msgstr ""
#~ "Ce port n'accepte pas de broches ou de fréquence. Construisez plutôt en "
#~ "passant un PWMOut Carrier"
#~ msgid "Instruction %d jumps on pin"
#~ msgstr "Instruction %d saute sur la broche"

View File

@ -91,6 +91,10 @@ msgstr ""
msgid "%q length must be %q"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr ""
@ -103,14 +107,6 @@ msgstr ""
msgid "%q must be %d-%d"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr ""
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr ""
@ -127,10 +123,6 @@ msgstr ""
msgid "%q must be >= 1"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr ""
#: py/argcheck.c
msgid "%q must be a string"
msgstr ""
@ -168,6 +160,10 @@ msgstr ""
msgid "%q() takes %d positional arguments but %d were given"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -318,6 +314,10 @@ msgstr ""
msgid "'yield' outside function"
msgstr ""
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr ""
@ -489,6 +489,10 @@ msgstr ""
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr ""
@ -1185,11 +1189,6 @@ msgstr ""
msgid "Input/output error"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1218,6 +1217,10 @@ msgstr ""
msgid "Insufficient encryption"
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr ""
@ -1227,7 +1230,7 @@ msgstr ""
msgid "Internal error #%d"
msgstr ""
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr ""
@ -1506,6 +1509,16 @@ msgstr ""
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
@ -1877,21 +1890,6 @@ msgstr ""
msgid "Polygon needs at least 3 points"
msgstr ""
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr ""
@ -2078,7 +2076,6 @@ msgid "Size not supported"
msgstr ""
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr ""
@ -2525,7 +2522,7 @@ msgid "argument name reused"
msgstr ""
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr ""
@ -3089,6 +3086,10 @@ msgstr ""
msgid "file must be a file opened in byte mode"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr ""
@ -3376,6 +3377,10 @@ msgstr ""
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr ""
@ -3413,6 +3418,10 @@ msgstr ""
msgid "invalid syntax for number"
msgstr ""
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr ""
@ -3609,10 +3618,6 @@ msgstr ""
msgid "no active exception to reraise"
msgstr ""
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr ""
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr ""
@ -3907,6 +3912,10 @@ msgstr ""
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4105,7 +4114,7 @@ msgstr ""
msgid "stop not reachable from start"
msgstr ""
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr ""
@ -4314,7 +4323,7 @@ msgid "unreadable attribute"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr ""

View File

@ -100,6 +100,10 @@ msgstr "gli indici %q devono essere interi, non %s"
msgid "%q length must be %q"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr "lista %q deve essere una lista"
@ -112,14 +116,6 @@ msgstr ""
msgid "%q must be %d-%d"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr ""
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr ""
@ -137,10 +133,6 @@ msgstr "%q deve essere >= 0"
msgid "%q must be >= 1"
msgstr "slice del buffer devono essere della stessa lunghezza"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr ""
#: py/argcheck.c
msgid "%q must be a string"
msgstr ""
@ -178,6 +170,10 @@ msgstr "%q dovrebbe essere un int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() prende %d argomenti posizionali ma ne sono stati forniti %d"
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -329,6 +325,10 @@ msgstr "'yield from' è nella funzione sincronizzazione"
msgid "'yield' outside function"
msgstr "'yield' al di fuori della funzione"
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr "*x deve essere il bersaglio del assegnamento"
@ -501,6 +501,10 @@ msgstr "Provo ad allocare %d blocchi"
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr ""
@ -1209,11 +1213,6 @@ msgstr ""
msgid "Input/output error"
msgstr "Errore input/output"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1242,6 +1241,10 @@ msgstr ""
msgid "Insufficient encryption"
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr ""
@ -1251,7 +1254,7 @@ msgstr ""
msgid "Internal error #%d"
msgstr ""
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr ""
@ -1534,6 +1537,16 @@ msgstr ""
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
@ -1915,21 +1928,6 @@ msgstr "Imposssibile rimontare il filesystem"
msgid "Polygon needs at least 3 points"
msgstr ""
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr ""
@ -2119,7 +2117,6 @@ msgid "Size not supported"
msgstr ""
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr ""
@ -2568,7 +2565,7 @@ msgid "argument name reused"
msgstr ""
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr "discrepanza di numero/tipo di argomenti"
@ -3142,6 +3139,10 @@ msgstr ""
msgid "file must be a file opened in byte mode"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr "il filesystem deve fornire un metodo di mount"
@ -3430,6 +3431,10 @@ msgstr ""
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr "formato non valido"
@ -3467,6 +3472,10 @@ msgstr "sintassi invalida per l'intero con base %d"
msgid "invalid syntax for number"
msgstr "sintassi invalida per il numero"
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "il primo argomento di issubclass() deve essere una classe"
@ -3668,11 +3677,6 @@ msgstr ""
msgid "no active exception to reraise"
msgstr "nessuna eccezione attiva da rilanciare"
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
#, fuzzy
msgid "no available NIC"
msgstr "busio.UART non ancora implementato"
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr "nessun binding per nonlocal trovato"
@ -3973,6 +3977,10 @@ msgstr "pow() con 3 argomenti richiede interi"
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4174,7 +4182,7 @@ msgstr ""
msgid "stop not reachable from start"
msgstr "stop non raggiungibile dall'inizio"
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr "operazione di stream non supportata"
@ -4384,7 +4392,7 @@ msgid "unreadable attribute"
msgstr "attributo non leggibile"
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr "tipo di %q non supportato"
@ -4507,6 +4515,10 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#, fuzzy
#~ msgid "no available NIC"
#~ msgstr "busio.UART non ancora implementato"
#~ msgid "Buffer too large and unable to allocate"
#~ msgstr "Buffer troppo grande ed impossibile allocare"

View File

@ -96,6 +96,10 @@ msgstr ""
msgid "%q length must be %q"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr "%q リストはリストでなければなりません"
@ -108,14 +112,6 @@ msgstr ""
msgid "%q must be %d-%d"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr ""
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr ""
@ -132,10 +128,6 @@ msgstr "%qは0以上でなければなりません"
msgid "%q must be >= 1"
msgstr "%qは1以上でなければなりません"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr ""
#: py/argcheck.c
msgid "%q must be a string"
msgstr ""
@ -173,6 +165,10 @@ msgstr "%qはint型でなければなりません"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() は %d 個の位置引数を取りますが、%d 個与えられました"
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -323,6 +319,10 @@ msgstr ""
msgid "'yield' outside function"
msgstr "関数外でのyield"
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr "*xは代入先でなければなりません"
@ -494,6 +494,10 @@ msgstr "%d個のブロックの確保を試みました"
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr ""
@ -1196,11 +1200,6 @@ msgstr ""
msgid "Input/output error"
msgstr "入力/出力エラー"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1229,6 +1228,10 @@ msgstr "認証が不十分"
msgid "Insufficient encryption"
msgstr "暗号化が不十分"
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr "内部定義エラー"
@ -1238,7 +1241,7 @@ msgstr "内部定義エラー"
msgid "Internal error #%d"
msgstr "内部エラー #%d"
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr "不正な %q"
@ -1517,6 +1520,16 @@ msgstr ""
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "%q のサブクラスでなければなりません"
@ -1891,21 +1904,6 @@ msgstr ""
msgid "Polygon needs at least 3 points"
msgstr "ポリゴンには少なくとも3つの点が必要"
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr "Prefixバッファはヒープ上になければなりません"
@ -2092,7 +2090,6 @@ msgid "Size not supported"
msgstr "サイズは対応していません"
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr ""
@ -2540,7 +2537,7 @@ msgid "argument name reused"
msgstr ""
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr ""
@ -3108,6 +3105,10 @@ msgstr "f-string: 1つだけの'}'は許されません"
msgid "file must be a file opened in byte mode"
msgstr "fileはバイトモードで開かれたファイルでなければなりません"
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr "filesystemはmountメソッドを提供しなければなりません"
@ -3396,6 +3397,10 @@ msgstr ""
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr ""
@ -3433,6 +3438,10 @@ msgstr ""
msgid "invalid syntax for number"
msgstr "数字として不正な構文"
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass()の第1引数はクラスでなければなりません"
@ -3629,10 +3638,6 @@ msgstr "SDカードがありません"
msgid "no active exception to reraise"
msgstr ""
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr "利用可能なNICがありません"
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr "nonlocalの対象が見つかりません"
@ -3929,6 +3934,10 @@ msgstr "pow()の第3引数には整数が必要"
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4128,7 +4137,7 @@ msgstr "stopは1または2のいずれか"
msgid "stop not reachable from start"
msgstr ""
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr "ストリーム操作は非対応"
@ -4337,7 +4346,7 @@ msgid "unreadable attribute"
msgstr "読み込み不可能な属性"
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr "非対応の型 %q"
@ -4458,6 +4467,9 @@ msgstr "ziはfloat値でなければなりません"
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "no available NIC"
#~ msgstr "利用可能なNICがありません"
#~ msgid "Buffer too large and unable to allocate"
#~ msgstr "バッファが大きすぎて確保できません"

View File

@ -92,6 +92,10 @@ msgstr "%q 인덱스는 %s 가 아닌 정수 여야합니다"
msgid "%q length must be %q"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr ""
@ -104,14 +108,6 @@ msgstr ""
msgid "%q must be %d-%d"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr ""
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr ""
@ -128,10 +124,6 @@ msgstr ""
msgid "%q must be >= 1"
msgstr "%q 는 >=1이어야합니다"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr ""
#: py/argcheck.c
msgid "%q must be a string"
msgstr ""
@ -169,6 +161,10 @@ msgstr "%q 는 정수(int) 여야합니다"
msgid "%q() takes %d positional arguments but %d were given"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -319,6 +315,10 @@ msgstr ""
msgid "'yield' outside function"
msgstr "'yield' 는 함수 외부에 존재합니다"
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr ""
@ -490,6 +490,10 @@ msgstr ""
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr ""
@ -1188,11 +1192,6 @@ msgstr ""
msgid "Input/output error"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1221,6 +1220,10 @@ msgstr ""
msgid "Insufficient encryption"
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr ""
@ -1230,7 +1233,7 @@ msgstr ""
msgid "Internal error #%d"
msgstr ""
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr ""
@ -1509,6 +1512,16 @@ msgstr ""
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
@ -1880,21 +1893,6 @@ msgstr ""
msgid "Polygon needs at least 3 points"
msgstr ""
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr ""
@ -2081,7 +2079,6 @@ msgid "Size not supported"
msgstr ""
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr ""
@ -2529,7 +2526,7 @@ msgid "argument name reused"
msgstr ""
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr ""
@ -3093,6 +3090,10 @@ msgstr ""
msgid "file must be a file opened in byte mode"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr ""
@ -3380,6 +3381,10 @@ msgstr ""
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr "형식가 유효하지 않습니다"
@ -3417,6 +3422,10 @@ msgstr "구문(syntax)가 정수가 유효하지 않습니다"
msgid "invalid syntax for number"
msgstr "숫자에 대한 구문(syntax)가 유효하지 않습니다"
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr ""
@ -3613,10 +3622,6 @@ msgstr ""
msgid "no active exception to reraise"
msgstr ""
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr ""
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr ""
@ -3911,6 +3916,10 @@ msgstr ""
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4109,7 +4118,7 @@ msgstr ""
msgid "stop not reachable from start"
msgstr ""
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr ""
@ -4318,7 +4327,7 @@ msgid "unreadable attribute"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr ""

View File

@ -94,6 +94,10 @@ msgstr "%q indexen moeten integers zijn, niet %s"
msgid "%q length must be %q"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr "%q lijst moet een lijst zijn"
@ -106,14 +110,6 @@ msgstr ""
msgid "%q must be %d-%d"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr ""
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr ""
@ -130,10 +126,6 @@ msgstr "%q moet >= 0 zijn"
msgid "%q must be >= 1"
msgstr "%q moet >= 1 zijn"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr ""
#: py/argcheck.c
msgid "%q must be a string"
msgstr ""
@ -171,6 +163,10 @@ msgstr "%q moet een int zijn"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() verwacht %d positionele argumenten maar kreeg %d"
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -321,6 +317,10 @@ msgstr "'yield from' binnen asynchrone functie"
msgid "'yield' outside function"
msgstr "'yield' buiten de functie"
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr "*x moet een assignment target zijn"
@ -492,6 +492,10 @@ msgstr "Poging om %d blokken toe te wijzen"
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr ""
@ -1197,11 +1201,6 @@ msgstr "Invoer duurt te lang"
msgid "Input/output error"
msgstr "Input/Output fout"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1230,6 +1229,10 @@ msgstr "Onvoldoende authenticatie"
msgid "Insufficient encryption"
msgstr "Onvoldoende encryptie"
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr "Interne define fout"
@ -1239,7 +1242,7 @@ msgstr "Interne define fout"
msgid "Internal error #%d"
msgstr "Interne fout #%d"
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr "Ongeldige %q"
@ -1518,6 +1521,16 @@ msgstr ""
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "%q moet een subklasse zijn."
@ -1901,25 +1914,6 @@ msgstr "En iedere module in het bestandssysteem\n"
msgid "Polygon needs at least 3 points"
msgstr "Polygon heeft op zijn minst 3 punten nodig"
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
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
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
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"
msgstr "Prefix buffer moet op de heap zijn"
@ -2108,7 +2102,6 @@ msgid "Size not supported"
msgstr "Afmeting niet ondersteund"
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr ""
@ -2566,7 +2559,7 @@ msgid "argument name reused"
msgstr ""
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr "argument num/typen komen niet overeen"
@ -3134,6 +3127,10 @@ msgstr "f-string: enkele '}' is niet toegestaan"
msgid "file must be a file opened in byte mode"
msgstr "bestand moet een bestand zijn geopend in byte modus"
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr "bestandssysteem moet een mount methode bieden"
@ -3422,6 +3419,10 @@ msgstr ""
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr "ongeldig formaat"
@ -3459,6 +3460,10 @@ msgstr "ongeldige syntax voor integer met grondtal %d"
msgid "invalid syntax for number"
msgstr "ongeldige syntax voor nummer"
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() argument 1 moet een klasse zijn"
@ -3658,10 +3663,6 @@ msgstr "geen SD kaart"
msgid "no active exception to reraise"
msgstr "geen actieve uitzondering om opnieuw op te werpen (raise)"
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr "geen netwerkadapter (NIC) beschikbaar"
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr "geen binding voor nonlocal gevonden"
@ -3957,6 +3958,10 @@ msgstr "pow() met 3 argumenten vereist integers"
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4157,7 +4162,7 @@ msgstr "stop moet 1 of 2 zijn"
msgid "stop not reachable from start"
msgstr "stop is niet bereikbaar vanaf start"
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr "stream operatie niet ondersteund"
@ -4366,7 +4371,7 @@ msgid "unreadable attribute"
msgstr "onleesbaar attribuut"
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr "niet ondersteund %q type"
@ -4487,6 +4492,23 @@ msgstr "zi moet van type float zijn"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi moet vorm (n_section, 2) hebben"
#~ msgid "no available NIC"
#~ msgstr "geen netwerkadapter (NIC) beschikbaar"
#~ 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"
#~ 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"
#~ msgid "Buffer too large and unable to allocate"
#~ msgstr "Buffer is te groot en niet in staat te alloceren"

View File

@ -96,6 +96,10 @@ msgstr "%q indeks musi być liczbą całkowitą, a nie %s"
msgid "%q length must be %q"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr ""
@ -108,14 +112,6 @@ msgstr ""
msgid "%q must be %d-%d"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr ""
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr ""
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr ""
@ -132,10 +128,6 @@ msgstr "%q musi być >= 0"
msgid "%q must be >= 1"
msgstr "%q musi być >= 1"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr ""
#: py/argcheck.c
msgid "%q must be a string"
msgstr ""
@ -173,6 +165,10 @@ msgstr "%q powinno być typu int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() bierze %d argumentów pozycyjnych, lecz podano %d"
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -323,6 +319,10 @@ msgstr "'yield from' wewnątrz funkcji asynchronicznej"
msgid "'yield' outside function"
msgstr "'yield' poza funkcją"
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr "*x musi być obiektem przypisania"
@ -494,6 +494,10 @@ msgstr "Próba przydzielenia %d bloków"
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr ""
@ -1196,11 +1200,6 @@ msgstr ""
msgid "Input/output error"
msgstr "Błąd I/O"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1229,6 +1228,10 @@ msgstr "Niewystarczające uwierzytelnienie"
msgid "Insufficient encryption"
msgstr "Niewystarczające szyfrowanie"
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr ""
@ -1238,7 +1241,7 @@ msgstr ""
msgid "Internal error #%d"
msgstr "Błąd wewnętrzny #%d"
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr "Nieprawidłowe %q"
@ -1517,6 +1520,16 @@ msgstr ""
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
@ -1888,21 +1901,6 @@ msgstr "Oraz moduły w systemie plików\n"
msgid "Polygon needs at least 3 points"
msgstr "Wielokąt musi mieć co najmniej 3 punkty"
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr ""
@ -2089,7 +2087,6 @@ msgid "Size not supported"
msgstr ""
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr ""
@ -2542,7 +2539,7 @@ msgid "argument name reused"
msgstr ""
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr "zła liczba lub typ argumentów"
@ -3107,6 +3104,10 @@ msgstr ""
msgid "file must be a file opened in byte mode"
msgstr "file musi być otwarte w trybie bajtowym"
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr "system plików musi mieć metodę mount"
@ -3394,6 +3395,10 @@ msgstr ""
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr ""
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr "zły format"
@ -3431,6 +3436,10 @@ msgstr "zła składnia dla liczby całkowitej w bazie %d"
msgid "invalid syntax for number"
msgstr "zła składnia dla liczby"
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "argument 1 dla issubclass() musi być klasą"
@ -3627,10 +3636,6 @@ msgstr ""
msgid "no active exception to reraise"
msgstr "brak wyjątku do ponownego rzucenia"
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr "brak wolnego NIC"
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr "brak wiązania dla zmiennej nielokalnej"
@ -3926,6 +3931,10 @@ msgstr "trzyargumentowe pow() wymaga liczb całkowitych"
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4125,7 +4134,7 @@ msgstr "stop musi być 1 lub 2"
msgid "stop not reachable from start"
msgstr "stop nie jest osiągalne ze start"
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr "operacja na strumieniu nieobsługiwana"
@ -4334,7 +4343,7 @@ msgid "unreadable attribute"
msgstr "nieczytelny atrybut"
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr "zły typ %q"
@ -4455,6 +4464,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "no available NIC"
#~ msgstr "brak wolnego NIC"
#~ msgid "Buffer too large and unable to allocate"
#~ msgstr "Bufor jest zbyt duży i nie można go przydzielić"

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-07-24 15:35+0000\n"
"PO-Revision-Date: 2021-08-13 12:33+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.7.2-dev\n"
"X-Generator: Weblate 4.8-dev\n"
#: main.c
msgid ""
@ -100,6 +100,10 @@ msgstr "Os índices %q devem ser inteiros, e não %s"
msgid "%q length must be %q"
msgstr "o comprimento %q deve ser %q"
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr "A lista %q deve ser uma lista"
@ -112,14 +116,6 @@ msgstr "o %q deve ser <= %d"
msgid "%q must be %d-%d"
msgstr "o %q deve ser %d-%d"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr "%q deve ser entre 0-255"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr "%q deve ser 1-255"
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr "o %q deve ser >= %d"
@ -136,10 +132,6 @@ msgstr "%q deve ser >= 0"
msgid "%q must be >= 1"
msgstr "%q deve ser >= 1"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr "%q deve ser None ou entre 1 e len(report_descriptor)-1"
#: py/argcheck.c
msgid "%q must be a string"
msgstr "%q deve ser uma string"
@ -177,6 +169,10 @@ msgstr "%q deve ser um int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() recebe %d argumentos posicionais, porém %d foram informados"
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -331,6 +327,10 @@ msgstr "'yield a partir' de dentro da função async"
msgid "'yield' outside function"
msgstr "função externa 'yield'"
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr "(x,y) é obrigatório o uso de números inteiros"
#: py/compile.c
msgid "*x must be assignment target"
msgstr "*x deve ser o destino da atribuição"
@ -503,6 +503,10 @@ msgid "Attempted heap allocation when VM not running."
msgstr ""
"Tentativa de alocação das pilhas quando o VM não estiver em funcionamento."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr "A conversão de áudio ainda não foi implementada"
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr "O AuthMode.OPEN não é usado com senha"
@ -1219,11 +1223,6 @@ msgstr "A entrada está demorando demais"
msgid "Input/output error"
msgstr "Erro de entrada/saída"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr "Falta o jmp_pin. A instrução %d salta no pino"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1252,6 +1251,10 @@ msgstr "Autenticação insuficiente"
msgid "Insufficient encryption"
msgstr "Criptografia insuficiente"
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr "O buffer interno de áudio é muito pequeno"
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr "Erro interno de definição"
@ -1261,7 +1264,7 @@ msgstr "Erro interno de definição"
msgid "Internal error #%d"
msgstr "Erro interno #%d"
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr "%q Inválido"
@ -1540,6 +1543,16 @@ msgstr "Faltando first_out_pin. A instrução %d escreve nos pinos(s)"
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr "Faltando first_set_pin. A instrução %d define os pinos(s)"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr "Falta o jmp_pin. A instrução %d salta no pino"
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "Deve ser uma subclasse %q."
@ -1925,25 +1938,6 @@ msgstr "Além de quaisquer módulos no sistema de arquivos\n"
msgid "Polygon needs at least 3 points"
msgstr "O Polígono precisa de pelo menos 3 pontos"
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
"A porta não aceita portadora PWM. Em vez disso informe um pino, frequência e "
"o ciclo de trabalho"
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
"A porta não aceita pinos ou frequência. Em vez disso, construa e passe um "
"PWMOut Carrier"
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr ""
@ -2136,7 +2130,6 @@ msgid "Size not supported"
msgstr "O tamanho não é suportado"
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr "Sleep memory não está disponível"
@ -2609,7 +2602,7 @@ msgid "argument name reused"
msgstr "nome do argumento reutilizado"
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr "o argumento num/tipos não combinam"
@ -3182,6 +3175,10 @@ msgstr "f-string: um único '}' não é permitido"
msgid "file must be a file opened in byte mode"
msgstr "o arquivo deve ser um arquivo aberto no modo byte"
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr "a gravação de arquivos não está disponível"
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr "sistema de arquivos deve fornecer método de montagem"
@ -3470,6 +3467,10 @@ msgstr "tamanho do elemento %d é inválido para bits_per_pixel %d\n"
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr "element_size %d é inválido, deve ser, 1, 2, ou 4"
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr "exceção inválida"
#: extmod/modframebuf.c
msgid "invalid format"
msgstr "formato inválido"
@ -3507,6 +3508,10 @@ msgstr "sintaxe inválida para o número inteiro com base %d"
msgid "invalid syntax for number"
msgstr "sintaxe inválida para o número"
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr "rastreamento inválido"
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() arg 1 deve ser uma classe"
@ -3708,10 +3713,6 @@ msgstr "nenhum cartão SD"
msgid "no active exception to reraise"
msgstr "nenhuma exceção ativa para reraise"
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr "não há uma Placa de Rede disponível"
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr "nenhuma ligação para nonlocal foi encontrada"
@ -4011,6 +4012,10 @@ msgstr "o pow() com 3 argumentos requer números inteiros"
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4211,7 +4216,7 @@ msgstr "o stop deve ser 1 ou 2"
msgid "stop not reachable from start"
msgstr "stop não está acessível a partir do início"
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr "a operação do fluxo não é compatível"
@ -4420,7 +4425,7 @@ msgid "unreadable attribute"
msgstr "atributo ilegível"
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr "tipo %q não suportado"
@ -4541,6 +4546,35 @@ msgstr "zi deve ser de um tipo float"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi deve estar na forma (n_section, 2)"
#~ msgid "%q must be 0-255"
#~ msgstr "%q deve ser entre 0-255"
#~ msgid "%q must be 1-255"
#~ msgstr "%q deve ser 1-255"
#~ msgid "%q must be None or between 1 and len(report_descriptor)-1"
#~ msgstr "%q deve ser None ou entre 1 e len(report_descriptor)-1"
#~ msgid "limit should be an int"
#~ msgstr "o limite deve ser um inteiro"
#~ msgid "no available NIC"
#~ msgstr "não há uma Placa de Rede disponível"
#~ msgid ""
#~ "Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
#~ "instead"
#~ msgstr ""
#~ "A porta não aceita portadora PWM. Em vez disso informe um pino, "
#~ "frequência e o ciclo de trabalho"
#~ msgid ""
#~ "Port does not accept pins or frequency. Construct and pass a PWMOut "
#~ "Carrier instead"
#~ msgstr ""
#~ "A porta não aceita pinos ou frequência. Em vez disso, construa e passe um "
#~ "PWMOut Carrier"
#~ msgid "Instruction %d jumps on pin"
#~ msgstr "A instrução %d salta no pino"

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-07-24 15:35+0000\n"
"PO-Revision-Date: 2021-08-18 21:35+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.7.2-dev\n"
"X-Generator: Weblate 4.8-dev\n"
#: main.c
msgid ""
@ -99,6 +99,10 @@ msgstr "Indexet %q måste vara ett heltal, inte %s"
msgid "%q length must be %q"
msgstr "längden på %q måste vara %q"
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr "längden på %q måste vara >= 1"
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr "%q-listan måste vara en lista"
@ -111,14 +115,6 @@ msgstr "%q måste vara <=%d"
msgid "%q must be %d-%d"
msgstr "%q måste vara %d-%d"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr "%q måste vara 0-255"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr "%q måste vara 1-255"
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr "%q måste vara >= %d"
@ -135,10 +131,6 @@ msgstr "%q måste vara >= 0"
msgid "%q must be >= 1"
msgstr "%q måste vara >= 1"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr "%q måste vara None eller mellan 1 och len(report_descriptor)-1"
#: py/argcheck.c
msgid "%q must be a string"
msgstr "%q måste vara en sträng"
@ -176,6 +168,10 @@ msgstr "%q ska vara en int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "% q () tar% d positionsargument men% d gavs"
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr "%q, %q och %q måste vara lika långa"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -326,6 +322,10 @@ msgstr "'yield from' i async-funktion"
msgid "'yield' outside function"
msgstr "'yield' utanför funktion"
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr "(x,y) heltal krävs"
#: py/compile.c
msgid "*x must be assignment target"
msgstr "*x måste vara mål för tilldelning"
@ -497,6 +497,10 @@ msgstr "Försök att tilldela %d block"
msgid "Attempted heap allocation when VM not running."
msgstr "Försök till heap-allokering när den virtuella maskinen inte är igång."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr "Ljudkonvertering inte implementerad"
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr "AuthMode.OPEN används inte med lösenord"
@ -1204,11 +1208,6 @@ msgstr "Indata tar för lång tid"
msgid "Input/output error"
msgstr "Indata-/utdatafel"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr "Saknar jmp_pin. Instruktion %d hoppar på pin"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1237,6 +1236,10 @@ msgstr "Otillräcklig autentisering"
msgid "Insufficient encryption"
msgstr "Otillräcklig kryptering"
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr "Intern ljudbuffert för liten"
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr "Internt define-fel"
@ -1246,7 +1249,7 @@ msgstr "Internt define-fel"
msgid "Internal error #%d"
msgstr "Internt fel #%d"
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr "Ogiltig %q"
@ -1526,6 +1529,16 @@ msgstr "Saknad first_out_pin. Instruktion %d skriver till pinnar"
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr "Saknad first_set_pin. Instruktion %d sätter pinnar"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr "Saknar jmp_pin. Instruktion %d hoppar på pin"
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr "Fler än %d rapport-id stöds inte"
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "Måste vara en %q-subklass."
@ -1907,25 +1920,6 @@ msgstr "Plus eventuella moduler i filsystemet\n"
msgid "Polygon needs at least 3 points"
msgstr "Polygonen behöver minst 3 punkter"
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr ""
"Port accepterar inte PWM carrier. Ange pinne frekvens och arbetscykel "
"istället"
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
"Porten accepterar inte pinne eller frekvens. Skapa och skicka en PWMOut "
"Carrier istället"
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr "Prefixbufferten måste finnas på heap"
@ -2114,7 +2108,6 @@ msgid "Size not supported"
msgstr "Storleken stöds inte"
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr "Sömnminne inte tillgängligt"
@ -2579,7 +2572,7 @@ msgid "argument name reused"
msgstr "argumentnamn återanvänt"
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr "argument antal/typ matchar inte"
@ -3148,6 +3141,10 @@ msgstr "f-string: singel '}' är inte tillåten"
msgid "file must be a file opened in byte mode"
msgstr "filen måste vara en fil som öppnats i byte-läge"
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr "Filskrivning är inte tillgängligt"
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr "filsystemet måste tillhandahålla mount-metod"
@ -3435,6 +3432,10 @@ msgstr "ogiltig elementstorlek %d för bits_per_pixel %d\n"
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr "ogiltig element_size %d, måste vara, 1, 2 eller 4"
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr "Ogiltig exception"
#: extmod/modframebuf.c
msgid "invalid format"
msgstr "ogiltigt format"
@ -3472,6 +3473,10 @@ msgstr "ogiltig syntax för heltal med bas %d"
msgid "invalid syntax for number"
msgstr "ogiltig syntax för tal"
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr "Ogilitig källspårning"
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() arg 1 måste vara en klass"
@ -3671,10 +3676,6 @@ msgstr "inget SD-kort"
msgid "no active exception to reraise"
msgstr "ingen aktiv exception för reraise"
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr "ingen tillgänglig NIC"
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr "ingen bindning för ickelokal hittad"
@ -3970,6 +3971,10 @@ msgstr "pow() med 3 argument kräver heltal"
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4170,7 +4175,7 @@ msgstr "stop måste vara 1 eller 2"
msgid "stop not reachable from start"
msgstr "stop kan inte nås från start"
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr "stream-åtgärd stöds inte"
@ -4379,7 +4384,7 @@ msgid "unreadable attribute"
msgstr "attribut kan inte läsas"
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr "typ %q stöds inte"
@ -4500,6 +4505,35 @@ msgstr "zi måste vara av typ float"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi måste vara i formen (n_section, 2)"
#~ msgid "%q must be 0-255"
#~ msgstr "%q måste vara 0-255"
#~ msgid "%q must be 1-255"
#~ msgstr "%q måste vara 1-255"
#~ msgid "%q must be None or between 1 and len(report_descriptor)-1"
#~ msgstr "%q måste vara None eller mellan 1 och len(report_descriptor)-1"
#~ msgid "limit should be an int"
#~ msgstr "limit måste vara en int"
#~ msgid "no available NIC"
#~ msgstr "ingen tillgänglig NIC"
#~ msgid ""
#~ "Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
#~ "instead"
#~ msgstr ""
#~ "Port accepterar inte PWM carrier. Ange pinne frekvens och arbetscykel "
#~ "istället"
#~ msgid ""
#~ "Port does not accept pins or frequency. Construct and pass a PWMOut "
#~ "Carrier instead"
#~ msgstr ""
#~ "Porten accepterar inte pinne eller frekvens. Skapa och skicka en PWMOut "
#~ "Carrier istället"
#~ msgid "Instruction %d jumps on pin"
#~ msgstr "Instruktion %d hoppar på pinne"

View File

@ -101,6 +101,10 @@ msgstr "%q suǒyǐn bìxū shì zhěngshù, ér bùshì %s"
msgid "%q length must be %q"
msgstr "%q cháng dù bì xū wéi %q"
#: shared-bindings/usb_hid/Device.c
msgid "%q length must be >= 1"
msgstr ""
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr "%q lièbiǎo bìxū shì lièbiǎo"
@ -113,14 +117,6 @@ msgstr "%q bì xū <= %d"
msgid "%q must be %d-%d"
msgstr "%q bì xū wéi %d-%d"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 0-255"
msgstr "%q bì xū wéi 0-255"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be 1-255"
msgstr "%q bì xū wéi 1-255"
#: py/argcheck.c
msgid "%q must be >= %d"
msgstr "%q bì xū >= %d"
@ -137,10 +133,6 @@ msgstr "%q Bìxū > = 0"
msgid "%q must be >= 1"
msgstr "%q bìxū dàyú huò děngyú 1"
#: shared-bindings/usb_hid/Device.c
msgid "%q must be None or between 1 and len(report_descriptor)-1"
msgstr "%q bì xū wéi wú huò zài 1 hé len(report_descriptor)-1 zhī jiān"
#: py/argcheck.c
msgid "%q must be a string"
msgstr "%q bì xū shì yí gè zì fú chuàn"
@ -178,6 +170,10 @@ msgstr "%q yīnggāi shì yīgè int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() cǎiyòng %d wèizhì cānshù, dàn gěi chū %d"
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
@ -328,6 +324,10 @@ msgstr "Yì bù hán shù zhōng de 'yield from'"
msgid "'yield' outside function"
msgstr "'yield' wàibù gōngnéng"
#: shared-module/vectorio/VectorShape.c
msgid "(x,y) integers required"
msgstr ""
#: py/compile.c
msgid "*x must be assignment target"
msgstr "*x bìxū shì rènwù mùbiāo"
@ -499,6 +499,10 @@ msgstr "cháng shì fēn pèi %d kuài"
msgid "Attempted heap allocation when VM not running."
msgstr "dāng VM bú yùn xíng shí, cháng shì duī fēn pèi."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
msgstr "AuthMode.OPEN wèi shǐ yòng mì mǎ"
@ -1207,11 +1211,6 @@ msgstr "Shūrù shíjiānguò zhǎng"
msgid "Input/output error"
msgstr "Shūrù/shūchū cuòwù"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
@ -1240,6 +1239,10 @@ msgstr "Rènzhèng bùzú"
msgid "Insufficient encryption"
msgstr "Jiāmì bùzú"
#: ports/raspberrypi/audio_dma.c
msgid "Internal audio buffer too small"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "Internal define error"
msgstr "Nèibù dìngyì cuòwù"
@ -1249,7 +1252,7 @@ msgstr "Nèibù dìngyì cuòwù"
msgid "Internal error #%d"
msgstr "nèi bù cuò wù #%d"
#: shared-bindings/sdioio/SDCard.c
#: shared-bindings/sdioio/SDCard.c shared-module/usb_hid/Device.c
msgid "Invalid %q"
msgstr "wú xiào %q"
@ -1529,6 +1532,16 @@ msgstr "xiān lòu chū yǐn jiǎo. zhǐ lìng %d xiě rù yǐn jiǎo"
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr "quē shǎo dì yī zǔ yǐn jiǎo. zhǐ lìng %d shè zhì yǐn jiǎo"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr ""
#: shared-module/usb_hid/Device.c
#, c-format
msgid "More than %d report ids not supported"
msgstr ""
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "Bìxū shì %q zi lèi."
@ -1909,22 +1922,6 @@ msgstr "Zài wénjiàn xìtǒng shàng tiānjiā rènhé mókuài\n"
msgid "Polygon needs at least 3 points"
msgstr "Duōbiānxíng zhìshǎo xūyào 3 diǎn"
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
"instead"
msgstr "Duānkǒu bù jiēshòu PWM zàibō. Tōngguò yǐn jiǎo, pínlǜ hé zhàn kōng bǐ"
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/pulseio/PulseOut.c
#: ports/stm/common-hal/pulseio/PulseOut.c
msgid ""
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
"instead"
msgstr ""
"Duānkǒu bù jiēshòu yǐn jiǎo huò pínlǜ. Gòuzào bìng chuándì PWMOut zàibō"
#: shared-bindings/_bleio/Adapter.c
msgid "Prefix buffer must be on the heap"
msgstr "Qiánzhuì huǎnchōng qū bìxū zài duī shàng"
@ -2113,7 +2110,6 @@ msgid "Size not supported"
msgstr "bù zhī chí dà xiǎo"
#: ports/raspberrypi/common-hal/alarm/SleepMemory.c
#: ports/stm/common-hal/alarm/SleepMemory.c
msgid "Sleep Memory not available"
msgstr "shuì mián jì yì bù kě yòng"
@ -2578,7 +2574,7 @@ msgid "argument name reused"
msgstr "chóng fù shǐ yòng de cān shù míng chēng"
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "argument num/types mismatch"
msgstr "cānshù biānhào/lèixíng bù pǐpèi"
@ -3148,6 +3144,10 @@ msgstr "f-string: bù yǔnxǔ shǐyòng dāngè '}'"
msgid "file must be a file opened in byte mode"
msgstr "wénjiàn bìxū shì zài zì jié móshì xià dǎkāi de wénjiàn"
#: shared-bindings/traceback/__init__.c
msgid "file write is not available"
msgstr ""
#: shared-bindings/storage/__init__.c
msgid "filesystem must provide mount method"
msgstr "wénjiàn xìtǒng bìxū tígōng guà zài fāngfǎ"
@ -3435,6 +3435,10 @@ msgstr "wú xiào yuán jiàn dà xiǎo %d wéi bits_per_pixel %d\n"
msgid "invalid element_size %d, must be, 1, 2, or 4"
msgstr "wú xiào element_size %d, bì xū shì, 1, 2, huò 4"
#: shared-bindings/traceback/__init__.c
msgid "invalid exception"
msgstr ""
#: extmod/modframebuf.c
msgid "invalid format"
msgstr "wúxiào géshì"
@ -3472,6 +3476,10 @@ msgstr "jīshù wèi %d de zhěng shǔ de yǔfǎ wúxiào"
msgid "invalid syntax for number"
msgstr "wúxiào de hàomǎ yǔfǎ"
#: py/objexcept.c shared-bindings/traceback/__init__.c
msgid "invalid traceback"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() cānshù 1 bìxū shì yīgè lèi"
@ -3669,10 +3677,6 @@ msgstr "méiyǒu SD kǎ"
msgid "no active exception to reraise"
msgstr "méiyǒu jīhuó de yìcháng lái chóngxīn píngjià"
#: shared-bindings/socket/__init__.c shared-module/network/__init__.c
msgid "no available NIC"
msgstr "méiyǒu kěyòng de NIC"
#: py/compile.c
msgid "no binding for nonlocal found"
msgstr "zhǎo bù dào fēi běndì de bǎng dìng"
@ -3967,6 +3971,10 @@ msgstr "pow() yǒu 3 cānshù xūyào zhěngshù"
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_m/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_ms/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_r/mpconfigboard.h
#: ports/esp32s2/boards/gravitech_cucumber_rs/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2_wroom/mpconfigboard.h
@ -4167,7 +4175,7 @@ msgstr "tíngzhǐ bìxū wèi 1 huò 2"
msgid "stop not reachable from start"
msgstr "tíngzhǐ wúfǎ cóng kāishǐ zhōng zhǎodào"
#: py/stream.c
#: py/stream.c shared-bindings/getpass/__init__.c
msgid "stream operation not supported"
msgstr "bù zhīchí liú cāozuò"
@ -4376,7 +4384,7 @@ msgid "unreadable attribute"
msgstr "bùkě dú shǔxìng"
#: shared-bindings/displayio/TileGrid.c shared-bindings/vectorio/VectorShape.c
#: shared-module/vectorio/Polygon.c
#: shared-module/vectorio/Polygon.c shared-module/vectorio/VectorShape.c
msgid "unsupported %q type"
msgstr "bù zhīchí %q lèixíng"
@ -4497,6 +4505,30 @@ msgstr "zi bìxū wèi fú diǎn xíng"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
#~ msgid "%q must be 0-255"
#~ msgstr "%q bì xū wéi 0-255"
#~ msgid "%q must be 1-255"
#~ msgstr "%q bì xū wéi 1-255"
#~ msgid "%q must be None or between 1 and len(report_descriptor)-1"
#~ msgstr "%q bì xū wéi wú huò zài 1 hé len(report_descriptor)-1 zhī jiān"
#~ msgid "no available NIC"
#~ msgstr "méiyǒu kěyòng de NIC"
#~ msgid ""
#~ "Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
#~ "instead"
#~ msgstr ""
#~ "Duānkǒu bù jiēshòu PWM zàibō. Tōngguò yǐn jiǎo, pínlǜ hé zhàn kōng bǐ"
#~ msgid ""
#~ "Port does not accept pins or frequency. Construct and pass a PWMOut "
#~ "Carrier instead"
#~ msgstr ""
#~ "Duānkǒu bù jiēshòu yǐn jiǎo huò pínlǜ. Gòuzào bìng chuándì PWMOut zàibō"
#~ msgid "Instruction %d jumps on pin"
#~ msgstr "zhǐ lìng %d zài yǐn jiǎo shàng tiào zhuǎn"

5
main.c
View File

@ -645,11 +645,13 @@ STATIC void __attribute__ ((noinline)) run_boot_py(safe_mode_t safe_mode) {
static const char * const boot_py_filenames[] = STRING_LIST("boot.py", "boot.txt");
bool skip_boot_output = false;
#ifdef CIRCUITPY_BOOT_OUTPUT_FILE
FIL file_pointer;
#endif
if (ok_to_run) {
#ifdef CIRCUITPY_BOOT_OUTPUT_FILE
FIL file_pointer;
boot_output_file = &file_pointer;
// Get the base filesystem.
@ -849,6 +851,7 @@ int __attribute__((used)) main(void) {
serial_init();
#if CIRCUITPY_BLEIO
supervisor_bluetooth_enable_workflow();
supervisor_start_bluetooth();
#endif

View File

@ -322,6 +322,12 @@ SRC_C += \
reset.c \
timer_handler.c \
# This is an OR because it filters to any 1s and then checks to see if it is not
# empty.
ifneq (,$(filter 1,$(CIRCUITPY_PWMIO) $(CIRCUITPY_AUDIOIO) $(CIRCUITPY_RGBMATRIX)))
SRC_C += shared_timers.c
endif
ifeq ($(CIRCUITPY_SDIOIO),1)
SRC_C += ports/atmel-samd/sd_mmc/sd_mmc.c
endif
@ -340,7 +346,7 @@ SRC_SHARED_MODULE_EXPANDED = $(addprefix shared-bindings/, $(SRC_SHARED_MODULE))
$(addprefix shared-module/, $(SRC_SHARED_MODULE_INTERNAL))
# There may be duplicates between SRC_COMMON_HAL_EXPANDED and SRC_SHARED_MODULE_EXPANDED,
# because a few modules have files both in common-hal/ and shared-modules/.
# because a few modules have files both in common-hal/ and shared-module/.
# Doing a $(sort ...) removes duplicates as part of sorting.
SRC_COMMON_HAL_SHARED_MODULE_EXPANDED = $(sort $(SRC_COMMON_HAL_EXPANDED) $(SRC_SHARED_MODULE_EXPANDED))

View File

@ -157,7 +157,13 @@ void audio_dma_load_next_block(audio_dma_t *dma) {
if (dma->loop) {
audiosample_reset_buffer(dma->sample, dma->single_channel_output, dma->audio_channel);
} else {
descriptor->DESCADDR.reg = 0;
if ((output_buffer_length == 0) && dma_transfer_status(SHARED_RX_CHANNEL) & 0x3) {
// Nothing further to read and previous buffer is finished.
audio_dma_stop(dma);
} else {
// Break descriptor chain.
descriptor->DESCADDR.reg = 0;
}
}
}
descriptor->BTCTRL.bit.VALID = true;
@ -214,21 +220,23 @@ audio_dma_result audio_dma_setup_playback(audio_dma_t *dma,
if (output_signed != samples_signed) {
output_spacing = 1;
max_buffer_length /= dma->spacing;
dma->first_buffer = (uint8_t *)m_realloc(dma->first_buffer, max_buffer_length);
if (dma->first_buffer == NULL) {
}
dma->first_buffer = (uint8_t *)m_realloc(dma->first_buffer, max_buffer_length);
if (dma->first_buffer == NULL) {
return AUDIO_DMA_MEMORY_ERROR;
}
dma->first_buffer_free = true;
if (!single_buffer) {
dma->second_buffer = (uint8_t *)m_realloc(dma->second_buffer, max_buffer_length);
if (dma->second_buffer == NULL) {
return AUDIO_DMA_MEMORY_ERROR;
}
dma->first_buffer_free = true;
if (!single_buffer) {
dma->second_buffer = (uint8_t *)m_realloc(dma->second_buffer, max_buffer_length);
if (dma->second_buffer == NULL) {
return AUDIO_DMA_MEMORY_ERROR;
}
}
dma->signed_to_unsigned = !output_signed && samples_signed;
dma->unsigned_to_signed = output_signed && !samples_signed;
}
dma->signed_to_unsigned = !output_signed && samples_signed;
dma->unsigned_to_signed = output_signed && !samples_signed;
dma->event_channel = 0xff;
if (!single_buffer) {
dma->second_descriptor = (DmacDescriptor *)m_malloc(sizeof(DmacDescriptor), false);
@ -265,13 +273,13 @@ audio_dma_result audio_dma_setup_playback(audio_dma_t *dma,
#ifdef SAM_D5X_E5X
int irq = dma->event_channel < 4 ? EVSYS_0_IRQn + dma->event_channel : EVSYS_4_IRQn;
// Only disable and clear on SAMD51 because the SAMD21 shares EVSYS with ticks.
NVIC_DisableIRQ(irq);
NVIC_ClearPendingIRQ(irq);
#else
int irq = EVSYS_IRQn;
#endif
NVIC_DisableIRQ(irq);
NVIC_ClearPendingIRQ(irq);
DmacDescriptor *first_descriptor = dma_descriptor(dma_channel);
setup_audio_descriptor(first_descriptor, dma->beat_size, output_spacing, output_register_address);
if (single_buffer) {
@ -366,7 +374,7 @@ STATIC void dma_callback_fun(void *arg) {
audio_dma_load_next_block(dma);
}
void evsyshandler_common(void) {
void audio_evsys_handler(void) {
for (uint8_t i = 0; i < AUDIO_DMA_CHANNEL_COUNT; i++) {
audio_dma_t *dma = audio_dma_state[i];
if (dma == NULL) {
@ -380,26 +388,4 @@ void evsyshandler_common(void) {
}
}
#ifdef SAM_D5X_E5X
void EVSYS_0_Handler(void) {
evsyshandler_common();
}
void EVSYS_1_Handler(void) {
evsyshandler_common();
}
void EVSYS_2_Handler(void) {
evsyshandler_common();
}
void EVSYS_3_Handler(void) {
evsyshandler_common();
}
void EVSYS_4_Handler(void) {
evsyshandler_common();
}
#else
void EVSYS_Handler(void) {
evsyshandler_common();
}
#endif
#endif

View File

@ -99,4 +99,6 @@ void audio_dma_background(void);
uint8_t find_sync_event_channel_raise(void);
void audio_evsys_handler(void);
#endif // MICROPY_INCLUDED_ATMEL_SAMD_AUDIO_DMA_H

View File

@ -2,6 +2,7 @@
#define MICROPY_HW_MCU_NAME "samd21e18"
#define MICROPY_HW_NEOPIXEL (&pin_PA15)
#define MICROPY_HW_NEOPIXEL_COUNT (2)
#define IGNORE_PIN_PA01 1
#define IGNORE_PIN_PA02 1

View File

@ -14,12 +14,16 @@ CIRCUITPY_FULL_BUILD = 0
CIRCUITPY_ANALOGIO = 0
CIRCUITPY_AUDIOCORE = 0
CIRCUITPY_BUSIO_SPI = 0
CIRCUITPY_BUSIO_UART = 0
CIRCUITPY_PULSEIO = 0
CIRCUITPY_PWMIO = 0
CIRCUITPY_ROTARYIO = 0
CIRCUITPY_RTC = 0
CIRCUITPY_USB_MIDI = 0
CIRCUITPY_GETPASS = 0
CIRCUITPY_TRACEBACK = 0
CIRCUITPY_PIXELBUF = 1
CIRCUITPY_BUSDEVICE = 1

View File

@ -16,3 +16,16 @@
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1
// USD ID
#define IGNORE_PIN_PA18 1
// Hooked to the external crystal
#define IGNORE_PIN_PA00 1
#define IGNORE_PIN_PA01 1
// SWD only
#define IGNORE_PIN_PA30 1
#define IGNORE_PIN_PA31 1
// Not connected
#define IGNORE_PIN_PA28 1

View File

@ -16,3 +16,11 @@
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1
// Not connected
#define IGNORE_PIN_PA00 1
#define IGNORE_PIN_PA01 1
// SWD only
#define IGNORE_PIN_PA30 1
#define IGNORE_PIN_PA31 1

View File

@ -1,5 +1,5 @@
// More than one revision of this board is available.
// This board specifies PCB Revision 10
// This board specifies the most up to date PCB Revision
#define MICROPY_HW_BOARD_NAME "BDMICRO VINA-D51"
#define MICROPY_HW_MCU_NAME "samd51n20"

View File

@ -1,5 +1,5 @@
# More than one revision of this board is available.
# This board specifies PCB Revision 10
# This board specifies the most up to date PCB Revision
USB_VID = 0x31e2
USB_PID = 0x2021
@ -10,5 +10,5 @@ CHIP_VARIANT = SAMD51N20A
CHIP_FAMILY = samd51
QSPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICES = "MX25L51245G","GD25S512MD"
EXTERNAL_FLASH_DEVICES = "MX25L12833F","MX25L51245G","GD25S512MD"
LONGINT_IMPL = MPZ

View File

@ -1,5 +1,5 @@
// More than one revision of this board is available.
// This board specifies PCB Revision 10
// This board specifies the most up to date PCB Revision
#include "shared-bindings/board/__init__.h"
@ -59,6 +59,16 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ 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_D15), MP_ROM_PTR(&pin_PA21) },
{ MP_ROM_QSTR(MP_QSTR_I2S_SDO), MP_ROM_PTR(&pin_PA21) },
{ MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_PA22) },
{ MP_ROM_QSTR(MP_QSTR_I2S_SDI), MP_ROM_PTR(&pin_PA22) },
{ MP_ROM_QSTR(MP_QSTR_D17), MP_ROM_PTR(&pin_PA20) },
{ MP_ROM_QSTR(MP_QSTR_I2S_FS_0), MP_ROM_PTR(&pin_PA20) },
{ MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_PB16) },
{ MP_ROM_QSTR(MP_QSTR_I2S_SCK_0), MP_ROM_PTR(&pin_PB16) },
{ MP_ROM_QSTR(MP_QSTR_D19), MP_ROM_PTR(&pin_PB17) },
{ MP_ROM_QSTR(MP_QSTR_I2S_MCK_0), MP_ROM_PTR(&pin_PB17) },
{ 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) },
@ -73,14 +83,10 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA12) },
{ MP_ROM_QSTR(MP_QSTR_I2C1_SDA), MP_ROM_PTR(&pin_PA13) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA13) },
{ MP_ROM_QSTR(MP_QSTR_I2S_FS_0), MP_ROM_PTR(&pin_PA20) },
{ MP_ROM_QSTR(MP_QSTR_I2S_MCK_0), MP_ROM_PTR(&pin_PB17) },
{ MP_ROM_QSTR(MP_QSTR_I2S_SCK_0), MP_ROM_PTR(&pin_PB16) },
{ 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_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_QSPI), MP_ROM_PTR(&pin_PC07) },
{ 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) },

View File

@ -14,6 +14,7 @@ CIRCUITPY_AUDIOIO = 1
CIRCUITPY_AUDIOBUSIO = 1
# Pins for I2SOut are not available.
CIRCUITPY_AUDIOBUSIO_I2SOUT = 0
CIRCUITPY_BUSIO_SPI = 0
CIRCUITPY_PWMIO = 0
CIRCUITPY_ROTARYIO = 0
CIRCUITPY_RTC = 0

View File

@ -49,6 +49,6 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ 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) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -52,6 +52,8 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PB22) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PB23) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PB00) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PB01) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PB01) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_TX3), MP_ROM_PTR(&pin_PB16) },

View File

@ -9,3 +9,7 @@ CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_FULL_BUILD = 0
# There are many pin definitions on this board; it doesn't quite fit on very large translations.
# So remove what might be least likely module to be used.
CIRCUITPY_RAINBOWIO = 0

View File

@ -1,8 +1,11 @@
#define MICROPY_HW_BOARD_NAME "SparkFun MicroMod SAMD51"
#define MICROPY_HW_BOARD_NAME "SparkFun MicroMod SAMD51 Processor"
#define MICROPY_HW_MCU_NAME "samd51j20"
#define CIRCUITPY_MCU_FAMILY samd51
// Status LED
#define MICROPY_HW_LED_STATUS (&pin_PA23)
// On-board flash
#define SPI_FLASH_MOSI_PIN &pin_PA09
#define SPI_FLASH_MISO_PIN &pin_PA10

View File

@ -1,7 +1,7 @@
LD_FILE = boards/samd51x20-bootloader-external-flash.ld
USB_VID = 0x1b4f
USB_PID = 0x0020 # Used by uf2 bootloader
USB_PRODUCT = "SparkFun MicroMod SAMD51"
USB_PRODUCT = "SparkFun MicroMod SAMD51 Processor"
USB_MANUFACTURER = "SparkFun Electronics"
CHIP_VARIANT = SAMD51J20A

View File

@ -1,97 +1,224 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
* Copyright (c) 2021 Chris Wilson
*
* 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/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
// D (digital only) pins (D0,D1)
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PB04) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PB05) },
// The SparkFun MicroMod spec uses a zero-based peripheral numbering scheme.
// The 0th peripheral is the default and the "0" is omitted from the
// peripheral name (e.g. "I2C" instead of "I2C0").
//
// For more details, see https://www.sparkfun.com/micromod#tech-specs
// A (ADC) pins (A0-A4)
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB00) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB01) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PB02) },
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PB03) },
// MicroMod built-in status LED pin
// Requirement from the "Designing with MicroMod" SparkFun article:
// "... every Processor Board shall include one status LED connected to a
// pin that is not connected to the board edge."
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA23) }, // MicroMod LED (PA23)
// DAC
{ MP_ROM_QSTR(MP_QSTR_DAC), MP_ROM_PTR(&pin_PA02) },
// MicroMod USB bus input voltage (+5V) pin
// { MP_ROM_QSTR(MP_QSTR_USB_VIN), MP_ROM_PTR() }, // MicroMod USB_VIN (not connected)
// G (General/BUS) pins (G0-G9)
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_G0), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA15) },
{ MP_ROM_QSTR(MP_QSTR_G1), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PB08) },
{ MP_ROM_QSTR(MP_QSTR_G2), MP_ROM_PTR(&pin_PB08) },
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PB09) },
{ MP_ROM_QSTR(MP_QSTR_G3), MP_ROM_PTR(&pin_PB09) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PB10) },
{ MP_ROM_QSTR(MP_QSTR_G4), MP_ROM_PTR(&pin_PB10) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PB11) },
{ MP_ROM_QSTR(MP_QSTR_G5), MP_ROM_PTR(&pin_PB11) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PB12) },
{ MP_ROM_QSTR(MP_QSTR_G6), MP_ROM_PTR(&pin_PB12) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PB13) },
{ MP_ROM_QSTR(MP_QSTR_G7), MP_ROM_PTR(&pin_PB13) },
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA14) },
{ MP_ROM_QSTR(MP_QSTR_G8), MP_ROM_PTR(&pin_PA14) },
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA15) },
{ MP_ROM_QSTR(MP_QSTR_G9), MP_ROM_PTR(&pin_PA15) },
{ MP_ROM_QSTR(MP_QSTR_D32), MP_ROM_PTR(&pin_PB31) },
{ MP_ROM_QSTR(MP_QSTR_D33), MP_ROM_PTR(&pin_PB30) },
{ MP_ROM_QSTR(MP_QSTR_D38), MP_ROM_PTR(&pin_PB14) },
{ MP_ROM_QSTR(MP_QSTR_G10), MP_ROM_PTR(&pin_PB14) },
{ MP_ROM_QSTR(MP_QSTR_D39), MP_ROM_PTR(&pin_PB15) },
{ MP_ROM_QSTR(MP_QSTR_G11), MP_ROM_PTR(&pin_PB15) },
// MicroMod +3.3V enable pin
{ MP_ROM_QSTR(MP_QSTR_P3V3_EN), MP_ROM_PTR(&pin_PA19) }, // MicroMod 3.3V_EN (PA19)
// PWM pins (PWM0, PWM1)
{ MP_ROM_QSTR(MP_QSTR_PWM0), MP_ROM_PTR(&pin_PB01) },
{ MP_ROM_QSTR(MP_QSTR_PWM1), MP_ROM_PTR(&pin_PB02) },
// MicroMod battery voltage sense pin
{ MP_ROM_QSTR(MP_QSTR_BATT_VIN3), MP_ROM_PTR(&pin_PB03) }, // MicroMod BATT_VIN/3 (PB03)
// AUD (audio)
{ MP_ROM_QSTR(MP_QSTR_AUD_MCLK), MP_ROM_PTR(&pin_PB17) },
{ MP_ROM_QSTR(MP_QSTR_AUD_OUT), MP_ROM_PTR(&pin_PA21) },
{ MP_ROM_QSTR(MP_QSTR_AUD_IN), MP_ROM_PTR(&pin_PA22) },
{ MP_ROM_QSTR(MP_QSTR_AUD_LRCLK), MP_ROM_PTR(&pin_PA20) },
{ MP_ROM_QSTR(MP_QSTR_AUD_BCLK), MP_ROM_PTR(&pin_PB16) },
// MicroMod reset pin
// { MP_ROM_QSTR(MP_QSTR_RESET), MP_ROM_PTR() }, // MicroMod RESET# (SAMD51 has a dedicated HW RESETN pin)
// I2C
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA17) },
{ MP_ROM_QSTR(MP_QSTR_SDA1), MP_ROM_PTR(&pin_PA17) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA16) },
{ MP_ROM_QSTR(MP_QSTR_SCL1), MP_ROM_PTR(&pin_PA16) },
// MicroMod boot pin
// { MP_ROM_QSTR(MP_QSTR_BOOT), MP_ROM_PTR() }, // MicroMod BOOT (not connected)
{ MP_ROM_QSTR(MP_QSTR_I2C_INT), MP_ROM_PTR(&pin_PA18) },
// MicroMod USB device pins
// USB device is always used internally by CircuitPython, so skip creating
// the pin objects for it. See explicit ignores in mpconfigboard.h.
// { MP_ROM_QSTR(MP_QSTR_USB_DM), MP_ROM_PTR(&pin_PA24) }, // MicroMod USB_D- (PA24)
// { MP_ROM_QSTR(MP_QSTR_USB_DP), MP_ROM_PTR(&pin_PA25) }, // MicroMod USB_D+ (PA25)
// I2C2
{ MP_ROM_QSTR(MP_QSTR_SDA2), MP_ROM_PTR(&pin_PA13) },
{ MP_ROM_QSTR(MP_QSTR_SCL2), MP_ROM_PTR(&pin_PA12) },
// MicroMod USB host pins
// { MP_ROM_QSTR(MP_QSTR_USBHOST_DM), MP_ROM_PTR() }, // MicroMod USBHOST_D- (not connected)
// { MP_ROM_QSTR(MP_QSTR_USBHOST_DP), MP_ROM_PTR() }, // MicroMod USBHOST_D+ (not connected)
// SPI
{ MP_ROM_QSTR(MP_QSTR_CIPO), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_COPI), MP_ROM_PTR(&pin_PA04) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA04) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA05) },
{ MP_ROM_QSTR(MP_QSTR_CS), MP_ROM_PTR(&pin_PA07) },
// MicroMod CAN pins
{ MP_ROM_QSTR(MP_QSTR_CAN_RX), MP_ROM_PTR(&pin_PB15) }, // MicroMod CAN_RX (PB15)
{ MP_ROM_QSTR(MP_QSTR_CAN_TX), MP_ROM_PTR(&pin_PB14) }, // MicroMod CAN_TX (PB14)
// Status LED
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA23) },
// Note: MicroMod UART (UART0) is not present in the edge connector pinout
// because the primary debug serial port is exposed as a virtual serial port
// over USB.
// UART
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB30) },
{ MP_ROM_QSTR(MP_QSTR_RX1), MP_ROM_PTR(&pin_PB30) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB31) },
{ MP_ROM_QSTR(MP_QSTR_TX1), MP_ROM_PTR(&pin_PB31) },
// MicroMod UART1 pins
{ MP_ROM_QSTR(MP_QSTR_UART_TX1), MP_ROM_PTR(&pin_PB31) }, // MicroMod UART_TX1 | CircuitPython TX (PB31)
{ MP_ROM_QSTR(MP_QSTR_UART_RX1), MP_ROM_PTR(&pin_PB30) }, // MicroMod UART_RX1 | CircuitPython RX (PB30)
// { MP_ROM_QSTR(MP_QSTR_UART_RTS1), MP_ROM_PTR() }, // MicroMod RTS1 (not connected)
// { MP_ROM_QSTR(MP_QSTR_UART_CTS1), MP_ROM_PTR() }, // MicroMod CTS1 (not connected)
// UART2
{ MP_ROM_QSTR(MP_QSTR_RX2), MP_ROM_PTR(&pin_PA13) },
{ MP_ROM_QSTR(MP_QSTR_TX2), MP_ROM_PTR(&pin_PA12) },
// CircuitPython default UART pins
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB31) }, // CircuitPython TX | MicroMod UART_TX1 (PB31)
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB30) }, // CircuitPython RX | MicroMod UART_RX1 (PB30)
// MicroMod UART2 pins
{ MP_ROM_QSTR(MP_QSTR_UART_TX2), MP_ROM_PTR(&pin_PA12) }, // MicroMod UART_TX2 (PA12)
{ MP_ROM_QSTR(MP_QSTR_UART_RX2), MP_ROM_PTR(&pin_PA13) }, // MicroMod UART_RX2 (PA13)
// Board objects
{ 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) },
// MicroMod I2C pins
{ MP_ROM_QSTR(MP_QSTR_I2C_SDA), MP_ROM_PTR(&pin_PA17) }, // MicroMod I2C_SDA | CircuitPython SDA (PA17)
{ MP_ROM_QSTR(MP_QSTR_I2C_SCL), MP_ROM_PTR(&pin_PA16) }, // MicroMod I2C_SCL | CircuitPython SCL (PA16)
// CircuitPython default I2C pins
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA17) }, // CircuitPython SDA | MicroMod I2C_SDA (PA17)
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA16) }, // CircuitPython SCL | MicroMod I2C_SCL (PA16)
// MicroMod I2C interrupt pin
{ MP_ROM_QSTR(MP_QSTR_I2C_INT), MP_ROM_PTR(&pin_PA18) }, // MicroMod I2C_INT (PA18)
// MicroMod I2C1 pins
{ MP_ROM_QSTR(MP_QSTR_I2C_SDA1), MP_ROM_PTR(&pin_PA13) }, // MicroMod I2C_SDA1 (PA13)
{ MP_ROM_QSTR(MP_QSTR_I2C_SCL1), MP_ROM_PTR(&pin_PA12) }, // MicroMod I2C_SCL1 (PA12)
// MicroMod SPI pins
{ MP_ROM_QSTR(MP_QSTR_SPI_CIPO), MP_ROM_PTR(&pin_PA06) }, // MicroMod SPI_CIPO | CircuitPython CIPO (PA06)
{ MP_ROM_QSTR(MP_QSTR_SPI_MISO), MP_ROM_PTR(&pin_PA06) }, // MicroMod SPI_MISO | CircuitPython MISO (PA06)
{ MP_ROM_QSTR(MP_QSTR_SPI_COPI), MP_ROM_PTR(&pin_PA04) }, // MicroMod SPI_COPI | CircuitPython COPI | LED_DAT (PA04)
{ MP_ROM_QSTR(MP_QSTR_SPI_MOSI), MP_ROM_PTR(&pin_PA04) }, // MicroMod SPI_MOSI | CircuitPython MOSI (PA04)
{ MP_ROM_QSTR(MP_QSTR_SPI_SCK), MP_ROM_PTR(&pin_PA05) }, // MicroMod SPI_SCK | CircuitPython SCK | LED_CLK (PA05)
{ MP_ROM_QSTR(MP_QSTR_SPI_CS), MP_ROM_PTR(&pin_PA07) }, // MicroMod SPI_CS | CircuitPython CS (PA07)
// CircuitPython default SPI pins
{ MP_ROM_QSTR(MP_QSTR_CIPO), MP_ROM_PTR(&pin_PA06) }, // CircuitPython CIPO | MicroMod SPI_CIPO (PA06)
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA06) }, // CircuitPython MISO | MicroMod SPI_MISO (PA06)
{ MP_ROM_QSTR(MP_QSTR_COPI), MP_ROM_PTR(&pin_PA04) }, // CircuitPython COPI | MicroMod SPI_COPI | LED_DAT (PA04)
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA04) }, // CircuitPython MOSI | MicroMod SPI_MOSI (PA04)
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA05) }, // CircuitPython SCK | MicroMod SPI_SCK | LED_CLK (PA05)
{ MP_ROM_QSTR(MP_QSTR_CS), MP_ROM_PTR(&pin_PA07) }, // CircuitPython CS | MicroMod SPI_CS (PA07)
// MicroMod 2-wire serial LED pins
{ MP_ROM_QSTR(MP_QSTR_LED_DAT), MP_ROM_PTR(&pin_PA04) }, // MicroMod LED_DAT | SPI_COPI (PA04)
{ MP_ROM_QSTR(MP_QSTR_LED_CLK), MP_ROM_PTR(&pin_PA05) }, // MicroMod LED_CLK | SPI_SCK (PA05)
// MicroMod SDIO pins
// { MP_ROM_QSTR(MP_QSTR_SDIO_CLK), MP_ROM_PTR() }, // MicroMod SDIO_SCK | SPI_SCK1 (not connected)
// { MP_ROM_QSTR(MP_QSTR_SDIO_CMD), MP_ROM_PTR() }, // MicroMod SDIO_CMD | SPI_COPI1 (not connected)
// { MP_ROM_QSTR(MP_QSTR_SDIO_DATA0), MP_ROM_PTR() }, // MicroMod SDIO_DATA0 | SPI_CIPO1 (not connected)
// { MP_ROM_QSTR(MP_QSTR_SDIO_DATA1), MP_ROM_PTR() }, // MicroMod SDIO_DATA1 (not connected)
// { MP_ROM_QSTR(MP_QSTR_SDIO_DATA2), MP_ROM_PTR() }, // MicroMod SDIO_DATA2 (not connected)
// { MP_ROM_QSTR(MP_QSTR_SDIO_DATA3), MP_ROM_PTR() }, // MicroMod SDIO_DATA3 | SPI_CS1 (not connected)
// MicroMod SPI1 pins
// { MP_ROM_QSTR(MP_QSTR_SPI_CIPO1), MP_ROM_PTR() }, // MicroMod SPI_CIPO1 | SDIO_DATA0 (not connected)
// { MP_ROM_QSTR(MP_QSTR_SPI_MISO1), MP_ROM_PTR() }, // MicroMod SPI_MISO1 (not connected)
// { MP_ROM_QSTR(MP_QSTR_SPI_COPI1), MP_ROM_PTR() }, // MicroMod SPI_COPI1 | SDIO_CMD (not connected)
// { MP_ROM_QSTR(MP_QSTR_SPI_MOSI1), MP_ROM_PTR() }, // MicroMod SPI_MOSI1 (not connected)
// { MP_ROM_QSTR(MP_QSTR_SPI_SCK1), MP_ROM_PTR() }, // MicroMod SPI_SCK1 | SDIO_SCK (not connected)
// { MP_ROM_QSTR(MP_QSTR_SPI_CS1), MP_ROM_PTR() }, // MicroMod SPI_CS1 | SDIO_DATA3 (not connected)
// MicroMod audio pins
{ MP_ROM_QSTR(MP_QSTR_AUD_MCLK), MP_ROM_PTR(&pin_PB17) }, // MicroMod AUD_MCLK (PB17)
{ MP_ROM_QSTR(MP_QSTR_AUD_OUT), MP_ROM_PTR(&pin_PA21) }, // MicroMod AUD_OUT | I2S_OUT | PCM_OUT | CAM_MCLK (PA21)
{ MP_ROM_QSTR(MP_QSTR_AUD_IN), MP_ROM_PTR(&pin_PA22) }, // MicroMod AUD_IN | I2S_IN | PCM_IN | CAM_PCLK (PA22)
{ MP_ROM_QSTR(MP_QSTR_AUD_LRCLK), MP_ROM_PTR(&pin_PA20) }, // MicroMod AUD_LRCLK | I2S_WS | PCM_SYNC | PDM_DATA (PA20)
{ MP_ROM_QSTR(MP_QSTR_AUD_BCLK), MP_ROM_PTR(&pin_PB16) }, // MicroMod AUD_BCLK | I2S_SCK | PCM_CLK | PDM_CLK (PB16)
// MicroMod I2S pins
{ MP_ROM_QSTR(MP_QSTR_I2S_OUT), MP_ROM_PTR(&pin_PA21) }, // MicroMod I2S_OUT | AUD_OUT | PCM_OUT | CAM_MCLK (PA21)
{ MP_ROM_QSTR(MP_QSTR_I2S_IN), MP_ROM_PTR(&pin_PA22) }, // MicroMod I2S_IN | AUD_IN | PCM_IN | CAM_PCLK (PA22)
{ MP_ROM_QSTR(MP_QSTR_I2S_WS), MP_ROM_PTR(&pin_PA20) }, // MicroMod I2S_WS | AUD_LRCLK | PCM_SYNC | PDM_DATA (PA20)
{ MP_ROM_QSTR(MP_QSTR_I2S_SCK), MP_ROM_PTR(&pin_PB16) }, // MicroMod I2S_SCK | AUD_BCLK | PCM_CLK | PDM_CLK (PB16)
// MicroMod PCM pins
{ MP_ROM_QSTR(MP_QSTR_PCM_OUT), MP_ROM_PTR(&pin_PA21) }, // MicroMod PCM_OUT | AUD_OUT | I2S_OUT | CAM_MCLK (PA21)
{ MP_ROM_QSTR(MP_QSTR_PCM_IN), MP_ROM_PTR(&pin_PA22) }, // MicroMod PCM_IN | AUD_IN | I2S_IN | CAM_PCLK (PA22)
{ MP_ROM_QSTR(MP_QSTR_PCM_SYNC), MP_ROM_PTR(&pin_PA20) }, // MicroMod PCM_SYNC | AUD_LRCLK | I2S_WS | PDM_DATA (PA20)
{ MP_ROM_QSTR(MP_QSTR_PCM_CLK), MP_ROM_PTR(&pin_PB16) }, // MicroMod PCM_CLK | AUD_BCLK | I2S_SCK | PDM_CLK (PB16)
// MicroMod PDM pins
{ MP_ROM_QSTR(MP_QSTR_PDM_DATA), MP_ROM_PTR(&pin_PA20) }, // MicroMod PDM_DATA | AUD_LRCLK | I2S_WS | PCM_SYNC (PA20)
{ MP_ROM_QSTR(MP_QSTR_PDM_CLK), MP_ROM_PTR(&pin_PB16) }, // MicroMod PDM_CLK | AUD_BCLK | I2S_SCK | PCM_CLK (PB16)
// MicroMod SWD pins
{ MP_ROM_QSTR(MP_QSTR_SWDIO), MP_ROM_PTR(&pin_PA31) }, // MicroMod SWDIO (PA31)
{ MP_ROM_QSTR(MP_QSTR_SWCLK), MP_ROM_PTR(&pin_PA30) }, // MicroMod SWDCK (PA30)
// { MP_ROM_QSTR(MP_QSTR_SWO), MP_ROM_PTR() }, // MicroMod SWO | G11 (not connected)
// MicroMod ADC pins
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, // MicroMod A0 (PA02)
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB00) }, // MicroMod A1 (PB00)
// MicroMod PWM pins
{ MP_ROM_QSTR(MP_QSTR_PWM0), MP_ROM_PTR(&pin_PB01) }, // MicroMod PWM0 (PB01)
{ MP_ROM_QSTR(MP_QSTR_PWM1), MP_ROM_PTR(&pin_PB02) }, // MicroMod PWM1 (PB02)
// MicroMod digital pins
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PB04) }, // MicroMod D0 (PB04)
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PB05) }, // MicroMod D1 | CAM_TRIG (PB05)
// MicroMod general purpose pins
{ MP_ROM_QSTR(MP_QSTR_G0), MP_ROM_PTR(&pin_PB06) }, // MicroMod G0 | BUS0 (PB06)
{ MP_ROM_QSTR(MP_QSTR_G1), MP_ROM_PTR(&pin_PB07) }, // MicroMod G1 | BUS1 (PB07)
{ MP_ROM_QSTR(MP_QSTR_G2), MP_ROM_PTR(&pin_PB08) }, // MicroMod G2 | BUS2 (PB08)
{ MP_ROM_QSTR(MP_QSTR_G3), MP_ROM_PTR(&pin_PB09) }, // MicroMod G3 | BUS3 (PB09)
{ MP_ROM_QSTR(MP_QSTR_G4), MP_ROM_PTR(&pin_PB10) }, // MicroMod G4 | BUS4 (PB10)
{ MP_ROM_QSTR(MP_QSTR_G5), MP_ROM_PTR(&pin_PB11) }, // MicroMod G5 | BUS5 (PB11)
{ MP_ROM_QSTR(MP_QSTR_G6), MP_ROM_PTR(&pin_PB12) }, // MicroMod G6 | BUS6 (PB12)
{ MP_ROM_QSTR(MP_QSTR_G7), MP_ROM_PTR(&pin_PB13) }, // MicroMod G7 | BUS7 (PB13)
{ MP_ROM_QSTR(MP_QSTR_G8), MP_ROM_PTR(&pin_PA14) }, // MicroMod G8 (PA14)
{ MP_ROM_QSTR(MP_QSTR_G9), MP_ROM_PTR(&pin_PA15) }, // MicroMod G9 | ADC_D- | CAM_HSYNC (PA15)
// { MP_ROM_QSTR(MP_QSTR_G10), MP_ROM_PTR() }, // MicroMod G10 | ADC_D+ | CAM_VSYNC (not connected)
{ MP_ROM_QSTR(MP_QSTR_G11), MP_ROM_PTR(&pin_PA27) }, // MicroMod G11 | SWO (PA27)
// MicroMod 8-bit bus pins
{ MP_ROM_QSTR(MP_QSTR_BUS0), MP_ROM_PTR(&pin_PB06) }, // MicroMod BUS0 | G0 (PB06)
{ MP_ROM_QSTR(MP_QSTR_BUS1), MP_ROM_PTR(&pin_PB07) }, // MicroMod BUS1 | G1 (PB07)
{ MP_ROM_QSTR(MP_QSTR_BUS2), MP_ROM_PTR(&pin_PB08) }, // MicroMod BUS2 | G2 (PB08)
{ MP_ROM_QSTR(MP_QSTR_BUS3), MP_ROM_PTR(&pin_PB09) }, // MicroMod BUS3 | G3 (PB09)
{ MP_ROM_QSTR(MP_QSTR_BUS4), MP_ROM_PTR(&pin_PB10) }, // MicroMod BUS4 | G4 (PB10)
{ MP_ROM_QSTR(MP_QSTR_BUS5), MP_ROM_PTR(&pin_PB11) }, // MicroMod BUS5 | G5 (PB11)
{ MP_ROM_QSTR(MP_QSTR_BUS6), MP_ROM_PTR(&pin_PB12) }, // MicroMod BUS6 | G6 (PB12)
{ MP_ROM_QSTR(MP_QSTR_BUS7), MP_ROM_PTR(&pin_PB13) }, // MicroMod BUS7 | G7 (PB13)
// MicroMod differential ADC input pins
// { MP_ROM_QSTR(MP_QSTR_ADC_DM), MP_ROM_PTR(&pin_PA15) }, // MicroMod ADC_D- | G9 | CAM_HSYNC (PA15)
// { MP_ROM_QSTR(MP_QSTR_ADC_DP), MP_ROM_PTR() }, // MicroMod ADC_D+ | G10 | CAM_VSYNC (not connected)
// MicroMod camera pins
// { MP_ROM_QSTR(MP_QSTR_CAM_MCLK), MP_ROM_PTR(&pin_PA21) }, // MicroMod CAM_MCLK | AUD_OUT | I2S_OUT | PCM_OUT (PA21)
// { MP_ROM_QSTR(MP_QSTR_CAM_PCLK), MP_ROM_PTR(&pin_PA22) }, // MicroMod CAM_PCLK | AUD_IN | I2S_IN | PCM_IN (PA22)
// { MP_ROM_QSTR(MP_QSTR_CAM_TRIG), MP_ROM_PTR(&pin_PB05) }, // MicroMod CAM_TRIG | D1 (PB05)
// { MP_ROM_QSTR(MP_QSTR_CAM_HSYNC), MP_ROM_PTR(&pin_PA15 }, // MicroMod CAM_HSYNC | ADC_D- | G9 (PA15)
// { MP_ROM_QSTR(MP_QSTR_CAM_VSYNC), MP_ROM_PTR() }, // MicroMod CAM_VSYNC | ADC_D+ | G10 (not connected)
// Module-specific aliases (not part of the MicroMod spec)
{ MP_ROM_QSTR(MP_QSTR_HOST_ENABLE), MP_ROM_PTR(&pin_PA27) }, // HOST_ENABLE | G11 | SWO (PA27)
// CircuitPython board objects
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, // CircuitPython I2C
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, // CircuitPython SPI
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, // CircuitPython UART
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -71,7 +71,7 @@
void i2sout_reset(void) {
// Make sure the I2S peripheral is running so we can see if the resources we need are free.
#ifdef SAM_D5X_E5X
// Connect the clock units to the 2mhz clock. It can't disable without it.
// Connect the clock units to the 2MHz clock. It can't disable without it.
connect_gclk_to_peripheral(5, I2S_GCLK_ID_0);
connect_gclk_to_peripheral(5, I2S_GCLK_ID_1);
#endif
@ -83,7 +83,7 @@ void i2sout_reset(void) {
// Make sure the I2S peripheral is running so we can see if the resources we need are free.
#ifdef SAM_D5X_E5X
// Connect the clock units to the 2mhz clock by default. They can't reset without it.
// Connect the clock units to the 2MHz clock by default. They can't reset without it.
disconnect_gclk_from_peripheral(5, I2S_GCLK_ID_0);
disconnect_gclk_from_peripheral(5, I2S_GCLK_ID_1);
@ -222,7 +222,6 @@ void common_hal_audiobusio_i2sout_deinit(audiobusio_i2sout_obj_t *self) {
reset_pin_number(self->word_select->number);
self->word_select = NULL;
reset_pin_number(self->data->number);
self->data = NULL;
}
void common_hal_audiobusio_i2sout_play(audiobusio_i2sout_obj_t *self,
@ -288,7 +287,7 @@ void common_hal_audiobusio_i2sout_play(audiobusio_i2sout_obj_t *self,
I2S->TXCTRL.reg = serctrl;
#endif
// The DFLL is always a 48mhz clock
// The DFLL is always a 48MHz clock
enable_clock_generator(self->gclk, CLOCK_48MHZ, divisor);
connect_gclk_to_peripheral(self->gclk, I2S_GCLK_ID_0 + self->clock_unit);

View File

@ -30,6 +30,8 @@
#include "py/obj.h"
#include "py/runtime.h"
#include "lib/utils/interrupt_char.h"
#include "common-hal/canio/__init__.h"
#include "common-hal/canio/Listener.h"
#include "shared-bindings/canio/Listener.h"
@ -356,6 +358,11 @@ mp_obj_t common_hal_canio_listener_receive(canio_listener_obj_t *self) {
if (supervisor_ticks_ms64() > deadline) {
return NULL;
}
RUN_BACKGROUND_TASKS;
// Allow user to break out of a timeout with a KeyboardInterrupt.
if (mp_hal_is_interrupted()) {
return NULL;
}
} while (!common_hal_canio_listener_in_waiting(self));
}
int index = self->hw->RXFS.bit.F0GI;

View File

@ -272,6 +272,9 @@ void common_hal_pulseio_pulsein_deinit(pulseio_pulsein_obj_t *self) {
void common_hal_pulseio_pulsein_pause(pulseio_pulsein_obj_t *self) {
uint32_t mask = 1 << self->channel;
EIC->INTENCLR.reg = mask << EIC_INTENSET_EXTINT_Pos;
#ifdef SAMD21
rtc_end_pulse();
#endif
}
void common_hal_pulseio_pulsein_resume(pulseio_pulsein_obj_t *self,
@ -299,6 +302,9 @@ void common_hal_pulseio_pulsein_resume(pulseio_pulsein_obj_t *self,
EIC->INTFLAG.reg = mask << EIC_INTFLAG_EXTINT_Pos;
EIC->INTENSET.reg = mask << EIC_INTENSET_EXTINT_Pos;
#ifdef SAMD21
rtc_start_pulse();
#endif
pulsein_set_config(self, true);
}

View File

@ -31,15 +31,15 @@
#include "common-hal/pwmio/PWMOut.h"
#include "shared-bindings/pwmio/PWMOut.h"
#include "shared-bindings/microcontroller/Processor.h"
#include "shared_timers.h"
#include "timer_handler.h"
#include "atmel_start_pins.h"
#include "hal/utils/include/utils_repeat_macro.h"
#include "samd/pins.h"
#include "samd/timers.h"
#include "supervisor/shared/translate.h"
#include "samd/pins.h"
#undef ENABLE
#define _TCC_SIZE(unused, n) TCC##n##_SIZE,
@ -60,24 +60,6 @@ uint8_t tcc_channels[3]; // Set by pwmout_reset() to {0xf0, 0xfc, 0xfc} initia
uint8_t tcc_channels[5]; // Set by pwmout_reset() to {0xc0, 0xf0, 0xf8, 0xfc, 0xfc} initially.
#endif
static uint8_t never_reset_tc_or_tcc[TC_INST_NUM + TCC_INST_NUM];
STATIC void timer_refcount(int index, bool is_tc, int increment) {
if (is_tc) {
never_reset_tc_or_tcc[index] += increment;
} else {
never_reset_tc_or_tcc[TC_INST_NUM + index] += increment;
}
}
void timer_never_reset(int index, bool is_tc) {
timer_refcount(index, is_tc, 1);
}
void timer_reset_ok(int index, bool is_tc) {
timer_refcount(index, is_tc, -1);
}
void common_hal_pwmio_pwmout_never_reset(pwmio_pwmout_obj_t *self) {
timer_never_reset(self->timer->index, self->timer->is_tc);
@ -95,34 +77,11 @@ void pwmout_reset(void) {
target_tcc_frequencies[i] = 0;
tcc_refcount[i] = 0;
}
Tcc *tccs[TCC_INST_NUM] = TCC_INSTS;
for (int i = 0; i < TCC_INST_NUM; i++) {
if (never_reset_tc_or_tcc[TC_INST_NUM + i] > 0) {
if (!timer_ok_to_reset(i, false)) {
continue;
}
// Disable the module before resetting it.
if (tccs[i]->CTRLA.bit.ENABLE == 1) {
tccs[i]->CTRLA.bit.ENABLE = 0;
while (tccs[i]->SYNCBUSY.bit.ENABLE == 1) {
}
}
uint8_t mask = 0xff;
for (uint8_t j = 0; j < tcc_cc_num[i]; j++) {
mask <<= 1;
}
tcc_channels[i] = mask;
tccs[i]->CTRLA.bit.SWRST = 1;
while (tccs[i]->CTRLA.bit.SWRST == 1) {
}
}
Tc *tcs[TC_INST_NUM] = TC_INSTS;
for (int i = 0; i < TC_INST_NUM; i++) {
if (never_reset_tc_or_tcc[i] > 0) {
continue;
}
tcs[i]->COUNT16.CTRLA.bit.SWRST = 1;
while (tcs[i]->COUNT16.CTRLA.bit.SWRST == 1) {
}
tcc_channels[i] = 0xff << tcc_cc_num[i];
}
}

View File

@ -29,6 +29,7 @@
#include "common-hal/rgbmatrix/RGBMatrix.h"
#include "samd/timers.h"
#include "shared_timers.h"
#include "timer_handler.h"
void *common_hal_rgbmatrix_timer_allocate(rgbmatrix_rgbmatrix_obj_t *self) {

View File

@ -0,0 +1,84 @@
/*
* 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 <stdint.h>
#include "samd/timers.h"
#include "shared_timers.h"
static uint8_t never_reset_tc_or_tcc[TC_INST_NUM + TCC_INST_NUM];
static void timer_refcount(int index, bool is_tc, int increment) {
if (is_tc) {
never_reset_tc_or_tcc[index] += increment;
} else {
never_reset_tc_or_tcc[TC_INST_NUM + index] += increment;
}
}
void timer_never_reset(int index, bool is_tc) {
timer_refcount(index, is_tc, 1);
}
void timer_reset_ok(int index, bool is_tc) {
timer_refcount(index, is_tc, -1);
}
bool timer_ok_to_reset(int index, bool is_tc) {
if (is_tc) {
return never_reset_tc_or_tcc[index] == 0;
}
return never_reset_tc_or_tcc[TC_INST_NUM + index] == 0;
}
void reset_timers(void) {
// Reset all timers
Tcc *tccs[TCC_INST_NUM] = TCC_INSTS;
for (int i = 0; i < TCC_INST_NUM; i++) {
if (!timer_ok_to_reset(i, false)) {
continue;
}
// Disable the module before resetting it.
if (tccs[i]->CTRLA.bit.ENABLE == 1) {
tccs[i]->CTRLA.bit.ENABLE = 0;
while (tccs[i]->SYNCBUSY.bit.ENABLE == 1) {
}
}
tccs[i]->CTRLA.bit.SWRST = 1;
while (tccs[i]->CTRLA.bit.SWRST == 1) {
}
}
Tc *tcs[TC_INST_NUM] = TC_INSTS;
for (int i = 0; i < TC_INST_NUM; i++) {
if (!timer_ok_to_reset(i, true)) {
continue;
}
tcs[i]->COUNT16.CTRLA.bit.SWRST = 1;
while (tcs[i]->COUNT16.CTRLA.bit.SWRST == 1) {
}
}
}

View File

@ -3,7 +3,7 @@
*
* The MIT License (MIT)
*
* Copyright 2019 Sony Semiconductor Solutions Corporation
* Copyright (c) 2018 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
@ -23,11 +23,14 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_ATMEL_SAMD_SHARED_TIMERS_H
#define MICROPY_INCLUDED_ATMEL_SAMD_SHARED_TIMERS_H
#ifndef MICROPY_INCLUDED_CXD56_COMMON_HAL_BUSIO_ONEWIRE_H
#define MICROPY_INCLUDED_CXD56_COMMON_HAL_BUSIO_ONEWIRE_H
#include <stdbool.h>
// Use bitbangio.
#include "shared-module/busio/OneWire.h"
void timer_never_reset(int index, bool is_tc);
void timer_reset_ok(int index, bool is_tc);
bool timer_ok_to_reset(int index, bool is_tc);
void reset_timers(void);
#endif // MICROPY_INCLUDED_CXD56_COMMON_HAL_BUSIO_ONEWIRE_H
#endif // MICROPY_INCLUDED_ATMEL_SAMD_SHARED_TIMERS_H

View File

@ -77,6 +77,7 @@
#include "samd/dma.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/rtc/__init__.h"
#include "shared_timers.h"
#include "reset.h"
#include "supervisor/shared/safe_mode.h"
@ -91,26 +92,19 @@
#if CIRCUITPY_PEW
#include "common-hal/_pew/PewPew.h"
#endif
volatile bool hold_interrupt = false;
static volatile bool sleep_ok = true;
#ifdef SAMD21
static void rtc_set_continuous(bool continuous) {
while (RTC->MODE0.STATUS.bit.SYNCBUSY) {
;
}
RTC->MODE0.READREQ.reg = (continuous ? RTC_READREQ_RCONT : 0) | 0x0010;
while (RTC->MODE0.STATUS.bit.SYNCBUSY) {
;
}
}
static uint8_t _tick_event_channel = 0;
// Sleeping requires a register write that can stall interrupt handling. Turning
// off sleeps allows for more accurate interrupt timing. (Python still thinks
// it is sleeping though.)
void rtc_start_pulse(void) {
rtc_set_continuous(true);
hold_interrupt = true;
sleep_ok = false;
}
void rtc_end_pulse(void) {
hold_interrupt = false;
rtc_set_continuous(false);
sleep_ok = true;
}
#endif
@ -161,6 +155,20 @@ static void save_usb_clock_calibration(void) {
}
#endif
static void rtc_continuous_mode(void) {
#ifdef SAMD21
while (RTC->MODE0.STATUS.bit.SYNCBUSY) {
}
RTC->MODE0.READREQ.reg = RTC_READREQ_RCONT | 0x0010;
while (RTC->MODE0.STATUS.bit.SYNCBUSY) {
}
// Do the first request and wait for it.
RTC->MODE0.READREQ.reg = RTC_READREQ_RREQ | RTC_READREQ_RCONT | 0x0010;
while (RTC->MODE0.STATUS.bit.SYNCBUSY) {
}
#endif
}
static void rtc_init(void) {
#ifdef SAMD21
_gclk_enable_channel(RTC_GCLK_ID, GCLK_CLKCTRL_GEN_GCLK2_Val);
@ -168,9 +176,17 @@ static void rtc_init(void) {
while (RTC->MODE0.CTRL.bit.SWRST != 0) {
}
// Turn on periodic events to use as tick. We control whether it interrupts
// us with the EVSYS INTEN register.
RTC->MODE0.EVCTRL.reg = RTC_MODE0_EVCTRL_PEREO2;
RTC->MODE0.CTRL.reg = RTC_MODE0_CTRL_ENABLE |
RTC_MODE0_CTRL_MODE_COUNT32 |
RTC_MODE0_CTRL_PRESCALER_DIV2;
// Turn on continuous sync of the count register. This will speed up all
// tick reads.
rtc_continuous_mode();
#endif
#ifdef SAM_D5X_E5X
hri_mclk_set_APBAMASK_RTC_bit(MCLK);
@ -347,6 +363,9 @@ void reset_port(void) {
#if CIRCUITPY_PWMIO
pwmout_reset();
#endif
#if CIRCUITPY_PWMIO || CIRCUITPY_AUDIOIO
reset_timers();
#endif
#if CIRCUITPY_ANALOGIO
analogin_reset();
@ -363,6 +382,9 @@ void reset_port(void) {
#endif
reset_event_system();
#ifdef SAMD21
_tick_event_channel = EVSYS_SYNCH_NUM;
#endif
reset_all_pins();
@ -430,21 +452,14 @@ uint32_t port_get_saved_word(void) {
// TODO: Move this to an RTC backup register so we can preserve it when only the BACKUP power domain
// is enabled.
static volatile uint64_t overflowed_ticks = 0;
#ifdef SAMD21
static volatile bool _ticks_enabled = false;
#endif
static uint32_t _get_count(uint64_t *overflow_count) {
#ifdef SAM_D5X_E5X
while ((RTC->MODE0.SYNCBUSY.reg & (RTC_MODE0_SYNCBUSY_COUNTSYNC | RTC_MODE0_SYNCBUSY_COUNT)) != 0) {
}
#endif
#ifdef SAMD21
// Request a read so we don't stall the bus later. See section 14.3.1.5 Read Request
RTC->MODE0.READREQ.reg = RTC_READREQ_RREQ | 0x0010;
while (RTC->MODE0.STATUS.bit.SYNCBUSY != 0) {
}
#endif
// SAMD21 does continuous sync so we don't need to wait here.
// Disable interrupts so we can grab the count and the overflow.
common_hal_mcu_disable_interrupts();
uint32_t count = RTC->MODE0.COUNT.reg;
@ -458,29 +473,6 @@ static uint32_t _get_count(uint64_t *overflow_count) {
volatile bool _woken_up;
static void _port_interrupt_after_ticks(uint32_t ticks) {
uint32_t current_ticks = _get_count(NULL);
if (ticks > 1 << 28) {
// We'll interrupt sooner with an overflow.
return;
}
#ifdef SAMD21
if (hold_interrupt) {
return;
}
#endif
uint32_t target = current_ticks + (ticks << 4);
RTC->MODE0.COMP[0].reg = target;
#ifdef SAM_D5X_E5X
while ((RTC->MODE0.SYNCBUSY.reg & (RTC_MODE0_SYNCBUSY_COMP0)) != 0) {
}
#endif
RTC->MODE0.INTFLAG.reg = RTC_MODE0_INTFLAG_CMP0;
RTC->MODE0.INTENSET.reg = RTC_MODE0_INTENSET_CMP0;
current_ticks = _get_count(NULL);
_woken_up = current_ticks >= target;
}
void RTC_Handler(void) {
uint32_t intflag = RTC->MODE0.INTFLAG.reg;
if (intflag & RTC_MODE0_INTFLAG_OVF) {
@ -497,19 +489,10 @@ void RTC_Handler(void) {
}
#endif
if (intflag & RTC_MODE0_INTFLAG_CMP0) {
// Clear the interrupt because we may have hit a sleep and _ticks_enabled
// Clear the interrupt because we may have hit a sleep
RTC->MODE0.INTFLAG.reg = RTC_MODE0_INTFLAG_CMP0;
_woken_up = true;
#ifdef SAMD21
if (_ticks_enabled) {
// Do things common to all ports when the tick occurs.
supervisor_tick();
// Check _ticks_enabled again because a tick handler may have turned it off.
if (_ticks_enabled) {
_port_interrupt_after_ticks(1);
}
}
#endif
// SAMD21 ticks are handled by EVSYS
#ifdef SAM_D5X_E5X
RTC->MODE0.INTENCLR.reg = RTC_MODE0_INTENCLR_CMP0;
#endif
@ -526,6 +509,39 @@ uint64_t port_get_raw_ticks(uint8_t *subticks) {
return overflow_count + current_ticks / 16;
}
void evsyshandler_common(void) {
#ifdef SAMD21
if (_tick_event_channel < EVSYS_SYNCH_NUM && event_interrupt_active(_tick_event_channel)) {
supervisor_tick();
}
#endif
#if CIRCUITPY_AUDIOIO || CIRCUITPY_AUDIOBUSIO
audio_evsys_handler();
#endif
}
#ifdef SAM_D5X_E5X
void EVSYS_0_Handler(void) {
evsyshandler_common();
}
void EVSYS_1_Handler(void) {
evsyshandler_common();
}
void EVSYS_2_Handler(void) {
evsyshandler_common();
}
void EVSYS_3_Handler(void) {
evsyshandler_common();
}
void EVSYS_4_Handler(void) {
evsyshandler_common();
}
#else
void EVSYS_Handler(void) {
evsyshandler_common();
}
#endif
// Enable 1/1024 second tick.
void port_enable_tick(void) {
#ifdef SAM_D5X_E5X
@ -533,9 +549,23 @@ void port_enable_tick(void) {
RTC->MODE0.INTENSET.reg = RTC_MODE0_INTENSET_PER2;
#endif
#ifdef SAMD21
// TODO: Switch to using the PER *event* from the RTC to generate an interrupt via EVSYS.
_ticks_enabled = true;
_port_interrupt_after_ticks(1);
// SAMD21 ticks won't survive port_reset(). This *should* be ok since it'll
// be triggered by ticks and no Python will be running.
if (_tick_event_channel >= EVSYS_SYNCH_NUM) {
turn_on_event_system();
_tick_event_channel = find_sync_event_channel();
}
// This turns on both the event detected interrupt (EVD) and overflow (OVR).
init_event_channel_interrupt(_tick_event_channel, CORE_GCLK, EVSYS_ID_GEN_RTC_PER_2);
// Disable overflow interrupt because we ignore it.
if (_tick_event_channel >= 8) {
uint8_t value = 1 << (_tick_event_channel - 8);
EVSYS->INTENCLR.reg = EVSYS_INTENSET_OVRp8(value);
} else {
uint8_t value = 1 << _tick_event_channel;
EVSYS->INTENCLR.reg = EVSYS_INTENSET_OVR(value);
}
NVIC_EnableIRQ(EVSYS_IRQn);
#endif
}
@ -545,21 +575,48 @@ void port_disable_tick(void) {
RTC->MODE0.INTENCLR.reg = RTC_MODE0_INTENCLR_PER2;
#endif
#ifdef SAMD21
_ticks_enabled = false;
RTC->MODE0.INTENCLR.reg = RTC_MODE0_INTENCLR_CMP0;
if (_tick_event_channel >= 8) {
uint8_t value = 1 << (_tick_event_channel - 8);
EVSYS->INTENCLR.reg = EVSYS_INTENSET_EVDp8(value);
} else {
uint8_t value = 1 << _tick_event_channel;
EVSYS->INTENCLR.reg = EVSYS_INTENSET_EVD(value);
}
#endif
}
// This is called by sleep, we ignore it when our ticks are enabled because
// they'll wake us up earlier. If we don't, we'll mess up ticks by overwriting
// the next RTC wake up time.
void port_interrupt_after_ticks(uint32_t ticks) {
uint32_t current_ticks = _get_count(NULL);
if (ticks > 1 << 28) {
// We'll interrupt sooner with an overflow.
return;
}
#ifdef SAMD21
if (_ticks_enabled) {
if (!sleep_ok) {
return;
}
#endif
_port_interrupt_after_ticks(ticks);
uint32_t target = current_ticks + (ticks << 4);
#ifdef SAMD21
// Try and avoid a bus stall when writing COMP by checking for an obvious
// existing sync.
while (RTC->MODE0.STATUS.bit.SYNCBUSY == 1) {
}
#endif
// Writing the COMP register can take up to 180us to synchronize. During
// this time, the bus will stall and no interrupts will be serviced.
RTC->MODE0.COMP[0].reg = target;
#ifdef SAM_D5X_E5X
while ((RTC->MODE0.SYNCBUSY.reg & (RTC_MODE0_SYNCBUSY_COMP0)) != 0) {
}
#endif
RTC->MODE0.INTFLAG.reg = RTC_MODE0_INTFLAG_CMP0;
RTC->MODE0.INTENSET.reg = RTC_MODE0_INTENSET_CMP0;
// Set continuous mode again because setting COMP may disable it.
rtc_continuous_mode();
current_ticks = _get_count(NULL);
_woken_up = current_ticks >= target;
}
void port_idle_until_interrupt(void) {
@ -571,7 +628,7 @@ void port_idle_until_interrupt(void) {
}
#endif
common_hal_mcu_disable_interrupts();
if (!tud_task_event_ready() && !hold_interrupt && !_woken_up) {
if (!tud_task_event_ready() && sleep_ok && !_woken_up) {
__DSB();
__WFI();
}

View File

@ -36,8 +36,4 @@
void set_timer_handler(bool is_tc, uint8_t index, uint8_t timer_handler);
void shared_timer_handler(bool is_tc, uint8_t index);
// implementation of these functions is in PWMOut.c
void timer_never_reset(int index, bool is_tc);
void timer_reset_ok(int index, bool is_tc);
#endif // MICROPY_INCLUDED_ATMEL_SAMD_TIMER_HANDLER_H

View File

@ -132,7 +132,8 @@ bool common_hal_busio_spi_write(busio_spi_obj_t *self, const uint8_t *data, size
}
bool common_hal_busio_spi_read(busio_spi_obj_t *self, uint8_t *data, size_t len, uint8_t write_value) {
SPI_EXCHANGE(self->spi_dev, NULL, data, len);
memset(data, write_value, len);
SPI_EXCHANGE(self->spi_dev, data, data, len);
return true;
}

View File

@ -29,8 +29,8 @@
#define MICROPY_HW_BOARD_NAME "Adafruit FunHouse"
#define MICROPY_HW_MCU_NAME "ESP32S2"
#define MICROPY_HW_APA_MOSI (&pin_GPIO14)
#define MICROPY_HW_APA_SCK (&pin_GPIO15)
#define MICROPY_HW_APA102_MOSI (&pin_GPIO14)
#define MICROPY_HW_APA102_SCK (&pin_GPIO15)
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO0)

View File

@ -0,0 +1,52 @@
/*
* 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 "supervisor/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
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}
void board_deinit(void) {
}

View File

@ -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 "ESP 12k NodeMCU"
#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

View File

@ -0,0 +1,17 @@
USB_VID = 0x612B
USB_PID = 0x80A7
USB_PRODUCT = "ESP 12k NodeMCU"
USB_MANUFACTURER = "Ai-Thinker"
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

View 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);

View File

@ -0,0 +1,33 @@
CONFIG_ESP32S2_SPIRAM_SUPPORT=y
#
# SPI RAM config
#
# CONFIG_SPIRAM_TYPE_AUTO is not set
# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
CONFIG_SPIRAM_TYPE_ESPPSRAM64=y
CONFIG_SPIRAM_SIZE=4194304
#
# 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

View File

@ -64,9 +64,9 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_DAC1), MP_ROM_PTR(&pin_GPIO17) },
{ MP_ROM_QSTR(MP_QSTR_DAC2), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO35) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO37) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO36) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO37) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO35) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO40) },

View File

@ -0,0 +1,52 @@
/*
* 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 "supervisor/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
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}
void board_deinit(void) {
}

View File

@ -3,7 +3,7 @@
*
* The MIT License (MIT)
*
* Copyright (c) 2016 Scott Shawcroft
* 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
@ -24,10 +24,12 @@
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_BUSIO_ONEWIRE_H
#define MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_BUSIO_ONEWIRE_H
// Micropython setup
// Use bitbangio.
#include "shared-module/busio/OneWire.h"
#define MICROPY_HW_BOARD_NAME "CrumpS2"
#define MICROPY_HW_MCU_NAME "ESP32S2"
#endif // MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_BUSIO_ONEWIRE_H
#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

View File

@ -0,0 +1,22 @@
USB_VID = 0x1209
USB_PID = 0x3141
USB_PRODUCT = "CrumpS2"
USB_MANUFACTURER = "CrumpSpace"
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_BITBANG_APA102 = 1
CIRCUITPY_MODULE=wrover
# Include these Python libraries in firmware.
# FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_DotStar

View File

@ -0,0 +1,53 @@
#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_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_APA102_MOSI), MP_ROM_PTR(&pin_GPIO40) }, // APA102
{ 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_IO43), MP_ROM_PTR(&pin_GPIO43) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO43) },
{ MP_ROM_QSTR(MP_QSTR_IO44), MP_ROM_PTR(&pin_GPIO44) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO44) },
{ MP_ROM_QSTR(MP_QSTR_IO45), MP_ROM_PTR(&pin_GPIO45) },
{ MP_ROM_QSTR(MP_QSTR_APA102_SCK), MP_ROM_PTR(&pin_GPIO45) }, // APA102
{ MP_ROM_QSTR(MP_QSTR_IO46), MP_ROM_PTR(&pin_GPIO46) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -0,0 +1,39 @@
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
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="CrumpS2"
# end of LWIP

View File

@ -14,10 +14,4 @@ CIRCUITPY_ESP_FLASH_MODE=dio
CIRCUITPY_ESP_FLASH_FREQ=80m
CIRCUITPY_ESP_FLASH_SIZE=4MB
# We only have enough endpoints available in hardware to
# enable ONE of these at a time.
CIRCUITPY_USB_MIDI = 1
CIRCUITPY_USB_HID = 0
CIRCUITPY_USB_VENDOR = 0
CIRCUITPY_MODULE=wrover

View File

@ -14,10 +14,4 @@ CIRCUITPY_ESP_FLASH_MODE=dio
CIRCUITPY_ESP_FLASH_FREQ=80m
CIRCUITPY_ESP_FLASH_SIZE=4MB
# We only have enough endpoints available in hardware to
# enable ONE of these at a time.
CIRCUITPY_USB_MIDI = 1
CIRCUITPY_USB_HID = 0
CIRCUITPY_USB_VENDOR = 0
CIRCUITPY_MODULE=wrover

View 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 "supervisor/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
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}
void board_deinit(void) {
}

View File

@ -0,0 +1,41 @@
/*
* 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 "Gravitech Cucumber M"
#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
#define DEFAULT_UART_BUS_TX (&pin_GPIO43)
#define DEFAULT_UART_BUS_RX (&pin_GPIO44)

View File

@ -0,0 +1,17 @@
USB_VID = 0x303A
USB_PID = 0x80A4
USB_PRODUCT = "Cucumber M"
USB_MANUFACTURER = "Gravitech"
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

View File

@ -0,0 +1,49 @@
#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_LED), 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_NEOPIXEL), 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_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -0,0 +1,5 @@
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="cucumber_m"
# end of LWIP

View 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 "supervisor/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
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}
void board_deinit(void) {
}

View File

@ -0,0 +1,44 @@
/*
* 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 "Gravitech Cucumber MS"
#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
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO40)
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO41)
#define DEFAULT_UART_BUS_TX (&pin_GPIO43)
#define DEFAULT_UART_BUS_RX (&pin_GPIO44)

View File

@ -0,0 +1,17 @@
USB_VID = 0x303A
USB_PID = 0x80A7
USB_PRODUCT = "Cucumber MS"
USB_MANUFACTURER = "Gravitech"
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

View File

@ -0,0 +1,52 @@
#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_LED), 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_NEOPIXEL), 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_SDA), MP_ROM_PTR(&pin_GPIO40) },
{ MP_ROM_QSTR(MP_QSTR_IO41), MP_ROM_PTR(&pin_GPIO41) },
{ MP_ROM_QSTR(MP_QSTR_SCL), 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_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -0,0 +1,5 @@
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="cucumber_ms"
# end of LWIP

View 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 "supervisor/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
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}
void board_deinit(void) {
}

View File

@ -0,0 +1,41 @@
/*
* 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 "Gravitech Cucumber R"
#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
#define DEFAULT_UART_BUS_TX (&pin_GPIO43)
#define DEFAULT_UART_BUS_RX (&pin_GPIO44)

View File

@ -0,0 +1,17 @@
USB_VID = 0x303A
USB_PID = 0x80A1
USB_PRODUCT = "Cucumber R"
USB_MANUFACTURER = "Gravitech"
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

View File

@ -0,0 +1,49 @@
#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_LED), 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_NEOPIXEL), 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_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -0,0 +1,39 @@
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
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="cucumber_r"
# end of LWIP

View 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 "supervisor/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
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}
void board_deinit(void) {
}

View File

@ -0,0 +1,44 @@
/*
* 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 "Gravitech Cucumber RS"
#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
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO40)
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO41)
#define DEFAULT_UART_BUS_TX (&pin_GPIO43)
#define DEFAULT_UART_BUS_RX (&pin_GPIO44)

View File

@ -0,0 +1,17 @@
USB_VID = 0x303A
USB_PID = 0x800D
USB_PRODUCT = "Cucumber RS"
USB_MANUFACTURER = "Gravitech"
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

View File

@ -0,0 +1,52 @@
#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_LED), 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_NEOPIXEL), 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_SDA), MP_ROM_PTR(&pin_GPIO40) },
{ MP_ROM_QSTR(MP_QSTR_IO41), MP_ROM_PTR(&pin_GPIO41) },
{ MP_ROM_QSTR(MP_QSTR_SCL), 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_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -0,0 +1,39 @@
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
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="cucumber_rs"
# end of LWIP

View File

@ -28,8 +28,6 @@
#define MICROPY_HW_BOARD_NAME "microS2"
#define MICROPY_HW_MCU_NAME "ESP32S2"
#define MICROPY_HW_LED (&pin_GPIO21)
#define MICROPY_HW_BUTTON (&pin_GPIO0)
#define MICROPY_HW_NEOPIXEL (&pin_GPIO33)
// Default bus pins

View File

@ -0,0 +1,227 @@
/*
* 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 "supervisor/board.h"
#include "mpconfigboard.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-module/displayio/__init__.h"
#include "shared-module/displayio/mipi_constants.h"
#define DELAY 0x80
// From Arduino-ST7789 library https://github.com/ananevilya/Arduino-ST7789-Library/blob/master/Arduino_ST7789.cpp
#define ST7789_TFTWIDTH 240
#define ST7789_TFTHEIGHT 240
#define ST7789_240x240_XSTART 0
#define ST7789_240x240_YSTART 0
#define ST7789_NOP 0x00
#define ST7789_SWRESET 0x01
#define ST7789_RDDID 0x04
#define ST7789_RDDST 0x09
#define ST7789_SLPIN 0x10
#define ST7789_SLPOUT 0x11
#define ST7789_PTLON 0x12
#define ST7789_NORON 0x13
#define ST7789_INVOFF 0x20
#define ST7789_INVON 0x21
#define ST7789_DISPOFF 0x28
#define ST7789_DISPON 0x29
#define ST7789_CASET 0x2A
#define ST7789_RASET 0x2B
#define ST7789_RAMWR 0x2C
#define ST7789_RAMRD 0x2E
#define ST7789_PTLAR 0x30
#define ST7789_COLMOD 0x3A
#define ST7789_MADCTL 0x36
#define ST7789_VSCSAD 0x37
#define ST7789_PORCTRL 0xB2
#define ST7789_GCTRL 0xB7
#define ST7789_VCOMS 0xBB
#define ST7789_LCMCTRL 0xC0
#define ST7789_IDSET 0xC1
#define ST7789_VDVVRHEN 0xC2
#define ST7789_VRHS 0xC3
#define ST7789_VDVS 0xC4
#define ST7789_VCMOFSET 0xC5
#define ST7789_FRCTRL2 0xC6
#define ST7789_CABCCTRL 0xC7
#define ST7789_REGSEL1 0xC8
#define ST7789_REGSEL2 0xCA
#define ST7789_PWMFRSEL 0xCC
#define ST7789_PWCTRL1 0xD0
#define ST7789_VAPVANEN 0xD2
#define ST7789_PVGAMCTRL 0xE0
#define ST7789_NVGAMCTRL 0xE1
#define ST7789_MADCTL_MY 0x80
#define ST7789_MADCTL_MX 0x40
#define ST7789_MADCTL_MV 0x20
#define ST7789_MADCTL_ML 0x10
#define ST7789_MADCTL_RGB 0x00
#define ST7789_RDID1 0xDA
#define ST7789_RDID2 0xDB
#define ST7789_RDID3 0xDC
#define ST7789_RDID4 0xDD
#define DISPLAY_MADCTL (ST7789_MADCTL_RGB)
#define DISPLAY_VSCSAD 0
// The init_sequence is bitpacked to minimize the ram impact. Every command begins with a
// command byte followed by a byte to determine the parameter count and delay. When the top bit
// of the second byte is 1 (0x80), a delay will occur after the command parameters are sent.
// The remaining 7 bits are the parameter count excluding any delay byte. The bytes following
// are the parameters. When the delay bit is set, a single byte after the parameters specifies
// the delay duration in milliseconds. The value 0xff will lead to an extra long 500 ms delay
// instead of 255 ms.uint8_t display_init_sequence[] = {
// display init sequence according to LilyGO example app
uint8_t display_init_sequence[] = {
// From Lilygo example
// sw reset
0x01, 0 | DELAY, 150,
// sleep out
0x11, 0 | DELAY, 120,
// normal display mode on
0x13, 0,
// display and color format settings
0x36, 1, DISPLAY_MADCTL,
0xB6, 2, 0x0A, 0x82,
0x3A, 1 | DELAY, 0x55, 10,
// ST7789V frame rate setting
0xB2, 5, 0x0C, 0x0C, 0x00, 0x33, 0x33,
// voltages: VGH / VGL
0xB7, 1, 0x35,
// ST7789V power setting
0xBB, 1, 0x28,
0xC0, 1, 0x0C,
0xC2, 2, 0x01, 0xFF,
0xC3, 1, 0x10,
0xC4, 1, 0x20,
0xC6, 1, 0x0F,
0xD0, 2, 0xA4, 0xA1,
// ST7789V gamma setting
0xE0, 14, 0xD0, 0x00, 0x02, 0x07, 0x0A, 0x28, 0x32, 0x44, 0x42, 0x06, 0x0E, 0x12, 0x14, 0x17,
0xE1, 14, 0xD0, 0x00, 0x02, 0x07, 0x0A, 0x28, 0x31, 0x54, 0x47, 0x0E, 0x1C, 0x17, 0x1B, 0x1E,
0x21, 0,
// display on
0x21, 0 | DELAY, 10, // _INVON
0x29, 0 | DELAY, 120
};
void board_init(void) {
// USB
common_hal_never_reset_pin(&pin_GPIO19);
common_hal_never_reset_pin(&pin_GPIO20);
// Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO6);
common_hal_never_reset_pin(&pin_GPIO7);
#endif /* DEBUG */
// Display
busio_spi_obj_t *spi = &displays[0].fourwire_bus.inline_bus;
common_hal_busio_spi_construct(
spi,
&pin_GPIO12, // CLK
&pin_GPIO11, // MOSI
NULL // MISO not connected
);
common_hal_busio_spi_never_reset(spi);
displayio_fourwire_obj_t *bus = &displays[0].fourwire_bus;
bus->base.type = &displayio_fourwire_type;
common_hal_displayio_fourwire_construct(
bus,
spi,
&pin_GPIO14, // DC
&pin_GPIO10, // CS
&pin_GPIO9, // RST
40000000, // baudrate
0, // polarity
0 // phase
);
// workaround as board_init() is called before reset_port() in main.c
pwmout_reset();
displayio_display_obj_t *display = &displays[0].display;
display->base.type = &displayio_display_type;
common_hal_displayio_display_construct(
display,
bus,
240, // width (after rotation)
240, // height (after rotation)
0, // column start
80, // row start
0, // rotation
16, // color depth
false, // grayscale
false, // pixels in a byte share a row. Only valid for depths < 8
1, // bytes per cell. Only valid for depths < 8
false, // reverse_pixels_in_byte. Only valid for depths < 8
true, // reverse_pixels_in_word
MIPI_COMMAND_SET_COLUMN_ADDRESS, // set column command
MIPI_COMMAND_SET_PAGE_ADDRESS, // set row command
MIPI_COMMAND_WRITE_MEMORY_START, // write memory command
0x37, // set vertical scroll command
display_init_sequence,
sizeof(display_init_sequence),
NULL, // There is no backlight pin, defined for now.
NO_BRIGHTNESS_COMMAND,
1.0f, // brightness (ignored)
true, // auto_brightness
false, // single_byte_bounds
false, // data_as_commands
true, // auto_refresh
60, // native_frames_per_second
false, // backlight_on_high
false // SH1107_addressing
);
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}
void board_deinit(void) {
common_hal_displayio_release_displays();
}

View File

@ -0,0 +1,44 @@
/*
* 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 "MORPHEANS MorphESP-240"
#define MICROPY_HW_MCU_NAME "ESP32S2"
#define MICROPY_HW_NEOPIXEL (&pin_GPIO16)
#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_GPIO7)
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO6)
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO12)
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO11)
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO13)

View File

@ -0,0 +1,17 @@
USB_VID = 0x303a
USB_PID = 0x80B7
USB_PRODUCT = "MORPHESP-240"
USB_MANUFACTURER = "MORPHEANS"
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

View File

@ -0,0 +1,58 @@
#include "shared-bindings/board/__init__.h"
#include "shared-module/displayio/__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_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_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_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_IO45), MP_ROM_PTR(&pin_GPIO45) },
{ MP_ROM_QSTR(MP_QSTR_IO46), MP_ROM_PTR(&pin_GPIO46) },
// Serial UART on breakout board
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO17) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO18) },
// I2C on breakout board.
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO6) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO7) },
// WS2812B RGB LED
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO16) },
// SPI on breakout board
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO11) },
{ MP_ROM_QSTR(MP_QSTR_CLK), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO13) },
// 1.3" 240x240 LCD ST7789
{ MP_ROM_QSTR(MP_QSTR_LCD_MOSI), MP_ROM_PTR(&pin_GPIO11) },
{ MP_ROM_QSTR(MP_QSTR_LCD_CLK), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_LCD_CS), MP_ROM_PTR(&pin_GPIO10) },
{ MP_ROM_QSTR(MP_QSTR_LCD_RST), MP_ROM_PTR(&pin_GPIO9) },
{ MP_ROM_QSTR(MP_QSTR_LCD_D_C), MP_ROM_PTR(&pin_GPIO14) },
{ MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -0,0 +1,6 @@
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="MORPHESP-240"
CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y
# end of LWIP

View File

@ -0,0 +1,46 @@
/*
* 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 "supervisor/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);
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}
void board_deinit(void) {
}

View File

@ -0,0 +1,41 @@
/*
* 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 "Oak Dev Tech PixelWing ESP32S2"
#define MICROPY_HW_MCU_NAME "ESP32S2"
#define MICROPY_HW_NEOPIXEL (&pin_GPIO45)
#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)

View File

@ -0,0 +1,17 @@
USB_VID = 0x1209
USB_PID = 0x4DF0
USB_PRODUCT = "Pixelwing ESP32S2"
USB_MANUFACTURER = "Oak Dev Tech"
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

View File

@ -0,0 +1,15 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO21) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_SDA),MP_ROM_PTR(&pin_GPIO33) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCL),MP_ROM_PTR(&pin_GPIO34) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO45) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -0,0 +1,39 @@
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
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="PixelWing-ESP32S2"
# end of LWIP

View File

@ -62,6 +62,11 @@ void alarm_reset(void) {
esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_ALL);
}
// This will be reset to false by full resets when bss is cleared. Otherwise, the
// reload is due to CircuitPython and the ESP wakeup cause will be stale. This
// can happen if USB is connected after a deep sleep.
STATIC bool soft_wakeup = false;
STATIC esp_sleep_wakeup_cause_t _get_wakeup_cause(void) {
// First check if the modules remember what last woke up
if (alarm_pin_pinalarm_woke_this_cycle()) {
@ -75,7 +80,11 @@ STATIC esp_sleep_wakeup_cause_t _get_wakeup_cause(void) {
}
// If waking from true deep sleep, modules will have lost their state,
// so check the deep wakeup cause manually
return esp_sleep_get_wakeup_cause();
if (!soft_wakeup) {
soft_wakeup = true;
return esp_sleep_get_wakeup_cause();
}
return ESP_SLEEP_WAKEUP_UNDEFINED;
}
bool common_hal_alarm_woken_from_sleep(void) {

Some files were not shown because too many files have changed in this diff Show More