Merge branch 'adafruit:main' into main
This commit is contained in:
commit
af081f51a5
1
conf.py
1
conf.py
@ -77,6 +77,7 @@ needs_sphinx = '1.3'
|
||||
extensions = [
|
||||
'sphinx.ext.autodoc',
|
||||
'sphinx.ext.doctest',
|
||||
"sphinxcontrib.jquery",
|
||||
'sphinxcontrib.rsvgconverter',
|
||||
'sphinx.ext.intersphinx',
|
||||
'sphinx.ext.todo',
|
||||
|
@ -403,10 +403,6 @@ msgstr "0.0 ke kompleks berpangkat"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "pow() 3-arg tidak didukung"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1283,6 +1279,10 @@ msgstr ""
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Ukuran potongan format tidak valid"
|
||||
|
@ -400,10 +400,6 @@ msgstr ""
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1271,6 +1267,10 @@ msgstr ""
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr ""
|
||||
|
11
locale/cs.po
11
locale/cs.po
@ -404,10 +404,6 @@ msgstr ""
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "pow() nepodporuje 3 argumenty"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr "64 bit typy"
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1283,6 +1279,10 @@ msgstr ""
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr "Chybný data_pin[%d]"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Neplatná velikost bloku"
|
||||
@ -4382,6 +4382,9 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "64 bit types"
|
||||
#~ msgstr "64 bit typy"
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "Nebyl zadán klíč"
|
||||
|
||||
|
196
locale/de_DE.po
196
locale/de_DE.po
@ -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: 2023-03-01 17:39+0000\n"
|
||||
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
|
||||
"PO-Revision-Date: 2023-03-28 14:18+0000\n"
|
||||
"Last-Translator: Luc <some_physics@live.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 4.16\n"
|
||||
"X-Generator: Weblate 4.17-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -37,12 +37,17 @@ msgid ""
|
||||
"Please file an issue with your program at https://github.com/adafruit/"
|
||||
"circuitpython/issues."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Bitte erstellen Sie ein Problem (Issue) für Ihr Programm unter https://"
|
||||
"github.com/adafruit/circuitpython/issues."
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Press reset to exit safe mode.\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Drücke Reset, um den Sicherheitsmodus zu beenden.\n"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -189,7 +194,7 @@ msgstr "%q muss >= %d sein"
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr ""
|
||||
msgstr "%q muss ein Bytearray oder ein Array vom Typ 'H' oder 'B' sein"
|
||||
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
@ -198,7 +203,7 @@ msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
msgstr "%q muss ein Array vom Typ 'H' sein"
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
@ -409,10 +414,6 @@ msgstr "0.0 zu einer komplexen Potenz"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "3-arg pow() wird nicht unterstützt"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr "64 bit-Typen"
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -526,7 +527,7 @@ msgstr "Sucht bereits nach Wifi-Netzwerken"
|
||||
#: shared-module/os/getenv.c
|
||||
#, c-format
|
||||
msgid "An error occurred while retrieving '%s':\n"
|
||||
msgstr ""
|
||||
msgstr "Ein Fehler ist aufgetreten beim Abfragen von '%s':\n"
|
||||
|
||||
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Another PWMAudioOut is already active"
|
||||
@ -602,7 +603,7 @@ msgstr "Bitmap-Grösse und Bits pro Wert müssen übereinstimmen"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Boot device must be first (interface #0)."
|
||||
msgstr ""
|
||||
msgstr "Boot-Device muss an erster Stelle kommen (Interface #0)."
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c
|
||||
msgid "Both RX and TX required for flow control"
|
||||
@ -792,9 +793,8 @@ msgstr ""
|
||||
"Die Frequenz eines bereits verwendeten Timers kann nicht variiert werden"
|
||||
|
||||
#: ports/nrf/common-hal/alarm/pin/PinAlarm.c
|
||||
#, fuzzy
|
||||
msgid "Cannot wake on pin edge, only level"
|
||||
msgstr "Kann nicht durch \"Pin edge\" geweckt werden nur durch \"level\""
|
||||
msgstr "Kann nicht durch Flanke an Pin geweckt werden, sondern nur durch Pegel"
|
||||
|
||||
#: ports/espressif/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
@ -826,11 +826,11 @@ msgstr ""
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "Coordinate arrays have different lengths"
|
||||
msgstr ""
|
||||
msgstr "Koordinaten-Arrays haben unterschiedliche Längen"
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "Coordinate arrays types have different sizes"
|
||||
msgstr ""
|
||||
msgstr "Typen der Koordinaten-Arrays haben unterschiedliche Längen"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "Corrupt .mpy file"
|
||||
@ -951,7 +951,7 @@ msgstr "Fehler in regex"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Error in safemode.py."
|
||||
msgstr ""
|
||||
msgstr "Fehler in safemode.py."
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
|
||||
msgid "Error: Failure to bind"
|
||||
@ -1028,7 +1028,7 @@ msgstr "Interner Flash konnte nicht geschrieben werden."
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Fault detected by hardware."
|
||||
msgstr ""
|
||||
msgstr "Hardware hat Fehler festgestellt."
|
||||
|
||||
#: py/moduerrno.c
|
||||
msgid "File exists"
|
||||
@ -1121,12 +1121,13 @@ msgstr "Hardware in Benutzung, probiere alternative Pins"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Heap allocation when VM not running."
|
||||
msgstr ""
|
||||
msgstr "Allokation auf Heap während VM nicht läuft."
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
"Heap was corrupted because the stack was too small. Increase stack size."
|
||||
msgstr ""
|
||||
"Heap wurde beschädigt, weil der Stack zu klein war. Bitte Stack vergrößern."
|
||||
|
||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||
msgid "I/O operation on closed file"
|
||||
@ -1250,7 +1251,7 @@ msgstr "Der Interne WatchDog Timer ist abgelaufen."
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
msgstr "Interrupt Fehler."
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -1278,7 +1279,7 @@ msgstr "Ungültige BSSID"
|
||||
|
||||
#: main.c
|
||||
msgid "Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||
msgstr ""
|
||||
msgstr "Ungültiger Wert CIRCUITPY_PYSTACK_SIZE\n"
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "Invalid MAC address"
|
||||
@ -1302,6 +1303,10 @@ msgstr "Ungültiges Byte %.*s"
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr "Ungültige data_pins[%d]"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Ungültige format chunk size"
|
||||
@ -1325,7 +1330,7 @@ msgstr "Ungültiger Zustand"
|
||||
|
||||
#: shared-module/os/getenv.c
|
||||
msgid "Invalid unicode escape"
|
||||
msgstr ""
|
||||
msgstr "Ungültiges Unicode-Escape-Zeichen"
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "Key must be 16, 24, or 32 bytes long"
|
||||
@ -1720,7 +1725,7 @@ msgstr "Zeit für Vorgang abgelaufen"
|
||||
|
||||
#: ports/raspberrypi/common-hal/mdns/Server.c
|
||||
msgid "Out of MDNS service slots"
|
||||
msgstr ""
|
||||
msgstr "Keine freien Slots für MDNS-Dienst mehr verfügbar"
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
msgid "Out of memory"
|
||||
@ -1826,7 +1831,7 @@ msgstr "Polygone brauchen mindestens 3 Punkte"
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "Prefix buffer must be on the heap"
|
||||
msgstr "Der Präfix-Puffer muss sich auf dem Heap befinden"
|
||||
msgstr "Präfix-Puffer muss sich auf dem Heap befinden"
|
||||
|
||||
#: main.c
|
||||
msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
@ -1874,7 +1879,7 @@ msgstr "RNG DeInit-Fehler"
|
||||
|
||||
#: ports/stm/common-hal/os/__init__.c
|
||||
msgid "RNG Init Error"
|
||||
msgstr "RNG Init-Fehler"
|
||||
msgstr "RNG-Init-Fehler"
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
@ -1977,7 +1982,7 @@ msgstr "Maßstabs-Abmeßungen müssen durch 3 teilbar sein"
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
msgstr "Scan läuft schon. Stoppen mit stop_scan."
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
@ -2015,7 +2020,7 @@ msgstr "SocketPool kann nur mit wifi.radio verwendet werden"
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "Source and destination buffers must be the same length"
|
||||
msgstr "Quell- und Zielbuffer müssen gleich lang sein"
|
||||
msgstr "Quell- und Zielpuffer müssen gleich lang sein"
|
||||
|
||||
#: shared-bindings/paralleldisplay/ParallelBus.c
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
@ -2035,7 +2040,7 @@ msgstr "Stereo rechts muss sich auf PWM-Kanal B befinden"
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
||||
msgid "Stopping AP is not supported."
|
||||
msgstr ""
|
||||
msgstr "Das Stoppen des AP wird nicht unterstützt."
|
||||
|
||||
#: shared-bindings/alarm/time/TimeAlarm.c
|
||||
msgid "Supply one of monotonic_time or epoch_time"
|
||||
@ -2052,6 +2057,8 @@ msgstr "Zeitüberschreitung beim Auslesen der Temperatur"
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "The `microcontroller` module was used to boot into safe mode."
|
||||
msgstr ""
|
||||
"Das 'microcontroller'-Modul wurde benutzt, um in den Sichheitsmodus zu "
|
||||
"booten."
|
||||
|
||||
#: py/obj.c
|
||||
msgid "The above exception was the direct cause of the following exception:"
|
||||
@ -2065,6 +2072,8 @@ msgstr "Die Länge von rgb_pins muss 6, 12, 18, 24 oder 30 betragen"
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "The power dipped. Make sure you are providing enough power."
|
||||
msgstr ""
|
||||
"Die Spannung ist eingebrochen. Stelle sicher, dass genügend Leistung "
|
||||
"verfügbar ist."
|
||||
|
||||
#: shared-module/audiomixer/MixerVoice.c
|
||||
msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
@ -2073,7 +2082,7 @@ msgstr ""
|
||||
|
||||
#: shared-module/audiomixer/MixerVoice.c
|
||||
msgid "The sample's channel count does not match the mixer's"
|
||||
msgstr "Die Kanalanzahl des Samples stimmt nicht mit der des Mixers überein"
|
||||
msgstr "Die Kanalanzahl des Samples stimmt nicht mit der des Mischers überein"
|
||||
|
||||
#: shared-module/audiomixer/MixerVoice.c
|
||||
msgid "The sample's sample rate does not match the mixer's"
|
||||
@ -2081,12 +2090,11 @@ msgstr "Die Abtastrate der Probe stimmt nicht mit der des Mischers überein"
|
||||
|
||||
#: shared-module/audiomixer/MixerVoice.c
|
||||
msgid "The sample's signedness does not match the mixer's"
|
||||
msgstr ""
|
||||
"Die Art des Vorzeichens des Samples stimmt nicht mit dem des Mixers überein"
|
||||
msgstr "Der Vorzeichentyp des Samples stimmt nicht mit dem des Mixers überein"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Third-party firmware fatal error."
|
||||
msgstr ""
|
||||
msgstr "Fataler Fehler bei Drittanbieter-Firmware."
|
||||
|
||||
#: shared-module/imagecapture/ParallelImageCapture.c
|
||||
msgid "This microcontroller does not support continuous capture."
|
||||
@ -2106,7 +2114,7 @@ msgstr "Die Kachelhöhe muss die Bitmaphöhe genau teilen"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
|
||||
msgid "Tile index out of bounds"
|
||||
msgstr "Kachel index außerhalb der Grenzen"
|
||||
msgstr "Kachelindex außerhalb der Grenzen"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile width must exactly divide bitmap width"
|
||||
@ -2133,7 +2141,7 @@ msgstr "Zu viele Kanäle im sample."
|
||||
|
||||
#: shared-module/displayio/__init__.c
|
||||
msgid "Too many display busses"
|
||||
msgstr "Zu viele Display Busse"
|
||||
msgstr "Zu viele Anzeigebusse"
|
||||
|
||||
#: shared-module/displayio/__init__.c
|
||||
msgid "Too many displays"
|
||||
@ -2169,7 +2177,7 @@ msgstr "UART-Initialisierung"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART peripheral in use"
|
||||
msgstr ""
|
||||
msgstr "UART-Endgerät in Benutzung"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART re-init"
|
||||
@ -2220,12 +2228,12 @@ msgstr "Konnte keine Buffer für Vorzeichenumwandlung allozieren"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Unable to allocate the heap."
|
||||
msgstr ""
|
||||
msgstr "Keine Allokation auf dem Heap möglich."
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
#, c-format
|
||||
msgid "Unable to configure ADC DMA controller, ErrorCode:%d"
|
||||
msgstr ""
|
||||
msgstr "ADC-DMA-Controller konnte nicht konfiguriert werden, Fehlercode: %d"
|
||||
|
||||
#: ports/espressif/common-hal/busio/I2C.c
|
||||
msgid "Unable to create lock"
|
||||
@ -2248,7 +2256,7 @@ msgstr "Parser konnte nicht gestartet werden"
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
#, c-format
|
||||
msgid "Unable to initialize ADC DMA controller, ErrorCode:%d"
|
||||
msgstr ""
|
||||
msgstr "ADC-DMA-Controller konnte nicht initialisiert werden, Fehlercode: %d"
|
||||
|
||||
#: shared-module/displayio/OnDiskBitmap.c
|
||||
msgid "Unable to read color palette data"
|
||||
@ -2257,7 +2265,7 @@ msgstr "Konnte Farbpalettendaten nicht lesen"
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
#, c-format
|
||||
msgid "Unable to start ADC DMA controller, ErrorCode:%d"
|
||||
msgstr ""
|
||||
msgstr "ADC-DMA-Controller konnte nicht gestartet werden, Fehlercode: %d"
|
||||
|
||||
#: ports/espressif/common-hal/mdns/Server.c
|
||||
#: ports/raspberrypi/common-hal/mdns/Server.c
|
||||
@ -2298,7 +2306,7 @@ msgstr "Unbekannter BLE-Fehler: %d"
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
msgstr "Unbekannter Fehlercode %d"
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
@ -2376,7 +2384,7 @@ msgstr "Update fehlgeschlagen"
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
msgstr "Wert Länge != Erforderliche feste Länge"
|
||||
msgstr "Länge des Wertes != Erforderliche feste Länge"
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Characteristic.c
|
||||
#: ports/espressif/common-hal/_bleio/Descriptor.c
|
||||
@ -2437,11 +2445,11 @@ msgstr "Wi-Fi: "
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
||||
msgid "Wifi is in access point mode."
|
||||
msgstr ""
|
||||
msgstr "Das Wifi ist im Accesspoint-Modus."
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
||||
msgid "Wifi is in station mode."
|
||||
msgstr ""
|
||||
msgstr "Das Wifi ist im Station-Modus."
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
||||
msgid "Wifi is not enabled"
|
||||
@ -2454,59 +2462,59 @@ msgstr "Aufgeweckt durch Alarm.\n"
|
||||
#: ports/espressif/common-hal/_bleio/PacketBuffer.c
|
||||
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
|
||||
msgid "Writes not supported on Characteristic"
|
||||
msgstr "Schreiben nicht unterstüzt für diese Charakteristik"
|
||||
msgstr "Schreiben für diese Charakteristik nicht unterstützt"
|
||||
|
||||
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
|
||||
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
|
||||
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
|
||||
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
|
||||
msgid "You pressed both buttons at start up."
|
||||
msgstr ""
|
||||
msgstr "Beide Knöpfe wurden beim Starten gedrückt."
|
||||
|
||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||
msgid "You pressed button A at start up."
|
||||
msgstr ""
|
||||
msgstr "Knopf A wurde beim Starten gedrückt."
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "You pressed the BOOT button at start up"
|
||||
msgstr ""
|
||||
msgstr "Der BOOT-Knopf wurde beim Starten gedrückt."
|
||||
|
||||
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
|
||||
msgid "You pressed the GPIO0 button at start up."
|
||||
msgstr ""
|
||||
msgstr "Der GPIO0-Knopf wurde beim Starten gedrückt."
|
||||
|
||||
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||
msgid "You pressed the Rec button at start up."
|
||||
msgstr ""
|
||||
msgstr "Der Rec-Knopf wurde beim Starten gedrückt."
|
||||
|
||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||
msgid "You pressed the SW38 button at start up."
|
||||
msgstr ""
|
||||
msgstr "Der SW38-Knopf wurde beim Starten gedrückt."
|
||||
|
||||
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
|
||||
msgid "You pressed the VOLUME button at start up."
|
||||
msgstr ""
|
||||
msgstr "Der VOLUME-Knopf wurde beim Starten gedrückt."
|
||||
|
||||
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
|
||||
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
|
||||
msgid "You pressed the central button at start up."
|
||||
msgstr ""
|
||||
msgstr "Der zentrale Knopf wurde beim Starten gedrückt."
|
||||
|
||||
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
|
||||
msgid "You pressed the left button at start up."
|
||||
msgstr ""
|
||||
msgstr "Der linke Knopf wurde beim Starten gedrückt."
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "You pressed the reset button during boot."
|
||||
msgstr ""
|
||||
msgstr "Der Reset-Knopf wurde beim Booten gedrückt."
|
||||
|
||||
#: supervisor/shared/micropython.c
|
||||
msgid "[truncated due to length]"
|
||||
msgstr ""
|
||||
msgstr "[abgeschnitten wegen der Länge]"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None"
|
||||
@ -2579,7 +2587,7 @@ msgstr "Das Array hat zu viele Dimensionen"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "array is too big"
|
||||
msgstr ""
|
||||
msgstr "Array ist zu groß"
|
||||
|
||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||
@ -2794,8 +2802,8 @@ msgstr "kann keinen relativen Import durchführen"
|
||||
#: py/objgenerator.c
|
||||
msgid "can't send non-None value to a just-started generator"
|
||||
msgstr ""
|
||||
"Nicht \"None\" Werte können nicht an einen gerade gestarteten Generator "
|
||||
"gesendet werden"
|
||||
"Nicht-None-Wert kann nicht an einen gerade gestarteten Generator gesendet "
|
||||
"werden"
|
||||
|
||||
#: shared-module/sdcardio/SDCard.c
|
||||
msgid "can't set 512 block size"
|
||||
@ -2807,7 +2815,7 @@ msgstr "kann Attribut nicht setzen"
|
||||
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
msgstr "Attribut '%q' kann nicht gesetzt werden"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't store '%q'"
|
||||
@ -2877,7 +2885,7 @@ msgstr "Kanal wird erneut initialisiert"
|
||||
|
||||
#: shared-bindings/_stage/Text.c
|
||||
msgid "chars buffer too small"
|
||||
msgstr "(char) Zeichenpuffer zu klein"
|
||||
msgstr "Zeichenpuffer zu klein"
|
||||
|
||||
#: py/modbuiltins.c
|
||||
msgid "chr() arg not in range(0x110000)"
|
||||
@ -2943,7 +2951,7 @@ msgstr "Convolve-Argumente müssen ndarrays sein"
|
||||
|
||||
#: extmod/ulab/code/numpy/filter.c
|
||||
msgid "convolve arguments must not be empty"
|
||||
msgstr "Convolve Argumente dürfen nicht leer sein"
|
||||
msgstr "Faltungsargumente dürfen nicht leer sein"
|
||||
|
||||
#: extmod/ulab/code/numpy/io/io.c
|
||||
msgid "corrupted file"
|
||||
@ -2994,8 +3002,8 @@ msgstr "default ist keine Funktion"
|
||||
msgid ""
|
||||
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
|
||||
msgstr ""
|
||||
"Der Zielbuffer muss ein Bytearray oder ein Array vom Typ 'B' für bit_depth = "
|
||||
"8 sein"
|
||||
"Zielpuffer muss ein Bytearray oder ein Array vom Typ 'B' für bit_depth = 8 "
|
||||
"sein"
|
||||
|
||||
#: shared-bindings/audiobusio/PDMIn.c
|
||||
msgid "destination buffer must be an array of type 'H' for bit_depth = 16"
|
||||
@ -3055,7 +3063,7 @@ msgstr "leere Sequenz"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "end of format while looking for conversion specifier"
|
||||
msgstr "Ende des Formats wärend der Suche nach einem conversion specifier"
|
||||
msgstr "Ende des Formats bei der Suche nach einem Konvertierungsspezifizierer"
|
||||
|
||||
#: shared-bindings/alarm/time/TimeAlarm.c
|
||||
msgid "epoch_time not supported on this board"
|
||||
@ -3071,6 +3079,8 @@ msgid ""
|
||||
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||
"documentation for instructions."
|
||||
msgstr ""
|
||||
"espcamera.Camera benötigt reservierten PSRAM um konfiguriert zu werden. "
|
||||
"Siehe Dokumentation für Anweisungen."
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "exceptions must derive from BaseException"
|
||||
@ -3290,7 +3300,7 @@ msgstr "Index ist außerhalb der Grenzen"
|
||||
|
||||
#: shared-bindings/_pixelmap/PixelMap.c
|
||||
msgid "index must be tuple or int"
|
||||
msgstr ""
|
||||
msgstr "Index muss tuple oder int sein"
|
||||
|
||||
#: extmod/ulab/code/numpy/numerical.c extmod/ulab/code/ulab_tools.c
|
||||
#: ports/espressif/common-hal/pulseio/PulseIn.c
|
||||
@ -3482,7 +3492,7 @@ msgstr "issubclass() arg 2 muss eine Klasse oder ein Tupel von Klassen sein"
|
||||
|
||||
#: extmod/ulab/code/numpy/linalg/linalg.c
|
||||
msgid "iterations did not converge"
|
||||
msgstr "Iterationen sind nicht konvergiert (converged)"
|
||||
msgstr "Iterationen sind nicht konvergiert"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "join expects a list of str/bytes objects consistent with self object"
|
||||
@ -3550,7 +3560,7 @@ msgstr "mDNS funktioniert nur mit integriertem WiFi"
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
msgstr "fehlformatierter f-string"
|
||||
msgstr "fehlerhafter F-String"
|
||||
|
||||
#: shared-bindings/_stage/Layer.c
|
||||
msgid "map buffer too small"
|
||||
@ -3634,7 +3644,7 @@ msgstr "Mehrfache Vererbung nicht unterstützt"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "must raise an object"
|
||||
msgstr "muss ein Objekt verursachen (raise)"
|
||||
msgstr "muss ein Objekt aufwerfen (raise)"
|
||||
|
||||
#: py/modbuiltins.c
|
||||
msgid "must use keyword argument for key function"
|
||||
@ -3654,7 +3664,7 @@ msgstr "native Methode zu groß"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "native yield"
|
||||
msgstr "native Ausbeute (yield)"
|
||||
msgstr "natives yield"
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
@ -3667,15 +3677,15 @@ msgstr "negative Fakultät"
|
||||
|
||||
#: py/objint_longlong.c py/objint_mpz.c py/runtime.c
|
||||
msgid "negative power with no float support"
|
||||
msgstr "negative Potenz ohne Gleitkomma (float) Unterstützung"
|
||||
msgstr "negative Potenz ohne Gleitkomma(float)-Unterstützung"
|
||||
|
||||
#: py/objint_mpz.c py/runtime.c
|
||||
msgid "negative shift count"
|
||||
msgstr "Negative shift Anzahl"
|
||||
msgstr "Negative Anzahl an Verschiebungen"
|
||||
|
||||
#: shared-bindings/_pixelmap/PixelMap.c
|
||||
msgid "nested index must be int"
|
||||
msgstr ""
|
||||
msgstr "verschachtelter Index muss int sein"
|
||||
|
||||
#: shared-module/sdcardio/SDCard.c
|
||||
msgid "no SD card"
|
||||
@ -3683,11 +3693,11 @@ msgstr "keine SD-Karte"
|
||||
|
||||
#: py/vm.c
|
||||
msgid "no active exception to reraise"
|
||||
msgstr "Keine aktive Ausnahme zu verusachen (raise)"
|
||||
msgstr "Keine aktive Ausnahme zum Wiederaufwerfen (reraise)"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "no binding for nonlocal found"
|
||||
msgstr "Kein Binding für nonlocal gefunden"
|
||||
msgstr "Keine Bindung für nichtlokale Variable gefunden"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "no default packer"
|
||||
@ -3717,7 +3727,7 @@ msgstr "kein solches Attribut"
|
||||
#: ports/espressif/common-hal/_bleio/Connection.c
|
||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
||||
msgid "non-UUID found in service_uuids_whitelist"
|
||||
msgstr "non-UUID gefunden in service_uuids_whitelist"
|
||||
msgstr "Nicht-UUID in service_uuids_whitelist gefunden"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "non-default argument follows default argument"
|
||||
@ -3733,7 +3743,7 @@ msgstr "Nicht-Schlüsselwort arg nach * / **"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr "Nicht-Schlüsselwort Argument nach Schlüsselwort Argument"
|
||||
msgstr "Nicht-Schlüsselwort-Argument nach Schlüsselwort-Argument"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
@ -3750,11 +3760,12 @@ msgstr "keine 128-bit UUID"
|
||||
#: py/objstr.c
|
||||
msgid "not all arguments converted during string formatting"
|
||||
msgstr ""
|
||||
"Nicht alle Argumente wurden während der Formatierung des Strings konvertiert"
|
||||
"Nicht alle Argumente wurden während der Formatierung der Zeichenfolge "
|
||||
"konvertiert"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "not enough arguments for format string"
|
||||
msgstr "Nicht genügend Argumente für den Formatierungs-String"
|
||||
msgstr "Nicht genügend Argumente für die Formatzeichenfolge"
|
||||
|
||||
#: extmod/ulab/code/numpy/carray/carray_tools.c
|
||||
msgid "not implemented for complex dtype"
|
||||
@ -3850,11 +3861,11 @@ msgstr "nur Mono wird unterstützt"
|
||||
|
||||
#: extmod/ulab/code/numpy/create.c
|
||||
msgid "only ndarrays can be concatenated"
|
||||
msgstr ""
|
||||
msgstr "nur ndarrays können aneinandergehängt werden"
|
||||
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only oversample=64 is supported"
|
||||
msgstr ""
|
||||
msgstr "nur oversample=64 wird unterstützt"
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
@ -3891,7 +3902,7 @@ msgstr "Operation wird nur für boolesche 1D-Arrays implementiert"
|
||||
|
||||
#: extmod/ulab/code/numpy/numerical.c
|
||||
msgid "operation is not implemented on ndarrays"
|
||||
msgstr "Die Operation ist für ndarrays nicht implementiert"
|
||||
msgstr "Operation ist auf ndarrays nicht implementiert"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "operation is not supported for given type"
|
||||
@ -3943,7 +3954,7 @@ msgstr "Die Parameter müssen Register der Reihenfolge a2 bis a5 sein"
|
||||
|
||||
#: py/emitinlinethumb.c
|
||||
msgid "parameters must be registers in sequence r0 to r3"
|
||||
msgstr "Die Parameter müssen Register der Reihenfolge r0 bis r3 sein"
|
||||
msgstr "Parameter müssen Register im Bereich von r0 bis r3 sein"
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "pixel coordinates out of bounds"
|
||||
@ -3984,7 +3995,7 @@ msgstr "pow() drittes Argument darf nicht 0 sein"
|
||||
|
||||
#: py/objint_mpz.c
|
||||
msgid "pow() with 3 arguments requires integers"
|
||||
msgstr "pow() mit 3 Argumenten erfordert Integer"
|
||||
msgstr "pow() mit 3 Argumenten erfordert ganze Zahlen"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "pull masks conflict with direction masks"
|
||||
@ -4016,7 +4027,7 @@ msgstr "Rückgabewert-Beschreibung muss ein Identifier sein"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "return expected '%q' but got '%q'"
|
||||
msgstr "Rückgabe erwartet '%q', aber '%q' erhalten"
|
||||
msgstr "Rückgabe (return) erwartet '%q', hat aber '%q' erhalten"
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
@ -4026,7 +4037,7 @@ msgstr "rgb_pins[%d] dupliziert eine andere Pinbelegung"
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid "rgb_pins[%d] is not on the same port as clock"
|
||||
msgstr "rgb_pins [%d] befindet sich nicht am selben Port wie clock"
|
||||
msgstr "rgb_pins[%d] befindet sich nicht am selben Port wie clock"
|
||||
|
||||
#: extmod/ulab/code/numpy/numerical.c
|
||||
msgid "roll argument must be an ndarray"
|
||||
@ -4063,7 +4074,7 @@ msgstr "kurze Lektüre"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "sign not allowed in string format specifier"
|
||||
msgstr "Vorzeichen nicht erlaubt in einem String formatierungs specifier"
|
||||
msgstr "Vorzeichen im Zeichenfolgenformatbezeichner nicht zulässig"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "sign not allowed with integer format specifier 'c'"
|
||||
@ -4095,7 +4106,7 @@ msgstr "weicher reboot\n"
|
||||
|
||||
#: extmod/ulab/code/numpy/numerical.c
|
||||
msgid "sort argument must be an ndarray"
|
||||
msgstr "sortierungs Argument muss ein ndarray sein"
|
||||
msgstr "Sortierungsargument muss ein ndarray sein"
|
||||
|
||||
#: extmod/ulab/code/scipy/signal/signal.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
@ -4215,7 +4226,7 @@ msgstr "zu viele Lokale für die native Methode"
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "too many values to unpack (expected %d)"
|
||||
msgstr "zu viele Werte zum Auspacken (erwartet %d)"
|
||||
msgstr "zu viele Werte zum Auspacken (%d erwartet)"
|
||||
|
||||
#: extmod/ulab/code/numpy/approx.c
|
||||
msgid "trapz is defined for 1D arrays of equal length"
|
||||
@ -4249,7 +4260,7 @@ msgstr "Typ ist kein akzeptierter Basis-Typ"
|
||||
|
||||
#: py/objgenerator.c py/runtime.c
|
||||
msgid "type object '%q' has no attribute '%q'"
|
||||
msgstr "Typ vom Objekt '%q' hat kein Attribut '%q'"
|
||||
msgstr "Typ-Objekt '%q' hat kein Attribut '%q'"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "type takes 1 or 3 arguments"
|
||||
@ -4279,7 +4290,7 @@ msgstr "unerwartetes Schlüsselwort-Argument '%q'"
|
||||
|
||||
#: py/lexer.c
|
||||
msgid "unicode name escapes"
|
||||
msgstr "Unicode Name ausgebrochen (escaped)"
|
||||
msgstr "Escaping von Unicode-Namen"
|
||||
|
||||
#: py/parse.c
|
||||
msgid "unindent doesn't match any outer indent level"
|
||||
@ -4288,7 +4299,7 @@ msgstr "unindent stimmt mit keiner äußeren Einrückungsebene überein"
|
||||
#: py/objstr.c
|
||||
#, c-format
|
||||
msgid "unknown conversion specifier %c"
|
||||
msgstr "unbekannter Konvertierungs specifier %c"
|
||||
msgstr "unbekannter Konvertierungsspezifizierer %c"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "unknown format code '%c' for object of type '%q'"
|
||||
@ -4305,7 +4316,7 @@ msgstr "unbekannter Typ '%q'"
|
||||
#: py/objstr.c
|
||||
#, c-format
|
||||
msgid "unmatched '%c' in format"
|
||||
msgstr ""
|
||||
msgstr "'%c' in Format konnte nicht zugeordnet werden"
|
||||
|
||||
#: py/objtype.c py/runtime.c
|
||||
msgid "unreadable attribute"
|
||||
@ -4458,6 +4469,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 "64 bit types"
|
||||
#~ msgstr "64 bit-Typen"
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "Es wurde kein Schlüssel angegeben"
|
||||
|
||||
|
13
locale/el.po
13
locale/el.po
@ -408,11 +408,6 @@ msgstr "0.0 σε μία σύνθετη δύναμη"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "pow() με 3 παραμέτρους δεν υποστηρίζεται"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
#, fuzzy
|
||||
msgid "64 bit types"
|
||||
msgstr "64 bit τύποι"
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1292,6 +1287,10 @@ msgstr ""
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr ""
|
||||
@ -4390,6 +4389,10 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "64 bit types"
|
||||
#~ msgstr "64 bit τύποι"
|
||||
|
||||
#~ msgid "%q pin invalid"
|
||||
#~ msgstr "%q άκυρο pin"
|
||||
|
||||
|
@ -407,10 +407,6 @@ msgstr "0.0 to a complex power"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "3-arg pow() not supported"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr "64 bit types"
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1284,6 +1280,10 @@ msgstr ""
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr "Invalid data_pins[%d]"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Invalid format chunk size"
|
||||
@ -4393,6 +4393,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 "64 bit types"
|
||||
#~ msgstr "64 bit types"
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "No key was specified"
|
||||
|
||||
|
11
locale/es.po
11
locale/es.po
@ -415,10 +415,6 @@ msgstr "0.0 a una potencia compleja"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "pow() con 3 argumentos no soportado"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr "tipos de 64 bit"
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1317,6 +1313,10 @@ msgstr "byte %.*s Inválido"
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr "Inválidos los data_pins[%d]"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Formato de fragmento de formato no válido"
|
||||
@ -4466,6 +4466,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 "64 bit types"
|
||||
#~ msgstr "tipos de 64 bit"
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "No se especificó ninguna llave"
|
||||
|
||||
|
@ -402,10 +402,6 @@ msgstr "0.0 para sa complex power"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "3-arg pow() hindi suportado"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1283,6 +1279,10 @@ msgstr ""
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Mali ang format ng chunk size"
|
||||
|
11
locale/fr.po
11
locale/fr.po
@ -412,10 +412,6 @@ msgstr "0.0 à une puissance complexe"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "pow() non supporté avec 3 paramètres"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr "types à 64 bit"
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1323,6 +1319,10 @@ msgstr "Octet invalide %.*s"
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr "data_pins[%d] invalide"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Taille de bloc de formatage invalide"
|
||||
@ -4485,6 +4485,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 "64 bit types"
|
||||
#~ msgstr "types à 64 bit"
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "Aucune clé n'a été spécifiée"
|
||||
|
||||
|
@ -400,10 +400,6 @@ msgstr ""
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1271,6 +1267,10 @@ msgstr ""
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr ""
|
||||
|
@ -405,10 +405,6 @@ msgstr "0.0 elevato alla potenza di un numero complesso"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "pow() con tre argmomenti non supportata"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr "Tipo 64 bits"
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1285,6 +1281,10 @@ msgstr ""
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr ""
|
||||
@ -4415,6 +4415,9 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "64 bit types"
|
||||
#~ msgstr "Tipo 64 bits"
|
||||
|
||||
#~ msgid "too many arguments provided with the given format"
|
||||
#~ msgstr "troppi argomenti forniti con il formato specificato"
|
||||
|
||||
|
@ -407,10 +407,6 @@ msgstr "0.0を複素数でべき乗"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "引数3つのpow()は非対応"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1284,6 +1280,10 @@ msgstr ""
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "フォーマットチャンクのサイズが不正"
|
||||
|
@ -401,10 +401,6 @@ msgstr ""
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1274,6 +1270,10 @@ msgstr ""
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "형식 청크 크기가 잘못되었습니다"
|
||||
|
@ -400,10 +400,6 @@ msgstr "0.0 tot een complexe macht"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "3-arg pow() niet ondersteund"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1279,6 +1275,10 @@ msgstr ""
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Ongeldig formaat stuk grootte"
|
||||
|
@ -402,10 +402,6 @@ msgstr "0.0 do potęgi zespolonej"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "3-argumentowy pow() jest niewspierany"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1279,6 +1275,10 @@ msgstr ""
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Zła wielkość fragmentu formatu"
|
||||
|
@ -417,10 +417,6 @@ msgstr "0,0 para uma potência complexa"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "3-arg pow() não compatível"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr "Tipos 64 bit"
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1313,6 +1309,10 @@ msgstr "Byte %.*s inválido"
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr "data_pins[%d] inválido"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Tamanho do pedaço de formato inválido"
|
||||
@ -4466,6 +4466,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 "64 bit types"
|
||||
#~ msgstr "Tipos 64 bit"
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "Nenhuma chave foi definida"
|
||||
|
||||
|
11
locale/ru.po
11
locale/ru.po
@ -407,10 +407,6 @@ msgstr "0.0 в комплексную степень"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "3-аргументный pow() не поддерживается"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr "64-битные типы"
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1316,6 +1312,10 @@ msgstr "Неверный байт %.*s"
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr "Неверный data_pins[%d]"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Неверный размер блока формата"
|
||||
@ -4430,6 +4430,9 @@ msgstr "zi должно быть типа float"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi должен иметь форму (n_section, 2)"
|
||||
|
||||
#~ msgid "64 bit types"
|
||||
#~ msgstr "64-битные типы"
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "Ключ не был указан"
|
||||
|
||||
|
11
locale/sv.po
11
locale/sv.po
@ -414,10 +414,6 @@ msgstr "0,0 till ett komplext nummer"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "3-arguments pow() stöds inte"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr "64-bitars typer"
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1298,6 +1294,10 @@ msgstr "Ogiltig byte %.*s"
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr "Ogiltig data_pins[%d]"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Ogiltig formatsegmentstorlek"
|
||||
@ -4428,6 +4428,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 "64 bit types"
|
||||
#~ msgstr "64-bitars typer"
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "Ingen nyckel angavs"
|
||||
|
||||
|
11
locale/tr.po
11
locale/tr.po
@ -409,10 +409,6 @@ msgstr "0.0'dan bir karmaşık güce"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "3-argümanlı pow() desteklenmemektedir"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr "64 bit tipler"
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1290,6 +1286,10 @@ msgstr ""
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr "Geçersiz veri_pini [%d]"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Geçersiz biçim yığın boyutu"
|
||||
@ -4389,6 +4389,9 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "64 bit types"
|
||||
#~ msgstr "64 bit tipler"
|
||||
|
||||
#~ msgid "%q pin invalid"
|
||||
#~ msgstr "%q pini geçersiz"
|
||||
|
||||
|
@ -416,10 +416,6 @@ msgstr "0.0 de fùshù cì mì"
|
||||
msgid "3-arg pow() not supported"
|
||||
msgstr "bù zhī chí 3-arg pow()"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr "64 wèi lèixíng"
|
||||
|
||||
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1305,6 +1301,10 @@ msgstr "wú xiào zì jié %.*s"
|
||||
msgid "Invalid data_pins[%d]"
|
||||
msgstr "wú xiào data_pins[%d]"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "Invalid format"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Géshì kuài dàxiǎo wúxiào"
|
||||
@ -4434,6 +4434,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 "64 bit types"
|
||||
#~ msgstr "64 wèi lèixíng"
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "Wèi zhǐdìng mì yào"
|
||||
|
||||
|
@ -53,7 +53,7 @@ static void espnow_check_for_deinit(espnow_obj_t *self) {
|
||||
//| class ESPNow:
|
||||
//| """Provides access to the ESP-NOW protocol."""
|
||||
//|
|
||||
//| def __init__(self, buffer_size: Optional[int], phy_rate: Optional[int]) -> None:
|
||||
//| def __init__(self, buffer_size: int = 526, phy_rate: int = 0) -> None:
|
||||
//| """Allocate and initialize `ESPNow` instance as a singleton.
|
||||
//|
|
||||
//| :param int buffer_size: The size of the internal ring buffer. Default: 526 bytes.
|
||||
|
@ -40,10 +40,11 @@
|
||||
//| def __init__(
|
||||
//| self,
|
||||
//| mac: bytes,
|
||||
//| *,
|
||||
//| lmk: Optional[bytes],
|
||||
//| channel: int = 0,
|
||||
//| interface: int = 0,
|
||||
//| encrypt: bool = False,
|
||||
//| encrypted: bool = False,
|
||||
//| ) -> None:
|
||||
//| """Construct a new peer object.
|
||||
//|
|
||||
@ -51,17 +52,17 @@
|
||||
//| :param bytes lmk: The Local Master Key (lmk) of the peer.
|
||||
//| :param int channel: The peer's channel. Default: 0 ie. use the current channel.
|
||||
//| :param int interface: The WiFi interface to use. Default: 0 ie. STA.
|
||||
//| :param bool encrypt: Whether or not to use encryption.
|
||||
//| :param bool encrypted: Whether or not to use encryption.
|
||||
//| """
|
||||
//| ...
|
||||
STATIC mp_obj_t espnow_peer_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args) {
|
||||
enum { ARG_mac, ARG_lmk, ARG_channel, ARG_interface, ARG_encrypt };
|
||||
enum { ARG_mac, ARG_lmk, ARG_channel, ARG_interface, ARG_encrypted };
|
||||
static const mp_arg_t allowed_args[] = {
|
||||
{ MP_QSTR_mac, MP_ARG_OBJ | MP_ARG_REQUIRED },
|
||||
{ MP_QSTR_lmk, MP_ARG_OBJ, { .u_obj = mp_const_none } },
|
||||
{ MP_QSTR_channel, MP_ARG_INT, { .u_obj = mp_const_none } },
|
||||
{ MP_QSTR_interface,MP_ARG_INT, { .u_obj = mp_const_none } },
|
||||
{ MP_QSTR_encrypt, MP_ARG_BOOL,{ .u_obj = mp_const_none } },
|
||||
{ MP_QSTR_lmk, MP_ARG_OBJ | MP_ARG_KW_ONLY, { .u_obj = mp_const_none } },
|
||||
{ MP_QSTR_channel, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = 0 } },
|
||||
{ MP_QSTR_interface,MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = 0 } },
|
||||
{ MP_QSTR_encrypted,MP_ARG_BOOL | MP_ARG_KW_ONLY, { .u_bool = false } },
|
||||
};
|
||||
|
||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||
@ -77,20 +78,11 @@ STATIC mp_obj_t espnow_peer_make_new(const mp_obj_type_t *type, size_t n_args, s
|
||||
|
||||
memcpy(self->peer_info.peer_addr, common_hal_espnow_get_bytes_len(args[ARG_mac].u_obj, ESP_NOW_ETH_ALEN), ESP_NOW_ETH_ALEN);
|
||||
|
||||
const mp_obj_t channel = args[ARG_channel].u_obj;
|
||||
if (channel != mp_const_none) {
|
||||
self->peer_info.channel = mp_arg_validate_int_range(mp_obj_get_int(channel), 0, 14, MP_QSTR_channel);
|
||||
}
|
||||
self->peer_info.channel = mp_arg_validate_int_range(args[ARG_channel].u_int, 0, 14, MP_QSTR_channel);
|
||||
|
||||
const mp_obj_t interface = args[ARG_interface].u_obj;
|
||||
if (interface != mp_const_none) {
|
||||
self->peer_info.ifidx = (wifi_interface_t)mp_arg_validate_int_range(mp_obj_get_int(interface), 0, 1, MP_QSTR_interface);
|
||||
}
|
||||
self->peer_info.ifidx = (wifi_interface_t)mp_arg_validate_int_range(args[ARG_interface].u_int, 0, 1, MP_QSTR_interface);
|
||||
|
||||
const mp_obj_t encrypt = args[ARG_encrypt].u_obj;
|
||||
if (encrypt != mp_const_none) {
|
||||
self->peer_info.encrypt = mp_obj_is_true(encrypt);
|
||||
}
|
||||
self->peer_info.encrypt = args[ARG_encrypted].u_bool;
|
||||
|
||||
const mp_obj_t lmk = args[ARG_lmk].u_obj;
|
||||
if (lmk != mp_const_none) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
CIRCUITPY_CREATOR_ID = 0x00001209
|
||||
CIRCUITPY_CREATION_ID = 0x0032D001
|
||||
CIRCUITPY_CREATOR_ID = 0x19231923
|
||||
CIRCUITPY_CREATION_ID = 0x00320001
|
||||
|
||||
IDF_TARGET = esp32
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
CIRCUITPY_CREATOR_ID = 0x00001209
|
||||
CIRCUITPY_CREATION_ID = 0x0032D002
|
||||
CIRCUITPY_CREATOR_ID = 0x19231923
|
||||
CIRCUITPY_CREATION_ID = 0x00320002
|
||||
|
||||
IDF_TARGET = esp32
|
||||
|
||||
|
32
ports/espressif/boards/deneyap_kart_1a_v2/board.c
Normal file
32
ports/espressif/boards/deneyap_kart_1a_v2/board.c
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "supervisor/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
|
||||
|
||||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
47
ports/espressif/boards/deneyap_kart_1a_v2/mpconfigboard.h
Normal file
47
ports/espressif/boards/deneyap_kart_1a_v2/mpconfigboard.h
Normal file
@ -0,0 +1,47 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
// Micropython setup
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "Deneyap Kart 1A v2"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32S3"
|
||||
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO33)
|
||||
#define CIRCUITPY_STATUS_LED_POWER (&pin_GPIO21)
|
||||
|
||||
#define MICROPY_HW_LED_STATUS (&pin_GPIO13)
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO4)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO3)
|
||||
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO36)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO35)
|
||||
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO37)
|
||||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_GPIO38)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_GPIO39)
|
||||
|
||||
#define DOUBLE_TAP_PIN (&pin_GPIO34)
|
12
ports/espressif/boards/deneyap_kart_1a_v2/mpconfigboard.mk
Normal file
12
ports/espressif/boards/deneyap_kart_1a_v2/mpconfigboard.mk
Normal file
@ -0,0 +1,12 @@
|
||||
USB_VID = 0x239A
|
||||
USB_PID = 0x8148
|
||||
|
||||
USB_PRODUCT = "Deneyap Kart 1A v2"
|
||||
USB_MANUFACTURER = "Turkish Technology Team Foundation"
|
||||
|
||||
IDF_TARGET = esp32s3
|
||||
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESPCAMERA = 0
|
73
ports/espressif/boards/deneyap_kart_1a_v2/pins.c
Normal file
73
ports/espressif/boards/deneyap_kart_1a_v2/pins.c
Normal file
@ -0,0 +1,73 @@
|
||||
#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_BUTTON), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BOOT0), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO0) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO3) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO3) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C_POWER), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO7) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO8) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_L), MP_ROM_PTR(&pin_GPIO13) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO14) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_GPIO15) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_GPIO16) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D17), MP_ROM_PTR(&pin_GPIO17) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_GPIO18) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL_POWER), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO33) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D35), MP_ROM_PTR(&pin_GPIO35) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO36) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D36), MP_ROM_PTR(&pin_GPIO36) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D37), MP_ROM_PTR(&pin_GPIO37) },
|
||||
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO38) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D38), MP_ROM_PTR(&pin_GPIO38) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO39) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D39), MP_ROM_PTR(&pin_GPIO39) },
|
||||
|
||||
{ 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_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
47
ports/espressif/boards/deneyap_kart_1a_v2/sdkconfig
Normal file
47
ports/espressif/boards/deneyap_kart_1a_v2/sdkconfig
Normal file
@ -0,0 +1,47 @@
|
||||
#
|
||||
# Component config
|
||||
#
|
||||
#
|
||||
# ESP32S3-Specific
|
||||
#
|
||||
CONFIG_ESP32S3_SPIRAM_SUPPORT=y
|
||||
#
|
||||
# SPI RAM config
|
||||
#
|
||||
# CONFIG_SPIRAM_MODE_QUAD is not set
|
||||
CONFIG_SPIRAM_MODE_OCT=y
|
||||
# CONFIG_SPIRAM_TYPE_AUTO is not set
|
||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set
|
||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
|
||||
CONFIG_SPIRAM_TYPE_ESPPSRAM64=y
|
||||
CONFIG_SPIRAM_SIZE=8388608
|
||||
#
|
||||
# PSRAM Clock and CS IO for ESP32S3
|
||||
#
|
||||
CONFIG_DEFAULT_PSRAM_CLK_IO=30
|
||||
CONFIG_DEFAULT_PSRAM_CS_IO=26
|
||||
# end of PSRAM Clock and CS IO for ESP32S3
|
||||
|
||||
# CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set
|
||||
# CONFIG_SPIRAM_RODATA is not set
|
||||
# CONFIG_SPIRAM_SPEED_120M is not set
|
||||
CONFIG_SPIRAM_SPEED_80M=y
|
||||
# CONFIG_SPIRAM_SPEED_40M is not set
|
||||
CONFIG_SPIRAM=y
|
||||
CONFIG_SPIRAM_BOOT_INIT=y
|
||||
# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set
|
||||
CONFIG_SPIRAM_USE_MEMMAP=y
|
||||
# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set
|
||||
# CONFIG_SPIRAM_USE_MALLOC is not set
|
||||
CONFIG_SPIRAM_MEMTEST=y
|
||||
# end of SPI RAM config
|
||||
|
||||
# end of ESP32S3-Specific
|
||||
|
||||
#
|
||||
# LWIP
|
||||
#
|
||||
CONFIG_LWIP_LOCAL_HOSTNAME="espressif-esp32s3"
|
||||
# end of LWIP
|
||||
|
||||
# end of Component config
|
@ -1,5 +1,5 @@
|
||||
CIRCUITPY_CREATOR_ID = 0x00001209
|
||||
CIRCUITPY_CREATION_ID = 0x0032D003
|
||||
CIRCUITPY_CREATOR_ID = 0x19231923
|
||||
CIRCUITPY_CREATION_ID = 0x00C30001
|
||||
|
||||
IDF_TARGET = esp32c3
|
||||
|
||||
|
31
ports/espressif/boards/deneyap_mini/board.c
Normal file
31
ports/espressif/boards/deneyap_mini/board.c
Normal file
@ -0,0 +1,31 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "supervisor/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
|
||||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
39
ports/espressif/boards/deneyap_mini/mpconfigboard.h
Normal file
39
ports/espressif/boards/deneyap_mini/mpconfigboard.h
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
// Micropython setup
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "Deneyap Mini"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32S2"
|
||||
|
||||
#define CIRCUITPY_BOARD_I2C (1)
|
||||
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO37, .sda = &pin_GPIO36}}
|
||||
|
||||
#define CIRCUITPY_BOARD_SPI (1)
|
||||
#define CIRCUITPY_BOARD_SPI_PIN {{.clock = &pin_GPIO38, .mosi = &pin_GPIO40, .miso = &pin_GPIO39}}
|
||||
|
||||
#define CIRCUITPY_BOARD_UART (1)
|
||||
#define CIRCUITPY_BOARD_UART_PIN {{.tx = &pin_GPIO43, .rx = &pin_GPIO44}}
|
12
ports/espressif/boards/deneyap_mini/mpconfigboard.mk
Normal file
12
ports/espressif/boards/deneyap_mini/mpconfigboard.mk
Normal file
@ -0,0 +1,12 @@
|
||||
USB_VID = 0x303A
|
||||
USB_PID = 0x8142
|
||||
|
||||
USB_PRODUCT = "Deneyap Mini"
|
||||
USB_MANUFACTURER = "Turkish Technology Team Foundation"
|
||||
|
||||
IDF_TARGET = esp32s2
|
||||
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESPCAMERA = 0
|
89
ports/espressif/boards/deneyap_mini/pins.c
Normal file
89
ports/espressif/boards/deneyap_mini/pins.c
Normal file
@ -0,0 +1,89 @@
|
||||
#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_RX), MP_ROM_PTR(&pin_GPIO44) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO44) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO43) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO43) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO42) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PWM0), MP_ROM_PTR(&pin_GPIO42) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO41) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PWM1), MP_ROM_PTR(&pin_GPIO41) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_MO), MP_ROM_PTR(&pin_GPIO40) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO40) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO40) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_MI), MP_ROM_PTR(&pin_GPIO39) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO39) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO39) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_MC), MP_ROM_PTR(&pin_GPIO38) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO38) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO38) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SC), MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO37) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD), MP_ROM_PTR(&pin_GPIO36) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO36) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO36) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO26) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SS), MP_ROM_PTR(&pin_GPIO21) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_DA1), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DAC1), MP_ROM_PTR(&pin_GPIO18) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_DA0), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DAC0), MP_ROM_PTR(&pin_GPIO17) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_BT), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GPKEY), MP_ROM_PTR(&pin_GPIO0) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LEDB), MP_ROM_PTR(&pin_GPIO35) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_GPIO33) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LEDG), MP_ROM_PTR(&pin_GPIO33) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_GPIO34) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LEDR), MP_ROM_PTR(&pin_GPIO34) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_T0), MP_ROM_PTR(&pin_GPIO8) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_T1), MP_ROM_PTR(&pin_GPIO9) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_T2), MP_ROM_PTR(&pin_GPIO10) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_T3), MP_ROM_PTR(&pin_GPIO11) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_T4), MP_ROM_PTR(&pin_GPIO12) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_T5), MP_ROM_PTR(&pin_GPIO13) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_GPIO16) },
|
||||
|
||||
{ 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_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
4
ports/espressif/boards/deneyap_mini/sdkconfig
Normal file
4
ports/espressif/boards/deneyap_mini/sdkconfig
Normal file
@ -0,0 +1,4 @@
|
||||
# LWIP
|
||||
#
|
||||
CONFIG_LWIP_LOCAL_HOSTNAME="DeneyapMini"
|
||||
# end of LWIP
|
32
ports/espressif/boards/deneyap_mini_v2/board.c
Normal file
32
ports/espressif/boards/deneyap_mini_v2/board.c
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "supervisor/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
|
||||
|
||||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
39
ports/espressif/boards/deneyap_mini_v2/mpconfigboard.h
Normal file
39
ports/espressif/boards/deneyap_mini_v2/mpconfigboard.h
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
// Micropython setup
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "Deneyap Mini v2"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32S2"
|
||||
|
||||
#define CIRCUITPY_BOARD_I2C (1)
|
||||
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO37, .sda = &pin_GPIO36}}
|
||||
|
||||
#define CIRCUITPY_BOARD_SPI (1)
|
||||
#define CIRCUITPY_BOARD_SPI_PIN {{.clock = &pin_GPIO38, .mosi = &pin_GPIO40, .miso = &pin_GPIO39}}
|
||||
|
||||
#define CIRCUITPY_BOARD_UART (1)
|
||||
#define CIRCUITPY_BOARD_UART_PIN {{.tx = &pin_GPIO43, .rx = &pin_GPIO44}}
|
11
ports/espressif/boards/deneyap_mini_v2/mpconfigboard.mk
Normal file
11
ports/espressif/boards/deneyap_mini_v2/mpconfigboard.mk
Normal file
@ -0,0 +1,11 @@
|
||||
USB_VID = 0x303A
|
||||
USB_PID = 0x8145
|
||||
|
||||
USB_PRODUCT = "Deneyap Mini v2"
|
||||
USB_MANUFACTURER = "Turkish Technology Team Foundation"
|
||||
|
||||
IDF_TARGET = esp32s2
|
||||
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
85
ports/espressif/boards/deneyap_mini_v2/pins.c
Normal file
85
ports/espressif/boards/deneyap_mini_v2/pins.c
Normal file
@ -0,0 +1,85 @@
|
||||
#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_RX), MP_ROM_PTR(&pin_GPIO44) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO44) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO43) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO43) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO42) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PWM0), MP_ROM_PTR(&pin_GPIO42) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO41) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PWM1), MP_ROM_PTR(&pin_GPIO41) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_MO), MP_ROM_PTR(&pin_GPIO40) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO40) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO40) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_MI), MP_ROM_PTR(&pin_GPIO39) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO39) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO39) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_MC), MP_ROM_PTR(&pin_GPIO38) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO38) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO38) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SC), MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO37) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SD), MP_ROM_PTR(&pin_GPIO36) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO36) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO36) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO26) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SS), MP_ROM_PTR(&pin_GPIO21) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_DA1), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DAC1), MP_ROM_PTR(&pin_GPIO18) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_DA0), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DAC0), MP_ROM_PTR(&pin_GPIO17) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GPKEY), MP_ROM_PTR(&pin_GPIO0) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO33) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RGBLED), MP_ROM_PTR(&pin_GPIO33) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_T0), MP_ROM_PTR(&pin_GPIO7) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_T1), MP_ROM_PTR(&pin_GPIO8) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_T2), MP_ROM_PTR(&pin_GPIO9) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_T3), MP_ROM_PTR(&pin_GPIO10) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_T4), MP_ROM_PTR(&pin_GPIO11) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_T5), MP_ROM_PTR(&pin_GPIO12) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_T6), MP_ROM_PTR(&pin_GPIO13) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_GPIO16) },
|
||||
|
||||
{ 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_SPI), MP_ROM_PTR(&board_spi_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
ports/espressif/boards/deneyap_mini_v2/sdkconfig
Normal file
37
ports/espressif/boards/deneyap_mini_v2/sdkconfig
Normal file
@ -0,0 +1,37 @@
|
||||
CONFIG_ESP32S2_SPIRAM_SUPPORT=y
|
||||
#
|
||||
# SPI RAM config
|
||||
#
|
||||
# CONFIG_SPIRAM_TYPE_AUTO is not set
|
||||
CONFIG_SPIRAM_TYPE_ESPPSRAM16=y
|
||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
|
||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
|
||||
CONFIG_SPIRAM_SIZE=2097152
|
||||
# end of SPI RAM config
|
||||
|
||||
CONFIG_DEFAULT_PSRAM_CLK_IO=30
|
||||
#
|
||||
# PSRAM clock and cs IO for ESP32S2
|
||||
#
|
||||
CONFIG_DEFAULT_PSRAM_CS_IO=26
|
||||
# end of PSRAM clock and cs IO for ESP32S2
|
||||
|
||||
# CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set
|
||||
# CONFIG_SPIRAM_RODATA is not set
|
||||
# CONFIG_SPIRAM_SPEED_80M is not set
|
||||
CONFIG_SPIRAM_SPEED_40M=y
|
||||
# CONFIG_SPIRAM_SPEED_26M is not set
|
||||
# CONFIG_SPIRAM_SPEED_20M is not set
|
||||
CONFIG_SPIRAM=y
|
||||
CONFIG_SPIRAM_BOOT_INIT=y
|
||||
# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set
|
||||
CONFIG_SPIRAM_USE_MEMMAP=y
|
||||
# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set
|
||||
# CONFIG_SPIRAM_USE_MALLOC is not set
|
||||
CONFIG_SPIRAM_MEMTEST=y
|
||||
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
||||
#
|
||||
# LWIP
|
||||
#
|
||||
CONFIG_LWIP_LOCAL_HOSTNAME="DeneyapMini_v2"
|
||||
# end of LWIP
|
29
ports/espressif/boards/m5stack_atoms3_lite/board.c
Normal file
29
ports/espressif/boards/m5stack_atoms3_lite/board.c
Normal file
@ -0,0 +1,29 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
36
ports/espressif/boards/m5stack_atoms3_lite/mpconfigboard.h
Normal file
36
ports/espressif/boards/m5stack_atoms3_lite/mpconfigboard.h
Normal file
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
// Micropython setup
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "M5Stack AtomS3 Lite"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32S3"
|
||||
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO35)
|
||||
|
||||
#define CIRCUITPY_BOARD_I2C (2)
|
||||
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO39, .sda = &pin_GPIO38}, \
|
||||
{.scl = &pin_GPIO1, .sda = &pin_GPIO2}}
|
11
ports/espressif/boards/m5stack_atoms3_lite/mpconfigboard.mk
Normal file
11
ports/espressif/boards/m5stack_atoms3_lite/mpconfigboard.mk
Normal file
@ -0,0 +1,11 @@
|
||||
USB_VID = 0x303A
|
||||
USB_PID = 0x815F
|
||||
USB_PRODUCT = "M5Stack AtomS3 Lite"
|
||||
USB_MANUFACTURER = "M5Stack"
|
||||
|
||||
IDF_TARGET = esp32s3
|
||||
|
||||
CIRCUITPY_ESP_FLASH_MODE = qio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 8MB
|
||||
CIRCUITPY_ESPCAMERA = 0
|
42
ports/espressif/boards/m5stack_atoms3_lite/pins.c
Normal file
42
ports/espressif/boards/m5stack_atoms3_lite/pins.c
Normal file
@ -0,0 +1,42 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
CIRCUITPY_BOARD_BUS_SINGLETON(porta_i2c, i2c, 1)
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_PORTA_SCL), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO1) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_PORTA_SDA), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO2) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO7) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO8) },
|
||||
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D39), MP_ROM_PTR(&pin_GPIO39) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D38), MP_ROM_PTR(&pin_GPIO38) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO35) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_BTN), MP_ROM_PTR(&pin_GPIO41) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IR_LED), MP_ROM_PTR(&pin_GPIO4) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PORTA_I2C), MP_ROM_PTR(&board_porta_i2c_obj) },
|
||||
};
|
||||
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
7
ports/espressif/boards/m5stack_atoms3_lite/sdkconfig
Normal file
7
ports/espressif/boards/m5stack_atoms3_lite/sdkconfig
Normal file
@ -0,0 +1,7 @@
|
||||
CONFIG_ESP32S3_SPIRAM_SUPPORT=n
|
||||
|
||||
#
|
||||
# LWIP
|
||||
#
|
||||
CONFIG_LWIP_LOCAL_HOSTNAME="espressif-esp32s3"
|
||||
# end of LWIP
|
@ -26,16 +26,13 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
// Some boards don't implement I2SOut, so suppress any routines from here.
|
||||
#if CIRCUITPY_AUDIOBUSIO_I2SOUT
|
||||
#include "supervisor/background_callback.h"
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
#include "common-hal/audiobusio/__init__.h"
|
||||
|
||||
// Some boards don't implement I2SOut, so suppress any routines from here.
|
||||
#if CIRCUITPY_AUDIOBUSIO_I2SOUT
|
||||
|
||||
#include "sdk/drivers/sai/fsl_sai.h"
|
||||
|
||||
typedef struct {
|
||||
mp_obj_base_t base;
|
||||
i2s_t i2s;
|
||||
|
@ -42,18 +42,23 @@
|
||||
|
||||
/*
|
||||
* AUDIO PLL setting: Frequency = Fref * (DIV_SELECT + NUM / DENOM)
|
||||
* = 24 * (32 + 77/100)
|
||||
* = 786.48 MHz
|
||||
* = 24 * (32 + 96 / 125) = 24 * (32.768)
|
||||
* = 786.432 MHz = 48kHz * 16384
|
||||
*
|
||||
* This default clocking is used during initial configuration; it also works well for
|
||||
* frequencies that evenly divide 192kHz, such as 8/12/24/48kHz. However, it doesn't work
|
||||
* well for 44.1/22/11kHz, so there's the possibility of using a different
|
||||
* setting when playing a particular sample.
|
||||
*/
|
||||
const clock_audio_pll_config_t audioPllConfig = {
|
||||
.loopDivider = 32, /* PLL loop divider. Valid range for DIV_SELECT divider value: 27~54. */
|
||||
.postDivider = 1, /* Divider after the PLL, should only be 1, 2, 4, 8, 16. */
|
||||
.numerator = 77, /* 30 bit numerator of fractional loop divider. */
|
||||
.denominator = 100, /* 30 bit denominator of fractional loop divider */
|
||||
.numerator = 96, /* 30 bit numerator of fractional loop divider. */
|
||||
.denominator = 125, /* 30 bit denominator of fractional loop divider */
|
||||
};
|
||||
|
||||
static I2S_Type *const i2s_instances[] = I2S_BASE_PTRS;
|
||||
static uint8_t i2s_in_use;
|
||||
static uint8_t i2s_in_use, i2s_playing;
|
||||
|
||||
static I2S_Type *SAI_GetPeripheral(int idx) {
|
||||
if (idx < 0 || idx >= (int)MP_ARRAY_SIZE(i2s_instances)) {
|
||||
@ -344,7 +349,11 @@ void port_i2s_deinit(i2s_t *self) {
|
||||
}
|
||||
SAI_TransferAbortSend(self->peripheral, &self->handle);
|
||||
i2s_clock_off(self->peripheral);
|
||||
i2s_in_use &= ~(1 << SAI_GetInstance(self->peripheral));
|
||||
|
||||
uint32_t instance_mask = 1 << SAI_GetInstance(self->peripheral);
|
||||
i2s_in_use &= ~instance_mask;
|
||||
i2s_playing &= ~instance_mask;
|
||||
|
||||
if (!i2s_in_use) {
|
||||
CCM_ANALOG->PLL_AUDIO = CCM_ANALOG_PLL_AUDIO_BYPASS_MASK | CCM_ANALOG_PLL_AUDIO_POWERDOWN_MASK | CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC(kCLOCK_PllClkSrc24M);
|
||||
}
|
||||
@ -354,13 +363,51 @@ void port_i2s_deinit(i2s_t *self) {
|
||||
}
|
||||
}
|
||||
|
||||
static uint32_t gcd(uint32_t a, uint32_t b) {
|
||||
while (b) {
|
||||
uint32_t tmp = a % b;
|
||||
a = b;
|
||||
b = tmp;
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
static void set_sai_clocking_for_sample_rate(uint32_t sample_rate) {
|
||||
mp_arg_validate_int_range((mp_uint_t)sample_rate, 4000, 192000, MP_QSTR_sample_rate);
|
||||
|
||||
uint32_t target_rate = sample_rate;
|
||||
// ensure the PWM rate of MQS will be adequately high
|
||||
while (target_rate < 175000) {
|
||||
target_rate <<= 1;
|
||||
}
|
||||
target_rate *= 4096; // various prescalers divide by this much
|
||||
uint32_t div = gcd(target_rate % 24000000, 24000000);
|
||||
clock_audio_pll_config_t config = {
|
||||
.loopDivider = target_rate / 24000000,
|
||||
.postDivider = 1,
|
||||
.numerator = (target_rate % 24000000) / div,
|
||||
.denominator = 24000000 / div,
|
||||
};
|
||||
CLOCK_InitAudioPll(&config);
|
||||
}
|
||||
|
||||
void port_i2s_play(i2s_t *self, mp_obj_t sample, bool loop) {
|
||||
self->sample = sample;
|
||||
self->loop = loop;
|
||||
self->bytes_per_sample = audiosample_bits_per_sample(sample) / 8;
|
||||
self->channel_count = audiosample_channel_count(sample);
|
||||
int instance = SAI_GetInstance(self->peripheral);
|
||||
i2s_playing |= (1 << instance);
|
||||
uint32_t sample_rate = audiosample_sample_rate(sample);
|
||||
if (sample_rate != self->sample_rate) {
|
||||
if (__builtin_popcount(i2s_playing) <= 1) {
|
||||
// as this is the first/only i2s instance playing audio, we can
|
||||
// safely change the overall clock used by the SAI peripheral, to
|
||||
// get more accurate frequency reproduction. If another i2s
|
||||
// instance is playing, then we can't touch the audio PLL and have
|
||||
// to live with what we can get, which may be inaccurate
|
||||
set_sai_clocking_for_sample_rate(sample_rate);
|
||||
}
|
||||
SAI_TxSetBitClockRate(self->peripheral, SAI_CLOCK_FREQ, sample_rate, 16, 2);
|
||||
self->sample_rate = sample_rate;
|
||||
}
|
||||
|
158
ports/mimxrt10xx/common-hal/audiopwmio/PWMAudioOut.c
Normal file
158
ports/mimxrt10xx/common-hal/audiopwmio/PWMAudioOut.c
Normal file
@ -0,0 +1,158 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Jeff Epler for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "mpconfigport.h"
|
||||
|
||||
#include "py/gc.h"
|
||||
#include "py/mperrno.h"
|
||||
#include "py/runtime.h"
|
||||
#include "common-hal/audiobusio/__init__.h"
|
||||
#include "common-hal/audiopwmio/PWMAudioOut.h"
|
||||
#include "shared-bindings/audiopwmio/PWMAudioOut.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
|
||||
// Where required we use identifier names that are required by NXP's
|
||||
// API, even though they do not conform to the naming standards that Adafruit
|
||||
// strives to adhere to. https://www.adafruit.com/blacklivesmatter
|
||||
#include "sdk/drivers/sai/fsl_sai.h"
|
||||
|
||||
STATIC void config_periph_pin(const mcu_periph_obj_t *periph) {
|
||||
if (!periph) {
|
||||
return;
|
||||
}
|
||||
if (periph->pin->mux_reg) {
|
||||
IOMUXC_SetPinMux(
|
||||
periph->pin->mux_reg, periph->mux_mode,
|
||||
periph->input_reg, periph->input_idx,
|
||||
0,
|
||||
1);
|
||||
}
|
||||
|
||||
IOMUXC_SetPinConfig(0, 0, 0, 0,
|
||||
periph->pin->cfg_reg,
|
||||
IOMUXC_SW_PAD_CTL_PAD_HYS(0)
|
||||
| IOMUXC_SW_PAD_CTL_PAD_PUS(0)
|
||||
| IOMUXC_SW_PAD_CTL_PAD_PUE(0)
|
||||
| IOMUXC_SW_PAD_CTL_PAD_PKE(1)
|
||||
| IOMUXC_SW_PAD_CTL_PAD_ODE(0)
|
||||
| IOMUXC_SW_PAD_CTL_PAD_SPEED(2)
|
||||
| IOMUXC_SW_PAD_CTL_PAD_DSE(4)
|
||||
| IOMUXC_SW_PAD_CTL_PAD_SRE(0));
|
||||
}
|
||||
|
||||
static void config_mqs(void) {
|
||||
CCM->CCGR0 = (CCM->CCGR0 & (~CCM_CCGR0_CG2_MASK)) | CCM_CCGR0_CG2(3); /* Enable MQS hmclk. */
|
||||
|
||||
IOMUXC_MQSEnterSoftwareReset(IOMUXC_GPR, true); /* Reset MQS. */
|
||||
IOMUXC_MQSEnterSoftwareReset(IOMUXC_GPR, false); /* Release reset MQS. */
|
||||
IOMUXC_MQSEnable(IOMUXC_GPR, true); /* Enable MQS. */
|
||||
IOMUXC_MQSConfig(IOMUXC_GPR, kIOMUXC_MqsPwmOverSampleRate64, 0u); /* 98.304MHz/64/(0+1) = 1.536MHz
|
||||
Higher frequency PWM involves less low frequen cy harmonic.*/
|
||||
|
||||
}
|
||||
|
||||
// Caller validates that pins are free.
|
||||
void common_hal_audiopwmio_pwmaudioout_construct(audiopwmio_pwmaudioout_obj_t *self,
|
||||
const mcu_pin_obj_t *left_channel, const mcu_pin_obj_t *right_channel, uint16_t default_value) {
|
||||
|
||||
int instance = -1;
|
||||
const mcu_periph_obj_t *left_periph = find_pin_function(mcu_mqs_left_list, left_channel, &instance, MP_QSTR_left_channel);
|
||||
const mcu_periph_obj_t *right_periph = find_pin_function(mcu_mqs_right_list, right_channel, &instance, MP_QSTR_right_channel);
|
||||
|
||||
sai_transceiver_t config;
|
||||
SAI_GetClassicI2SConfig(&config, kSAI_WordWidth16bits, kSAI_Stereo, 1U << 0u);
|
||||
config.frameSync.frameSyncEarly = false;
|
||||
config.frameSync.frameSyncPolarity = kSAI_PolarityActiveHigh;
|
||||
// config.syncMode = kSAI_ModeAsync;
|
||||
config.fifo.fifoPacking = kSAI_FifoPackingDisabled;
|
||||
// These identifier names are required by NXP's API, even though they do
|
||||
// not conform to the naming standards that Adafruit strives to adhere to.
|
||||
// https://www.adafruit.com/blacklivesmatter
|
||||
// config.masterSlave = kSAI_Master;
|
||||
port_i2s_initialize(&self->i2s, instance, &config);
|
||||
|
||||
self->left_channel = left_channel;
|
||||
self->right_channel = right_channel;
|
||||
claim_pin(left_channel);
|
||||
claim_pin(right_channel);
|
||||
config_periph_pin(left_periph);
|
||||
config_periph_pin(right_periph);
|
||||
config_mqs();
|
||||
}
|
||||
|
||||
bool common_hal_audiopwmio_pwmaudioout_deinited(audiopwmio_pwmaudioout_obj_t *self) {
|
||||
return port_i2s_deinited(&self->i2s);
|
||||
}
|
||||
|
||||
void common_hal_audiopwmio_pwmaudioout_deinit(audiopwmio_pwmaudioout_obj_t *self) {
|
||||
if (common_hal_audiopwmio_pwmaudioout_deinited(self)) {
|
||||
return;
|
||||
}
|
||||
|
||||
port_i2s_deinit(&self->i2s);
|
||||
|
||||
common_hal_reset_pin(self->left_channel);
|
||||
self->left_channel = NULL;
|
||||
|
||||
common_hal_reset_pin(self->right_channel);
|
||||
self->right_channel = NULL;
|
||||
|
||||
IOMUXC_MQSEnterSoftwareReset(IOMUXC_GPR, true); /* Reset MQS. */
|
||||
CCM->CCGR0 = CCM->CCGR0 & (~CCM_CCGR0_CG2_MASK); /* Disable MQS hmclk. */
|
||||
}
|
||||
|
||||
void common_hal_audiopwmio_pwmaudioout_play(audiopwmio_pwmaudioout_obj_t *self,
|
||||
mp_obj_t sample, bool loop) {
|
||||
if (common_hal_audiopwmio_pwmaudioout_get_playing(self)) {
|
||||
common_hal_audiopwmio_pwmaudioout_stop(self);
|
||||
}
|
||||
port_i2s_play(&self->i2s, sample, loop);
|
||||
}
|
||||
|
||||
void common_hal_audiopwmio_pwmaudioout_pause(audiopwmio_pwmaudioout_obj_t *self) {
|
||||
port_i2s_pause(&self->i2s);
|
||||
}
|
||||
|
||||
void common_hal_audiopwmio_pwmaudioout_resume(audiopwmio_pwmaudioout_obj_t *self) {
|
||||
port_i2s_resume(&self->i2s);
|
||||
}
|
||||
|
||||
bool common_hal_audiopwmio_pwmaudioout_get_paused(audiopwmio_pwmaudioout_obj_t *self) {
|
||||
return port_i2s_get_paused(&self->i2s);
|
||||
}
|
||||
|
||||
void common_hal_audiopwmio_pwmaudioout_stop(audiopwmio_pwmaudioout_obj_t *self) {
|
||||
port_i2s_stop(&self->i2s);
|
||||
}
|
||||
|
||||
bool common_hal_audiopwmio_pwmaudioout_get_playing(audiopwmio_pwmaudioout_obj_t *self) {
|
||||
return port_i2s_get_playing(&self->i2s);
|
||||
}
|
41
ports/mimxrt10xx/common-hal/audiopwmio/PWMAudioOut.h
Normal file
41
ports/mimxrt10xx/common-hal/audiopwmio/PWMAudioOut.h
Normal file
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Jeff Epler for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#if CIRCUITPY_AUDIOBUSIO_I2SOUT
|
||||
#include "supervisor/background_callback.h"
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
#include "common-hal/audiobusio/__init__.h"
|
||||
|
||||
typedef struct {
|
||||
mp_obj_base_t base;
|
||||
i2s_t i2s;
|
||||
const mcu_pin_obj_t *left_channel, *right_channel;
|
||||
} audiopwmio_pwmaudioout_obj_t;
|
||||
|
||||
#endif
|
0
ports/mimxrt10xx/common-hal/audiopwmio/__init__.c
Normal file
0
ports/mimxrt10xx/common-hal/audiopwmio/__init__.c
Normal file
0
ports/mimxrt10xx/common-hal/audiopwmio/__init__.h
Normal file
0
ports/mimxrt10xx/common-hal/audiopwmio/__init__.h
Normal file
@ -17,6 +17,7 @@ CIRCUITPY_AUDIOCORE = 1
|
||||
CIRCUITPY_AUDIOIO = 0
|
||||
CIRCUITPY_AUDIOMIXER = 1
|
||||
CIRCUITPY_AUDIOMP3 = 1
|
||||
CIRCUITPY_AUDIOPWMIO = 1
|
||||
CIRCUITPY_BUSDEVICE = 1
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
|
@ -169,25 +169,31 @@ const mcu_pwm_obj_t mcu_pwm_list[20] = {
|
||||
|
||||
const mcu_periph_obj_t mcu_sai_rx_bclk_list[] = {
|
||||
PERIPH_PIN(1, 0, 0, 0, &pin_GPIO_08),
|
||||
PERIPH_PIN(2, 1, 0, 0, &pin_GPIO_00),
|
||||
PERIPH_PIN(3, 1, 0, 0, &pin_GPIO_00),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_rx_data0_list[] = {
|
||||
PERIPH_PIN(1, 0, 0, 0, &pin_GPIO_03),
|
||||
PERIPH_PIN(2, 1, 0, 0, &pin_GPIO_SD_03),
|
||||
PERIPH_PIN(3, 1, 0, 0, &pin_GPIO_SD_03),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_rx_sync_list[] = {
|
||||
PERIPH_PIN(1, 0, 0, 0, &pin_GPIO_02),
|
||||
PERIPH_PIN(2, 1, 0, 0, &pin_GPIO_SD_04),
|
||||
PERIPH_PIN(3, 1, 0, 0, &pin_GPIO_SD_04),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_tx_bclk_list[] = {
|
||||
PERIPH_PIN(1, 0, 0, 0, &pin_GPIO_06),
|
||||
PERIPH_PIN(2, 1, 0, 0, &pin_GPIO_SD_01),
|
||||
PERIPH_PIN(3, 1, 0, 0, &pin_GPIO_SD_01),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_tx_data0_list[] = {
|
||||
PERIPH_PIN(1, 0, 0, 0, &pin_GPIO_04),
|
||||
PERIPH_PIN(2, 1, 0, 0, &pin_GPIO_SD_02),
|
||||
PERIPH_PIN(3, 1, 0, 0, &pin_GPIO_SD_02),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_tx_sync_list[] = {
|
||||
PERIPH_PIN(1, 0, 0, 0, &pin_GPIO_07),
|
||||
PERIPH_PIN(2, 1, 0, 0, &pin_GPIO_SD_00),
|
||||
PERIPH_PIN(3, 1, 0, 0, &pin_GPIO_SD_00),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_mqs_left_list[] = {
|
||||
PERIPH_PIN(3, 4, 0, 0, &pin_GPIO_AD_01),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_mqs_right_list[] = {
|
||||
PERIPH_PIN(3, 4, 0, 0, &pin_GPIO_AD_02),
|
||||
};
|
||||
|
@ -54,4 +54,7 @@ extern const mcu_periph_obj_t mcu_sai_tx_bclk_list[2];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_data0_list[2];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_sync_list[2];
|
||||
|
||||
extern const mcu_periph_obj_t mcu_mqs_left_list[1];
|
||||
extern const mcu_periph_obj_t mcu_mqs_right_list[1];
|
||||
|
||||
#endif // MICROPY_INCLUDED_MIMXRT10XX_MIMXRT1011_PERIPHERALS_MIMXRT1011_PERIPH_H
|
||||
|
@ -311,3 +311,13 @@ const mcu_periph_obj_t mcu_sai_tx_sync_list[] = {
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_34),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_SD_B1_07),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_mqs_left_list[] = {
|
||||
PERIPH_PIN(3, 1, 0, 0, &pin_GPIO_AD_B0_07),
|
||||
PERIPH_PIN(3, 2, 0, 0, &pin_GPIO_EMC_17),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_38),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_mqs_right_list[] = {
|
||||
PERIPH_PIN(3, 1, 0, 0, &pin_GPIO_AD_B0_06),
|
||||
PERIPH_PIN(3, 2, 0, 0, &pin_GPIO_EMC_16),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_37),
|
||||
};
|
||||
|
@ -53,3 +53,6 @@ extern const mcu_periph_obj_t mcu_sai_rx_sync_list[7];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_bclk_list[7];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_data0_list[7];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_sync_list[7];
|
||||
|
||||
extern const mcu_periph_obj_t mcu_mqs_left_list[3];
|
||||
extern const mcu_periph_obj_t mcu_mqs_right_list[3];
|
||||
|
@ -362,3 +362,13 @@ const mcu_periph_obj_t mcu_sai_tx_sync_list[] = {
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_39),
|
||||
PERIPH_PIN(3, 8, 0, 0, &pin_GPIO_SD_B1_02),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_mqs_left_list[] = {
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_14),
|
||||
PERIPH_PIN(3, 2, 0, 0, &pin_GPIO_B0_01),
|
||||
PERIPH_PIN(3, 1, 0, 0, &pin_GPIO_AD_B0_05),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_mqs_right_list[] = {
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_13),
|
||||
PERIPH_PIN(3, 2, 0, 0, &pin_GPIO_B0_00),
|
||||
PERIPH_PIN(3, 1, 0, 0, &pin_GPIO_AD_B0_04),
|
||||
};
|
||||
|
@ -54,4 +54,7 @@ extern const mcu_periph_obj_t mcu_sai_tx_bclk_list[7];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_data0_list[7];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_sync_list[7];
|
||||
|
||||
extern const mcu_periph_obj_t mcu_mqs_left_list[3];
|
||||
extern const mcu_periph_obj_t mcu_mqs_right_list[3];
|
||||
|
||||
#endif // MICROPY_INCLUDED_MIMXRT10XX_MIMXRT1062_PERIPHERALS_MIMXRT1011_PERIPH_H
|
||||
|
@ -1,7 +1,7 @@
|
||||
#define MICROPY_HW_BOARD_NAME "Adafruit Feather RP2040 DVI"
|
||||
#define MICROPY_HW_MCU_NAME "rp2040"
|
||||
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO16)
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO4)
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO3)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO2)
|
||||
|
@ -9,21 +9,7 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO29) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D24), MP_ROM_PTR(&pin_GPIO24) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D25), MP_ROM_PTR(&pin_GPIO25) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO8) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO1) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO0) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BOOT), MP_ROM_PTR(&pin_GPIO7) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO3) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
@ -31,10 +17,29 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO1) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO0) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO8) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO3) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BOOT), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO7) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_CKN), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_CKP), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0N), MP_ROM_PTR(&pin_GPIO18) },
|
||||
|
29
ports/raspberrypi/boards/adafruit_feather_rp2040_rfm/board.c
Normal file
29
ports/raspberrypi/boards/adafruit_feather_rp2040_rfm/board.c
Normal file
@ -0,0 +1,29 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
@ -0,0 +1,14 @@
|
||||
#define MICROPY_HW_BOARD_NAME "Adafruit Feather RP2040 RFM"
|
||||
#define MICROPY_HW_MCU_NAME "rp2040"
|
||||
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO4)
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO3)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO2)
|
||||
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO14)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO15)
|
||||
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO8)
|
||||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_GPIO1)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_GPIO0)
|
@ -0,0 +1,9 @@
|
||||
USB_VID = 0x239A
|
||||
USB_PID = 0x812E
|
||||
USB_PRODUCT = "Feather RP2040 RFM"
|
||||
USB_MANUFACTURER = "Adafruit"
|
||||
|
||||
CHIP_VARIANT = RP2040
|
||||
CHIP_FAMILY = rp2
|
||||
|
||||
EXTERNAL_FLASH_DEVICES = "GD25Q64C,W25Q64JVxQ"
|
@ -0,0 +1,4 @@
|
||||
// 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
|
57
ports/raspberrypi/boards/adafruit_feather_rp2040_rfm/pins.c
Normal file
57
ports/raspberrypi/boards/adafruit_feather_rp2040_rfm/pins.c
Normal file
@ -0,0 +1,57 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27) },
|
||||
{ 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_D24), MP_ROM_PTR(&pin_GPIO24) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D25), MP_ROM_PTR(&pin_GPIO25) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO1) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO0) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO8) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO3) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BOOT), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO7) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_RFM_CS), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RFM_RST), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RFM_IO5), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RFM_IO3), MP_ROM_PTR(&pin_GPIO19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RFM_IO4), MP_ROM_PTR(&pin_GPIO20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RFM_IO0), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RFM_IO1), MP_ROM_PTR(&pin_GPIO22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RFM_IO2), 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_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
@ -13,6 +13,7 @@ sphinx!=5.2.0.post0
|
||||
sphinx-autoapi
|
||||
sphinx-rtd-theme
|
||||
sphinxcontrib-svg2pdfconverter
|
||||
sphinxcontrib-jquery
|
||||
readthedocs-sphinx-search
|
||||
myst-parser
|
||||
|
||||
|
@ -56,6 +56,10 @@
|
||||
//| :param int quiescent_value: The output value when no signal is present. Samples should start
|
||||
//| and end with this value to prevent audible popping.
|
||||
//|
|
||||
//| **Limitations:** On mimxrt10xx, low sample rates may have an audible
|
||||
//| "carrier" frequency. The manufacturer datasheet states that the "MQS" peripheral
|
||||
//| is intended for 44 kHz or 48kHz input signals.
|
||||
//|
|
||||
//| Simple 8ksps 440 Hz sin wave::
|
||||
//|
|
||||
//| import audiocore
|
||||
@ -114,7 +118,12 @@ STATIC mp_obj_t audiopwmio_pwmaudioout_make_new(const mp_obj_type_t *type, size_
|
||||
validate_obj_is_free_pin_or_none(args[ARG_right_channel].u_obj, MP_QSTR_right_channel);
|
||||
|
||||
// create AudioOut object from the given pin
|
||||
audiopwmio_pwmaudioout_obj_t *self = m_new_obj(audiopwmio_pwmaudioout_obj_t);
|
||||
// The object is made long-lived because many implementations keep
|
||||
// a pointer to the object (e.g., for the interrupt handler), which
|
||||
// will not work properly if the object is moved. It is created
|
||||
// with a finaliser as some ports use these (rather than 'reset' functions)
|
||||
// to ensure resources are collected at interpreter shutdown.
|
||||
audiopwmio_pwmaudioout_obj_t *self = m_new_ll_obj_with_finaliser(audiopwmio_pwmaudioout_obj_t);
|
||||
self->base.type = &audiopwmio_pwmaudioout_type;
|
||||
common_hal_audiopwmio_pwmaudioout_construct(self, left_channel_pin, right_channel_pin, args[ARG_quiescent_value].u_int);
|
||||
|
||||
@ -249,6 +258,7 @@ MP_PROPERTY_GETTER(audiopwmio_pwmaudioout_paused_obj,
|
||||
STATIC const mp_rom_map_elem_t audiopwmio_pwmaudioout_locals_dict_table[] = {
|
||||
// Methods
|
||||
{ MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&audiopwmio_pwmaudioout_deinit_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___del__), MP_ROM_PTR(&audiopwmio_pwmaudioout_deinit_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&default___enter___obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&audiopwmio_pwmaudioout___exit___obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_play), MP_ROM_PTR(&audiopwmio_pwmaudioout_play_obj) },
|
||||
|
@ -62,14 +62,11 @@
|
||||
//| ...
|
||||
STATIC mp_obj_t displayio_bitmap_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args) {
|
||||
mp_arg_check_num(n_args, n_kw, 3, 3, false);
|
||||
uint32_t width = mp_obj_get_int(all_args[0]);
|
||||
uint32_t height = mp_obj_get_int(all_args[1]);
|
||||
uint32_t value_count = mp_obj_get_int(all_args[2]);
|
||||
uint32_t width = mp_arg_validate_int_range(mp_obj_get_int(all_args[0]), 1, 32767, MP_QSTR_width);
|
||||
uint32_t height = mp_arg_validate_int_range(mp_obj_get_int(all_args[1]), 1, 32767, MP_QSTR_height);
|
||||
uint32_t value_count = mp_arg_validate_int_range(mp_obj_get_int(all_args[2]), 1, 65535, MP_QSTR_value_count);
|
||||
uint32_t bits = 1;
|
||||
|
||||
if (value_count == 0) {
|
||||
mp_raise_ValueError(translate("value_count must be > 0"));
|
||||
}
|
||||
while ((value_count - 1) >> bits) {
|
||||
if (bits < 8) {
|
||||
bits <<= 1;
|
||||
@ -154,28 +151,24 @@ STATIC mp_obj_t bitmap_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t val
|
||||
uint16_t x = 0;
|
||||
uint16_t y = 0;
|
||||
if (mp_obj_is_small_int(index_obj)) {
|
||||
mp_int_t i = MP_OBJ_SMALL_INT_VALUE(index_obj);
|
||||
mp_int_t i = mp_arg_validate_int_min(MP_OBJ_SMALL_INT_VALUE(index_obj), 0, MP_QSTR_index);
|
||||
uint16_t width = common_hal_displayio_bitmap_get_width(self);
|
||||
x = i % width;
|
||||
y = i / width;
|
||||
} else {
|
||||
mp_obj_t *items;
|
||||
mp_obj_get_array_fixed_n(index_obj, 2, &items);
|
||||
x = mp_obj_get_int(items[0]);
|
||||
y = mp_obj_get_int(items[1]);
|
||||
if (x >= common_hal_displayio_bitmap_get_width(self) || y >= common_hal_displayio_bitmap_get_height(self)) {
|
||||
mp_raise_IndexError(translate("pixel coordinates out of bounds"));
|
||||
}
|
||||
x = mp_arg_validate_int_range(mp_obj_get_int(items[0]), 0, self->width - 1, MP_QSTR_x);
|
||||
y = mp_arg_validate_int_range(mp_obj_get_int(items[1]), 0, self->height - 1, MP_QSTR_y);
|
||||
}
|
||||
|
||||
if (value_obj == MP_OBJ_SENTINEL) {
|
||||
// load
|
||||
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_bitmap_get_pixel(self, x, y));
|
||||
} else {
|
||||
mp_uint_t value = (mp_uint_t)mp_obj_get_int(value_obj);
|
||||
if ((value >> common_hal_displayio_bitmap_get_bits_per_value(self)) != 0) {
|
||||
mp_raise_ValueError(translate("pixel value requires too many bits"));
|
||||
}
|
||||
mp_uint_t value = (mp_uint_t)mp_arg_validate_int_range(
|
||||
mp_obj_get_int(value_obj), 0,
|
||||
(UINT32_MAX >> (32 - common_hal_displayio_bitmap_get_bits_per_value(self))), MP_QSTR_value);
|
||||
common_hal_displayio_bitmap_set_pixel(self, x, y, value);
|
||||
}
|
||||
return mp_const_none;
|
||||
@ -226,8 +219,9 @@ STATIC mp_obj_t displayio_bitmap_obj_blit(size_t n_args, const mp_obj_t *pos_arg
|
||||
displayio_bitmap_t *self = MP_OBJ_TO_PTR(pos_args[0]);
|
||||
check_for_deinit(self);
|
||||
|
||||
int16_t x = args[ARG_x].u_int;
|
||||
int16_t y = args[ARG_y].u_int;
|
||||
// Check x,y are within self (target) bitmap boundary
|
||||
int16_t x = mp_arg_validate_int_range(args[ARG_x].u_int, 0, self->width - 1, MP_QSTR_x);
|
||||
int16_t y = mp_arg_validate_int_range(args[ARG_y].u_int, 0, self->height - 1, MP_QSTR_y);
|
||||
|
||||
displayio_bitmap_t *source = mp_arg_validate_type(args[ARG_source].u_obj, &displayio_bitmap_type, MP_QSTR_source_bitmap);
|
||||
|
||||
@ -237,32 +231,21 @@ STATIC mp_obj_t displayio_bitmap_obj_blit(size_t n_args, const mp_obj_t *pos_arg
|
||||
mp_raise_ValueError(translate("source palette too large"));
|
||||
}
|
||||
|
||||
int16_t x1 = args[ARG_x1].u_int;
|
||||
int16_t y1 = args[ARG_y1].u_int;
|
||||
// Check x1,y1,x2,y2 are within source bitmap boundary
|
||||
int16_t x1 = mp_arg_validate_int_range(args[ARG_x1].u_int, 0, source->width - 1, MP_QSTR_x1);
|
||||
int16_t y1 = mp_arg_validate_int_range(args[ARG_y1].u_int, 0, source->height - 1, MP_QSTR_y1);
|
||||
int16_t x2, y2;
|
||||
// if x2 or y2 is None, then set as the maximum size of the source bitmap
|
||||
if (args[ARG_x2].u_obj == mp_const_none) {
|
||||
x2 = source->width;
|
||||
} else {
|
||||
x2 = mp_obj_get_int(args[ARG_x2].u_obj);
|
||||
x2 = mp_arg_validate_int_range(mp_obj_get_int(args[ARG_x2].u_obj), 0, source->width, MP_QSTR_x2);
|
||||
}
|
||||
// int16_t y2;
|
||||
if (args[ARG_y2].u_obj == mp_const_none) {
|
||||
y2 = source->height;
|
||||
} else {
|
||||
y2 = mp_obj_get_int(args[ARG_y2].u_obj);
|
||||
}
|
||||
|
||||
// Check x,y are within self (target) bitmap boundary
|
||||
if ((x < 0) || (y < 0) || (x > self->width) || (y > self->height)) {
|
||||
mp_raise_ValueError(translate("out of range of target"));
|
||||
}
|
||||
// Check x1,y1,x2,y2 are within source bitmap boundary
|
||||
if ((x1 < 0) || (x1 > source->width) ||
|
||||
(y1 < 0) || (y1 > source->height) ||
|
||||
(x2 < 0) || (x2 > source->width) ||
|
||||
(y2 < 0) || (y2 > source->height)) {
|
||||
mp_raise_ValueError(translate("out of range of source"));
|
||||
y2 = mp_arg_validate_int_range(mp_obj_get_int(args[ARG_y2].u_obj), 0, source->height, MP_QSTR_y2);
|
||||
}
|
||||
|
||||
// Ensure x1 < x2 and y1 < y2
|
||||
@ -301,10 +284,7 @@ STATIC mp_obj_t displayio_bitmap_obj_fill(mp_obj_t self_in, mp_obj_t value_obj)
|
||||
displayio_bitmap_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
check_for_deinit(self);
|
||||
|
||||
mp_uint_t value = (mp_uint_t)mp_obj_get_int(value_obj);
|
||||
if ((value >> common_hal_displayio_bitmap_get_bits_per_value(self)) != 0) {
|
||||
mp_raise_ValueError(translate("pixel value requires too many bits"));
|
||||
}
|
||||
mp_uint_t value = (mp_uint_t)mp_arg_validate_int_range(mp_obj_get_int(value_obj), 0,(1u << common_hal_displayio_bitmap_get_bits_per_value(self)) - 1,MP_QSTR_value);
|
||||
common_hal_displayio_bitmap_fill(self, value);
|
||||
|
||||
return mp_const_none;
|
||||
|
@ -56,7 +56,7 @@ STATIC mp_obj_t displayio_group_make_new(const mp_obj_type_t *type, size_t n_arg
|
||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||
mp_arg_parse_all_kw_array(n_args, n_kw, all_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||
|
||||
mp_int_t scale = mp_arg_validate_int_min(args[ARG_scale].u_int, 1, MP_QSTR_scale);
|
||||
mp_int_t scale = mp_arg_validate_int_range(args[ARG_scale].u_int, 1, 32767,MP_QSTR_scale);
|
||||
|
||||
displayio_group_t *self = m_new_obj(displayio_group_t);
|
||||
self->base.type = &displayio_group_type;
|
||||
|
@ -61,7 +61,7 @@ STATIC mp_obj_t displayio_palette_make_new(const mp_obj_type_t *type, size_t n_a
|
||||
|
||||
displayio_palette_t *self = m_new_obj(displayio_palette_t);
|
||||
self->base.type = &displayio_palette_type;
|
||||
common_hal_displayio_palette_construct(self, args[ARG_color_count].u_int, args[ARG_dither].u_bool);
|
||||
common_hal_displayio_palette_construct(self, mp_arg_validate_int_range(args[ARG_color_count].u_int, 1, 32767, MP_QSTR_color_count), args[ARG_dither].u_bool);
|
||||
|
||||
return MP_OBJ_FROM_PTR(self);
|
||||
}
|
||||
|
@ -102,6 +102,16 @@ STATIC uint32_t read4(msgpack_stream_t *s) {
|
||||
return res;
|
||||
}
|
||||
|
||||
STATIC uint64_t read8(msgpack_stream_t *s) {
|
||||
uint64_t res = 0;
|
||||
read(s, &res, 8);
|
||||
int n = 1;
|
||||
if (*(char *)&n == 1) {
|
||||
res = __builtin_bswap64(res);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
STATIC size_t read_size(msgpack_stream_t *s, uint8_t len_index) {
|
||||
size_t res = 0;
|
||||
switch (len_index) {
|
||||
@ -424,22 +434,39 @@ STATIC mp_obj_t unpack(msgpack_stream_t *s, mp_obj_t ext_hook, bool use_list) {
|
||||
return unpack_bytes(s, read_size(s, code - 0xc4));
|
||||
}
|
||||
case 0xcc: // uint8
|
||||
return MP_OBJ_NEW_SMALL_INT((uint8_t)read1(s));
|
||||
case 0xd0: // int8
|
||||
return MP_OBJ_NEW_SMALL_INT((int8_t)read1(s));
|
||||
case 0xcd: // uint16
|
||||
return MP_OBJ_NEW_SMALL_INT((uint16_t)read2(s));
|
||||
case 0xd1: // int16
|
||||
return MP_OBJ_NEW_SMALL_INT((int16_t)read2(s));
|
||||
case 0xce: // uint32
|
||||
return mp_obj_new_int_from_uint((uint32_t)read4(s));
|
||||
case 0xd2: // int32
|
||||
return MP_OBJ_NEW_SMALL_INT((int32_t)read4(s));
|
||||
case 0xca: {
|
||||
union Float { mp_float_t f;
|
||||
return mp_obj_new_int((int32_t)read4(s));
|
||||
case 0xcf: // uint 64
|
||||
return mp_obj_new_int_from_ull((uint64_t)read8(s));
|
||||
case 0xd3: // int 64
|
||||
return mp_obj_new_int_from_ll((int64_t)read8(s));
|
||||
case 0xca: { // float
|
||||
union Float {
|
||||
mp_float_t f;
|
||||
uint32_t u;
|
||||
};
|
||||
union Float data;
|
||||
data.u = read4(s);
|
||||
return mp_obj_new_float(data.f);
|
||||
}
|
||||
case 0xcb: { // double
|
||||
union Double {
|
||||
uint64_t u;
|
||||
double d;
|
||||
};
|
||||
union Double data;
|
||||
data.u = read8(s);
|
||||
return mp_obj_new_float_from_d(data.d);
|
||||
}
|
||||
case 0xd9:
|
||||
case 0xda:
|
||||
case 0xdb: {
|
||||
@ -483,11 +510,8 @@ STATIC mp_obj_t unpack(msgpack_stream_t *s, mp_obj_t ext_hook, bool use_list) {
|
||||
// ext 8, 16, 32
|
||||
return unpack_ext(s, read_size(s, code - 0xc7), ext_hook);
|
||||
case 0xc1: // never used
|
||||
case 0xcb: // float 64
|
||||
case 0xcf: // uint 64
|
||||
case 0xd3: // int 64
|
||||
default:
|
||||
mp_raise_NotImplementedError(translate("64 bit types"));
|
||||
mp_raise_ValueError(translate("Invalid format"));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user