Merge branch 'adafruit:main' into audiofilters_distortion
This commit is contained in:
commit
e18e5b2d24
175 changed files with 3702 additions and 587 deletions
2
.github/actions/deps/submodules/action.yml
vendored
2
.github/actions/deps/submodules/action.yml
vendored
|
|
@ -22,7 +22,7 @@ inputs:
|
|||
- restore
|
||||
|
||||
version:
|
||||
description: 'Whether to generate CP version'
|
||||
description: 'Whether to fetch tags to identify CP version'
|
||||
required: false
|
||||
default: false
|
||||
type: boolean
|
||||
|
|
|
|||
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
|
|
@ -183,6 +183,8 @@ jobs:
|
|||
python-version: 3.x
|
||||
- name: Set up submodules
|
||||
uses: ./.github/actions/deps/submodules
|
||||
with:
|
||||
version: true
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
|
|
|
|||
4
.gitmodules
vendored
4
.gitmodules
vendored
|
|
@ -143,7 +143,7 @@
|
|||
[submodule "ports/espressif/esp-idf"]
|
||||
path = ports/espressif/esp-idf
|
||||
url = https://github.com/adafruit/esp-idf.git
|
||||
branch = circuitpython-v5.3.1
|
||||
branch = circuitpython-v5.3.2
|
||||
[submodule "ports/espressif/esp-protocols"]
|
||||
path = ports/espressif/esp-protocols
|
||||
url = https://github.com/adafruit/esp-protocols.git
|
||||
|
|
@ -345,7 +345,7 @@
|
|||
url = https://github.com/adafruit/Adafruit_CircuitPython_Wave.git
|
||||
[submodule "ports/raspberrypi/lib/Pico-PIO-USB"]
|
||||
path = ports/raspberrypi/lib/Pico-PIO-USB
|
||||
url = https://github.com/sekigon-gonnoc/Pico-PIO-USB.git
|
||||
url = https://github.com/adafruit/Pico-PIO-USB.git
|
||||
[submodule "lib/micropython-lib"]
|
||||
path = lib/micropython-lib
|
||||
url = https://github.com/micropython/micropython-lib.git
|
||||
|
|
|
|||
4
Makefile
4
Makefile
|
|
@ -40,7 +40,7 @@ ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(BASEOPTS)
|
|||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(BASEOPTS)
|
||||
|
||||
TRANSLATE_SOURCES = extmod lib main.c ports/atmel-samd ports/cxd56 ports/espressif ports/mimxrt10xx ports/nordic ports/raspberrypi ports/stm py shared-bindings shared-module supervisor
|
||||
TRANSLATE_SOURCES = extmod lib main.c ports/atmel-samd ports/analog ports/cxd56 ports/espressif ports/mimxrt10xx ports/nordic ports/raspberrypi ports/renode ports/stm py shared-bindings shared-module supervisor
|
||||
# Paths to exclude from TRANSLATE_SOURCES
|
||||
# Each must be preceded by "-path"; if any wildcards, enclose in quotes.
|
||||
# Separate by "-o" (Find's "or" operand)
|
||||
|
|
@ -268,7 +268,7 @@ stubs:
|
|||
@$(PYTHON) tools/extract_pyi.py ports/atmel-samd/bindings $(STUBDIR)
|
||||
@$(PYTHON) tools/extract_pyi.py ports/espressif/bindings $(STUBDIR)
|
||||
@$(PYTHON) tools/extract_pyi.py ports/raspberrypi/bindings $(STUBDIR)
|
||||
@cp setup.py-stubs circuitpython-stubs/setup.py
|
||||
@sed -e "s,__version__,`python -msetuptools_scm`," < setup.py-stubs > circuitpython-stubs/setup.py
|
||||
@cp README.rst-stubs circuitpython-stubs/README.rst
|
||||
@cp MANIFEST.in-stubs circuitpython-stubs/MANIFEST.in
|
||||
@$(PYTHON) tools/board_stubs/build_board_specific_stubs/board_stub_builder.py
|
||||
|
|
|
|||
|
|
@ -136,6 +136,9 @@ Behavior
|
|||
- Adds a safe mode that does not run user code after a hard crash or brown out. This makes it
|
||||
possible to fix code that causes nasty crashes by making it available through mass storage after
|
||||
the crash. A reset (the button) is needed after it's fixed to get back into normal mode.
|
||||
- A 1 second delay is added to the boot process during which time the status LED will flash, and
|
||||
resetting the device or pressing the boot button will force the device into safe mode. This delay
|
||||
can be removed by a compile time option (``CIRCUITPY_SKIP_SAFE_MODE_WAIT``).
|
||||
- Safe mode may be handled programmatically by providing a ``safemode.py``.
|
||||
``safemode.py`` is run if the board has reset due to entering safe mode, unless the safe mode
|
||||
initiated by the user by pressing button(s).
|
||||
|
|
|
|||
84
conf.py
84
conf.py
|
|
@ -174,74 +174,22 @@ version = release = final_version
|
|||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = ["**/build*",
|
||||
".git",
|
||||
".github",
|
||||
".env",
|
||||
".venv",
|
||||
".direnv",
|
||||
".devcontainer/Readme.md",
|
||||
"circuitpython-stubs",
|
||||
"data",
|
||||
"docs/autoapi",
|
||||
"docs/README.md",
|
||||
"drivers",
|
||||
"examples",
|
||||
"extmod",
|
||||
"frozen",
|
||||
"lib",
|
||||
"main.c",
|
||||
"mpy-cross",
|
||||
"ports/*/*.c",
|
||||
"ports/*/*.h",
|
||||
"ports/*/boards",
|
||||
"ports/*/common-hal",
|
||||
"ports/*/supervisor",
|
||||
"ports/atmel-samd/asf4",
|
||||
"ports/atmel-samd/asf4_conf",
|
||||
"ports/atmel-samd/external_flash",
|
||||
"ports/atmel-samd/freetouch",
|
||||
"ports/atmel-samd/peripherals",
|
||||
"ports/atmel-samd/QTouch",
|
||||
"ports/atmel-samd/tools",
|
||||
"ports/broadcom/firmware",
|
||||
"ports/broadcom/peripherals",
|
||||
"ports/cxd56/mkspk",
|
||||
"ports/cxd56/spresense-exported-sdk",
|
||||
"ports/espressif/certificates",
|
||||
"ports/espressif/esp-idf",
|
||||
"ports/espressif/esp-camera",
|
||||
"ports/espressif/esp-protocols",
|
||||
"ports/espressif/.idf_tools",
|
||||
"ports/espressif/peripherals",
|
||||
"ports/litex/hw",
|
||||
"ports/minimal",
|
||||
"ports/mimxrt10xx/peripherals",
|
||||
"ports/mimxrt10xx/sdk",
|
||||
"ports/nordic/device",
|
||||
"ports/nordic/bluetooth",
|
||||
"ports/nordic/modules",
|
||||
"ports/nordic/nrfx",
|
||||
"ports/nordic/peripherals",
|
||||
"ports/nordic/usb",
|
||||
"ports/raspberrypi/sdk",
|
||||
"ports/raspberrypi/pioasm",
|
||||
"ports/raspberrypi/lib",
|
||||
"ports/silabs/gecko_sdk",
|
||||
"ports/silabs/tools",
|
||||
"ports/stm/st_driver",
|
||||
"ports/stm/packages",
|
||||
"ports/stm/peripherals",
|
||||
"ports/stm/ref",
|
||||
"py",
|
||||
"shared/*",
|
||||
"shared-bindings/util.*",
|
||||
"shared-module",
|
||||
"supervisor",
|
||||
"tests",
|
||||
"test-stubs",
|
||||
"tools",
|
||||
"circuitpython-stubs/README.rst"]
|
||||
include_patterns = [
|
||||
# Top directory documentation
|
||||
"*.rst",
|
||||
"*.md",
|
||||
|
||||
# Docs inherited from microypython (but not templates or README.md, see below)
|
||||
"docs/**",
|
||||
|
||||
# Module documentation
|
||||
"shared-bindings/**",
|
||||
"ports/*/bindings/**",
|
||||
|
||||
# Port READMEs in various formats
|
||||
"ports/*/README*",
|
||||
]
|
||||
exclude_patterns = ["docs/autoapi/templates/**", "docs/README.md"]
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all
|
||||
# documents.
|
||||
|
|
|
|||
|
|
@ -111,6 +111,7 @@ during power up at 1024x600 otherwise the display will be initialized at a resol
|
|||
of 800x480.
|
||||
|
||||
`Sunton ESP32-2432S028 <https://circuitpython.org/board/sunton_esp32_2432S028/>`_
|
||||
`Sunton ESP32-2432S024C <https://circuitpython.org/board/sunton_esp32_2432S024C/>`_
|
||||
|
||||
CIRCUITPY_DISPLAY_ROTATION
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
@ -119,3 +120,13 @@ If the CIRCUITPY_DISPLAY_ROTATION parameter is set the display will be initializ
|
|||
during power up with the selected rotation, otherwise the display will be initialized with
|
||||
a rotation of 0. Attempting to initialize the screen with a rotation other than 0,
|
||||
90, 180 or 270 is not supported and will result in an unexpected screen rotation.
|
||||
|
||||
`Sunton ESP32-8048S050 <https://circuitpython.org/board/sunton_esp32_8048S050/>`_
|
||||
|
||||
CIRCUITPY_DISPLAY_FREQUENCY
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Allows the entry of a display frequency used during the "dotclock" framebuffer construction.
|
||||
If a valid frequency is not defined the board will initialize the framebuffer with a
|
||||
frequency of 12500000hz (12.5Mhz). The value should be entered as an integer in hertz
|
||||
i.e. CIRCUITPY_DISPLAY_FREQUENCY=16000000 will override the default value with a 16Mhz
|
||||
display frequency.
|
||||
|
|
|
|||
11
locale/ID.po
11
locale/ID.po
|
|
@ -230,7 +230,7 @@ msgstr "%q harus kelipatan 8."
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q harus bertipe %q atau %q, bukan %q"
|
||||
|
||||
|
|
@ -817,6 +817,10 @@ msgstr "Tidak dapat menentukan RTS atau CTS dalam mode RS485"
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "Tidak dapat membuat subkelas dari irisan"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr "Tidak dapat bangun di tepi pin, hanya level"
|
||||
|
|
@ -2362,6 +2366,7 @@ msgstr "Anda menekan kedua tombol saat memulai."
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr "Anda menekan tombol A saat memulai."
|
||||
|
||||
|
|
@ -3434,10 +3439,6 @@ msgstr ""
|
|||
msgid "label redefined"
|
||||
msgstr "label didefinis ulang"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr ""
|
||||
|
|
|
|||
|
|
@ -218,7 +218,7 @@ msgstr ""
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -795,6 +795,10 @@ msgstr ""
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr ""
|
||||
|
|
@ -2311,6 +2315,7 @@ msgstr ""
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -3383,10 +3388,6 @@ msgstr ""
|
|||
msgid "label redefined"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr ""
|
||||
|
|
|
|||
11
locale/cs.po
11
locale/cs.po
|
|
@ -229,7 +229,7 @@ msgstr ""
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q musí být typu %q nebo %q, ne %q"
|
||||
|
||||
|
|
@ -811,6 +811,10 @@ msgstr "Nelze určit RTS nebo CTS v režimu RS485"
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "Nelze použít řez podtřídy"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr "Nelze probudit hranou na pinu, pouze úrovní"
|
||||
|
|
@ -2342,6 +2346,7 @@ msgstr "Při spuštění jsi stiskl obě tlačítka."
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr "Při spuštění jsi stiskl tlačítko A."
|
||||
|
||||
|
|
@ -3414,10 +3419,6 @@ msgstr ""
|
|||
msgid "label redefined"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr ""
|
||||
|
|
|
|||
|
|
@ -6,14 +6,14 @@ msgstr ""
|
|||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||
"PO-Revision-Date: 2024-10-23 01:15+0000\n"
|
||||
"Last-Translator: Sokromatrix <kroschewski1971@gmail.com>\n"
|
||||
"PO-Revision-Date: 2024-12-15 14:00+0000\n"
|
||||
"Last-Translator: Exp3rt <jannik.homberg@gmail.com>\n"
|
||||
"Language: de_DE\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.8.2-dev\n"
|
||||
"X-Generator: Weblate 5.9-rc\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
|
|
@ -202,7 +202,7 @@ msgstr "%q muss >= %d sein"
|
|||
|
||||
#: shared-module/audiofilters/Filter.c
|
||||
msgid "%q must be a %q object, %q, or %q"
|
||||
msgstr ""
|
||||
msgstr "%q muss ein %q Objekt, %q, oder %q sein"
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
|
|
@ -232,7 +232,7 @@ msgstr "%q muss ein Vielfaches von 8 sein."
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q muss von Typ %q oder %q sein, nicht %q"
|
||||
|
||||
|
|
@ -815,6 +815,10 @@ msgstr "RTS oder CTS können im RS485-Modus nicht angegeben werden"
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "Slice kann keine sub-klasse sein"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr "Kann nicht durch Flanke an Pin geweckt werden, sondern nur durch Pegel"
|
||||
|
|
@ -2374,6 +2378,7 @@ msgstr "Beide Knöpfe wurden beim Starten gedrückt."
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr "Knopf A wurde beim Starten gedrückt."
|
||||
|
||||
|
|
@ -3464,10 +3469,6 @@ msgstr "Label '%q' nicht definiert"
|
|||
msgid "label redefined"
|
||||
msgstr "Label neu definiert"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "Der Pegel muss zwischen 0 und 1 liegen"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr "lhs und rhs sollten kompatibel sein"
|
||||
|
|
@ -4459,6 +4460,9 @@ msgstr "zi muss eine Gleitkommazahl sein"
|
|||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi muss die Form (n_section, 2) haben"
|
||||
|
||||
#~ msgid "level must be between 0 and 1"
|
||||
#~ msgstr "Der Pegel muss zwischen 0 und 1 liegen"
|
||||
|
||||
#~ msgid "init I2C"
|
||||
#~ msgstr "initialisiere I2C"
|
||||
|
||||
|
|
|
|||
11
locale/el.po
11
locale/el.po
|
|
@ -233,7 +233,7 @@ msgstr ""
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q πρέπει να είναι τύπου %q ή %q, όχι %q"
|
||||
|
||||
|
|
@ -816,6 +816,10 @@ msgstr "Δεν μπορεί να οριστεί RTS ή CTS σε RS485 mode"
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "Δεν γίνεται υποκατηγορία ενός slice"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr "Δεν γίνεται αφύπνηση σε pin edge, αλλά μόνο σε level"
|
||||
|
|
@ -2339,6 +2343,7 @@ msgstr ""
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -3411,10 +3416,6 @@ msgstr ""
|
|||
msgid "label redefined"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr ""
|
||||
|
|
|
|||
|
|
@ -231,7 +231,7 @@ msgstr "%q must be multiple of 8."
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q must be of type %q or %q, not %q"
|
||||
|
||||
|
|
@ -810,6 +810,10 @@ msgstr "Cannot specify RTS or CTS in RS485 mode"
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "Cannot subclass slice"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr "Cannot wake on pin edge, only level"
|
||||
|
|
@ -2346,6 +2350,7 @@ msgstr "You pressed both buttons at start up."
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr "You pressed button A at start up."
|
||||
|
||||
|
|
@ -3421,10 +3426,6 @@ msgstr "label '%q' not defined"
|
|||
msgid "label redefined"
|
||||
msgstr "label redefined"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "level must be between 0 and 1"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr "lhs and rhs should be compatible"
|
||||
|
|
@ -4406,6 +4407,9 @@ 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 "level must be between 0 and 1"
|
||||
#~ msgstr "level must be between 0 and 1"
|
||||
|
||||
#~ msgid "init I2C"
|
||||
#~ msgstr "init I2C"
|
||||
|
||||
|
|
|
|||
18
locale/es.po
18
locale/es.po
|
|
@ -233,7 +233,7 @@ msgstr "%q debe ser múltiplo de 8."
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q debe ser del tipo %q o %q, y no %q"
|
||||
|
||||
|
|
@ -819,6 +819,10 @@ msgstr "No se puede especificar RTS o CTS en modo RS485"
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "No se puede manejar la partición en una subclase"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr "No puede ser despertado en transición de pin, only nivel"
|
||||
|
|
@ -2381,6 +2385,7 @@ msgstr "Usted presionó ambos botones al iniciar."
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr "Usted presionó el botón A al iniciar."
|
||||
|
||||
|
|
@ -3463,10 +3468,6 @@ msgstr "etiqueta '%q' no definida"
|
|||
msgid "label redefined"
|
||||
msgstr "etiqueta redefinida"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "el nivel debe ser entre 0 y 1"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr "lhs y rhs deben ser compatibles"
|
||||
|
|
@ -4373,8 +4374,8 @@ msgid ""
|
|||
"weights must be a sequence with an odd square number of elements (usually 9 "
|
||||
"or 25)"
|
||||
msgstr ""
|
||||
"los pesos deben ser una secuencia con una raíz cuadrada impar de elementos ("
|
||||
"usualmente 9 o 25)"
|
||||
"los pesos deben ser una secuencia con una raíz cuadrada impar de elementos "
|
||||
"(usualmente 9 o 25)"
|
||||
|
||||
#: shared-bindings/bitmapfilter/__init__.c
|
||||
msgid "weights must be an object of type %q, %q, %q, or %q, not %q "
|
||||
|
|
@ -4451,6 +4452,9 @@ 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 "level must be between 0 and 1"
|
||||
#~ msgstr "el nivel debe ser entre 0 y 1"
|
||||
|
||||
#~ msgid "init I2C"
|
||||
#~ msgstr "inicializacion I2C"
|
||||
|
||||
|
|
|
|||
|
|
@ -221,7 +221,7 @@ msgstr ""
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -804,6 +804,10 @@ msgstr ""
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "Hindi magawa ang sublcass slice"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr ""
|
||||
|
|
@ -2330,6 +2334,7 @@ msgstr ""
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -3415,10 +3420,6 @@ msgstr "label '%d' kailangan na i-define"
|
|||
msgid "label redefined"
|
||||
msgstr "ang label ay na-define ulit"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr "lhs at rhs ay dapat magkasundo"
|
||||
|
|
|
|||
120
locale/fr.po
120
locale/fr.po
|
|
@ -8,7 +8,7 @@ msgstr ""
|
|||
"Project-Id-Version: 0.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||
"PO-Revision-Date: 2024-11-27 20:00+0000\n"
|
||||
"PO-Revision-Date: 2024-12-13 23:00+0000\n"
|
||||
"Last-Translator: Olivier Deveault <olivierdeveault+g@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
|
|
@ -16,7 +16,7 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 5.9-dev\n"
|
||||
"X-Generator: Weblate 5.9-rc\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
|
|
@ -234,7 +234,7 @@ msgstr "%q doit être un multiple de 8."
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q doit être de type %q ou %q, pas %q"
|
||||
|
||||
|
|
@ -468,9 +468,8 @@ msgstr ", dans %q\n"
|
|||
#: shared-bindings/busdisplay/BusDisplay.c
|
||||
#: shared-bindings/epaperdisplay/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#, fuzzy
|
||||
msgid ".show(x) removed. Use .root_group = x"
|
||||
msgstr ".show(x) n'est plus disponible. Merci d'utiliser .root_group = x"
|
||||
msgstr ".show(x) retiré. Utilisez .root_group = x"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "0.0 to a complex power"
|
||||
|
|
@ -824,6 +823,10 @@ msgstr "Impossible de spécifier RTS ou CTS en mode RS485"
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "On ne peut faire de sous-classes de tranches"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr ""
|
||||
|
|
@ -861,7 +864,7 @@ msgstr "Les tableaux de coordonnées sont de longueur différentes"
|
|||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "Coordinate arrays types have different sizes"
|
||||
msgstr "Les types des matrices de coordonnées sont de longueur différentes"
|
||||
msgstr "Les types des tableaux de coordonnées sont de longueur différentes"
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "Could not set address"
|
||||
|
|
@ -922,7 +925,7 @@ msgstr "La capacité de destination est plus petite que 'destination_length'."
|
|||
|
||||
#: shared-module/jpegio/JpegDecoder.c
|
||||
msgid "Device error or wrong termination of input stream"
|
||||
msgstr ""
|
||||
msgstr "Erreur de l'appareil ou terminaison incorrecte du flux d'entrée"
|
||||
|
||||
#: ports/nordic/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Device in use"
|
||||
|
|
@ -1189,11 +1192,11 @@ msgstr "Chiffrement insuffisant"
|
|||
|
||||
#: shared-module/jpegio/JpegDecoder.c
|
||||
msgid "Insufficient memory pool for the image"
|
||||
msgstr ""
|
||||
msgstr "Le pool de mémoire est insuffisant pour l'image"
|
||||
|
||||
#: shared-module/jpegio/JpegDecoder.c
|
||||
msgid "Insufficient stream input buffer"
|
||||
msgstr ""
|
||||
msgstr "Tampon de flux d'entrée insuffisant"
|
||||
|
||||
#: ports/espressif/common-hal/wifi/Radio.c
|
||||
msgid "Interface must be started"
|
||||
|
|
@ -1227,7 +1230,7 @@ msgstr "Erreur interne #%d"
|
|||
#: ports/raspberrypi/common-hal/picodvi/Framebuffer_RP2350.c
|
||||
#: shared-bindings/pwmio/PWMOut.c
|
||||
msgid "Internal resource(s) in use"
|
||||
msgstr ""
|
||||
msgstr "Ressource(s) interne(s) en utilisation"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Internal watchdog timer expired."
|
||||
|
|
@ -1239,7 +1242,7 @@ msgstr "Erreur d'interruption."
|
|||
|
||||
#: shared-module/jpegio/JpegDecoder.c
|
||||
msgid "Interrupted by output function"
|
||||
msgstr ""
|
||||
msgstr "Interrompu par une fonction de sortie"
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Service.c
|
||||
#: ports/espressif/common-hal/espulp/ULP.c
|
||||
|
|
@ -1258,7 +1261,7 @@ msgstr "%q invalide"
|
|||
#: ports/raspberrypi/common-hal/picodvi/Framebuffer_RP2350.c
|
||||
#: shared-module/aurora_epaper/aurora_framebuffer.c
|
||||
msgid "Invalid %q and %q"
|
||||
msgstr ""
|
||||
msgstr "%q et %q invalides"
|
||||
|
||||
#: ports/atmel-samd/common-hal/microcontroller/Pin.c
|
||||
#: ports/espressif/common-hal/dotclockframebuffer/DotClockFramebuffer.c
|
||||
|
|
@ -1361,7 +1364,7 @@ msgstr "Le calque doit être une sous-classe de Group ou TileGrid"
|
|||
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid "Length of %q must be an even multiple of channel_count * type_size"
|
||||
msgstr ""
|
||||
msgstr "Longueur de %q doit être un multiple pair de channel_count * type_size"
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
msgid "MAC address was invalid"
|
||||
|
|
@ -1370,7 +1373,7 @@ msgstr "Adresse physique (MAC) invalide"
|
|||
#: ports/espressif/common-hal/_bleio/Characteristic.c
|
||||
#: ports/espressif/common-hal/_bleio/Descriptor.c
|
||||
msgid "MITM security not supported"
|
||||
msgstr ""
|
||||
msgstr "Sécurité MITM n'est pas supportée"
|
||||
|
||||
#: shared-bindings/is31fl3741/IS31FL3741.c
|
||||
msgid "Mapping must be a tuple"
|
||||
|
|
@ -1419,11 +1422,11 @@ msgstr ""
|
|||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Missing jmp_pin. %q[%u] jumps on pin"
|
||||
msgstr ""
|
||||
msgstr "Manque jmp_pin. %q[%u] effectue un saut sur broche"
|
||||
|
||||
#: shared-module/storage/__init__.c
|
||||
msgid "Mount point directory missing"
|
||||
msgstr ""
|
||||
msgstr "Répertoire de montage manquant"
|
||||
|
||||
#: shared-bindings/busio/UART.c shared-bindings/displayio/Group.c
|
||||
msgid "Must be a %q subclass."
|
||||
|
|
@ -1459,9 +1462,8 @@ msgid "New bitmap must be same size as old bitmap"
|
|||
msgstr "La taille du nouveau bitmap doit être la même que l'ancien"
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/__init__.c
|
||||
#, fuzzy
|
||||
msgid "Nimble out of memory"
|
||||
msgstr "Nimble n'a plus de mémoire"
|
||||
msgstr "Mémoire nimble épuisée"
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/espressif/common-hal/busio/SPI.c
|
||||
|
|
@ -1511,7 +1513,7 @@ msgstr "Aucune IP"
|
|||
#: ports/cxd56/common-hal/microcontroller/__init__.c
|
||||
#: ports/mimxrt10xx/common-hal/microcontroller/__init__.c
|
||||
msgid "No bootloader present"
|
||||
msgstr ""
|
||||
msgstr "Aucun bootloader présent"
|
||||
|
||||
#: shared-module/usb/core/Device.c
|
||||
msgid "No configuration set"
|
||||
|
|
@ -1607,13 +1609,13 @@ msgstr "Ne joue pas"
|
|||
|
||||
#: shared-module/jpegio/JpegDecoder.c
|
||||
msgid "Not supported JPEG standard"
|
||||
msgstr ""
|
||||
msgstr "Standard JPEG non supporté"
|
||||
|
||||
#: ports/espressif/common-hal/paralleldisplaybus/ParallelBus.c
|
||||
#: ports/espressif/common-hal/sdioio/SDCard.c
|
||||
#, c-format
|
||||
msgid "Number of data_pins must be %d or %d, not %d"
|
||||
msgstr ""
|
||||
msgstr "Nombre de data_pins doit être %d ou %d, pas %d"
|
||||
|
||||
#: shared-bindings/util.c
|
||||
msgid ""
|
||||
|
|
@ -1638,7 +1640,7 @@ msgstr "OK"
|
|||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
#, c-format
|
||||
msgid "Only 8 or 16 bit mono with %dx oversampling supported."
|
||||
msgstr ""
|
||||
msgstr "Seulement 8 ou 16 bits mono avec suréchantillonnage %dx supporté."
|
||||
|
||||
#: ports/espressif/common-hal/wifi/__init__.c
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
|
|
@ -1749,7 +1751,7 @@ msgstr "Canal A de PWM slice est utilisé"
|
|||
|
||||
#: shared-module/jpegio/JpegDecoder.c
|
||||
msgid "Parameter error"
|
||||
msgstr ""
|
||||
msgstr "Erreur de paramètre"
|
||||
|
||||
#: ports/espressif/common-hal/audiobusio/__init__.c
|
||||
msgid "Peripheral in use"
|
||||
|
|
@ -1861,7 +1863,7 @@ msgstr "RISE_AND_FALL n'est pas disponible sur cette puce"
|
|||
|
||||
#: shared-module/displayio/OnDiskBitmap.c
|
||||
msgid "RLE-compressed BMP not supported"
|
||||
msgstr ""
|
||||
msgstr "BMP avec compression RLE non supporté"
|
||||
|
||||
#: ports/stm/common-hal/os/__init__.c
|
||||
msgid "RNG DeInit Error"
|
||||
|
|
@ -1930,7 +1932,7 @@ msgstr "Canal droit non supporté"
|
|||
|
||||
#: shared-module/jpegio/JpegDecoder.c
|
||||
msgid "Right format but not supported"
|
||||
msgstr ""
|
||||
msgstr "Format correct mais non supporté"
|
||||
|
||||
#: main.c
|
||||
msgid "Running in safe mode! Not running saved code.\n"
|
||||
|
|
@ -1953,7 +1955,7 @@ msgstr "Erreur de SDIO GetCardInfo %d"
|
|||
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||
#, c-format
|
||||
msgid "SDIO Init Error %x"
|
||||
msgstr ""
|
||||
msgstr "Erreur d'initialisation SDIO %x"
|
||||
|
||||
#: ports/espressif/common-hal/busio/SPI.c
|
||||
msgid "SPI configuration failed"
|
||||
|
|
@ -2020,7 +2022,7 @@ msgstr "Spécifiez une unique broche parmi data0 ou data_pins"
|
|||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Stack overflow. Increase stack size."
|
||||
msgstr ""
|
||||
msgstr "Débordement de pile. Augmentez la taille de pile."
|
||||
|
||||
#: shared-bindings/alarm/time/TimeAlarm.c
|
||||
msgid "Supply one of monotonic_time or epoch_time"
|
||||
|
|
@ -2049,7 +2051,7 @@ msgstr "La taille de rgb_pins doit être 6, 12, 18, 24 ou 30"
|
|||
#: shared-module/audiodelays/Echo.c shared-module/audiofilters/Filter.c
|
||||
#: shared-module/audiomixer/MixerVoice.c
|
||||
msgid "The sample's %q does not match"
|
||||
msgstr ""
|
||||
msgstr "Le %q de l'échantillon ne concorde pas"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Third-party firmware fatal error."
|
||||
|
|
@ -2099,7 +2101,7 @@ msgstr "Trop de canaux dans l'échantillon."
|
|||
|
||||
#: ports/espressif/common-hal/_bleio/Characteristic.c
|
||||
msgid "Too many descriptors"
|
||||
msgstr ""
|
||||
msgstr "Trop de descripteurs"
|
||||
|
||||
#: shared-module/displayio/__init__.c
|
||||
msgid "Too many display busses; forgot displayio.release_displays() ?"
|
||||
|
|
@ -2192,7 +2194,7 @@ msgstr "Impossible d'allouer des tampons pour une conversion signée"
|
|||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Unable to allocate to the heap."
|
||||
msgstr ""
|
||||
msgstr "Impossible d'allouer sur le tas."
|
||||
|
||||
#: ports/espressif/common-hal/busio/I2C.c
|
||||
msgid "Unable to create lock"
|
||||
|
|
@ -2317,12 +2319,12 @@ msgstr "Algorithme de hachage non supporté"
|
|||
|
||||
#: ports/espressif/common-hal/socketpool/Socket.c
|
||||
msgid "Unsupported socket type"
|
||||
msgstr ""
|
||||
msgstr "Type de socket non supporté"
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/espressif/common-hal/dualbank/__init__.c
|
||||
msgid "Update failed"
|
||||
msgstr ""
|
||||
msgstr "Échec de mise à jour"
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nordic/common-hal/_bleio/Characteristic.c
|
||||
|
|
@ -2397,6 +2399,7 @@ msgstr "Vous avez appuyé les deux boutons au démarrage."
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr "Vous avez appuyé le bouton A au démarrage."
|
||||
|
||||
|
|
@ -2411,7 +2414,7 @@ msgstr "Vous avez appuyé le bouton BOOT au démarrage"
|
|||
#: ports/espressif/boards/adafruit_feather_esp32c6_4mbflash_nopsram/mpconfigboard.h
|
||||
#: ports/espressif/boards/adafruit_itsybitsy_esp32/mpconfigboard.h
|
||||
msgid "You pressed the BOOT button at start up."
|
||||
msgstr ""
|
||||
msgstr "Vous avez appuyé sur BOOT au démarrage."
|
||||
|
||||
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
|
||||
msgid "You pressed the GPIO0 button at start up."
|
||||
|
|
@ -2497,6 +2500,7 @@ msgstr "argsort n'est pas implémenté pour les arrays aplatis"
|
|||
#: extmod/ulab/code/numpy/random/random.c
|
||||
msgid "argument must be None, an integer or a tuple of integers"
|
||||
msgstr ""
|
||||
"paramètre doit être None, un nombre entier ou un tuple de nombres entiers"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "argument name reused"
|
||||
|
|
@ -2586,11 +2590,11 @@ msgstr "opération binaire '%q' non implémentée"
|
|||
|
||||
#: ports/espressif/common-hal/audiobusio/PDMIn.c
|
||||
msgid "bit_depth must be 8, 16, 24, or 32."
|
||||
msgstr ""
|
||||
msgstr "bit_depth doit être 8, 16, 24 ou 32."
|
||||
|
||||
#: shared-module/bitmapfilter/__init__.c
|
||||
msgid "bitmap size and depth must match"
|
||||
msgstr ""
|
||||
msgstr "taille et profondeur du bitmap doivent correspondre"
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "bitmap sizes must match"
|
||||
|
|
@ -2635,7 +2639,7 @@ msgstr "tampon trop petit pour le nombre d'octets demandé"
|
|||
|
||||
#: py/emitbc.c
|
||||
msgid "bytecode overflow"
|
||||
msgstr ""
|
||||
msgstr "débordement du bytecode"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "bytes length not a multiple of item size"
|
||||
|
|
@ -2740,7 +2744,7 @@ msgstr "opération binaire impossible entre '%q' et '%q'"
|
|||
|
||||
#: py/emitnative.c
|
||||
msgid "can't do unary op of '%q'"
|
||||
msgstr ""
|
||||
msgstr "impossible d'effectuer l'opération unaire de '%q'"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
|
|
@ -2844,7 +2848,7 @@ msgstr "les éléments de la matrice ne peut être supprimés"
|
|||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr ""
|
||||
msgstr "Impossible de transformer le tableau"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
|
|
@ -3390,7 +3394,7 @@ msgstr "interval doit être dans la portée %s-%s"
|
|||
|
||||
#: py/compile.c
|
||||
msgid "invalid arch"
|
||||
msgstr ""
|
||||
msgstr "arch invalide"
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
#, c-format
|
||||
|
|
@ -3479,6 +3483,7 @@ msgstr ""
|
|||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
"paramètre mot clé non implanté - utilisez paramètres normaux à la place"
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
msgid "label '%q' not defined"
|
||||
|
|
@ -3488,10 +3493,6 @@ msgstr "label '%q' non supporté"
|
|||
msgid "label redefined"
|
||||
msgstr "étiquette redéfinie"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "le niveau doit être compris entre 0 et 1"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr "les parties gauches et droites doivent être compatibles"
|
||||
|
|
@ -3576,7 +3577,7 @@ msgstr "l'allocation de mémoire a échoué, le tas est vérrouillé"
|
|||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
msgstr "décalage memoryview trop large"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
|
|
@ -3632,7 +3633,7 @@ msgstr "nom non défini"
|
|||
|
||||
#: py/qstr.c
|
||||
msgid "name too long"
|
||||
msgstr ""
|
||||
msgstr "nom trop long"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
|
|
@ -3902,7 +3903,7 @@ msgstr "matrice de sortie est trop petite"
|
|||
|
||||
#: extmod/ulab/code/numpy/random/random.c
|
||||
msgid "out has wrong type"
|
||||
msgstr ""
|
||||
msgstr "sortie est de type incorrect"
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "out keyword is not supported for complex dtype"
|
||||
|
|
@ -3930,11 +3931,11 @@ msgstr "hors de l'intervalle de la cible"
|
|||
|
||||
#: extmod/ulab/code/numpy/random/random.c
|
||||
msgid "output array has wrong type"
|
||||
msgstr ""
|
||||
msgstr "tableau de sortie est de type incorrect"
|
||||
|
||||
#: extmod/ulab/code/numpy/random/random.c
|
||||
msgid "output array must be contiguous"
|
||||
msgstr ""
|
||||
msgstr "tableau de sortie doit être contiguë"
|
||||
|
||||
#: py/objint_mpz.c
|
||||
msgid "overflow converting long int to machine word"
|
||||
|
|
@ -3980,11 +3981,11 @@ msgstr "port doit être >= 0"
|
|||
|
||||
#: py/compile.c
|
||||
msgid "positional arg after **"
|
||||
msgstr ""
|
||||
msgstr "paramètre positionnel après **"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "positional arg after keyword arg"
|
||||
msgstr ""
|
||||
msgstr "argument positionnel après argument mot clé"
|
||||
|
||||
#: py/objint_mpz.c
|
||||
msgid "pow() 3rd argument cannot be 0"
|
||||
|
|
@ -4064,7 +4065,7 @@ msgstr "set non-supporté"
|
|||
|
||||
#: extmod/ulab/code/numpy/random/random.c
|
||||
msgid "shape must be None, and integer or a tuple of integers"
|
||||
msgstr ""
|
||||
msgstr "shape doit être None et nombre entier ou un tuple de nombres entiers"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "shape must be integer or tuple of integers"
|
||||
|
|
@ -4088,7 +4089,7 @@ msgstr "la taille n'est définie que pour les ndarrays"
|
|||
|
||||
#: extmod/ulab/code/numpy/random/random.c
|
||||
msgid "size must match out.shape when used together"
|
||||
msgstr ""
|
||||
msgstr "taille doit correspondre à out.shape lorsqu'employés ensemble"
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
|
|
@ -4136,7 +4137,7 @@ msgstr "source_bitmap doit avoir une value_count de 8"
|
|||
|
||||
#: extmod/modre.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
msgstr "scission avec sous-captures"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
|
|
@ -4189,12 +4190,12 @@ msgstr "le délai (timeout) doit être < 655.35 secondes"
|
|||
|
||||
#: ports/raspberrypi/common-hal/floppyio/__init__.c
|
||||
msgid "timeout waiting for flux"
|
||||
msgstr ""
|
||||
msgstr "délai d'expiration en attente du flux"
|
||||
|
||||
#: ports/raspberrypi/common-hal/floppyio/__init__.c
|
||||
#: shared-module/floppyio/__init__.c
|
||||
msgid "timeout waiting for index pulse"
|
||||
msgstr ""
|
||||
msgstr "délai d'expiration en attente de l'index de pulsation"
|
||||
|
||||
#: shared-module/sdcardio/SDCard.c
|
||||
msgid "timeout waiting for v1 card"
|
||||
|
|
@ -4346,7 +4347,7 @@ msgstr "instruction Xtensa '%s' non supportée avec %d paramètres"
|
|||
|
||||
#: shared-module/bitmapfilter/__init__.c
|
||||
msgid "unsupported bitmap depth"
|
||||
msgstr ""
|
||||
msgstr "profondeur de bitmap non supportée"
|
||||
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
msgid "unsupported colorspace for GifWriter"
|
||||
|
|
@ -4399,10 +4400,12 @@ msgid ""
|
|||
"weights must be a sequence with an odd square number of elements (usually 9 "
|
||||
"or 25)"
|
||||
msgstr ""
|
||||
"poids doit être une séquence avec nombre carré impair d'éléments "
|
||||
"(habituellement 9 ou 25)"
|
||||
|
||||
#: shared-bindings/bitmapfilter/__init__.c
|
||||
msgid "weights must be an object of type %q, %q, %q, or %q, not %q "
|
||||
msgstr ""
|
||||
msgstr "poids doit être un objet de type %q, %q, %q ou %q, pas %q. "
|
||||
|
||||
#: shared-bindings/is31fl3741/FrameBuffer.c
|
||||
msgid "width must be greater than zero"
|
||||
|
|
@ -4475,6 +4478,9 @@ 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 "level must be between 0 and 1"
|
||||
#~ msgstr "le niveau doit être compris entre 0 et 1"
|
||||
|
||||
#~ msgid "init I2C"
|
||||
#~ msgstr "initialisation I2C"
|
||||
|
||||
|
|
|
|||
11
locale/hi.po
11
locale/hi.po
|
|
@ -220,7 +220,7 @@ msgstr ""
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -797,6 +797,10 @@ msgstr ""
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr ""
|
||||
|
|
@ -2313,6 +2317,7 @@ msgstr ""
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -3385,10 +3390,6 @@ msgstr ""
|
|||
msgid "label redefined"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr ""
|
||||
|
|
|
|||
|
|
@ -222,7 +222,7 @@ msgstr ""
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -803,6 +803,10 @@ msgstr ""
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "Impossibile subclasare slice"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr ""
|
||||
|
|
@ -2328,6 +2332,7 @@ msgstr ""
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -3413,10 +3418,6 @@ msgstr "etichetta '%q' non definita"
|
|||
msgid "label redefined"
|
||||
msgstr "etichetta ridefinita"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr "lhs e rhs devono essere compatibili"
|
||||
|
|
|
|||
14
locale/ja.po
14
locale/ja.po
|
|
@ -232,7 +232,7 @@ msgstr "%q は 8 の倍数である必要があります"
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q は %q 型か %q 型である必要があります、 %q 型は使用できません"
|
||||
|
||||
|
|
@ -814,6 +814,10 @@ msgstr "RS485モードにRTSまたはCTSを指定できません"
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "sliceをサブクラス化することはできません"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr ""
|
||||
|
|
@ -2336,6 +2340,7 @@ msgstr ""
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -3413,10 +3418,6 @@ msgstr "ラベル'%q'は定義されていません"
|
|||
msgid "label redefined"
|
||||
msgstr "ラベルの再定義"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "levelは0から1の間でなければなりません"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr "左辺と右辺が互換でなければなりません"
|
||||
|
|
@ -4396,6 +4397,9 @@ msgstr "ziはfloat値でなければなりません"
|
|||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "level must be between 0 and 1"
|
||||
#~ msgstr "levelは0から1の間でなければなりません"
|
||||
|
||||
#~ msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
#~ msgstr "サンプルのbits_per_sampleがミキサーのそれと一致しません"
|
||||
|
||||
|
|
|
|||
11
locale/ko.po
11
locale/ko.po
|
|
@ -237,7 +237,7 @@ msgstr ""
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q는 %q가 아닌 %q 또는 %q 유형이어야 합니다"
|
||||
|
||||
|
|
@ -840,6 +840,10 @@ msgstr "RS485 모드에서는 RTS 또는 CTS를 지정할 수 없습니다"
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
#, fuzzy
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
|
|
@ -2391,6 +2395,7 @@ msgstr ""
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -3463,10 +3468,6 @@ msgstr ""
|
|||
msgid "label redefined"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr ""
|
||||
|
|
|
|||
14
locale/nl.po
14
locale/nl.po
|
|
@ -218,7 +218,7 @@ msgstr ""
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -798,6 +798,10 @@ msgstr "Kan RTS of CTS niet specificeren in RS485 modus"
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "Kan slice niet subclasseren"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr ""
|
||||
|
|
@ -2331,6 +2335,7 @@ msgstr ""
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -3409,10 +3414,6 @@ msgstr "label '%q' is niet gedefinieerd"
|
|||
msgid "label redefined"
|
||||
msgstr "label opnieuw gedefinieerd"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "level moet tussen 0 en 1 liggen"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr "lhs en rhs moeten compatibel zijn"
|
||||
|
|
@ -4392,6 +4393,9 @@ 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 "level must be between 0 and 1"
|
||||
#~ msgstr "level moet tussen 0 en 1 liggen"
|
||||
|
||||
#~ msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
#~ msgstr "De sample's bits_per_sample komen niet overeen met die van de mixer"
|
||||
|
||||
|
|
|
|||
14
locale/pl.po
14
locale/pl.po
|
|
@ -226,7 +226,7 @@ msgstr ""
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -809,6 +809,10 @@ msgstr "Nie można określić RTS ani CTS w trybie RS485"
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "Nie można dziedziczyć ze slice"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr ""
|
||||
|
|
@ -2343,6 +2347,7 @@ msgstr ""
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -3417,10 +3422,6 @@ msgstr "etykieta '%q' niezdefiniowana"
|
|||
msgid "label redefined"
|
||||
msgstr "etykieta przedefiniowana"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "poziom musi wynosić od 0 do 1"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr "lewa i prawa strona powinny być kompatybilne"
|
||||
|
|
@ -4400,6 +4401,9 @@ msgstr ""
|
|||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "level must be between 0 and 1"
|
||||
#~ msgstr "poziom musi wynosić od 0 do 1"
|
||||
|
||||
#~ msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
#~ msgstr "Wartość bits_per_sample nie pasuje do miksera"
|
||||
|
||||
|
|
|
|||
|
|
@ -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: 2024-12-04 19:57+0000\n"
|
||||
"PO-Revision-Date: 2025-01-12 00:19+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 5.9-dev\n"
|
||||
"X-Generator: Weblate 5.10-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
|
|
@ -231,7 +231,7 @@ msgstr "%q deve ser um múltiplo de 8."
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q deve ser do tipo %q ou %q e não %q"
|
||||
|
||||
|
|
@ -817,6 +817,10 @@ msgstr "Não é possível definir o RTS ou CTS no modo RS485"
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "Não é possível subclassificar a fatia"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr "Não é possível usar GPIO0..15 junto com GPIO32..47"
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr "Não é possível acordar na borda do pino, nível apenas"
|
||||
|
|
@ -2381,6 +2385,7 @@ msgstr "Você pressionou os dois botões durante a inicialização."
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr "Você pressionou o botão A na inicialização."
|
||||
|
||||
|
|
@ -3467,10 +3472,6 @@ msgstr "o rótulo '%q' não foi definido"
|
|||
msgid "label redefined"
|
||||
msgstr "o rótulo foi redefinido"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "o nível deve estar entre 0 e 1"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr "o lhs e rhs devem ser compatíveis"
|
||||
|
|
@ -4460,6 +4461,9 @@ 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 "level must be between 0 and 1"
|
||||
#~ msgstr "o nível deve estar entre 0 e 1"
|
||||
|
||||
#~ msgid "init I2C"
|
||||
#~ msgstr "inicialização do I2C"
|
||||
|
||||
|
|
|
|||
52
locale/ru.po
52
locale/ru.po
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-07-29 17:55+0000\n"
|
||||
"PO-Revision-Date: 2025-01-13 14:00+0000\n"
|
||||
"Last-Translator: gfbdrgng <hnaofegnp@hldrive.com>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: ru\n"
|
||||
|
|
@ -16,7 +16,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Weblate 5.7-dev\n"
|
||||
"X-Generator: Weblate 5.10-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
|
|
@ -204,7 +204,7 @@ msgstr "%q должно быть >= %d"
|
|||
|
||||
#: shared-module/audiofilters/Filter.c
|
||||
msgid "%q must be a %q object, %q, or %q"
|
||||
msgstr ""
|
||||
msgstr "%q должен быть объектом %q, %q или %q"
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
|
|
@ -233,7 +233,7 @@ msgstr "%q должно быть кратно 8."
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q должно быть типа%q или%q, а не%q"
|
||||
|
||||
|
|
@ -436,7 +436,7 @@ msgstr "«метка» требует 1 аргумент"
|
|||
|
||||
#: py/emitnative.c
|
||||
msgid "'not' not implemented"
|
||||
msgstr ""
|
||||
msgstr "'не' не реализовано"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "'return' outside function"
|
||||
|
|
@ -572,7 +572,7 @@ msgstr "Уже есть универсальный слушатель"
|
|||
|
||||
#: ports/espressif/common-hal/_bleio/__init__.c
|
||||
msgid "Already in progress"
|
||||
msgstr ""
|
||||
msgstr "Уже в процессе"
|
||||
|
||||
#: ports/espressif/bindings/espnow/ESPNow.c
|
||||
#: ports/espressif/common-hal/espulp/ULP.c
|
||||
|
|
@ -694,7 +694,7 @@ msgstr "Размер буфера %d слишком большой. Он дол
|
|||
#: shared-module/sdcardio/SDCard.c
|
||||
#, c-format
|
||||
msgid "Buffer must be a multiple of %d bytes"
|
||||
msgstr ""
|
||||
msgstr "Буфер должен быть кратен %d байт"
|
||||
|
||||
#: shared-bindings/_bleio/PacketBuffer.c
|
||||
#, c-format
|
||||
|
|
@ -818,6 +818,10 @@ msgstr "Невозможно указать RTS или CTS в режиме RS485
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "Невозможно создать подкласс среза"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr "Невозможно использовать GPIO0..15 вместе с GPIO32..47"
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr ""
|
||||
|
|
@ -1250,7 +1254,7 @@ msgstr "Недопустимый %q"
|
|||
#: ports/raspberrypi/common-hal/picodvi/Framebuffer_RP2350.c
|
||||
#: shared-module/aurora_epaper/aurora_framebuffer.c
|
||||
msgid "Invalid %q and %q"
|
||||
msgstr ""
|
||||
msgstr "Недопустимые %q и %q"
|
||||
|
||||
#: ports/atmel-samd/common-hal/microcontroller/Pin.c
|
||||
#: ports/espressif/common-hal/dotclockframebuffer/DotClockFramebuffer.c
|
||||
|
|
@ -1598,7 +1602,7 @@ msgstr "Не поддерживается Стандарт JPEG"
|
|||
#: ports/espressif/common-hal/sdioio/SDCard.c
|
||||
#, c-format
|
||||
msgid "Number of data_pins must be %d or %d, not %d"
|
||||
msgstr ""
|
||||
msgstr "Количество выводов_данных должно быть %d или %d, а не %d"
|
||||
|
||||
#: shared-bindings/util.c
|
||||
msgid ""
|
||||
|
|
@ -1937,7 +1941,7 @@ msgstr "Ошибка получения информации о карте SDIO
|
|||
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||
#, c-format
|
||||
msgid "SDIO Init Error %x"
|
||||
msgstr ""
|
||||
msgstr "Ошибка инициализации SDIO %x"
|
||||
|
||||
#: ports/espressif/common-hal/busio/SPI.c
|
||||
msgid "SPI configuration failed"
|
||||
|
|
@ -2036,7 +2040,7 @@ msgstr "Длина rgb_pins должна быть 6, 12, 18, 24 или 30"
|
|||
#: shared-module/audiodelays/Echo.c shared-module/audiofilters/Filter.c
|
||||
#: shared-module/audiomixer/MixerVoice.c
|
||||
msgid "The sample's %q does not match"
|
||||
msgstr ""
|
||||
msgstr "%q образца не совпадает"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Third-party firmware fatal error."
|
||||
|
|
@ -2381,6 +2385,7 @@ msgstr "Вы нажали обе кнопки при запуске."
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr "Вы нажали кнопку A при запуске."
|
||||
|
||||
|
|
@ -2480,7 +2485,7 @@ msgstr "сортировка arg не реализована для сглаже
|
|||
|
||||
#: extmod/ulab/code/numpy/random/random.c
|
||||
msgid "argument must be None, an integer or a tuple of integers"
|
||||
msgstr ""
|
||||
msgstr "аргумент должен быть None, целым числом или кортежем целых чисел"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "argument name reused"
|
||||
|
|
@ -2574,7 +2579,7 @@ msgstr "двоичная операция %q не реализована"
|
|||
|
||||
#: ports/espressif/common-hal/audiobusio/PDMIn.c
|
||||
msgid "bit_depth must be 8, 16, 24, or 32."
|
||||
msgstr ""
|
||||
msgstr "Глубина_бита должна быть равна 8, 16, 24 или 32."
|
||||
|
||||
#: shared-module/bitmapfilter/__init__.c
|
||||
msgid "bitmap size and depth must match"
|
||||
|
|
@ -2728,7 +2733,7 @@ msgstr "Не могу выполнить двоичную операцию ме
|
|||
|
||||
#: py/emitnative.c
|
||||
msgid "can't do unary op of '%q'"
|
||||
msgstr ""
|
||||
msgstr "Невозможно выполнить унарную операцию '%q'"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
|
|
@ -3472,10 +3477,6 @@ msgstr "Метка '%q' не определена"
|
|||
msgid "label redefined"
|
||||
msgstr "Метка переопределена"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "уровень должен быть между 0 и 1"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr "lhs и rhs должны быть совместимыми"
|
||||
|
|
@ -3618,7 +3619,7 @@ msgstr "Имя не определено"
|
|||
|
||||
#: py/qstr.c
|
||||
msgid "name too long"
|
||||
msgstr ""
|
||||
msgstr "слишком длинное имя"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
|
|
@ -3886,7 +3887,7 @@ msgstr "Наш массив слишком мал"
|
|||
|
||||
#: extmod/ulab/code/numpy/random/random.c
|
||||
msgid "out has wrong type"
|
||||
msgstr ""
|
||||
msgstr "out имеет неправильный тип"
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "out keyword is not supported for complex dtype"
|
||||
|
|
@ -3914,11 +3915,11 @@ msgstr "вне досягаемости цели"
|
|||
|
||||
#: extmod/ulab/code/numpy/random/random.c
|
||||
msgid "output array has wrong type"
|
||||
msgstr ""
|
||||
msgstr "Выходной массив имеет неправильный тип"
|
||||
|
||||
#: extmod/ulab/code/numpy/random/random.c
|
||||
msgid "output array must be contiguous"
|
||||
msgstr ""
|
||||
msgstr "выходной массив должен быть непрерывным"
|
||||
|
||||
#: py/objint_mpz.c
|
||||
msgid "overflow converting long int to machine word"
|
||||
|
|
@ -4048,7 +4049,7 @@ msgstr "Установить не поддерживается"
|
|||
|
||||
#: extmod/ulab/code/numpy/random/random.c
|
||||
msgid "shape must be None, and integer or a tuple of integers"
|
||||
msgstr ""
|
||||
msgstr "форма должна быть None, целым числом или кортежем целых чисел"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "shape must be integer or tuple of integers"
|
||||
|
|
@ -4072,7 +4073,7 @@ msgstr "размер определен только для массива ndarr
|
|||
|
||||
#: extmod/ulab/code/numpy/random/random.c
|
||||
msgid "size must match out.shape when used together"
|
||||
msgstr ""
|
||||
msgstr "Размер должен соответствовать out.shape при совместном использовании"
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
|
|
@ -4464,6 +4465,9 @@ msgstr "zi должно быть типа float"
|
|||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi должен иметь форму (n_section, 2)"
|
||||
|
||||
#~ msgid "level must be between 0 and 1"
|
||||
#~ msgstr "уровень должен быть между 0 и 1"
|
||||
|
||||
#~ msgid "init I2C"
|
||||
#~ msgstr "инициализация I2C"
|
||||
|
||||
|
|
|
|||
14
locale/sv.po
14
locale/sv.po
|
|
@ -232,7 +232,7 @@ msgstr "%q måste vara en multipel av 8."
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q måste vara av typen %q eller %q, inte %q"
|
||||
|
||||
|
|
@ -813,6 +813,10 @@ msgstr "Det går inte att specificera RTS eller CTS i RS485-läget"
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "Det går inte att subklassa slice"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr "Kan inte vakna på pin edge, bara nivå"
|
||||
|
|
@ -2357,6 +2361,7 @@ msgstr "Du tryckte ner båda knapparna vid start."
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr "Du tryckte ner knapp A vid start."
|
||||
|
||||
|
|
@ -3436,10 +3441,6 @@ msgstr "etiketten '%q' har inte definierats"
|
|||
msgid "label redefined"
|
||||
msgstr "etiketten omdefinierad"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "level ska ligga mellan 0 och 1"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr "lhs och rhs måste vara kompatibla"
|
||||
|
|
@ -4419,6 +4420,9 @@ 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 "level must be between 0 and 1"
|
||||
#~ msgstr "level ska ligga mellan 0 och 1"
|
||||
|
||||
#~ msgid "init I2C"
|
||||
#~ msgstr "I2C start"
|
||||
|
||||
|
|
|
|||
11
locale/tr.po
11
locale/tr.po
|
|
@ -231,7 +231,7 @@ msgstr ""
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -811,6 +811,10 @@ msgstr "RS485 modunda RTS veya CTS belirtilemez"
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr ""
|
||||
|
|
@ -2335,6 +2339,7 @@ msgstr ""
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -3407,10 +3412,6 @@ msgstr ""
|
|||
msgid "label redefined"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr ""
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ msgstr ""
|
|||
"Project-Id-Version: circuitpython-cn\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||
"PO-Revision-Date: 2024-11-17 01:00+0000\n"
|
||||
"PO-Revision-Date: 2024-12-21 21:01+0000\n"
|
||||
"Last-Translator: hexthat <hexthat@gmail.com>\n"
|
||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||
"Language: zh_Latn_pinyin\n"
|
||||
|
|
@ -15,7 +15,7 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.9-dev\n"
|
||||
"X-Generator: Weblate 5.10-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
|
|
@ -233,7 +233,7 @@ msgstr "%q bìxū shì 8 debèishù."
|
|||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/bitmapfilter/__init__.c shared-bindings/canio/CAN.c
|
||||
#: shared-bindings/digitalio/Pull.c shared-bindings/supervisor/__init__.c
|
||||
#: shared-module/synthio/Synthesizer.c
|
||||
#: shared-module/synthio/Biquad.c shared-module/synthio/Synthesizer.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q de lèi xíng bì xū shì %q huò %q, ér bù shì %q"
|
||||
|
||||
|
|
@ -815,6 +815,10 @@ msgstr "wúfǎ zài RS485 móshì xià zhǐdìng RTS huò CTS"
|
|||
msgid "Cannot subclass slice"
|
||||
msgstr "bùnéng zǐlèihuà qiēpiàn"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Cannot use GPIO0..15 together with GPIO32..47"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nordic/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr "wúfǎ shǐyòng biānyuán huànxǐng, zhǐnéng shǐyòng diànpíng"
|
||||
|
|
@ -2363,6 +2367,7 @@ msgstr "nín zài qǐ dòng shí àn xià le liǎng gè àn niǔ."
|
|||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr "nín zài qǐ dòng shí àn xià le àn niǔ A."
|
||||
|
||||
|
|
@ -2552,7 +2557,7 @@ msgstr "èrjìnzhì bǎn qián bǎn %q wèi zhíxíng"
|
|||
|
||||
#: ports/espressif/common-hal/audiobusio/PDMIn.c
|
||||
msgid "bit_depth must be 8, 16, 24, or 32."
|
||||
msgstr ""
|
||||
msgstr "bit_depth bìxū shì 8, 16, 24, huò 32."
|
||||
|
||||
#: shared-module/bitmapfilter/__init__.c
|
||||
msgid "bitmap size and depth must match"
|
||||
|
|
@ -3442,10 +3447,6 @@ msgstr "biāoqiān '%q' wèi dìngyì"
|
|||
msgid "label redefined"
|
||||
msgstr "biāoqiān chóngxīn dìngyì"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "Level bìxū jiè yú 0 hé 1 zhī jiān"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "lhs and rhs should be compatible"
|
||||
msgstr "lhs hé rhs yīnggāi jiānróng"
|
||||
|
|
@ -4431,6 +4432,9 @@ 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 "level must be between 0 and 1"
|
||||
#~ msgstr "Level bìxū jiè yú 0 hé 1 zhī jiān"
|
||||
|
||||
#~ msgid "init I2C"
|
||||
#~ msgstr "chūshǐhuà I2C"
|
||||
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ INC += \
|
|||
-isystem esp-idf/components/esp_hw_support/dma/include \
|
||||
-isystem esp-idf/components/esp_hw_support/include \
|
||||
-isystem esp-idf/components/esp_hw_support/include/soc \
|
||||
-isystem esp-idf/components/esp_hw_support/port/$(IDF_TARGET)/private_include \
|
||||
-isystem esp-idf/components/esp_mm/include \
|
||||
-isystem esp-idf/components/esp_netif/include \
|
||||
-isystem esp-idf/components/esp_partition/include \
|
||||
|
|
@ -245,6 +246,7 @@ CHIP_COMPONENTS = \
|
|||
|
||||
else ifeq ($(IDF_TARGET),esp32c2)
|
||||
LDFLAGS += \
|
||||
-Tesp32c2.rom.ble.ld \
|
||||
-Tesp32c2.rom.heap.ld \
|
||||
-Tesp32c2.rom.newlib.ld \
|
||||
-Tesp32c2.rom.version.ld \
|
||||
|
|
@ -261,7 +263,8 @@ LDFLAGS += \
|
|||
-Tesp32c3.rom.newlib.ld \
|
||||
-Tesp32c3.rom.newlib-time.ld \
|
||||
-Tesp32c3.rom.version.ld \
|
||||
-Tesp32c3.rom.eco3.ld
|
||||
-Tesp32c3.rom.eco3.ld \
|
||||
-Tesp32c3.rom.bt_funcs.ld
|
||||
|
||||
CHIP_COMPONENTS = \
|
||||
esp_driver_tsens
|
||||
|
|
@ -317,7 +320,8 @@ LDFLAGS += \
|
|||
-Tesp32s3.rom.newlib.ld \
|
||||
-Tesp32s3.rom.version.ld \
|
||||
-Tesp32s3.rom.systimer.ld \
|
||||
-Tesp32s3.rom.wdt.ld
|
||||
-Tesp32s3.rom.wdt.ld \
|
||||
-Tesp32s3.rom.bt_funcs.ld
|
||||
|
||||
CHIP_COMPONENTS = \
|
||||
esp_driver_tsens
|
||||
|
|
@ -626,8 +630,12 @@ ifneq ($(CIRCUITPY_BLEIO),0)
|
|||
endif
|
||||
|
||||
ifeq ($(BLE_IMPL),libble)
|
||||
BINARY_BLOBS += esp-idf/components/esp_phy/lib/$(IDF_TARGET)/libbtbb.a \
|
||||
esp-idf/components/bt/controller/lib_$(IDF_TARGET)/$(IDF_TARGET)-bt-lib/libble_app.a
|
||||
BINARY_BLOBS += esp-idf/components/esp_phy/lib/$(IDF_TARGET)/libbtbb.a
|
||||
ifeq ($(IDF_TARGET),esp32c6)
|
||||
BINARY_BLOBS += esp-idf/components/bt/controller/lib_$(IDF_TARGET)/$(IDF_TARGET)-bt-lib/$(IDF_TARGET)/libble_app.a
|
||||
else
|
||||
BINARY_BLOBS += esp-idf/components/bt/controller/lib_$(IDF_TARGET)/$(IDF_TARGET)-bt-lib/libble_app.a
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifneq ($(CIRCUITPY_ESPULP),0)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2022 Dan Halbert for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#pragma once
|
||||
|
||||
// Micropython setup
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "Adafruit Mini Sparkle Motion"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32"
|
||||
|
||||
#define MICROPY_HW_LED_STATUS (&pin_GPIO12)
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO18)
|
||||
|
||||
#define CIRCUITPY_BOARD_I2C (1)
|
||||
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO22, .sda = &pin_GPIO19}}
|
||||
|
||||
#define CIRCUITPY_BOARD_UART (1)
|
||||
#define CIRCUITPY_BOARD_UART_PIN {{.tx = &pin_GPIO25, .rx = &pin_GPIO26}}
|
||||
|
||||
// UART pins attached to the USB-serial converter chip
|
||||
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)
|
||||
#define CIRCUITPY_CONSOLE_UART_RX (&pin_GPIO3)
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
CIRCUITPY_CREATOR_ID = 0x0000239A
|
||||
CIRCUITPY_CREATION_ID = 0x00320007
|
||||
|
||||
IDF_TARGET = esp32
|
||||
|
||||
CIRCUITPY_ESP_FLASH_MODE = qio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
49
ports/espressif/boards/adafruit_mini_sparkle_motion/pins.c
Normal file
49
ports/espressif/boards/adafruit_mini_sparkle_motion/pins.c
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
static const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||
|
||||
// External pins are in silkscreen order, from top to bottom, left side, then right side
|
||||
{ MP_ROM_QSTR(MP_QSTR_BOOT), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO0) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D27), MP_ROM_PTR(&pin_GPIO27) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO25) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D25), MP_ROM_PTR(&pin_GPIO25) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO26) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D26), MP_ROM_PTR(&pin_GPIO26) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D33), MP_ROM_PTR(&pin_GPIO33) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D32), MP_ROM_PTR(&pin_GPIO32) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_GPIO18) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_MIC), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D22), MP_ROM_PTR(&pin_GPIO22) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D19), MP_ROM_PTR(&pin_GPIO19) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
|
||||
{ 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_ROM_QSTR(MP_QSTR_STEMMA_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
||||
9
ports/espressif/boards/adafruit_sparkle_motion/board.c
Normal file
9
ports/espressif/boards/adafruit_sparkle_motion/board.c
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2022 Dan Halbert for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#pragma once
|
||||
|
||||
// Micropython setup
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "Adafruit Sparkle Motion"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32"
|
||||
|
||||
#define MICROPY_HW_LED_STATUS (&pin_GPIO4)
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO2)
|
||||
|
||||
#define CIRCUITPY_BOARD_I2C (1)
|
||||
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO13, .sda = &pin_GPIO14}}
|
||||
|
||||
#define CIRCUITPY_BOARD_UART (1)
|
||||
#define CIRCUITPY_BOARD_UART_PIN {{.tx = &pin_GPIO9, .rx = &pin_GPIO10}}
|
||||
|
||||
// UART pins attached to the USB-serial converter chip
|
||||
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)
|
||||
#define CIRCUITPY_CONSOLE_UART_RX (&pin_GPIO3)
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
CIRCUITPY_CREATOR_ID = 0x0000239A
|
||||
CIRCUITPY_CREATION_ID = 0x00320006
|
||||
|
||||
IDF_TARGET = esp32
|
||||
|
||||
CIRCUITPY_ESP_FLASH_MODE = qio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
58
ports/espressif/boards/adafruit_sparkle_motion/pins.c
Normal file
58
ports/espressif/boards/adafruit_sparkle_motion/pins.c
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
static const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||
|
||||
// External pins are in silkscreen order, from top to bottom, left side, then right side
|
||||
{ MP_ROM_QSTR(MP_QSTR_IR), MP_ROM_PTR(&pin_GPIO32) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D32), MP_ROM_PTR(&pin_GPIO32) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO2) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SIG1), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D21), MP_ROM_PTR(&pin_GPIO21) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SIG2), MP_ROM_PTR(&pin_GPIO22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D22), MP_ROM_PTR(&pin_GPIO22) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SIG3), MP_ROM_PTR(&pin_GPIO19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D19), MP_ROM_PTR(&pin_GPIO19) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_BOOT), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO0) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_MIC), MP_ROM_PTR(&pin_GPIO27) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D27), MP_ROM_PTR(&pin_GPIO27) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO14) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SIG4), MP_ROM_PTR(&pin_GPIO23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D23), MP_ROM_PTR(&pin_GPIO23) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_GPIO18) },
|
||||
|
||||
{ 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_ROM_QSTR(MP_QSTR_STEMMA_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
||||
0
ports/espressif/boards/adafruit_sparkle_motion/sdkconfig
Normal file
0
ports/espressif/boards/adafruit_sparkle_motion/sdkconfig
Normal file
|
|
@ -15,3 +15,6 @@
|
|||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_GPIO38)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_GPIO37)
|
||||
|
||||
// Use the second USB device (numbered 0 and 1)
|
||||
#define CIRCUITPY_USB_DEVICE_INSTANCE 1
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
#
|
||||
# Espressif IoT Development Framework Configuration
|
||||
#
|
||||
#
|
||||
# Component config
|
||||
#
|
||||
#
|
||||
# ESP System Settings
|
||||
#
|
||||
CONFIG_ESP_CONSOLE_UART_CUSTOM=y
|
||||
# CONFIG_ESP_CONSOLE_NONE is not set
|
||||
CONFIG_ESP_CONSOLE_UART=y
|
||||
CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_0=y
|
||||
CONFIG_ESP_CONSOLE_UART_NUM=0
|
||||
CONFIG_ESP_CONSOLE_UART_TX_GPIO=1
|
||||
CONFIG_ESP_CONSOLE_UART_RX_GPIO=3
|
||||
CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
|
||||
# end of ESP System Settings
|
||||
|
||||
# end of Component config
|
||||
|
||||
# end of Espressif IoT Development Framework Configuration
|
||||
|
|
@ -110,6 +110,8 @@ void cardputer_keyboard_init(void) {
|
|||
row_addr_pins, // row_addr_pins
|
||||
7, // num_column_pins
|
||||
column_pins, // column_pins
|
||||
true, // columns_to_anodes
|
||||
false, // transpose
|
||||
0.01f, // interval
|
||||
20, // max_events
|
||||
2 // debounce_threshold
|
||||
|
|
|
|||
7
ports/espressif/boards/m5stack_stamp_s3/board.c
Normal file
7
ports/espressif/boards/m5stack_stamp_s3/board.c
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: 2025 Stella Schwankl
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "supervisor/board.h"
|
||||
20
ports/espressif/boards/m5stack_stamp_s3/mpconfigboard.h
Normal file
20
ports/espressif/boards/m5stack_stamp_s3/mpconfigboard.h
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: 2025 Stella Schwankl
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#pragma once
|
||||
|
||||
// Micropython setup
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "M5Stack Stamp-S3"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32-S3FN8"
|
||||
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO21)
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO15)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO13)
|
||||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_GPIO44)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_GPIO43)
|
||||
14
ports/espressif/boards/m5stack_stamp_s3/mpconfigboard.mk
Normal file
14
ports/espressif/boards/m5stack_stamp_s3/mpconfigboard.mk
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
USB_VID = 0x303A
|
||||
USB_PID = 0x816B
|
||||
USB_PRODUCT = "M5Stack StampS3 - CircuitPython"
|
||||
USB_MANUFACTURER = "M5STACK"
|
||||
|
||||
IDF_TARGET = esp32s3
|
||||
|
||||
CIRCUITPY_ESP_FLASH_MODE = qio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 8MB
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
||||
# Include these Python libraries in firmware.
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
|
||||
152
ports/espressif/boards/m5stack_stamp_s3/pins.c
Normal file
152
ports/espressif/boards/m5stack_stamp_s3/pins.c
Normal file
|
|
@ -0,0 +1,152 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: 2025 Stella Schwankl
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
CIRCUITPY_BOARD_BUS_SINGLETON(sd_spi, spi, 1)
|
||||
static const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||
|
||||
// Button
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BOOT0), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO0), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G0), MP_ROM_PTR(&pin_GPIO0) },
|
||||
|
||||
// GPIO
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO1), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G1), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TCH1), MP_ROM_PTR(&pin_GPIO1) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO2), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G2), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TCH2), MP_ROM_PTR(&pin_GPIO2) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO3), MP_ROM_PTR(&pin_GPIO3) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO3) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G3), MP_ROM_PTR(&pin_GPIO3) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TCH3), MP_ROM_PTR(&pin_GPIO3) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TCH4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TCH5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TCH6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO7), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G7), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TCH7), MP_ROM_PTR(&pin_GPIO7) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO8), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A8), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G8), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TCH8), MP_ROM_PTR(&pin_GPIO8) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TCH9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TCH10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO11), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A11), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G11), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TCH11), MP_ROM_PTR(&pin_GPIO11) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TCH12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TCH13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO14), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A14), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G14), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TCH14), MP_ROM_PTR(&pin_GPIO14) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO15), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A15), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G15), MP_ROM_PTR(&pin_GPIO15) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO39), MP_ROM_PTR(&pin_GPIO39) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G39), MP_ROM_PTR(&pin_GPIO39) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO40), MP_ROM_PTR(&pin_GPIO40) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G40), MP_ROM_PTR(&pin_GPIO40) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO41), MP_ROM_PTR(&pin_GPIO41) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G41), MP_ROM_PTR(&pin_GPIO41) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO42), MP_ROM_PTR(&pin_GPIO42) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G42), MP_ROM_PTR(&pin_GPIO42) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO43), MP_ROM_PTR(&pin_GPIO43) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G43), MP_ROM_PTR(&pin_GPIO43) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO44), MP_ROM_PTR(&pin_GPIO44) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G44), MP_ROM_PTR(&pin_GPIO44) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO46), MP_ROM_PTR(&pin_GPIO46) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G46), MP_ROM_PTR(&pin_GPIO46) },
|
||||
|
||||
// I2C
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C_SCL), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C_SDA), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
|
||||
// UART
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO43) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO44) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
|
||||
// Neopixel
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO21) },
|
||||
|
||||
// Display
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_RST), MP_ROM_PTR(&pin_GPIO33) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_RESET), MP_ROM_PTR(&pin_GPIO33) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_DC), MP_ROM_PTR(&pin_GPIO34) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_RS), MP_ROM_PTR(&pin_GPIO34) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_MOSI), MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_DAT), MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_DATA), MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_SCK), MP_ROM_PTR(&pin_GPIO36) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_CS), MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_BACKLIGHT), MP_ROM_PTR(&pin_GPIO38) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_BL), MP_ROM_PTR(&pin_GPIO38) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
|
||||
// Extended Port Pins
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO16), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G16), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO17), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G17), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO18), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G18), MP_ROM_PTR(&pin_GPIO18) },
|
||||
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
||||
14
ports/espressif/boards/m5stack_stamp_s3/sdkconfig
Normal file
14
ports/espressif/boards/m5stack_stamp_s3/sdkconfig
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
#
|
||||
# Espressif IoT Development Framework Configuration
|
||||
#
|
||||
#
|
||||
# Component config
|
||||
#
|
||||
#
|
||||
# LWIP
|
||||
#
|
||||
# end of LWIP
|
||||
|
||||
# end of Component config
|
||||
|
||||
# end of Espressif IoT Development Framework Configuration
|
||||
137
ports/espressif/boards/m5stack_stick_c_plus2/board.c
Normal file
137
ports/espressif/boards/m5stack_stick_c_plus2/board.c
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2023 n0xa, 2025 bootc
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "supervisor/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
#include "shared-bindings/busio/SPI.h"
|
||||
#include "shared-bindings/busio/I2C.h"
|
||||
#include "shared-bindings/fourwire/FourWire.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
#include "shared-module/displayio/mipi_constants.h"
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "driver/gpio.h"
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
// display init sequence according to adafruit_st7735r.py library
|
||||
uint8_t display_init_sequence[] = {
|
||||
0x01, 0x80, 0x96, // SWRESET and Delay 150ms
|
||||
0x11, 0x80, 0xff, // SLPOUT and Delay
|
||||
0xb1, 0x03, 0x01, 0x2C, 0x2D, // _FRMCTR1
|
||||
0xb2, 0x03, 0x01, 0x2C, 0x2D, // _FRMCTR2
|
||||
0xb3, 0x06, 0x01, 0x2C, 0x2D, 0x01, 0x2C, 0x2D, // _FRMCTR3
|
||||
0xb4, 0x01, 0x07, // _INVCTR line inversion
|
||||
0xc0, 0x03, 0xa2, 0x02, 0x84, // _PWCTR1 GVDD = 4.7V, 1.0uA
|
||||
0xc1, 0x01, 0xc5, // _PWCTR2 VGH=14.7V, VGL=-7.35V
|
||||
0xc2, 0x02, 0x0a, 0x00, // _PWCTR3 Opamp current small, Boost frequency
|
||||
0xc3, 0x02, 0x8a, 0x2a,
|
||||
0xc4, 0x02, 0x8a, 0xee,
|
||||
0xc5, 0x01, 0x0e, // _VMCTR1 VCOMH = 4V, VOML = -1.1V
|
||||
0x36, 0x01, 0xc8, // MADCTL Rotate display
|
||||
0x21, 0x00, // _INVON
|
||||
0x3a, 0x01, 0x05, // COLMOD - 16bit color
|
||||
0xe0, 0x10, 0x02, 0x1c, 0x07, 0x12, 0x37, 0x32, 0x29, 0x2d, 0x29, 0x25, 0x2B, 0x39, 0x00, 0x01, 0x03, 0x10, // _GMCTRP1 Gamma
|
||||
0xe1, 0x10, 0x03, 0x1d, 0x07, 0x06, 0x2E, 0x2C, 0x29, 0x2D, 0x2E, 0x2E, 0x37, 0x3F, 0x00, 0x00, 0x02, 0x10, // _GMCTRN1
|
||||
0x13, 0x80, 0x0a, // _NORON
|
||||
0x29, 0x80, 0x64 // _DISPON
|
||||
};
|
||||
|
||||
static void display_init(void) {
|
||||
fourwire_fourwire_obj_t *bus = &allocate_display_bus()->fourwire_bus;
|
||||
busio_spi_obj_t *spi = &bus->inline_bus;
|
||||
common_hal_busio_spi_construct(spi, &pin_GPIO13, &pin_GPIO15, NULL, false);
|
||||
common_hal_busio_spi_never_reset(spi);
|
||||
|
||||
bus->base.type = &fourwire_fourwire_type;
|
||||
|
||||
common_hal_fourwire_fourwire_construct(
|
||||
bus,
|
||||
spi,
|
||||
&pin_GPIO14, // DC
|
||||
&pin_GPIO5, // CS
|
||||
&pin_GPIO12, // RST
|
||||
10000000, // baudrate
|
||||
0, // polarity
|
||||
0 // phase
|
||||
);
|
||||
|
||||
busdisplay_busdisplay_obj_t *display = &allocate_display()->display;
|
||||
display->base.type = &busdisplay_busdisplay_type;
|
||||
|
||||
common_hal_busdisplay_busdisplay_construct(
|
||||
display,
|
||||
bus,
|
||||
135, // width (after rotation)
|
||||
240, // height (after rotation)
|
||||
40, // column start
|
||||
52, // row start
|
||||
1, // 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
|
||||
display_init_sequence,
|
||||
sizeof(display_init_sequence),
|
||||
&pin_GPIO27, // backlight pin
|
||||
NO_BRIGHTNESS_COMMAND,
|
||||
1.0f, // brightness
|
||||
false, // single_byte_bounds
|
||||
false, // data_as_commands
|
||||
true, // auto_refresh
|
||||
60, // native_frames_per_second
|
||||
true, // backlight_on_high
|
||||
false, // SH1107_addressing
|
||||
50000 // backlight pwm frequency
|
||||
);
|
||||
}
|
||||
|
||||
void board_init(void) {
|
||||
display_init();
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
// Enable HOLD early on
|
||||
config_pin_as_output_with_level(GPIO_NUM_4, true);
|
||||
|
||||
// Change the buttons to inputs
|
||||
gpio_set_direction(GPIO_NUM_35, GPIO_MODE_INPUT);
|
||||
gpio_set_pull_mode(GPIO_NUM_35, GPIO_FLOATING);
|
||||
gpio_set_direction(GPIO_NUM_37, GPIO_MODE_INPUT);
|
||||
gpio_set_pull_mode(GPIO_NUM_37, GPIO_FLOATING);
|
||||
gpio_set_direction(GPIO_NUM_39, GPIO_MODE_INPUT);
|
||||
gpio_set_pull_mode(GPIO_NUM_39, GPIO_FLOATING);
|
||||
|
||||
// Let the pins settle
|
||||
mp_hal_delay_ms(1);
|
||||
|
||||
// Safe mode if BTN_A is held at boot (logic low)
|
||||
return gpio_get_level(GPIO_NUM_37) == 0; // BTN_A
|
||||
}
|
||||
|
||||
bool espressif_board_reset_pin_number(gpio_num_t pin_number) {
|
||||
switch (pin_number) {
|
||||
case GPIO_NUM_4: // HOLD
|
||||
// HOLD(G4) pin must be set high to avoid a power off when battery powered
|
||||
config_pin_as_output_with_level(pin_number, true);
|
||||
return true;
|
||||
|
||||
case GPIO_NUM_35: // BTN_C/PWR
|
||||
case GPIO_NUM_37: // BTN_A
|
||||
case GPIO_NUM_39: // BTN_B
|
||||
gpio_set_direction(pin_number, GPIO_MODE_INPUT);
|
||||
gpio_set_pull_mode(pin_number, GPIO_FLOATING);
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
28
ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
Normal file
28
ports/espressif/boards/m5stack_stick_c_plus2/mpconfigboard.h
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2023 n0xa, 2025 bootc
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#pragma once
|
||||
|
||||
// Micropython setup
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "M5Stack Stick C Plus2"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32"
|
||||
|
||||
#define MICROPY_HW_LED_STATUS (&pin_GPIO19)
|
||||
|
||||
#define CIRCUITPY_BOARD_I2C (2)
|
||||
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO22, .sda = &pin_GPIO21}, \
|
||||
{.scl = &pin_GPIO33, .sda = &pin_GPIO32}}
|
||||
|
||||
// For entering safe mode
|
||||
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO37)
|
||||
|
||||
// Explanation of how a user got into safe mode
|
||||
#define BOARD_USER_SAFE_MODE_ACTION MP_ERROR_TEXT("You pressed button A at start up.")
|
||||
|
||||
// UART pins attached to the USB-serial converter chip
|
||||
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)
|
||||
#define CIRCUITPY_CONSOLE_UART_RX (&pin_GPIO3)
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
CIRCUITPY_CREATOR_ID = 0x10151015
|
||||
CIRCUITPY_CREATION_ID = 0x0032000C
|
||||
|
||||
IDF_TARGET = esp32
|
||||
|
||||
CIRCUITPY_ESP_FLASH_MODE = qio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 8MB
|
||||
|
||||
CIRCUITPY_ESP_PSRAM_MODE = qio
|
||||
CIRCUITPY_ESP_PSRAM_FREQ = 80m
|
||||
CIRCUITPY_ESP_PSRAM_SIZE = 2MB
|
||||
|
||||
# The safe mode wait gets us very close to the 3s time for the board to shut
|
||||
# down when BTN_C/PWR is held down. We skip the wait and instead enter safe
|
||||
# mode if BTN_A is held down during boot with no timeout.
|
||||
CIRCUITPY_SKIP_SAFE_MODE_WAIT = 1
|
||||
|
||||
# Enable PDMIn for the microphone
|
||||
CIRCUITPY_AUDIOBUSIO_PDMIN = 1
|
||||
78
ports/espressif/boards/m5stack_stick_c_plus2/pins.c
Normal file
78
ports/espressif/boards/m5stack_stick_c_plus2/pins.c
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2023 n0xa, 2025 bootc
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
|
||||
CIRCUITPY_BOARD_BUS_SINGLETON(grove_i2c, i2c, 1)
|
||||
|
||||
static const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||
|
||||
// Pin port on the top
|
||||
{ MP_ROM_QSTR(MP_QSTR_G26), MP_ROM_PTR(&pin_GPIO26) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G36), MP_ROM_PTR(&pin_GPIO36) }, // G36/G25 pin
|
||||
{ MP_ROM_QSTR(MP_QSTR_G25), MP_ROM_PTR(&pin_GPIO25) }, // G36/G25 pin
|
||||
{ MP_ROM_QSTR(MP_QSTR_G0), MP_ROM_PTR(&pin_GPIO0) }, // also PDM_MIC_CLK
|
||||
|
||||
// Grove port on the bottom
|
||||
{ MP_ROM_QSTR(MP_QSTR_G32), MP_ROM_PTR(&pin_GPIO32) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_SDA), MP_ROM_PTR(&pin_GPIO32) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G33), MP_ROM_PTR(&pin_GPIO33) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_SCL), MP_ROM_PTR(&pin_GPIO33) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_I2C), MP_ROM_PTR(&board_grove_i2c_obj) },
|
||||
|
||||
// Buttons
|
||||
{ MP_ROM_QSTR(MP_QSTR_G37), MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BTN_A), MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G39), MP_ROM_PTR(&pin_GPIO39) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BTN_B), MP_ROM_PTR(&pin_GPIO39) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G35), MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BTN_C), MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BTN_PWR), MP_ROM_PTR(&pin_GPIO35) }, // also WAKE
|
||||
|
||||
// Buzzer / Speaker
|
||||
{ MP_ROM_QSTR(MP_QSTR_G2), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPEAKER), MP_ROM_PTR(&pin_GPIO2) },
|
||||
|
||||
// Red and IR LED (single pin)
|
||||
{ MP_ROM_QSTR(MP_QSTR_G19), MP_ROM_PTR(&pin_GPIO19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IR_LED), MP_ROM_PTR(&pin_GPIO19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO19) },
|
||||
|
||||
// LCD display
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_MOSI), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_CLK), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_DC), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_RST), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_CS), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_BL), MP_ROM_PTR(&pin_GPIO27) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display)},
|
||||
|
||||
// Battery voltage sense
|
||||
{ MP_ROM_QSTR(MP_QSTR_G38), MP_ROM_PTR(&pin_GPIO38) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BAT_ADC), MP_ROM_PTR(&pin_GPIO38) },
|
||||
|
||||
// Microphone
|
||||
{ MP_ROM_QSTR(MP_QSTR_PDM_MIC_CLK), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G34), MP_ROM_PTR(&pin_GPIO34) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PDM_MIC_DATA), MP_ROM_PTR(&pin_GPIO34) },
|
||||
|
||||
// Internal I2C (IMU and RTC)
|
||||
{ MP_ROM_QSTR(MP_QSTR_G21), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SYS_SDA), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_G22), MP_ROM_PTR(&pin_GPIO22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SYS_SCL), MP_ROM_PTR(&pin_GPIO22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
|
||||
// Sleep/Wake signal
|
||||
{ MP_ROM_QSTR(MP_QSTR_WAKE), MP_ROM_PTR(&pin_GPIO35) },
|
||||
|
||||
// Power hold
|
||||
{ MP_ROM_QSTR(MP_QSTR_G4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_HOLD), MP_ROM_PTR(&pin_GPIO4) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
||||
14
ports/espressif/boards/m5stack_stick_c_plus2/sdkconfig
Normal file
14
ports/espressif/boards/m5stack_stick_c_plus2/sdkconfig
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
#
|
||||
# Espressif IoT Development Framework Configuration
|
||||
#
|
||||
#
|
||||
# Component config
|
||||
#
|
||||
#
|
||||
# LWIP
|
||||
#
|
||||
# end of LWIP
|
||||
|
||||
# end of Component config
|
||||
|
||||
# end of Espressif IoT Development Framework Configuration
|
||||
|
|
@ -12,8 +12,8 @@ CIRCUITPY_BOARD_BUS_SINGLETON(stemma_i2c, i2c, 1)
|
|||
static const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_BTN5), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BTN5), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BOOT0), MP_ROM_PTR(&pin_GPIO0) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_LED), MP_ROM_PTR(&pin_GPIO19) },
|
||||
|
|
@ -39,7 +39,6 @@ static const mp_rom_map_elem_t board_module_globals_table[] = {
|
|||
{ MP_ROM_QSTR(MP_QSTR_IN06), MP_ROM_PTR(&pin_GPIO34) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IN07), MP_ROM_PTR(&pin_GPIO35) },
|
||||
|
||||
|
||||
{ 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) },
|
||||
|
|
|
|||
111
ports/espressif/boards/sunton_esp32_2432S024C/board.c
Normal file
111
ports/espressif/boards/sunton_esp32_2432S024C/board.c
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2024 Olav Schettler
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "supervisor/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
#include "shared-module/displayio/mipi_constants.h"
|
||||
#include "driver/gpio.h"
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
#include "shared-module/os/__init__.h"
|
||||
|
||||
uint8_t display_init_sequence[] = {
|
||||
0x01, 0x80, 0x80, // # Software reset then delay 0x80 (128ms)
|
||||
0xEF, 0x03, 0x03, 0x80, 0x02,
|
||||
0xCF, 0x03, 0x00, 0xC1, 0x30,
|
||||
0xED, 0x04, 0x64, 0x03, 0x12, 0x81,
|
||||
0xE8, 0x03, 0x85, 0x00, 0x78,
|
||||
0xCB, 0x05, 0x39, 0x2C, 0x00, 0x34, 0x02,
|
||||
0xF7, 0x01, 0x20,
|
||||
0xEA, 0x02, 0x00, 0x00,
|
||||
0xc0, 0x01, 0x23, // # Power control VRH[5:0]
|
||||
0xc1, 0x01, 0x10, // # Power control SAP[2:0];BT[3:0]
|
||||
0xc5, 0x02, 0x3e, 0x28, // # VCM control
|
||||
0xc7, 0x01, 0x86, // # VCM control2
|
||||
0x36, 0x01, 0x38, // # Memory Access Control
|
||||
0x37, 0x01, 0x00, // # Vertical scroll zero
|
||||
0x3a, 0x01, 0x55, // # COLMOD: Pixel Format Set
|
||||
0xb1, 0x02, 0x00, 0x18, // # Frame Rate Control (In Normal Mode/Full Colors)
|
||||
0xb6, 0x03, 0x08, 0x82, 0x27, // # Display Function Control
|
||||
0xF2, 0x01, 0x00, // # 3Gamma Function Disable
|
||||
0x26, 0x01, 0x01, // # Gamma curve selected
|
||||
0xe0, 0x0f, 0x0F, 0x31, 0x2B, 0x0C, 0x0E, 0x08, 0x4E, 0xF1, 0x37, 0x07, 0x10, 0x03, 0x0E, 0x09, 0x00, // # Set Gamma
|
||||
0xe1, 0x0f, 0x00, 0x0E, 0x14, 0x03, 0x11, 0x07, 0x31, 0xC1, 0x48, 0x08, 0x0F, 0x0C, 0x31, 0x36, 0x0F, // # Set Gamma
|
||||
0x11, 0x80, 0x48, // # Exit Sleep then delay
|
||||
0x29, 0x80, 0x78, // # Display on then delay 0x78 (120ms)
|
||||
};
|
||||
|
||||
static void display_init(void) {
|
||||
fourwire_fourwire_obj_t *bus = &allocate_display_bus()->fourwire_bus;
|
||||
busio_spi_obj_t *spi = &bus->inline_bus;
|
||||
mp_int_t rotation;
|
||||
common_hal_busio_spi_construct(spi, &pin_GPIO14, &pin_GPIO13, &pin_GPIO12, false);
|
||||
common_hal_busio_spi_never_reset(spi);
|
||||
|
||||
bus->base.type = &fourwire_fourwire_type;
|
||||
common_hal_fourwire_fourwire_construct(bus,
|
||||
spi,
|
||||
&pin_GPIO2, // TFT_DC Command or data
|
||||
&pin_GPIO15, // TFT_CS Chip select
|
||||
NULL, // TFT_RST Reset
|
||||
6000000, // Baudrate
|
||||
0, // Polarity
|
||||
0); // Phase
|
||||
|
||||
busdisplay_busdisplay_obj_t *display = &allocate_display()->display;
|
||||
display->base.type = &busdisplay_busdisplay_type;
|
||||
os_getenv_err_t result = common_hal_os_getenv_int("CIRCUITPY_DISPLAY_ROTATION", &rotation);
|
||||
if (result != GETENV_OK) {
|
||||
rotation = 0;
|
||||
}
|
||||
|
||||
common_hal_busdisplay_busdisplay_construct(display,
|
||||
bus,
|
||||
320, // Width
|
||||
240, // Height
|
||||
0, // column start
|
||||
0, // row start
|
||||
rotation, // 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
|
||||
display_init_sequence,
|
||||
sizeof(display_init_sequence),
|
||||
&pin_GPIO27, // backlight pin
|
||||
NO_BRIGHTNESS_COMMAND,
|
||||
1.0f, // brightness
|
||||
false, // single_byte_bounds
|
||||
false, // data_as_commands
|
||||
true, // auto_refresh
|
||||
60, // native_frames_per_second
|
||||
true, // backlight_on_high
|
||||
false, // SH1107_addressing
|
||||
50000); // backlight pwm frequency
|
||||
}
|
||||
|
||||
void board_init(void) {
|
||||
display_init();
|
||||
}
|
||||
|
||||
bool espressif_board_reset_pin_number(gpio_num_t pin_number) {
|
||||
// Pull the speaker pin low to reduce noise on reset
|
||||
if (pin_number == 26) {
|
||||
// Turn on TFT
|
||||
config_pin_as_output_with_level(pin_number, false);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2024 Olav Schettler
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#pragma once
|
||||
|
||||
// Micropython setup
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "sunton_esp32_2432S024C"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32-D0WD-V3"
|
||||
#define MICROPY_HW_LED_STATUS (&pin_GPIO17) // LED_BLUE
|
||||
|
||||
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO0)
|
||||
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO33)
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO32)
|
||||
|
||||
#define CIRCUITPY_BOARD_SPI (2)
|
||||
#define CIRCUITPY_BOARD_SPI_PIN { \
|
||||
{.clock = &pin_GPIO18, .mosi = &pin_GPIO23, .miso = &pin_GPIO19}, /*SD*/ \
|
||||
{.clock = &pin_GPIO14, .mosi = &pin_GPIO13, .miso = &pin_GPIO12}, /*LCD*/ \
|
||||
}
|
||||
|
||||
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)
|
||||
#define CIRCUITPY_CONSOLE_UART_RX (&pin_GPIO3)
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
CIRCUITPY_CREATOR_ID = 0x19991000
|
||||
CIRCUITPY_CREATION_ID = 0x00AA024C
|
||||
|
||||
IDF_TARGET = esp32
|
||||
|
||||
CIRCUITPY_ESP_FLASH_MODE = qio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_BUILD_EXTENSIONS = bin
|
||||
68
ports/espressif/boards/sunton_esp32_2432S024C/pins.c
Normal file
68
ports/espressif/boards/sunton_esp32_2432S024C/pins.c
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2024 Olav Schettler
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
|
||||
CIRCUITPY_BOARD_BUS_SINGLETON(sd_spi, spi, 0)
|
||||
CIRCUITPY_BOARD_BUS_SINGLETON(lcd_spi, spi, 2)
|
||||
|
||||
static const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||
|
||||
// Boot button
|
||||
{ MP_ROM_QSTR(MP_QSTR_BOOT0), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO0) },
|
||||
|
||||
// Blue LED
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO17) },
|
||||
|
||||
// RGB LED
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_GREEN), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_RED), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_BLUE), MP_ROM_PTR(&pin_GPIO17) },
|
||||
|
||||
// CDS Light sensor (Not present on all boards)
|
||||
{ MP_ROM_QSTR(MP_QSTR_LDR), MP_ROM_PTR(&pin_GPIO34) },
|
||||
|
||||
// Speaker pin
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPEAKER), MP_ROM_PTR(&pin_GPIO26) },
|
||||
|
||||
// User available GPIO
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO21), MP_ROM_PTR(&pin_GPIO21) }, // P3 Pin 1
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO22), MP_ROM_PTR(&pin_GPIO22) }, // P3 Pin 2
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO35), MP_ROM_PTR(&pin_GPIO35) }, // P3 Pin 3
|
||||
|
||||
// i2c
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO33) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO32) },
|
||||
|
||||
// TF card slot
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD_MOSI), MP_ROM_PTR(&pin_GPIO23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD_MISO), MP_ROM_PTR(&pin_GPIO19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD_SCK), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_GPIO5) },
|
||||
|
||||
// ILI9341 dsplay (spi)
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_MOSI), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_MISO), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_SCK), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_CS), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_DC), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_BCKL), MP_ROM_PTR(&pin_GPIO27) },
|
||||
|
||||
// Touch (CST820)
|
||||
{ MP_ROM_QSTR(MP_QSTR_TOUCH_INT), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TOUCH_RST), MP_ROM_PTR(&pin_GPIO25) },
|
||||
|
||||
// objects
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD_SPI), MP_ROM_PTR(&board_sd_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_SPI), MP_ROM_PTR(&board_lcd_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display) },
|
||||
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
||||
0
ports/espressif/boards/sunton_esp32_2432S024C/sdkconfig
Normal file
0
ports/espressif/boards/sunton_esp32_2432S024C/sdkconfig
Normal file
|
|
@ -12,6 +12,7 @@
|
|||
#include "shared-bindings/framebufferio/FramebufferDisplay.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
#include "shared-module/os/__init__.h"
|
||||
|
||||
static const mcu_pin_obj_t *blue_pins[] = {
|
||||
&pin_GPIO8,
|
||||
|
|
@ -37,6 +38,7 @@ static const mcu_pin_obj_t *red_pins[] = {
|
|||
};
|
||||
|
||||
static void display_init(void) {
|
||||
mp_int_t frequency;
|
||||
|
||||
// Turn on backlight
|
||||
gpio_set_direction(2, GPIO_MODE_DEF_OUTPUT);
|
||||
|
|
@ -45,6 +47,10 @@ static void display_init(void) {
|
|||
|
||||
dotclockframebuffer_framebuffer_obj_t *framebuffer = &allocate_display_bus_or_raise()->dotclock;
|
||||
framebuffer->base.type = &dotclockframebuffer_framebuffer_type;
|
||||
os_getenv_err_t result = common_hal_os_getenv_int("CIRCUITPY_DISPLAY_FREQUENCY", &frequency);
|
||||
if (result != GETENV_OK) {
|
||||
frequency = 12500000;
|
||||
}
|
||||
|
||||
common_hal_dotclockframebuffer_framebuffer_construct(
|
||||
framebuffer,
|
||||
|
|
@ -55,7 +61,7 @@ static void display_init(void) {
|
|||
red_pins, MP_ARRAY_SIZE(red_pins),
|
||||
green_pins, MP_ARRAY_SIZE(green_pins),
|
||||
blue_pins, MP_ARRAY_SIZE(blue_pins),
|
||||
12500000, // Frequency
|
||||
frequency, // Frequency
|
||||
800, // width
|
||||
480, // height
|
||||
4, 8, 8, true, // horiz: pulse, back porch, front porch, idle low
|
||||
|
|
|
|||
9
ports/espressif/boards/waveshare_esp32_s3_eth/board.c
Normal file
9
ports/espressif/boards/waveshare_esp32_s3_eth/board.c
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#pragma once
|
||||
|
||||
// Micropython setup
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "Waveshare ESP32-S3-ETH"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32S3"
|
||||
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO21)
|
||||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_GPIO44)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_GPIO43)
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
USB_VID = 0x303a
|
||||
USB_PID = 0x82a7
|
||||
USB_PRODUCT = "ESP32-S3-ETH"
|
||||
USB_MANUFACTURER = "Waveshare Electronics"
|
||||
|
||||
IDF_TARGET = esp32s3
|
||||
|
||||
CIRCUITPY_ESP_FLASH_MODE = qio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 16MB
|
||||
|
||||
CIRCUITPY_ESP_PSRAM_MODE = opi
|
||||
CIRCUITPY_ESP_PSRAM_FREQ = 80m
|
||||
CIRCUITPY_ESP_PSRAM_SIZE = 8MB
|
||||
80
ports/espressif/boards/waveshare_esp32_s3_eth/pins.c
Normal file
80
ports/espressif/boards/waveshare_esp32_s3_eth/pins.c
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
static const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||
|
||||
{ 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) },
|
||||
|
||||
// SD
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD_MISO), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD_MOSI), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD_CLK), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO7), MP_ROM_PTR(&pin_GPIO7) },
|
||||
|
||||
// Ethernet
|
||||
{ MP_ROM_QSTR(MP_QSTR_ETH_RST), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ETH_INT), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ETH_MOSI), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO11), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ETH_MISO), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ETH_CLK), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ETH_CS), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ 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) },
|
||||
|
||||
// USB - these pins are broken out on the header
|
||||
// D_N
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO19), MP_ROM_PTR(&pin_GPIO19) },
|
||||
// D_P
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO20), MP_ROM_PTR(&pin_GPIO20) },
|
||||
|
||||
// NeoPixel
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO21), MP_ROM_PTR(&pin_GPIO21) },
|
||||
|
||||
{ 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) },
|
||||
|
||||
// UART
|
||||
{ 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_IO47), MP_ROM_PTR(&pin_GPIO47) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO48), MP_ROM_PTR(&pin_GPIO48) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
||||
14
ports/espressif/boards/waveshare_esp32_s3_eth/sdkconfig
Normal file
14
ports/espressif/boards/waveshare_esp32_s3_eth/sdkconfig
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
#
|
||||
# Espressif IoT Development Framework Configuration
|
||||
#
|
||||
#
|
||||
# Component config
|
||||
#
|
||||
#
|
||||
# LWIP
|
||||
#
|
||||
# end of LWIP
|
||||
|
||||
# end of Component config
|
||||
|
||||
# end of Espressif IoT Development Framework Configuration
|
||||
|
|
@ -11,6 +11,7 @@
|
|||
#define MICROPY_HW_BOARD_NAME "Waveshare ESP32-S3-Pico"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32S3"
|
||||
|
||||
#define MICROPY_HW_NEOPIXEL_ORDER_GRB (1)
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO21)
|
||||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_GPIO12)
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "shared-bindings/busio/I2C.h"
|
||||
#include "py/mperrno.h"
|
||||
#include "py/mphal.h"
|
||||
#include "py/runtime.h"
|
||||
|
||||
#include "components/driver/i2c/include/driver/i2c.h"
|
||||
|
|
@ -134,6 +135,12 @@ void common_hal_busio_i2c_deinit(busio_i2c_obj_t *self) {
|
|||
|
||||
bool common_hal_busio_i2c_probe(busio_i2c_obj_t *self, uint8_t addr) {
|
||||
esp_err_t result = i2c_master_probe(self->handle, addr, 10);
|
||||
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32S2)
|
||||
// ESP32-S2 gives spurious results when probe is called multiple times in succession without this delay.
|
||||
mp_hal_delay_ms(1);
|
||||
#endif
|
||||
|
||||
return result == ESP_OK;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 3ecf6bafcf045e0d2705ef49524456801df4f754
|
||||
Subproject commit f388200aba73826b9039be6f4fb5385c6b7136c6
|
||||
|
|
@ -1,6 +1,10 @@
|
|||
#
|
||||
# Espressif IoT Development Framework Configuration
|
||||
#
|
||||
# Compiler options
|
||||
#
|
||||
CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS=y
|
||||
# end of Compiler options
|
||||
#
|
||||
# Component config
|
||||
#
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
#
|
||||
# Espressif IoT Development Framework Configuration
|
||||
#
|
||||
# Compiler options
|
||||
#
|
||||
CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS=y
|
||||
# end of Compiler options
|
||||
#
|
||||
# Component config
|
||||
#
|
||||
|
|
|
|||
|
|
@ -17,8 +17,6 @@
|
|||
|
||||
#define CIRCUITPY_DIGITALIO_HAVE_INPUT_ONLY (1)
|
||||
|
||||
#define CIRCUITPY_USB_DEVICE_INSTANCE 1
|
||||
|
||||
#include "py/circuitpy_mpconfig.h"
|
||||
|
||||
#define MICROPY_NLR_SETJMP (1)
|
||||
|
|
|
|||
|
|
@ -292,6 +292,10 @@ safe_mode_t port_init(void) {
|
|||
break;
|
||||
}
|
||||
|
||||
if (board_requests_safe_mode()) {
|
||||
return SAFE_MODE_USER;
|
||||
}
|
||||
|
||||
return SAFE_MODE_NONE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -89,9 +89,36 @@ void tud_cdc_rx_cb(uint8_t itf) {
|
|||
}
|
||||
#endif // CIRCUITPY_USB_DEVICE
|
||||
|
||||
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||
// TEMPORARY WORKAROUND for https://github.com/hathach/tinyusb/issues/2943
|
||||
#include "soc/rtc_cntl_struct.h"
|
||||
#include "soc/usb_wrap_struct.h"
|
||||
#endif
|
||||
|
||||
void init_usb_hardware(void) {
|
||||
#if CIRCUITPY_USB_DEVICE
|
||||
// Configure USB PHY
|
||||
|
||||
// TEMPORARY WORKAROUND for https://github.com/hathach/tinyusb/issues/2943
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||
|
||||
(void)phy_hdl;
|
||||
periph_module_reset(PERIPH_USB_MODULE);
|
||||
periph_module_enable(PERIPH_USB_MODULE);
|
||||
|
||||
USB_WRAP.otg_conf.pad_enable = 1;
|
||||
// USB_OTG use internal PHY
|
||||
USB_WRAP.otg_conf.phy_sel = 0;
|
||||
// phy_sel is controlled by the following register value
|
||||
RTCCNTL.usb_conf.sw_hw_usb_phy_sel = 1;
|
||||
// phy_sel=sw_usb_phy_sel=1, USB_OTG is connected with internal PHY
|
||||
RTCCNTL.usb_conf.sw_usb_phy_sel = 1;
|
||||
|
||||
gpio_set_drive_capability(USBPHY_DM_NUM, GPIO_DRIVE_CAP_3);
|
||||
gpio_set_drive_capability(USBPHY_DP_NUM, GPIO_DRIVE_CAP_3);
|
||||
#else
|
||||
|
||||
usb_phy_config_t phy_conf = {
|
||||
.controller = USB_PHY_CTRL_OTG,
|
||||
.target = USB_PHY_TARGET_INT,
|
||||
|
|
@ -104,6 +131,7 @@ void init_usb_hardware(void) {
|
|||
#endif
|
||||
};
|
||||
usb_new_phy(&phy_conf, &phy_hdl);
|
||||
#endif
|
||||
|
||||
// Pin the USB task to the same core as CircuitPython. This way we leave
|
||||
// the other core for networking.
|
||||
|
|
|
|||
|
|
@ -139,10 +139,9 @@ def sym_default(sym):
|
|||
# to n or the symbol to m in those cases).
|
||||
if (
|
||||
sym.choice
|
||||
and not sym.choice.is_optional
|
||||
and sym.choice._selection_from_defaults() is sym
|
||||
and sym.orig_type is kconfiglib.core.BOOL
|
||||
and sym.tri_value == 2
|
||||
and sym.orig_type == kconfiglib.core.BOOL
|
||||
and sym.bool_value == 2
|
||||
):
|
||||
return True
|
||||
|
||||
|
|
|
|||
|
|
@ -207,7 +207,7 @@ CFLAGS += $(OPTIMIZATION_FLAGS)
|
|||
CFLAGS += $(CFLAGS_CYW43)
|
||||
#Debugging/Optimization
|
||||
ifeq ($(DEBUG), 1)
|
||||
CFLAGS += -ggdb3 -O3
|
||||
CFLAGS += -ggdb3 -Og
|
||||
# No LTO because we may place some functions in RAM instead of flash.
|
||||
else
|
||||
CFLAGS += -DNDEBUG
|
||||
|
|
@ -219,8 +219,7 @@ else
|
|||
endif
|
||||
endif
|
||||
|
||||
# Remove -Wno-stringop-overflow after we can test with CI's GCC 10. Mac's looks weird.
|
||||
DISABLE_WARNINGS = -Wno-stringop-overflow -Wno-cast-align
|
||||
DISABLE_WARNINGS = -Wno-cast-align
|
||||
|
||||
CFLAGS += $(INC) -Wall -Werror -std=gnu11 -fshort-enums $(BASE_CFLAGS) $(CFLAGS_MOD) $(COPT) $(DISABLE_WARNINGS) -Werror=missing-prototypes
|
||||
|
||||
|
|
|
|||
|
|
@ -24,9 +24,13 @@
|
|||
//| import memorymap
|
||||
//|
|
||||
//| FifoType = Literal["auto", "txrx", "tx", "rx", "txput", "txget", "putget"]
|
||||
//| """A type representing one of the strings ``"auto"``, ``"txrx"``, ``"tx"``, ``"rx"``, ``"txput"``, ``"txget"`` or ``"putget"``. These values are supported on RP2350. For type-checking only, not actually defined in CircuitPython."""
|
||||
//| FifoType_piov0 = Literal["auto", "txrx", "tx", "rx"]
|
||||
//| """A type representing one of the strings ``"auto"``, ``"txrx"``, ``"tx"``, or ``"rx"``. These values are supported on both RP2350 and RP2040. For type-checking only, not actually defined in CircuitPython."""
|
||||
//| MovStatusType = Literal["txfifo", "rxfifo", "irq"]
|
||||
//| """A type representing one of the strings ``"txfifo"``, ``"rxfifo"``, or ``"irq"``. These values are supported on RP2350. For type-checking only, not actually defined in CircuitPython."""
|
||||
//| MovStatusType_piov0 = Literal["txfifo"]
|
||||
//| """A type representing the string ``"txfifo"``. This value is supported on RP2350 and RP2040. For type-checking only, not actually defined in CircuitPython."""
|
||||
//|
|
||||
//| class StateMachine:
|
||||
//| """A single PIO StateMachine
|
||||
|
|
@ -152,8 +156,8 @@
|
|||
//| :param int wrap: The instruction after which to wrap to the ``wrap``
|
||||
//| instruction. As a special case, -1 (the default) indicates the
|
||||
//| last instruction of the program.
|
||||
//| :param FifoType fifo_type: How the program accessess the FIFOs. PIO version 0 only supports a subset of values.
|
||||
//| :param MovStatusType mov_status_type: What condition the ``mov status`` instruction checks. PIO version 0 only supports a subset of values.
|
||||
//| :param FifoType fifo_type: How the program accessess the FIFOs. PIO version 0 in the RP2040 only supports a subset of values, `FifoType_piov0`.
|
||||
//| :param MovStatusType mov_status_type: What condition the ``mov status`` instruction checks. PIO version 0 in the RP2040 only supports a subset of values, `MovStatusType_piov0`.
|
||||
//| :param MovStatusType mov_status_n: The FIFO depth or IRQ the ``mov status`` instruction checks for. For ``mov_status irq`` this includes the encoding of the ``next``/``prev`` selection bits.
|
||||
//| """
|
||||
//| ...
|
||||
|
|
@ -330,14 +334,14 @@ static mp_obj_t rp2pio_statemachine_make_new(const mp_obj_type_t *type, size_t n
|
|||
args[ARG_frequency].u_int,
|
||||
init_bufinfo.buf, init_bufinfo.len / 2,
|
||||
may_exec_bufinfo.buf, may_exec_bufinfo.len / 2,
|
||||
first_out_pin, out_pin_count, args[ARG_initial_out_pin_state].u_int, args[ARG_initial_out_pin_direction].u_int,
|
||||
first_in_pin, in_pin_count, args[ARG_pull_in_pin_up].u_int, args[ARG_pull_in_pin_down].u_int,
|
||||
first_set_pin, set_pin_count, args[ARG_initial_set_pin_state].u_int, args[ARG_initial_set_pin_direction].u_int,
|
||||
first_out_pin, out_pin_count, PIO_PINMASK32_FROM_VALUE(args[ARG_initial_out_pin_state].u_int), PIO_PINMASK32_FROM_VALUE(args[ARG_initial_out_pin_direction].u_int),
|
||||
first_in_pin, in_pin_count, PIO_PINMASK32_FROM_VALUE(args[ARG_pull_in_pin_up].u_int), PIO_PINMASK32_FROM_VALUE(args[ARG_pull_in_pin_down].u_int),
|
||||
first_set_pin, set_pin_count, PIO_PINMASK32_FROM_VALUE(args[ARG_initial_set_pin_state].u_int), PIO_PINMASK32_FROM_VALUE(args[ARG_initial_set_pin_direction].u_int),
|
||||
first_sideset_pin, sideset_pin_count, args[ARG_sideset_pindirs].u_bool,
|
||||
args[ARG_initial_sideset_pin_state].u_int, args[ARG_initial_sideset_pin_direction].u_int,
|
||||
PIO_PINMASK32_FROM_VALUE(args[ARG_initial_sideset_pin_state].u_int), PIO_PINMASK32_FROM_VALUE(args[ARG_initial_sideset_pin_direction].u_int),
|
||||
args[ARG_sideset_enable].u_bool,
|
||||
jmp_pin, jmp_pin_pull,
|
||||
0,
|
||||
PIO_PINMASK_FROM_VALUE(0), // wait_gpio_mask
|
||||
args[ARG_exclusive_pin_use].u_bool,
|
||||
args[ARG_auto_pull].u_bool, pull_threshold, args[ARG_out_shift_right].u_bool,
|
||||
args[ARG_wait_for_txstall].u_bool,
|
||||
|
|
|
|||
|
|
@ -21,14 +21,14 @@ void common_hal_rp2pio_statemachine_construct(rp2pio_statemachine_obj_t *self,
|
|||
size_t frequency,
|
||||
const uint16_t *init, size_t init_len,
|
||||
const uint16_t *may_exec, size_t may_exec_len,
|
||||
const mcu_pin_obj_t *first_out_pin, uint8_t out_pin_count, uint32_t initial_out_pin_state, uint32_t initial_out_pin_direction,
|
||||
const mcu_pin_obj_t *first_in_pin, uint8_t in_pin_count, uint32_t pull_pin_up, uint32_t pull_pin_down,
|
||||
const mcu_pin_obj_t *first_set_pin, uint8_t set_pin_count, uint32_t initial_set_pin_state, uint32_t initial_set_pin_direction,
|
||||
const mcu_pin_obj_t *first_out_pin, uint8_t out_pin_count, pio_pinmask32_t initial_out_pin_state, pio_pinmask32_t initial_out_pin_direction,
|
||||
const mcu_pin_obj_t *first_in_pin, uint8_t in_pin_count, pio_pinmask32_t in_pull_pin_up, pio_pinmask32_t in_pull_pin_down,
|
||||
const mcu_pin_obj_t *first_set_pin, uint8_t set_pin_count, pio_pinmask32_t initial_set_pin_state, pio_pinmask32_t initial_set_pin_direction,
|
||||
const mcu_pin_obj_t *first_sideset_pin, uint8_t sideset_pin_count, bool sideset_pindirs,
|
||||
uint32_t initial_sideset_pin_state, uint32_t initial_sideset_pin_direction,
|
||||
pio_pinmask32_t initial_sideset_pin_state, pio_pinmask32_t initial_sideset_pin_direction,
|
||||
bool sideset_enable,
|
||||
const mcu_pin_obj_t *jmp_pin, digitalio_pull_t jmp_pin_pull,
|
||||
uint32_t wait_gpio_mask,
|
||||
pio_pinmask_t wait_gpio_mask,
|
||||
bool exclusive_pin_use,
|
||||
bool auto_pull, uint8_t pull_threshold, bool out_shift_right,
|
||||
bool wait_for_txstall,
|
||||
|
|
|
|||
9
ports/raspberrypi/boards/8086_rp2040_interfacer/board.c
Normal file
9
ports/raspberrypi/boards/8086_rp2040_interfacer/board.c
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#pragma once
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "8086 RP2040 Interfacer"
|
||||
#define MICROPY_HW_MCU_NAME "rp2040"
|
||||
|
||||
#define MICROPY_HW_LED_STATUS (&pin_GPIO16)
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO27)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO26)
|
||||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_GPIO13)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_GPIO12)
|
||||
|
||||
// #define CIRCUITPY_CONSOLE_UART_RX DEFAULT_UART_BUS_RX
|
||||
// #define CIRCUITPY_CONSOLE_UART_TX DEFAULT_UART_BUS_TX
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
USB_VID = 0x3171
|
||||
USB_PID = 0x010D
|
||||
USB_PRODUCT = "RP2040 Interfacer"
|
||||
USB_MANUFACTURER = "8086 Consultancy"
|
||||
|
||||
CHIP_VARIANT = RP2040
|
||||
CHIP_FAMILY = rp2
|
||||
|
||||
EXTERNAL_FLASH_DEVICES = "W25Q16JVxQ"
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#pragma once
|
||||
|
||||
// Put board-specific pico-sdk definitions here. This file must exist.
|
||||
|
||||
// Allow extra time for xosc to start.
|
||||
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
|
||||
48
ports/raspberrypi/boards/8086_rp2040_interfacer/pins.c
Normal file
48
ports/raspberrypi/boards/8086_rp2040_interfacer/pins.c
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
static const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO26) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP26), MP_ROM_PTR(&pin_GPIO26) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO27) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP27), MP_ROM_PTR(&pin_GPIO27) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_PULL_SDA), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP18), MP_ROM_PTR(&pin_GPIO18) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_PULL_SCL), MP_ROM_PTR(&pin_GPIO19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP19), MP_ROM_PTR(&pin_GPIO19) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP16), MP_ROM_PTR(&pin_GPIO16) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_UART), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP14), MP_ROM_PTR(&pin_GPIO14) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_STQW), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP17), MP_ROM_PTR(&pin_GPIO17) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP23), MP_ROM_PTR(&pin_GPIO23) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_STEMMA_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_module_globals_table);
|
||||
|
|
@ -37,9 +37,14 @@ static const mp_rom_map_elem_t board_module_globals_table[] = {
|
|||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO11) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D22), MP_ROM_PTR(&pin_GPIO22) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO23) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D23), MP_ROM_PTR(&pin_GPIO23) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO24) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_BOOT), MP_ROM_PTR(&pin_GPIO24) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO20) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D20), MP_ROM_PTR(&pin_GPIO20) },
|
||||
|
||||
|
|
|
|||
93
ports/raspberrypi/boards/heiafr_picomo_v3/board.c
Normal file
93
ports/raspberrypi/boards/heiafr_picomo_v3/board.c
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "supervisor/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
#include "shared-bindings/busio/SPI.h"
|
||||
#include "shared-bindings/fourwire/FourWire.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
#include "shared-module/displayio/mipi_constants.h"
|
||||
#include "supervisor/shared/board.h"
|
||||
|
||||
|
||||
#define DELAY 0x80
|
||||
|
||||
uint8_t display_init_sequence[] = {
|
||||
0x01, 0 | DELAY, 150, // SWRESET
|
||||
|
||||
0x36, 1, 0x04, // MADCTL
|
||||
0x35, 1, 0x00, // TEON
|
||||
0xB2, 5, 0x0c, 0x0c, 0x00, 0x33, 0x33, // FRMCTR2
|
||||
0x3A, 1, 0x05, // COLMOD
|
||||
0xB7, 1, 0x14, // GCTRL
|
||||
0xBB, 1, 0x37, // VCOMS
|
||||
0xC0, 1, 0x2c, // LCMCTRL
|
||||
0xC2, 1, 0x01, // VDVVRHEN
|
||||
0xC3, 1, 0x12, // VRHS
|
||||
0xC4, 1, 0x20, // VDVS
|
||||
0xD0, 2, 0xa4, 0xa1, // PWRCTRL1
|
||||
0xC6, 1, 0x0f, // FRCTRL2
|
||||
0xE0, 14, 0xd0, 0x04, 0x0d, 0x11, 0x13, 0x2b, 0x3f, 0x54, 0x4c, 0x18, 0x0d, 0x0b, 0x1f, 0x23, // GMCTRP1
|
||||
0xE1, 14, 0xd0, 0x04, 0x0c, 0x11, 0x13, 0x2c, 0x3f, 0x44, 0x51, 0x2f, 0x1f, 0x1f, 0x20, 0x23, // GMCTRN1
|
||||
0x21, 0, // INVON
|
||||
|
||||
0x11, 0 | DELAY, 255, // SLPOUT
|
||||
0x29, 0 | DELAY, 100, // DISPON
|
||||
|
||||
0x2a, 4, 0x00, 0, 0x00, 0xfe, // CASET
|
||||
0x2b, 4, 0x00, 0, 0x00, 0xfe, // RASET
|
||||
0x2c, 0, // RAMWR
|
||||
};
|
||||
|
||||
void board_init(void) {
|
||||
fourwire_fourwire_obj_t *bus = &allocate_display_bus()->fourwire_bus;
|
||||
busio_spi_obj_t *spi = &bus->inline_bus;
|
||||
common_hal_busio_spi_construct(spi, &pin_GPIO18, &pin_GPIO19, NULL, false);
|
||||
common_hal_busio_spi_never_reset(spi);
|
||||
|
||||
bus->base.type = &fourwire_fourwire_type;
|
||||
common_hal_fourwire_fourwire_construct(bus,
|
||||
spi,
|
||||
&pin_GPIO16, // TFT_DC Command or data
|
||||
&pin_GPIO17, // TFT_CS Chip select
|
||||
NULL, // TFT_RST Reset
|
||||
62500000, // Baudrate
|
||||
0, // Polarity
|
||||
0); // Phase
|
||||
|
||||
busdisplay_busdisplay_obj_t *display = &allocate_display()->display;
|
||||
display->base.type = &busdisplay_busdisplay_type;
|
||||
common_hal_busdisplay_busdisplay_construct(display,
|
||||
bus,
|
||||
240, // Width
|
||||
280, // Height
|
||||
0, // column start
|
||||
20, // 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_bytes_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
|
||||
display_init_sequence,
|
||||
sizeof(display_init_sequence),
|
||||
NULL, // no backlight pin
|
||||
NO_BRIGHTNESS_COMMAND,
|
||||
1.0f, // brightness
|
||||
false, // single_byte_bounds
|
||||
false, // data_as_commands
|
||||
true, // auto_refresh
|
||||
60, // native_frames_per_second
|
||||
true, // backlight_on_high
|
||||
false, // SH1107_addressing
|
||||
0); // backlight pwm frequency
|
||||
}
|
||||
|
||||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
||||
20
ports/raspberrypi/boards/heiafr_picomo_v3/mpconfigboard.h
Normal file
20
ports/raspberrypi/boards/heiafr_picomo_v3/mpconfigboard.h
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#pragma once
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "HEIA-FR Picomo V3"
|
||||
#define MICROPY_HW_MCU_NAME "rp2040"
|
||||
|
||||
#define CIRCUITPY_RGB_STATUS_R (&pin_GPIO10)
|
||||
#define CIRCUITPY_RGB_STATUS_G (&pin_GPIO9)
|
||||
#define CIRCUITPY_RGB_STATUS_B (&pin_GPIO8)
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO21)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO20)
|
||||
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO18)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO19)
|
||||
18
ports/raspberrypi/boards/heiafr_picomo_v3/mpconfigboard.mk
Normal file
18
ports/raspberrypi/boards/heiafr_picomo_v3/mpconfigboard.mk
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
USB_VID = 0x2E8A
|
||||
USB_PID = 0x10C4
|
||||
|
||||
USB_PRODUCT = "Picomo V3"
|
||||
USB_MANUFACTURER = "HEIA-FR"
|
||||
|
||||
CHIP_VARIANT = RP2040
|
||||
CHIP_FAMILY = rp2
|
||||
|
||||
EXTERNAL_FLASH_DEVICES = "W25Q16JVxQ"
|
||||
|
||||
CIRCUITPY__EVE = 1
|
||||
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_ST7789
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Display_Shapes
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Display_Text
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_ProgressBar
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#pragma once
|
||||
|
||||
// Put board-specific pico-sdk definitions here. This file must exist.
|
||||
110
ports/raspberrypi/boards/heiafr_picomo_v3/pins.c
Normal file
110
ports/raspberrypi/boards/heiafr_picomo_v3/pins.c
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
|
||||
static const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_GP0), MP_ROM_PTR(&pin_GPIO0)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP1), MP_ROM_PTR(&pin_GPIO1)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP2), MP_ROM_PTR(&pin_GPIO2)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_SW_UP), MP_ROM_PTR(&pin_GPIO3)},
|
||||
{MP_ROM_QSTR(MP_QSTR_S1), MP_ROM_PTR(&pin_GPIO3)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP3), MP_ROM_PTR(&pin_GPIO3)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_SW_MID), MP_ROM_PTR(&pin_GPIO4)},
|
||||
{MP_ROM_QSTR(MP_QSTR_S5), MP_ROM_PTR(&pin_GPIO4)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP4), MP_ROM_PTR(&pin_GPIO4)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_SW_DOWN), MP_ROM_PTR(&pin_GPIO5)},
|
||||
{MP_ROM_QSTR(MP_QSTR_S2), MP_ROM_PTR(&pin_GPIO5)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP5), MP_ROM_PTR(&pin_GPIO5)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_SW_TOPR), MP_ROM_PTR(&pin_GPIO6)},
|
||||
{MP_ROM_QSTR(MP_QSTR_BOOTSEL), MP_ROM_PTR(&pin_GPIO6)},
|
||||
{MP_ROM_QSTR(MP_QSTR_S7), MP_ROM_PTR(&pin_GPIO6)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP6), MP_ROM_PTR(&pin_GPIO6)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_SW_RIGHT), MP_ROM_PTR(&pin_GPIO7)},
|
||||
{MP_ROM_QSTR(MP_QSTR_S4), MP_ROM_PTR(&pin_GPIO7)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP7), MP_ROM_PTR(&pin_GPIO7)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_LED_B), MP_ROM_PTR(&pin_GPIO8)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP8), MP_ROM_PTR(&pin_GPIO8)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_LED_G), MP_ROM_PTR(&pin_GPIO9)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP9), MP_ROM_PTR(&pin_GPIO9)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_LED_R), MP_ROM_PTR(&pin_GPIO10)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP10), MP_ROM_PTR(&pin_GPIO10)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_GP11), MP_ROM_PTR(&pin_GPIO11)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_GP12), MP_ROM_PTR(&pin_GPIO12)},
|
||||
{MP_ROM_QSTR(MP_QSTR_BUZZER), MP_ROM_PTR(&pin_GPIO12)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_GP13), MP_ROM_PTR(&pin_GPIO13)},
|
||||
{MP_ROM_QSTR(MP_QSTR_VER_MSB), MP_ROM_PTR(&pin_GPIO13)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_GP14), MP_ROM_PTR(&pin_GPIO14)},
|
||||
{MP_ROM_QSTR(MP_QSTR_VER_LSB), MP_ROM_PTR(&pin_GPIO14)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_GP15), MP_ROM_PTR(&pin_GPIO15)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_DISP_DC), MP_ROM_PTR(&pin_GPIO16)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP16), MP_ROM_PTR(&pin_GPIO16)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_DISP_CS), MP_ROM_PTR(&pin_GPIO17)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP17), MP_ROM_PTR(&pin_GPIO17)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_DISP_SCL), MP_ROM_PTR(&pin_GPIO18)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP18), MP_ROM_PTR(&pin_GPIO18)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_DISP_SDA), MP_ROM_PTR(&pin_GPIO19)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP19), MP_ROM_PTR(&pin_GPIO19)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_TEMP_SDA), MP_ROM_PTR(&pin_GPIO20)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP20), MP_ROM_PTR(&pin_GPIO20)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_TEMP_SCL), MP_ROM_PTR(&pin_GPIO21)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP21), MP_ROM_PTR(&pin_GPIO21)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_SW_LEFT), MP_ROM_PTR(&pin_GPIO22)},
|
||||
{MP_ROM_QSTR(MP_QSTR_S3), MP_ROM_PTR(&pin_GPIO22)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP22), MP_ROM_PTR(&pin_GPIO22)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_SW_TOPL), MP_ROM_PTR(&pin_GPIO23)},
|
||||
{MP_ROM_QSTR(MP_QSTR_S6), MP_ROM_PTR(&pin_GPIO23)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP23), MP_ROM_PTR(&pin_GPIO23)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_USB_OVCUR), MP_ROM_PTR(&pin_GPIO24)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP24), MP_ROM_PTR(&pin_GPIO24)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_GP25), MP_ROM_PTR(&pin_GPIO25)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_GP26_A0), MP_ROM_PTR(&pin_GPIO26)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP26), MP_ROM_PTR(&pin_GPIO26)},
|
||||
{MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_GP27_A1), MP_ROM_PTR(&pin_GPIO27)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP27), MP_ROM_PTR(&pin_GPIO27)},
|
||||
{MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_GP28_A2), MP_ROM_PTR(&pin_GPIO28)},
|
||||
{MP_ROM_QSTR(MP_QSTR_GP28), MP_ROM_PTR(&pin_GPIO28)},
|
||||
{MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO28)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO29)},
|
||||
{MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_GPIO29)},
|
||||
|
||||
{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_DISPLAY), MP_ROM_PTR(&displays[0].display)},
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
||||
9
ports/raspberrypi/boards/pimoroni_plasma2350w/board.c
Normal file
9
ports/raspberrypi/boards/pimoroni_plasma2350w/board.c
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
||||
1
ports/raspberrypi/boards/pimoroni_plasma2350w/link.ld
Normal file
1
ports/raspberrypi/boards/pimoroni_plasma2350w/link.ld
Normal file
|
|
@ -0,0 +1 @@
|
|||
firmware_size = 3064k;
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2024 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "Pimoroni Plasma 2350W"
|
||||
#define MICROPY_HW_MCU_NAME "rp2350A"
|
||||
|
||||
#define CIRCUITPY_RGB_STATUS_INVERTED_PWM
|
||||
#define CIRCUITPY_RGB_STATUS_R (&pin_GPIO16)
|
||||
#define CIRCUITPY_RGB_STATUS_G (&pin_GPIO17)
|
||||
#define CIRCUITPY_RGB_STATUS_B (&pin_GPIO18)
|
||||
|
||||
#define CIRCUITPY_BOARD_I2C (1)
|
||||
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO21, .sda = &pin_GPIO20}}
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO21)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO20)
|
||||
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO10)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO11)
|
||||
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO8)
|
||||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_GPIO1)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_GPIO0)
|
||||
|
||||
#define CIRCUITPY_DIGITALIO_HAVE_INVALID_PULL (1)
|
||||
#define CIRCUITPY_DIGITALIO_HAVE_INVALID_DRIVE_MODE (1)
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
USB_VID = 0x2E8A
|
||||
USB_PID = 0x10BF
|
||||
USB_PRODUCT = "Plasma 2350 W"
|
||||
USB_MANUFACTURER = "Pimoroni"
|
||||
|
||||
CHIP_VARIANT = RP2350
|
||||
CHIP_PACKAGE = A
|
||||
CHIP_FAMILY = rp2
|
||||
|
||||
EXTERNAL_FLASH_DEVICES = "W25Q32JVxQ"
|
||||
|
||||
CIRCUITPY__EVE = 1
|
||||
|
||||
CIRCUITPY_CYW43 = 1
|
||||
CIRCUITPY_SSL = 1
|
||||
CIRCUITPY_HASHLIB = 1
|
||||
CIRCUITPY_WEB_WORKFLOW = 1
|
||||
CIRCUITPY_MDNS = 1
|
||||
CIRCUITPY_SOCKETPOOL = 1
|
||||
CIRCUITPY_WIFI = 1
|
||||
CIRCUITPY_PICODVI = 0
|
||||
CIRCUITPY_USB_HOST = 0
|
||||
|
||||
CFLAGS += \
|
||||
-DCYW43_PIN_WL_DYNAMIC=0 \
|
||||
-DCYW43_DEFAULT_PIN_WL_HOST_WAKE=24 \
|
||||
-DCYW43_DEFAULT_PIN_WL_REG_ON=23 \
|
||||
-DCYW43_DEFAULT_PIN_WL_CLOCK=29 \
|
||||
-DCYW43_DEFAULT_PIN_WL_DATA_IN=24 \
|
||||
-DCYW43_DEFAULT_PIN_WL_DATA_OUT=24 \
|
||||
-DCYW43_DEFAULT_PIN_WL_CS=25 \
|
||||
-DCYW43_WL_GPIO_COUNT=3 \
|
||||
-DCYW43_WL_GPIO_LED_PIN=0
|
||||
# Must be accompanied by a linker script change
|
||||
CFLAGS += -DCIRCUITPY_FIRMWARE_SIZE='(3064 * 1024)'
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
// Put board-specific pico-sdk definitions here. This file must exist.
|
||||
78
ports/raspberrypi/boards/pimoroni_plasma2350w/pins.c
Normal file
78
ports/raspberrypi/boards/pimoroni_plasma2350w/pins.c
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2024 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
static const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP0), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO0) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP1), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO1) },
|
||||
|
||||
// GPIO2 through GPIO11 are unconnected
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SW_A), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO12) },
|
||||
|
||||
// GPIO13 is unconnected
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP14), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_CLK), MP_ROM_PTR(&pin_GPIO14) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP15), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DATA), MP_ROM_PTR(&pin_GPIO15) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP16), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_R), MP_ROM_PTR(&pin_GPIO16) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP17), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_G), MP_ROM_PTR(&pin_GPIO17) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP18), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_B), MP_ROM_PTR(&pin_GPIO18) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP19), MP_ROM_PTR(&pin_GPIO19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_INT), MP_ROM_PTR(&pin_GPIO19) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP20), MP_ROM_PTR(&pin_GPIO20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO20) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP21), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO21) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP22), MP_ROM_PTR(&pin_GPIO22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SW_BOOT), MP_ROM_PTR(&pin_GPIO22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BOOT), MP_ROM_PTR(&pin_GPIO22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_USER_SW), MP_ROM_PTR(&pin_GPIO22) },
|
||||
|
||||
// GPIO23 through GPIO25 are connected to the RM2 module
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP26), MP_ROM_PTR(&pin_GPIO26) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP26_A0), MP_ROM_PTR(&pin_GPIO26) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP27), MP_ROM_PTR(&pin_GPIO27) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP27_A1), MP_ROM_PTR(&pin_GPIO27) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP28), MP_ROM_PTR(&pin_GPIO28) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP28_A2), MP_ROM_PTR(&pin_GPIO28) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO28) },
|
||||
|
||||
// GPIO29 is connected to the RM2 module
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_STEMMA_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
||||
86
ports/raspberrypi/boards/waveshare_rp2350_geek/board.c
Normal file
86
ports/raspberrypi/boards/waveshare_rp2350_geek/board.c
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2024 Adafruit Industries LLC
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
|
||||
#include "mpconfigboard.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
#include "shared-module/displayio/mipi_constants.h"
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
#define DELAY 0x80
|
||||
|
||||
|
||||
// display init sequence according to https://github.com/adafruit/Adafruit_CircuitPython_ST7789
|
||||
uint8_t display_init_sequence[] = {
|
||||
0x01, 0 | DELAY, 0x96, // _SWRESET and Delay 150ms
|
||||
0x11, 0 | DELAY, 0xFF, // _SLPOUT and Delay 500ms
|
||||
0x3A, 0x81, 0x55, 0x0A, // _COLMOD and Delay 10ms
|
||||
0x36, 0x01, 0x08, // _MADCTL
|
||||
0x21, 0 | DELAY, 0x0A, // _INVON Hack and Delay 10ms
|
||||
0x13, 0 | DELAY, 0x0A, // _NORON and Delay 10ms
|
||||
0x36, 0x01, 0xC0, // _MADCTL
|
||||
0x29, 0 | DELAY, 0xFF, // _DISPON and Delay 500ms
|
||||
};
|
||||
|
||||
static void display_init(void) {
|
||||
|
||||
busio_spi_obj_t *spi = common_hal_board_create_spi(0);
|
||||
fourwire_fourwire_obj_t *bus = &allocate_display_bus()->fourwire_bus;
|
||||
|
||||
bus->base.type = &fourwire_fourwire_type;
|
||||
|
||||
common_hal_fourwire_fourwire_construct(
|
||||
bus,
|
||||
spi,
|
||||
&pin_GPIO8, // TFT_DC
|
||||
&pin_GPIO9, // TFT_CS
|
||||
&pin_GPIO12, // TFT_RST
|
||||
50000000, // Baudrate
|
||||
0, // Polarity
|
||||
0 // Phase
|
||||
|
||||
);
|
||||
|
||||
busdisplay_busdisplay_obj_t *display = &allocate_display()->display;
|
||||
display->base.type = &busdisplay_busdisplay_type;
|
||||
|
||||
common_hal_busdisplay_busdisplay_construct(
|
||||
display,
|
||||
bus,
|
||||
240, // Width
|
||||
135, // Height
|
||||
53, // column start
|
||||
40, // row start
|
||||
270, // rotation
|
||||
16, // Color depth
|
||||
false, // Grayscale
|
||||
false, // Pixels in a byte share a row
|
||||
1, // bytes per cell
|
||||
false, // reverse_pixels_in_byte
|
||||
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
|
||||
display_init_sequence,
|
||||
sizeof(display_init_sequence),
|
||||
&pin_GPIO25, // backlight pin
|
||||
NO_BRIGHTNESS_COMMAND,
|
||||
1.0f, // brightness
|
||||
false, // single_byte_bounds
|
||||
false, // data_as_commands
|
||||
true, // auto_refresh
|
||||
60, // native_frames_per_second
|
||||
true, // backlight_on_high
|
||||
false, // SH1107_addressing
|
||||
1000 // backlight pwm frequency
|
||||
);
|
||||
}
|
||||
|
||||
void board_init(void) {
|
||||
display_init();
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2024 Cooper Dalrymple
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#pragma once
|
||||
|
||||
// Micropython setup
|
||||
#define MICROPY_HW_BOARD_NAME "Waveshare RP2350-GEEK"
|
||||
#define MICROPY_HW_MCU_NAME "rp2350"
|
||||
|
||||
#define CIRCUITPY_BOARD_I2C (1)
|
||||
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO29, .sda = &pin_GPIO28}}
|
||||
|
||||
#define CIRCUITPY_BOARD_SPI (2)
|
||||
#define CIRCUITPY_BOARD_SPI_PIN {{.clock = &pin_GPIO10, .mosi = &pin_GPIO11}, \
|
||||
{.clock = &pin_GPIO18, .mosi = &pin_GPIO19, .miso = &pin_GPIO20}}
|
||||
|
||||
#define CIRCUITPY_BOARD_UART (1)
|
||||
#define CIRCUITPY_BOARD_UART_PIN {{.tx = &pin_GPIO4, .rx = &pin_GPIO5}}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
USB_VID = 0x2E8A
|
||||
USB_PID = 0x10B6
|
||||
USB_PRODUCT = "RP2350-GEEK"
|
||||
USB_MANUFACTURER = "Waveshare Electronics"
|
||||
|
||||
CHIP_VARIANT = RP2350
|
||||
CHIP_PACKAGE = A
|
||||
CHIP_FAMILY = rp2
|
||||
|
||||
EXTERNAL_FLASH_DEVICES = "W25Q128JVxQ"
|
||||
|
||||
CIRCUITPY__EVE = 1
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2024 Adafruit Industries LLC
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#pragma once
|
||||
|
||||
// Put board-specific pico-sdk definitions here. This file must exist.
|
||||
78
ports/raspberrypi/boards/waveshare_rp2350_geek/pins.c
Normal file
78
ports/raspberrypi/boards/waveshare_rp2350_geek/pins.c
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2024 Adafruit Industries LLC
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
|
||||
CIRCUITPY_BOARD_BUS_SINGLETON(sd_spi, spi, 1)
|
||||
static const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||
|
||||
// 2-3 DEBUG
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP2), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP3), MP_ROM_PTR(&pin_GPIO3) },
|
||||
// 4-5 UART
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
// 8-12 LCD
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP8), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP11), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
// 16-17 I2C
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP16), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP17), MP_ROM_PTR(&pin_GPIO17) },
|
||||
// 18-23 SD Card
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP18), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP19), MP_ROM_PTR(&pin_GPIO19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP20), MP_ROM_PTR(&pin_GPIO20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP21), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP22), MP_ROM_PTR(&pin_GPIO22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP23), MP_ROM_PTR(&pin_GPIO23) },
|
||||
// 25 LCD Backlight
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP25), MP_ROM_PTR(&pin_GPIO25) },
|
||||
// 28-29 I2C
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP28), MP_ROM_PTR(&pin_GPIO28) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GP29), MP_ROM_PTR(&pin_GPIO29) },
|
||||
|
||||
// UART
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
|
||||
// I2C
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO29) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO28) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
|
||||
// SPI SD Card
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD_SCK), MP_ROM_PTR(&pin_GPIO18)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD_MOSI), MP_ROM_PTR(&pin_GPIO19)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD_MISO), MP_ROM_PTR(&pin_GPIO20)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_GPIO23)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD_SPI), MP_ROM_PTR(&board_sd_spi_obj) },
|
||||
|
||||
// SDIO SD Card
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDIO_CLK), MP_ROM_PTR(&pin_GPIO18)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDIO_COMMAND), MP_ROM_PTR(&pin_GPIO19)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDIO_DATA0), MP_ROM_PTR(&pin_GPIO20)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDIO_DATA1), MP_ROM_PTR(&pin_GPIO21)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDIO_DATA2), MP_ROM_PTR(&pin_GPIO22)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDIO_DATA3), MP_ROM_PTR(&pin_GPIO23)},
|
||||
|
||||
// LCD
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_DC), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_CS), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_CLK), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_MOSI), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_RST), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_BACKLIGHT), MP_ROM_PTR(&pin_GPIO25) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LCD_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display) },
|
||||
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
||||
109
ports/raspberrypi/boards/waveshare_rp2350_lcd_0_96/board.c
Normal file
109
ports/raspberrypi/boards/waveshare_rp2350_lcd_0_96/board.c
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "supervisor/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
#include "shared-module/displayio/mipi_constants.h"
|
||||
|
||||
#define DELAY 0x80
|
||||
|
||||
|
||||
// display init sequence according to Adafruit_CircuitPython_ST7735R
|
||||
// https://github.com/adafruit/Adafruit_CircuitPython_ST7735R
|
||||
uint8_t display_init_sequence[] = {
|
||||
// sw reset
|
||||
0x01, 0 | DELAY, 0x96,
|
||||
// SLPOUT and Delay
|
||||
0x11, 0 | DELAY, 0xFF,
|
||||
0xB1, 0x03, 0x01, 0x2C, 0x2D, // _FRMCTR1
|
||||
0xB3, 0x06, 0x01, 0x2C, 0x2D, 0x01, 0x2C, 0x2D, // _FRMCTR3
|
||||
0xB4, 0x01, 0x07, // _INVCTR line inversion
|
||||
0xC0, 0x03, 0xA2, 0x02, 0x84, // _PWCTR1 GVDD = 4.7V, 1.0uA
|
||||
0xC1, 0x01, 0xC5, // _PWCTR2 VGH=14.7V, VGL=-7.35V
|
||||
0xC2, 0x02, 0x0A, 0x00, // _PWCTR3 Opamp current small, Boost frequency
|
||||
0xC3, 0x02, 0x8A, 0x2A,
|
||||
0xC4, 0x02, 0x8A, 0xEE,
|
||||
0xC5, 0x01, 0x0E, // _VMCTR1 VCOMH = 4V, VOML = -1.1V
|
||||
0x20, 0x00, // _INVOFF
|
||||
0x36, 0x01, 0x18, // _MADCTL bottom to top refresh
|
||||
// 1 clk cycle nonoverlap, 2 cycle gate rise, 3 cycle osc equalie,
|
||||
// fix on VTL
|
||||
0x3A, 0x01, 0x05, // COLMOD - 16bit color
|
||||
0xE0, 0x10, 0x02, 0x1C, 0x07, 0x12, 0x37, 0x32, 0x29, 0x2D, 0x29, 0x25, 0x2B, 0x39, 0x00, 0x01, 0x03, 0x10, // _GMCTRP1 Gamma
|
||||
0xE1, 0x10, 0x03, 0x1D, 0x07, 0x06, 0x2E, 0x2C, 0x29, 0x2D, 0x2E, 0x2E, 0x37, 0x3F, 0x00, 0x00, 0x02, 0x10, // _GMCTRN1
|
||||
0x13, 0 | DELAY, 0x0A, // _NORON
|
||||
0x29, 0 | DELAY, 0x64, // _DISPON
|
||||
// 0x36, 0x01, 0xC0, // _MADCTL Default rotation plus BGR encoding
|
||||
0x36, 0x01, 0xC8, // _MADCTL Default rotation plus RGB encoding
|
||||
0x21, 0x00, // _INVON
|
||||
};
|
||||
|
||||
static void display_init(void) {
|
||||
fourwire_fourwire_obj_t *bus = &allocate_display_bus()->fourwire_bus;
|
||||
busio_spi_obj_t *spi = &bus->inline_bus;
|
||||
common_hal_busio_spi_construct(
|
||||
spi,
|
||||
&pin_GPIO10, // CLK
|
||||
&pin_GPIO11, // MOSI
|
||||
NULL, // MISO not connected
|
||||
false // Not half-duplex
|
||||
);
|
||||
|
||||
common_hal_busio_spi_never_reset(spi);
|
||||
|
||||
bus->base.type = &fourwire_fourwire_type;
|
||||
|
||||
common_hal_fourwire_fourwire_construct(
|
||||
bus,
|
||||
spi,
|
||||
&pin_GPIO8, // DC
|
||||
&pin_GPIO9, // CS
|
||||
&pin_GPIO12, // RST
|
||||
40000000, // baudrate
|
||||
0, // polarity
|
||||
0 // phase
|
||||
);
|
||||
|
||||
busdisplay_busdisplay_obj_t *display = &allocate_display()->display;
|
||||
display->base.type = &busdisplay_busdisplay_type;
|
||||
common_hal_busdisplay_busdisplay_construct(
|
||||
display,
|
||||
bus,
|
||||
160, // width (after rotation)
|
||||
80, // height (after rotation)
|
||||
26, // column start
|
||||
1, // row start
|
||||
90, // 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
|
||||
display_init_sequence,
|
||||
sizeof(display_init_sequence),
|
||||
&pin_GPIO25, // backlight pin
|
||||
NO_BRIGHTNESS_COMMAND,
|
||||
1.0f, // brightness
|
||||
false, // single_byte_bounds
|
||||
false, // data_as_commands
|
||||
true, // auto_refresh
|
||||
60, // native_frames_per_second
|
||||
true, // backlight_on_high
|
||||
false, // SH1107_addressing
|
||||
50000 // backlight pwm frequency
|
||||
);
|
||||
}
|
||||
|
||||
void board_init(void) {
|
||||
// Display
|
||||
display_init();
|
||||
}
|
||||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
// This file is part of the CircuitPython project: https://circuitpython.org
|
||||
//
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
|
||||
// SPDX-FileCopyrightText: Copyright (c) 2024 Cooper Dalrymple
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#pragma once
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "Waveshare RP2350-LCD-0.96"
|
||||
#define MICROPY_HW_MCU_NAME "rp2350"
|
||||
|
||||
#define CIRCUITPY_BOARD_I2C (1)
|
||||
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO21, .sda = &pin_GPIO20}}
|
||||
|
||||
#define CIRCUITPY_BOARD_SPI (1)
|
||||
#define CIRCUITPY_BOARD_SPI_PIN {{.clock = &pin_GPIO18, .mosi = &pin_GPIO19, .miso = &pin_GPIO16}}
|
||||
|
||||
#define CIRCUITPY_BOARD_UART (1)
|
||||
#define CIRCUITPY_BOARD_UART_PIN {{.tx = &pin_GPIO0, .rx = &pin_GPIO1}}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
USB_VID = 0x2E8A
|
||||
USB_PID = 0x10B7
|
||||
USB_PRODUCT = "Waveshare RP2350-LCD-0.96"
|
||||
USB_MANUFACTURER = "Waveshare Electronics"
|
||||
|
||||
CHIP_VARIANT = RP2350
|
||||
CHIP_PACKAGE = A
|
||||
CHIP_FAMILY = rp2
|
||||
|
||||
EXTERNAL_FLASH_DEVICES = "P25Q32SH"
|
||||
|
||||
CIRCUITPY__EVE = 1
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue