Merge remote-tracking branch 'upstream/main' into nrf52-sleep

This commit is contained in:
Lucian Copeland 2021-04-20 14:58:24 -04:00
commit a702409983
120 changed files with 3446 additions and 810 deletions

View File

@ -178,8 +178,13 @@ jobs:
- "TG-Watch"
- "adafruit_feather_rp2040"
- "adafruit_itsybitsy_rp2040"
- "adafruit_neokey_trinkey_m0"
- "adafruit_proxlight_trinkey_m0"
- "adafruit_qtpy_rp2040"
- "adafruit_rotary_trinkey_m0"
- "adafruit_slide_trinkey_m0"
- "aloriumtech_evo_m51"
- "aramcon2_badge"
- "aramcon_badge_2019"
- "arduino_mkr1300"
- "arduino_mkrzero"
@ -285,6 +290,8 @@ jobs:
- "pewpew_m4"
- "picoplanet"
- "pimoroni_keybow2040"
- "pimoroni_picolipo_16mb"
- "pimoroni_picolipo_4mb"
- "pimoroni_picosystem"
- "pimoroni_tiny2040"
- "pirkey_m0"
@ -305,17 +312,18 @@ jobs:
- "raspberry_pi_pico"
- "raytac_mdbt50q-db-40"
- "robohatmm1_m4"
- "rotary_trinkey_m0"
- "sam32"
- "same54_xplained"
- "seeeduino_wio_terminal"
- "seeeduino_xiao"
- "sensebox_mcu"
- "serpente"
- "shirtty"
- "silicognition-m4-shim"
- "simmel"
- "snekboard"
- "sparkfun_lumidrive"
- "sparkfun_micromod_rp2040"
- "sparkfun_nrf52840_micromod"
- "sparkfun_nrf52840_mini"
- "sparkfun_pro_micro_rp2040"
@ -375,6 +383,8 @@ jobs:
python3 --version
- name: mpy-cross
run: make -C mpy-cross -j2
- name: Setup build failure matcher
run: echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
- name: build
run: python3 -u build_release_files.py
working-directory: tools
@ -424,6 +434,8 @@ jobs:
python3 --version
- name: mpy-cross
run: make -C mpy-cross -j2
- name: Setup build failure matcher
run: echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
- name: build
run: python3 -u build_release_files.py
working-directory: tools
@ -453,6 +465,7 @@ jobs:
- "adafruit_magtag_2.9_grayscale"
- "adafruit_metro_esp32s2"
- "artisense_rd00"
- "atmegazero_esp32s2"
- "electroniccats_bastwifi"
- "espressif_kaluga_1"
- "espressif_saola_1_wroom"
@ -485,7 +498,7 @@ jobs:
id: idf-cache
with:
path: ${{ github.workspace }}/.idf_tools
key: ${{ runner.os }}-idf-tools-${{ hashFiles('.git/modules/ports/esp32s2/esp-idf/HEAD') }}-20210304
key: ${{ runner.os }}-idf-tools-${{ hashFiles('.git/modules/ports/esp32s2/esp-idf/HEAD') }}-20210415
- name: Clone IDF submodules
run: |
(cd $IDF_PATH && git submodule update --init)
@ -522,6 +535,8 @@ jobs:
IDF_TOOLS_PATH: ${{ github.workspace }}/.idf_tools
- name: mpy-cross
run: make -C mpy-cross -j2
- name: Setup build failure matcher
run: echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
- name: build
run: |
source $IDF_PATH/export.sh

14
.github/workflows/match-build-fail.json vendored Normal file
View File

@ -0,0 +1,14 @@
{
"problemMatcher": [
{
"severity": "error",
"pattern": [
{
"regexp": "^(Build .+ and \\x1b\\[31mfailed\\x1b\\[0m)$",
"message": 1
}
],
"owner": "build-failed"
}
]
}

6
.gitmodules vendored
View File

@ -171,6 +171,9 @@
[submodule "frozen/Adafruit_CircuitPython_LC709203F"]
path = frozen/Adafruit_CircuitPython_LC709203F
url = https://github.com/adafruit/Adafruit_CircuitPython_LC709203F
[submodule "frozen/Adafruit_CircuitPython_SimpleMath"]
path = frozen/Adafruit_CircuitPython_SimpleMath
url = https://github.com/adafruit/Adafruit_CircuitPython_SimpleMath
[submodule "ports/raspberrypi/sdk"]
path = ports/raspberrypi/sdk
url = https://github.com/adafruit/pico-sdk.git
@ -178,3 +181,6 @@
path = data/nvm.toml
url = https://github.com/adafruit/nvm.toml.git
branch = main
[submodule "frozen/Adafruit_CircuitPython_MIDI"]
path = frozen/Adafruit_CircuitPython_MIDI
url = https://github.com/adafruit/Adafruit_CircuitPython_MIDI

View File

@ -489,6 +489,8 @@ class CoreModuleTransform(SphinxTransform):
def setup(app):
app.add_css_file("customstyle.css")
app.add_css_file("filter.css")
app.add_js_file("filter.js")
app.add_config_value('redirects_file', 'redirects', 'env')
app.connect('builder-inited', generate_redirects)
app.add_transform(CoreModuleTransform)

View File

@ -78,6 +78,10 @@ bleio_service_obj_t *common_hal_bleio_characteristic_get_service(bleio_character
return self->service;
}
size_t common_hal_bleio_characteristic_get_max_length(bleio_characteristic_obj_t *self) {
return self->max_length;
}
size_t common_hal_bleio_characteristic_get_value(bleio_characteristic_obj_t *self, uint8_t *buf, size_t len) {
// Do GATT operations only if this characteristic has been added to a registered service.
if (self->handle != BLE_GATT_HANDLE_INVALID) {

View File

@ -81,7 +81,7 @@ void bleio_packet_buffer_update(bleio_packet_buffer_obj_t *self, mp_buffer_info_
void common_hal_bleio_packet_buffer_construct(
bleio_packet_buffer_obj_t *self, bleio_characteristic_obj_t *characteristic,
size_t buffer_size) {
size_t buffer_size, size_t max_packet_size) {
self->characteristic = characteristic;
self->client = self->characteristic->service->is_remote;
@ -101,7 +101,7 @@ void common_hal_bleio_packet_buffer_construct(
}
if (incoming) {
if (!ringbuf_alloc(&self->ringbuf, buffer_size * (sizeof(uint16_t) + characteristic->max_length), false)) {
if (!ringbuf_alloc(&self->ringbuf, buffer_size * (sizeof(uint16_t) + max_packet_size), false)) {
mp_raise_ValueError(translate("Buffer too large and unable to allocate"));
}
}
@ -110,12 +110,13 @@ void common_hal_bleio_packet_buffer_construct(
self->packet_queued = false;
self->pending_index = 0;
self->pending_size = 0;
self->outgoing[0] = m_malloc(characteristic->max_length, false);
self->outgoing[1] = m_malloc(characteristic->max_length, false);
self->outgoing[0] = m_malloc(max_packet_size, false);
self->outgoing[1] = m_malloc(max_packet_size, false);
} else {
self->outgoing[0] = NULL;
self->outgoing[1] = NULL;
}
self->max_packet_size = max_packet_size;
bleio_characteristic_set_observer(self->characteristic, self);
}
@ -243,7 +244,8 @@ mp_int_t common_hal_bleio_packet_buffer_get_outgoing_packet_length(bleio_packet_
if (self->conn_handle != BLE_CONN_HANDLE_INVALID) {
bleio_connection_internal_t *connection = bleio_conn_handle_to_connection(self->conn_handle);
if (connection) {
return MIN(common_hal_bleio_connection_get_max_packet_length(connection),
return MIN(MIN(common_hal_bleio_connection_get_max_packet_length(connection),
self->max_packet_size),
self->characteristic->max_length);
}
}
@ -251,7 +253,7 @@ mp_int_t common_hal_bleio_packet_buffer_get_outgoing_packet_length(bleio_packet_
// we can't tell what the largest outgoing packet length would be.
return -1;
}
return self->characteristic->max_length;
return MIN(self->characteristic->max_length, self->max_packet_size);
}
bool common_hal_bleio_packet_buffer_deinited(bleio_packet_buffer_obj_t *self) {

View File

@ -42,6 +42,7 @@ typedef struct {
// We remember the conn_handle so we can do a NOTIFY/INDICATE to a client.
// We can find out the conn_handle on a Characteristic write or a CCCD write (but not a read).
volatile uint16_t conn_handle;
uint16_t max_packet_size;
uint8_t pending_index;
uint8_t write_type;
bool client;

17
docs/static/filter.css vendored Normal file
View File

@ -0,0 +1,17 @@
#support-matrix-filter-block { position: relative; }
#support-matrix-filter {
width: 100%;
}
#support-matrix-filter-num {
position: absolute;
right: 10px;
top: 4px;
}
.support-matrix-table .this_module code,
.support-matrix-table .this_module span {
background: black;
color: white;
}
.support-matrix-table .board_hidden {
display: none;
}

86
docs/static/filter.js vendored Normal file
View File

@ -0,0 +1,86 @@
$(() => {
var urlTimeout = null;
function setURL(query, value) {
clearTimeout(urlTimeout);
urlTimeout = setTimeout(function() {
var url = new URL(window.location.href);
console.log(query,value,value.length,!value.length);
if (!value.length) {
console.log
url.searchParams.delete(query);
} else if (Array.isArray(value)) {
url.searchParams.delete(query);
value.forEach(function(v) {
url.searchParams.append(query, v);
})
} else {
url.searchParams.set(query, value);
}
window.history.pushState(null, document.title, url.href);
}, 1000);
}
function handlePageLoad() {
var url = new URL(window.location.href);
//get values from URL
var filters = url.searchParams.getAll('filter');
search_terms = filters.join(" ");
$("#support-matrix-filter").val(search_terms);
run_filter();
}
function filter_boards(search_string) {
$(".board_hidden").removeClass("board_hidden");
$(".this_module").removeClass("this_module");
var nboards = $(".support-matrix-table tbody tr").length;
if(search_string.trim() == "") {
$("#support-matrix-filter-num").html("(all)");
setURL("filter",[]);
return;
}
var list_search = search_string.split(" ").filter(i => i);
var nvisible = 0;
$(".support-matrix-table tbody tr").each( (index,item) => {
var name = $(item).find("td:first-child p").html();
var modules = $(item).find("a.reference.internal");
var matching_all = true;
//
list_search.forEach((sstring) => {
var matching = (sstring[0] == "-");
for(var modi = 0; modi < modules.length; ++modi) {
module = modules[modi];
var mod_name = module.firstChild.firstChild.textContent;
if(sstring[0] == "-") {
if(mod_name.match(sstring.substr(1))) {
matching = false;
break;
}
} else {
if(mod_name.match(sstring)) {
$(module).addClass("this_module");
matching = true;
}
}
}
matching_all = matching_all && matching;
});
if(!matching_all) {
$(item).addClass("board_hidden");
} else {
nvisible += 1;
}
});
$("#support-matrix-filter-num").html(`(${nvisible}/${nboards})`);
setURL("filter",list_search);
}
function run_filter() {
var search_string = $("#support-matrix-filter").val();
filter_boards(search_string);
}
$("#support-matrix-filter").on("keyup", run_filter);
// $(document).on("keyup", "#support-matrix-filter", run_filter);
handlePageLoad();
});

@ -0,0 +1 @@
Subproject commit 669ab7b752d6c863577312560faf505656e5e603

@ -0,0 +1 @@
Subproject commit cdf99447307473080b2f2e95e7c3667247095ac0

@ -1 +1 @@
Subproject commit c2c81ded118484f8925bf81e270b416739cd72d9
Subproject commit 98017c57349e259fab70c6a7830436b19a55f6f4

View File

@ -445,8 +445,8 @@ msgid "Attempt to allocate %d blocks"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgstr "Mencoba alokasi heap ketika MicroPython VM tidak berjalan."
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "Authentication failure"
@ -899,6 +899,11 @@ msgstr ""
msgid "EXTINT channel already in use"
msgstr "Channel EXTINT sedang digunakan"
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr ""
#: extmod/modure.c
msgid "Error in regex"
msgstr "Error pada regex"
@ -1028,6 +1033,10 @@ msgstr "Gagal melepaskan mutex, err 0x%04x"
msgid "Failed to write internal flash."
msgstr "Gagal menulis flash internal."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
msgstr "File sudah ada"
@ -1100,10 +1109,6 @@ msgstr ""
msgid "I2SOut not available"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr ""
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1229,6 +1234,10 @@ msgstr ""
msgid "Invalid DAC pin supplied"
msgstr "Pin DAC yang diberikan tidak valid"
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1420,14 +1429,6 @@ msgstr "Nilai x maksimum ketika dicerminkan adalah %d"
msgid "Messages limited to 8 bytes"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr "Lompatan NLR MicroPython gagal. Kemungkinan kerusakan memori."
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr "Kesalahan fatal MicroPython."
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr "Penundaan mulai mikrofon harus dalam kisaran 0,0 hingga 1,0"
@ -1479,6 +1480,10 @@ msgstr "Harus menyediakan pin MISO atau MOSI"
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr "Harus menggunakan kelipatan 6 pin rgb, bukan %d"
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr ""
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr ""
@ -1623,6 +1628,7 @@ msgstr ""
msgid "Not a valid IP string"
msgstr ""
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -1847,8 +1853,8 @@ msgstr "Buffer awalan harus ada di heap"
#: main.c
msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
msgstr ""
"Tekan sembarang tombol untuk masuk ke REPL. Tekan CTRL-D untuk memuat ulang."
"\n"
"Tekan sembarang tombol untuk masuk ke REPL. Tekan CTRL-D untuk memuat "
"ulang.\n"
#: main.c
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
@ -2543,10 +2549,6 @@ msgstr ""
msgid "buffer is smaller than requested size"
msgstr ""
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr ""
@ -2988,7 +2990,7 @@ msgid "f-string: single '}' is not allowed"
msgstr ""
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr ""
@ -3244,6 +3246,10 @@ msgstr ""
msgid "invalid cert"
msgstr "cert tidak valid"
#: py/compile.c
msgid "invalid decorator"
msgstr ""
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr "indeks dupterm tidak valid"
@ -3299,10 +3305,6 @@ msgstr ""
msgid "invalid syntax for number"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr ""
@ -3763,6 +3765,7 @@ msgstr ""
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3788,6 +3791,10 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr ""
@ -4061,10 +4068,6 @@ msgstr ""
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr ""
@ -4199,10 +4202,6 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr ""
@ -4289,6 +4288,15 @@ msgstr "zi harus berjenis float"
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "Attempted heap allocation when MicroPython VM not running."
#~ msgstr "Mencoba alokasi heap ketika MicroPython VM tidak berjalan."
#~ msgid "MicroPython NLR jump failed. Likely memory corruption."
#~ msgstr "Lompatan NLR MicroPython gagal. Kemungkinan kerusakan memori."
#~ msgid "MicroPython fatal error."
#~ msgstr "Kesalahan fatal MicroPython."
#~ msgid "Nordic Soft Device failure assertion."
#~ msgstr "Pernyataan kegagalan Perangkat Lunak Nordic."

View File

@ -442,7 +442,7 @@ msgid "Attempt to allocate %d blocks"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: shared-bindings/wifi/Radio.c
@ -884,6 +884,11 @@ msgstr ""
msgid "EXTINT channel already in use"
msgstr ""
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr ""
#: extmod/modure.c
msgid "Error in regex"
msgstr ""
@ -1013,6 +1018,10 @@ msgstr ""
msgid "Failed to write internal flash."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
msgstr ""
@ -1085,10 +1094,6 @@ msgstr ""
msgid "I2SOut not available"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr ""
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1212,6 +1217,10 @@ msgstr ""
msgid "Invalid DAC pin supplied"
msgstr ""
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1404,14 +1413,6 @@ msgstr ""
msgid "Messages limited to 8 bytes"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr ""
@ -1463,6 +1464,10 @@ msgstr ""
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr ""
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr ""
@ -1607,6 +1612,7 @@ msgstr ""
msgid "Not a valid IP string"
msgstr ""
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -2133,7 +2139,7 @@ msgid "Too many displays"
msgstr ""
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
msgid "Total data to write is larger than outgoing_packet_length"
msgid "Total data to write is larger than %q"
msgstr ""
#: py/obj.c
@ -2500,10 +2506,6 @@ msgstr ""
msgid "buffer is smaller than requested size"
msgstr ""
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr ""
@ -2945,7 +2947,7 @@ msgid "f-string: single '}' is not allowed"
msgstr ""
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr ""
@ -3201,6 +3203,10 @@ msgstr ""
msgid "invalid cert"
msgstr ""
#: py/compile.c
msgid "invalid decorator"
msgstr ""
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr ""
@ -3256,10 +3262,6 @@ msgstr ""
msgid "invalid syntax for number"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr ""
@ -3719,6 +3721,7 @@ msgstr ""
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3744,6 +3747,10 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr ""
@ -4017,10 +4024,6 @@ msgstr ""
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr ""
@ -4155,10 +4158,6 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr ""

View File

@ -441,7 +441,7 @@ msgid "Attempt to allocate %d blocks"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: shared-bindings/wifi/Radio.c
@ -882,6 +882,11 @@ msgstr ""
msgid "EXTINT channel already in use"
msgstr ""
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr ""
#: extmod/modure.c
msgid "Error in regex"
msgstr ""
@ -1011,6 +1016,10 @@ msgstr ""
msgid "Failed to write internal flash."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
msgstr ""
@ -1083,10 +1092,6 @@ msgstr ""
msgid "I2SOut not available"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr ""
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1210,6 +1215,10 @@ msgstr ""
msgid "Invalid DAC pin supplied"
msgstr ""
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1401,14 +1410,6 @@ msgstr ""
msgid "Messages limited to 8 bytes"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr ""
@ -1460,6 +1461,10 @@ msgstr ""
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr ""
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr ""
@ -1604,6 +1609,7 @@ msgstr ""
msgid "Not a valid IP string"
msgstr ""
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -2496,10 +2502,6 @@ msgstr ""
msgid "buffer is smaller than requested size"
msgstr ""
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr ""
@ -2941,7 +2943,7 @@ msgid "f-string: single '}' is not allowed"
msgstr ""
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr ""
@ -3197,6 +3199,10 @@ msgstr ""
msgid "invalid cert"
msgstr ""
#: py/compile.c
msgid "invalid decorator"
msgstr ""
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr ""
@ -3252,10 +3258,6 @@ msgstr ""
msgid "invalid syntax for number"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr ""
@ -3715,6 +3717,7 @@ msgstr ""
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3740,6 +3743,10 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr ""
@ -4013,10 +4020,6 @@ msgstr ""
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr ""
@ -4151,10 +4154,6 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr ""

View File

@ -447,10 +447,8 @@ msgid "Attempt to allocate %d blocks"
msgstr "Versuche %d Blöcke zu allokieren"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgid "Attempted heap allocation when VM not running."
msgstr ""
"Versuch einer Heap Reservierung, wenn die MicroPython-VM nicht ausgeführt "
"wird."
#: shared-bindings/wifi/Radio.c
msgid "Authentication failure"
@ -899,6 +897,11 @@ msgstr "ESP-IDF Speicherallozierung fehlgeschlagen"
msgid "EXTINT channel already in use"
msgstr "EXTINT Kanal ist schon in Benutzung"
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr ""
#: extmod/modure.c
msgid "Error in regex"
msgstr "Fehler in regex"
@ -1029,6 +1032,10 @@ msgstr "Mutex konnte nicht freigegeben werden. Status: 0x%04x"
msgid "Failed to write internal flash."
msgstr "Interner Flash konnte nicht geschrieben werden."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
msgstr "Datei existiert"
@ -1103,10 +1110,6 @@ msgstr "I2C Peripherie in Verwendung"
msgid "I2SOut not available"
msgstr "I2SOut nicht verfügbar"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr "IOs 0, 2 & 4 unterstützen keinen internen Pull up im sleep-Modus"
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1232,6 +1235,10 @@ msgstr "Ungültige BSSID"
msgid "Invalid DAC pin supplied"
msgstr "Ungültiger DAC-Pin angegeben"
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1423,15 +1430,6 @@ msgstr "Maximaler x-Wert beim Spiegeln ist %d"
msgid "Messages limited to 8 bytes"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr ""
"MicroPython NLR-Sprung fehlgeschlagen. Wahrscheinlich Speicherbeschädigung."
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr "Schwerwiegender MicroPython-Fehler."
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr ""
@ -1484,6 +1482,10 @@ msgstr "Muss MISO- oder MOSI-Pin bereitstellen"
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr "Muss ein Vielfaches von 6 RGB-Pins verwenden, nicht %d"
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr ""
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr ""
@ -1628,6 +1630,7 @@ msgstr ""
msgid "Not a valid IP string"
msgstr ""
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -2560,10 +2563,6 @@ msgstr "Zweig ist außerhalb der Reichweite"
msgid "buffer is smaller than requested size"
msgstr ""
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "Puffer muss ein bytes-artiges Objekt sein"
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr ""
@ -3017,7 +3016,7 @@ msgid "f-string: single '}' is not allowed"
msgstr "f-string: einzelne '}' nicht erlaubt"
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr "Die Datei muss eine im Byte-Modus geöffnete Datei sein"
@ -3275,6 +3274,10 @@ msgstr ""
msgid "invalid cert"
msgstr "ungültiges cert"
#: py/compile.c
msgid "invalid decorator"
msgstr ""
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr "ungültiger dupterm index"
@ -3330,10 +3333,6 @@ msgstr "ungültige Syntax für integer mit Basis %d"
msgid "invalid syntax for number"
msgstr "ungültige Syntax für number"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() arg 1 muss eine Klasse sein"
@ -3803,6 +3802,7 @@ msgstr "pow () mit 3 Argumenten erfordert Integer"
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3828,6 +3828,10 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr ""
@ -4104,10 +4108,6 @@ msgstr ""
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "tupel/list hat falsche Länge"
@ -4246,10 +4246,6 @@ msgstr "Wert muss in %d Byte(s) passen"
msgid "value_count must be > 0"
msgstr "value_count muss größer als 0 sein"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr ""
@ -4336,6 +4332,25 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
#~ msgstr "IOs 0, 2 & 4 unterstützen keinen internen Pull up im sleep-Modus"
#~ msgid "buffer must be a bytes-like object"
#~ msgstr "Puffer muss ein bytes-artiges Objekt sein"
#~ msgid "Attempted heap allocation when MicroPython VM not running."
#~ msgstr ""
#~ "Versuch einer Heap Reservierung, wenn die MicroPython-VM nicht ausgeführt "
#~ "wird."
#~ msgid "MicroPython NLR jump failed. Likely memory corruption."
#~ msgstr ""
#~ "MicroPython NLR-Sprung fehlgeschlagen. Wahrscheinlich "
#~ "Speicherbeschädigung."
#~ msgid "MicroPython fatal error."
#~ msgstr "Schwerwiegender MicroPython-Fehler."
#~ msgid "argument must be ndarray"
#~ msgstr "Argument muss ein ndarray sein"

View File

@ -438,7 +438,7 @@ msgid "Attempt to allocate %d blocks"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: shared-bindings/wifi/Radio.c
@ -879,6 +879,11 @@ msgstr ""
msgid "EXTINT channel already in use"
msgstr ""
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr ""
#: extmod/modure.c
msgid "Error in regex"
msgstr ""
@ -1008,6 +1013,10 @@ msgstr ""
msgid "Failed to write internal flash."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
msgstr ""
@ -1080,10 +1089,6 @@ msgstr ""
msgid "I2SOut not available"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr ""
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1207,6 +1212,10 @@ msgstr ""
msgid "Invalid DAC pin supplied"
msgstr ""
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1398,14 +1407,6 @@ msgstr ""
msgid "Messages limited to 8 bytes"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr ""
@ -1457,6 +1458,10 @@ msgstr ""
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr ""
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr ""
@ -1601,6 +1606,7 @@ msgstr ""
msgid "Not a valid IP string"
msgstr ""
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -2493,10 +2499,6 @@ msgstr ""
msgid "buffer is smaller than requested size"
msgstr ""
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr ""
@ -2938,7 +2940,7 @@ msgid "f-string: single '}' is not allowed"
msgstr ""
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr ""
@ -3194,6 +3196,10 @@ msgstr ""
msgid "invalid cert"
msgstr ""
#: py/compile.c
msgid "invalid decorator"
msgstr ""
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr ""
@ -3249,10 +3255,6 @@ msgstr ""
msgid "invalid syntax for number"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr ""
@ -3712,6 +3714,7 @@ msgstr ""
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3737,6 +3740,10 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr ""
@ -4010,10 +4017,6 @@ msgstr ""
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr ""
@ -4148,10 +4151,6 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr ""

View File

@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2021-03-25 23:30+0000\n"
"Last-Translator: Gareth Coleman <gareth@sublime.org>\n"
"PO-Revision-Date: 2021-04-11 01:30+0000\n"
"Last-Translator: Hugo Dahl <hugo@code-jedi.com>\n"
"Language-Team: none\n"
"Language: en_GB\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.5.2-dev\n"
"X-Generator: Weblate 4.6-dev\n"
#: main.c
msgid ""
@ -447,9 +447,8 @@ msgid "Attempt to allocate %d blocks"
msgstr "Attempt to allocate %d blocks"
#: supervisor/shared/safe_mode.c
#, fuzzy
msgid "Attempted heap allocation when MicroPython VM not running."
msgstr "Attempted heap allocation when CircuitPython VM not running."
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "Authentication failure"
@ -895,6 +894,11 @@ msgstr "ESP-IDF memory allocation failed"
msgid "EXTINT channel already in use"
msgstr "EXTINT channel already in use"
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr ""
#: extmod/modure.c
msgid "Error in regex"
msgstr "Error in regex"
@ -1024,6 +1028,10 @@ msgstr "Failed to release mutex, err 0x%04x"
msgid "Failed to write internal flash."
msgstr "Failed to write internal flash."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
msgstr "File exists"
@ -1096,10 +1104,6 @@ msgstr "I2C peripheral in use"
msgid "I2SOut not available"
msgstr "I2SOut not available"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr "IOs 0, 2 & 4 do not support internal pullup in sleep"
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1225,6 +1229,10 @@ msgstr "Invalid BSSID"
msgid "Invalid DAC pin supplied"
msgstr "Invalid DAC pin supplied"
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1416,16 +1424,6 @@ msgstr "Maximum x value when mirrored is %d"
msgid "Messages limited to 8 bytes"
msgstr "Messages limited to 8 bytes"
#: supervisor/shared/safe_mode.c
#, fuzzy
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr "CircuitPython NLR jump failed. Likely memory corruption."
#: supervisor/shared/safe_mode.c
#, fuzzy
msgid "MicroPython fatal error."
msgstr "CircuitPython fatal error."
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr "Microphone startup delay must be in range 0.0 to 1.0"
@ -1477,6 +1475,10 @@ msgstr "Must provide MISO or MOSI pin"
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr "Must use a multiple of 6 rgb pins, not %d"
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr ""
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr "NVS Error"
@ -1621,6 +1623,7 @@ msgstr ""
msgid "Not a valid IP string"
msgstr "Not a valid IP string"
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -2540,10 +2543,6 @@ msgstr "Branch not in range"
msgid "buffer is smaller than requested size"
msgstr "Buffer is smaller than requested size"
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "Buffer must be a bytes-like object"
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr "Buffer size must be a multiple of element size"
@ -2988,7 +2987,7 @@ msgid "f-string: single '}' is not allowed"
msgstr "f-string: single '}' is not allowed"
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr "file must be a file opened in byte mode"
@ -3244,6 +3243,10 @@ msgstr "invalid bits_per_pixel %d, must be, 1, 4, 8, 16, 24, or 32"
msgid "invalid cert"
msgstr "invalid cert"
#: py/compile.c
msgid "invalid decorator"
msgstr ""
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr "invalid dupterm index"
@ -3300,10 +3303,6 @@ msgstr "invalid syntax for integer with base %d"
msgid "invalid syntax for number"
msgstr "invalid syntax for number"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr "io must be rtc io"
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() arg 1 must be a class"
@ -3763,6 +3762,7 @@ msgstr "pow() with 3 arguments requires integers"
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3788,6 +3788,10 @@ msgstr "pressing boot button at start up.\n"
msgid "pressing both buttons at start up.\n"
msgstr "pressing both buttons at start up.\n"
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr "pull masks conflict with direction masks"
@ -4063,10 +4067,6 @@ msgstr "trapz is defined for 1D arrays"
msgid "trapz is defined for 1D arrays of equal length"
msgstr "trapz is defined for 1D arrays of equal length"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr "trigger level must be 0 or 1"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "tuple/list has wrong length"
@ -4201,10 +4201,6 @@ msgstr "value must fit in %d byte(s)"
msgid "value_count must be > 0"
msgstr "value_count must be > 0"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr "wakeup conflict"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr "WatchDog not initialised"
@ -4291,6 +4287,31 @@ 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 "IOs 0, 2 & 4 do not support internal pullup in sleep"
#~ msgstr "IOs 0, 2 & 4 do not support internal pullup in sleep"
#~ msgid "buffer must be a bytes-like object"
#~ msgstr "Buffer must be a bytes-like object"
#~ msgid "io must be rtc io"
#~ msgstr "io must be rtc io"
#~ msgid "trigger level must be 0 or 1"
#~ msgstr "trigger level must be 0 or 1"
#~ msgid "wakeup conflict"
#~ msgstr "wakeup conflict"
#~ msgid "Attempted heap allocation when MicroPython VM not running."
#~ msgstr "Attempted heap allocation when MicroPython VM not running."
#~ msgid "MicroPython NLR jump failed. Likely memory corruption."
#~ msgstr "MicroPython NLR jump failed. Likely memory corruption."
#, fuzzy
#~ msgid "MicroPython fatal error."
#~ msgstr "CircuitPython fatal error."
#~ msgid "argument must be ndarray"
#~ msgstr "argument must be ndarray"

View File

@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-04-05 22:35+0000\n"
"Last-Translator: Jose David M <jquintana202020@gmail.com>\n"
"PO-Revision-Date: 2021-04-15 14:26+0000\n"
"Last-Translator: Alvaro Figueroa <alvaro@greencore.co.cr>\n"
"Language-Team: \n"
"Language: es\n"
"MIME-Version: 1.0\n"
@ -426,7 +426,7 @@ msgstr "El pin proporcionado no soporta AnalogOut"
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr ""
msgstr "Otra salida PWMAudioOut esta ya activada"
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
@ -451,10 +451,8 @@ msgid "Attempt to allocate %d blocks"
msgstr "Tratando de localizar %d bloques"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgstr ""
"Se intentó asignación del montículo, sin que la VM de MicroPython esté "
"ejecutando."
msgid "Attempted heap allocation when VM not running."
msgstr "Asignación del montículo mientras la VM no esta ejecutándose."
#: shared-bindings/wifi/Radio.c
msgid "Authentication failure"
@ -905,6 +903,11 @@ msgstr "Fallo ESP-IDF al tomar la memoria"
msgid "EXTINT channel already in use"
msgstr "El canal EXTINT ya está siendo utilizado"
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr "Error en el flujo MIDI en la posición %d"
#: extmod/modure.c
msgid "Error in regex"
msgstr "Error en regex"
@ -1007,7 +1010,7 @@ msgstr "Fallo al tomar memoria para búsqueda wifi"
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Failed to buffer the sample"
msgstr ""
msgstr "Fallo al hacer el búfer de la muestra"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to connect: internal error"
@ -1034,6 +1037,10 @@ msgstr "No se puede liberar el mutex, err 0x%04x"
msgid "Failed to write internal flash."
msgstr "Error al escribir el flash interno."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr "Error grave."
#: py/moduerrno.c
msgid "File exists"
msgstr "El archivo ya existe"
@ -1107,10 +1114,6 @@ msgstr "Dispositivo I2C en uso"
msgid "I2SOut not available"
msgstr "I2SOut no disponible"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr "IOs 0, 2 y 4 no soportan pullup interno durante sleep"
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1243,6 +1246,10 @@ msgstr "BSSID inválido"
msgid "Invalid DAC pin supplied"
msgstr "Pin suministrado inválido para DAC"
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr "Archivo MIDI inválido"
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1434,14 +1441,6 @@ msgstr "Valor máximo de x cuando se refleja es %d"
msgid "Messages limited to 8 bytes"
msgstr "Mensajes limitados a 8 bytes"
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr "MicroPython NLR jump falló. Probable corrupción de la memoria."
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr "Error fatal de MicroPython."
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr "Micrófono demora de inicio debe estar en el rango 0.0 a 1.0"
@ -1497,6 +1496,10 @@ msgstr "Debe proporcionar un pin MISO o MOSI"
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr "Debe usar un múltiplo de 6 pines rgb, no %d"
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr "Salto NLR falló. Probablemente corrupción de memoria."
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr "Error NVS"
@ -1641,6 +1644,7 @@ msgstr "El firmware del sistema Nordic no tiene memoria"
msgid "Not a valid IP string"
msgstr "No es una cadena de IP válida"
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -2573,10 +2577,6 @@ msgstr "la rama no está dentro del rango"
msgid "buffer is smaller than requested size"
msgstr "El buffer es mas pequeño que el requerido"
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "buffer debe de ser un objeto bytes-like"
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr "El tamaño del buffer debe ser un múltiplo del tamaño del elemento"
@ -3025,7 +3025,7 @@ msgid "f-string: single '}' is not allowed"
msgstr "cadena-f: solo '}' no está permitido"
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr "el archivo deberia ser una archivo abierto en modo byte"
@ -3281,6 +3281,10 @@ msgstr "los bits_per_pixel %d no son validos, deben ser 1, 4, 8, 16, 24 o 32"
msgid "invalid cert"
msgstr "certificado inválido"
#: py/compile.c
msgid "invalid decorator"
msgstr "decorador invalido"
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr "index dupterm inválido"
@ -3336,10 +3340,6 @@ msgstr "sintaxis inválida para entero con base %d"
msgid "invalid syntax for number"
msgstr "sintaxis inválida para número"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr "io debe ser rtc io"
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() arg 1 debe ser una clase"
@ -3806,6 +3806,7 @@ msgstr "pow() con 3 argumentos requiere enteros"
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3831,6 +3832,10 @@ msgstr "presionando botón de arranque al inicio.\n"
msgid "pressing both buttons at start up.\n"
msgstr "presionando ambos botones al inicio.\n"
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr "máscara de pull en conflicto con máscara de dirección"
@ -4107,10 +4112,6 @@ msgstr "trapz esta definido para matrices 1D"
msgid "trapz is defined for 1D arrays of equal length"
msgstr "trapz está definido para arreglos 1D de igual tamaño"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr "nivel de accionamiento debe ser 0 o 1"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "tupla/lista tiene una longitud incorrecta"
@ -4245,10 +4246,6 @@ msgstr "el valor debe caber en %d byte(s)"
msgid "value_count must be > 0"
msgstr "value_count debe ser > 0"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr "conflicto de wakeup"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr "watchdog no inicializado"
@ -4335,6 +4332,32 @@ msgstr "zi debe ser de tipo flotante"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi debe ser una forma (n_section,2)"
#~ msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
#~ msgstr "IOs 0, 2 y 4 no soportan pullup interno durante sleep"
#~ msgid "buffer must be a bytes-like object"
#~ msgstr "buffer debe de ser un objeto bytes-like"
#~ msgid "io must be rtc io"
#~ msgstr "io debe ser rtc io"
#~ msgid "trigger level must be 0 or 1"
#~ msgstr "nivel de accionamiento debe ser 0 o 1"
#~ msgid "wakeup conflict"
#~ msgstr "conflicto de wakeup"
#~ msgid "Attempted heap allocation when MicroPython VM not running."
#~ msgstr ""
#~ "Se intentó asignación del montículo, sin que la VM de MicroPython esté "
#~ "ejecutando."
#~ msgid "MicroPython NLR jump failed. Likely memory corruption."
#~ msgstr "MicroPython NLR jump falló. Probable corrupción de la memoria."
#~ msgid "MicroPython fatal error."
#~ msgstr "Error fatal de MicroPython."
#~ msgid "argument must be ndarray"
#~ msgstr "argumento debe ser ndarray"

View File

@ -441,7 +441,7 @@ msgid "Attempt to allocate %d blocks"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: shared-bindings/wifi/Radio.c
@ -890,6 +890,11 @@ msgstr ""
msgid "EXTINT channel already in use"
msgstr "Ginagamit na ang EXTINT channel"
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr ""
#: extmod/modure.c
msgid "Error in regex"
msgstr "May pagkakamali sa REGEX"
@ -1021,6 +1026,10 @@ msgstr "Nabigo sa pagrelease ng mutex, status: 0x%08lX"
msgid "Failed to write internal flash."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
msgstr "Mayroong file"
@ -1093,10 +1102,6 @@ msgstr ""
msgid "I2SOut not available"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr ""
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1222,6 +1227,10 @@ msgstr ""
msgid "Invalid DAC pin supplied"
msgstr ""
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1413,14 +1422,6 @@ msgstr ""
msgid "Messages limited to 8 bytes"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr "Ang delay ng startup ng mikropono ay dapat na nasa 0.0 hanggang 1.0"
@ -1472,6 +1473,10 @@ msgstr ""
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr ""
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr ""
@ -1616,6 +1621,7 @@ msgstr ""
msgid "Not a valid IP string"
msgstr ""
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
#, fuzzy
@ -2523,10 +2529,6 @@ msgstr "branch wala sa range"
msgid "buffer is smaller than requested size"
msgstr ""
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "buffer ay dapat bytes-like object"
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr ""
@ -2980,7 +2982,7 @@ msgid "f-string: single '}' is not allowed"
msgstr ""
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr "file ay dapat buksan sa byte mode"
@ -3237,6 +3239,10 @@ msgstr ""
msgid "invalid cert"
msgstr "mali ang cert"
#: py/compile.c
msgid "invalid decorator"
msgstr ""
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr "mali ang dupterm index"
@ -3292,10 +3298,6 @@ msgstr "maling sintaks sa integer na may base %d"
msgid "invalid syntax for number"
msgstr "maling sintaks sa number"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() arg 1 ay dapat na class"
@ -3761,6 +3763,7 @@ msgstr "pow() na may 3 argumento kailangan ng integers"
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3786,6 +3789,10 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr ""
@ -4063,10 +4070,6 @@ msgstr ""
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "mali ang haba ng tuple/list"
@ -4201,10 +4204,6 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr ""
@ -4293,6 +4292,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "buffer must be a bytes-like object"
#~ msgstr "buffer ay dapat bytes-like object"
#~ msgid "Group full"
#~ msgstr "Puno ang group"

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: 0.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-04-03 21:57+0000\n"
"PO-Revision-Date: 2021-04-17 03:26+0000\n"
"Last-Translator: Hugo Dahl <hugo@code-jedi.com>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
@ -426,7 +426,7 @@ msgstr "'AnalogOut' n'est pas supporté sur la broche indiquée"
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr ""
msgstr "Un autre PWMAudioOut est déjà actif"
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
@ -435,11 +435,11 @@ msgstr "Un autre envoi est déjà actif"
#: shared-bindings/pulseio/PulseOut.c
msgid "Array must contain halfwords (type 'H')"
msgstr "Le tableau doit contenir des demi-mots (type 'H')"
msgstr "La matrice doit contenir des demi-mots (type 'H')"
#: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes."
msgstr "Les valeurs du tableau doivent être des octets singuliers."
msgstr "Les valeurs de la matrice doivent être des octets singuliers."
#: shared-bindings/microcontroller/Pin.c
msgid "At most %d %q may be specified (not %d)"
@ -451,10 +451,10 @@ msgid "Attempt to allocate %d blocks"
msgstr "Tentative d'allocation de %d blocs"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgid "Attempted heap allocation when VM not running."
msgstr ""
"Tentative d'allocation de segments lorsque la machine virtuelle MicroPython "
"n'est pas en cours d'exécution."
"Tentative d'allocation à la pile quand la Machine Virtuelle n'est pas en "
"exécution."
#: shared-bindings/wifi/Radio.c
msgid "Authentication failure"
@ -911,6 +911,11 @@ msgstr "ESP-IDF échec d'allocation de la mémoire"
msgid "EXTINT channel already in use"
msgstr "Canal EXTINT déjà utilisé"
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr "Erreur dans le flot MIDI à la position %d"
#: extmod/modure.c
msgid "Error in regex"
msgstr "Erreur dans l'expression régulière"
@ -973,7 +978,7 @@ msgstr "La FFT est définie uniquement pour les ndarrays"
#: extmod/ulab/code/numpy/fft/fft_tools.c
msgid "FFT is implemented for linear arrays only"
msgstr "FFT n'est implémenté que pour les tableaux linéaires"
msgstr "FFT n'est implémenté que pour les matrices linéaires"
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
@ -1014,7 +1019,7 @@ msgstr "Impossible d'allouer la mémoire pour le scan wifi"
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Failed to buffer the sample"
msgstr ""
msgstr "Échec du tamponage de l'échantillon"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to connect: internal error"
@ -1041,6 +1046,10 @@ msgstr "Impossible de libérer mutex, err 0x%04x"
msgid "Failed to write internal flash."
msgstr "Échec de l'écriture vers flash interne."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr "Erreurre fatale."
#: py/moduerrno.c
msgid "File exists"
msgstr "Le fichier existe"
@ -1115,10 +1124,6 @@ msgstr "périphérique I2C utilisé"
msgid "I2SOut not available"
msgstr "I2SOut n'est pas disponible"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr "IOs 0, 2 & 4 ne supportent pas l'éleveuse interne en mode someil"
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1253,6 +1258,10 @@ msgstr "BSSID invalide"
msgid "Invalid DAC pin supplied"
msgstr "Broche DAC non valide fournie"
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr "Fichier MIDI invalide"
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1444,14 +1453,6 @@ msgstr "La valeur maximale de x est %d lors d'une opération miroir"
msgid "Messages limited to 8 bytes"
msgstr "Messages limités à 8 octets"
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr "Échec du saut MicroPython NLR. Corruption de la mémoire probable."
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr "Erreur fatale MicroPython."
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr "Le délais au démarrage du micro doit être entre 0.0 et 1.0"
@ -1505,6 +1506,10 @@ msgstr "Doit fournir une broche MISO ou MOSI"
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr "Doit utiliser un multiple de 6 broches RVB, pas %d"
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr "Saut NLR échoué. Corruption de mémoire probable."
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr "Erreur NVS"
@ -1649,6 +1654,7 @@ msgstr "Logiciel systême Nordic hors de mémoire"
msgid "Not a valid IP string"
msgstr "Chaîne IP non valide"
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -2494,11 +2500,11 @@ msgstr "l'argument est une séquence vide"
#: extmod/ulab/code/numpy/numerical/numerical.c
msgid "argsort argument must be an ndarray"
msgstr "L'argument argsort doit être un ndarray"
msgstr "Le paramêtre argsort doit être un ndarray"
#: extmod/ulab/code/numpy/numerical/numerical.c
msgid "argsort is not implemented for flattened arrays"
msgstr "argsort n'est pas mis en œuvre pour les tableaux aplatis"
msgstr "argsort n'est pas mis en œuvre pour les matrices aplatis"
#: py/runtime.c
msgid "argument has wrong type"
@ -2520,12 +2526,12 @@ msgstr "les paramètres doivent être des ndarrays"
#: extmod/ulab/code/ndarray.c
msgid "array and index length must be equal"
msgstr "la longueur du tableau et de l'index doivent être égaux"
msgstr "la taille de la matrice et de l'index doivent être égaux"
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
msgstr "tableau/octets requis à droite"
msgstr "matrice/octets requis à la droite"
#: extmod/ulab/code/numpy/numerical/numerical.c
msgid "attempt to get (arg)min/(arg)max of empty sequence"
@ -2587,10 +2593,6 @@ msgstr "branche hors-bornes"
msgid "buffer is smaller than requested size"
msgstr "tampon est plus petit que la taille demandée"
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "le tampon doit être un objet bytes-like"
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr "taille du tampon doit être un multiple de la taille de l'élement"
@ -2828,8 +2830,7 @@ msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr ""
"le tampon de couleur doit être un bytearray ou un tableau de type 'b' ou 'B'"
msgstr "tampon color doit être un bytearray ou une matrice de type 'b' ou 'B'"
#: shared-bindings/displayio/Palette.c
msgid "color must be between 0x000000 and 0xffffff"
@ -2861,11 +2862,11 @@ msgstr "conversion en objet"
#: extmod/ulab/code/numpy/filter/filter.c
msgid "convolve arguments must be linear arrays"
msgstr "les arguments convolve doivent être des tableaux linéaires"
msgstr "les paramêtres pour convolve doivent être des matrices linéaires"
#: extmod/ulab/code/numpy/filter/filter.c
msgid "convolve arguments must be ndarrays"
msgstr "les arguments convolve doivent être des ndarrays"
msgstr "les paramêtres pour convolve doivent être des ndarrays"
#: extmod/ulab/code/numpy/filter/filter.c
msgid "convolve arguments must not be empty"
@ -2881,7 +2882,7 @@ msgstr "impossible de déterminer la version de la carte SD"
#: extmod/ulab/code/numpy/numerical/numerical.c
msgid "cross is defined for 1D arrays of length 3"
msgstr "cross est défini pour les tableaux 1D de longueur 3"
msgstr "cross est défini pour les matrices 1D de longueur 3"
#: extmod/ulab/code/scipy/optimize/optimize.c
msgid "data must be iterable"
@ -2911,12 +2912,13 @@ msgstr "default n'est pas une fonction"
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
msgstr ""
"le tampon de destination doit être un tableau de type 'B' pour bit_depth = 8"
"le tampon de destination doit être une matrice de type 'B' pour bit_depth = 8"
#: shared-bindings/audiobusio/PDMIn.c
msgid "destination buffer must be an array of type 'H' for bit_depth = 16"
msgstr ""
"le tampon de destination doit être un tableau de type 'H' pour bit_depth = 16"
"le tampon de destination doit être une matrice de type 'H' pour bit_depth = "
"16"
#: shared-bindings/audiobusio/PDMIn.c
msgid "destination_length must be an int >= 0"
@ -2928,7 +2930,7 @@ msgstr "la séquence de mise à jour de dict a une mauvaise longueur"
#: extmod/ulab/code/numpy/numerical/numerical.c
msgid "diff argument must be an ndarray"
msgstr "l'argument diff doit être un ndarray"
msgstr "le paramêtre diff doit être un ndarray"
#: extmod/ulab/code/numpy/numerical/numerical.c
msgid "differentiation order out of range"
@ -3047,7 +3049,7 @@ msgid "f-string: single '}' is not allowed"
msgstr "f-string : single '}' n'est pas autorisé"
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr "le fichier doit être un fichier ouvert en mode 'byte'"
@ -3065,11 +3067,11 @@ msgstr "le premier argument doit être une fonction"
#: extmod/ulab/code/ulab_create.c
msgid "first argument must be a tuple of ndarrays"
msgstr "le premier argument doit être un tuple de ndarrays"
msgstr "le premier paramêtre doit être un tuple de ndarrays"
#: extmod/ulab/code/numpy/vector/vector.c
msgid "first argument must be an ndarray"
msgstr "le premier argument doit être un ndarray"
msgstr "le premier paramêtre doit être un ndarray"
#: py/objtype.c
msgid "first argument to super() must be type"
@ -3081,7 +3083,7 @@ msgstr "l'ordre d'aplatissement doit être «C» ou «F»"
#: extmod/ulab/code/numpy/numerical/numerical.c
msgid "flip argument must be an ndarray"
msgstr "l'argument flip doit être un ndarray"
msgstr "le paramêtre flip doit être un ndarray"
#: py/objint.c
msgid "float too big"
@ -3118,7 +3120,7 @@ msgstr "la fonction a le même signe aux extrémités de lintervalle"
#: extmod/ulab/code/ndarray.c
msgid "function is defined for ndarrays only"
msgstr "La fonction n'est définie que pour les ndarrays"
msgstr "fonction définie que pour les ndarrays"
#: py/argcheck.c
#, c-format
@ -3224,11 +3226,11 @@ msgstr "Paramètre entrant doit être un chiffre entier, un tuple, ou une liste"
#: extmod/ulab/code/numpy/fft/fft_tools.c
msgid "input array length must be power of 2"
msgstr "la longueur du tableau d'entrée doit être une puissance de 2"
msgstr "longueur de la matrice d'entrée doit être une puissance de 2"
#: extmod/ulab/code/ulab_create.c
msgid "input arrays are not compatible"
msgstr "les tableaux d'entrée ne sont pas compatibles"
msgstr "les matrices d'entrée ne sont pas compatibles"
#: extmod/ulab/code/numpy/poly/poly.c
msgid "input data must be an iterable"
@ -3244,7 +3246,7 @@ msgstr "la matrice d'entrée est singulière"
#: extmod/ulab/code/user/user.c
msgid "input must be a dense ndarray"
msgstr "l'entrée doit être un tableau dense"
msgstr "l'entrée doit être un ndarray dense"
#: extmod/ulab/code/ulab_create.c
msgid "input must be a tensor of rank 2"
@ -3284,7 +3286,7 @@ msgstr "entier requis"
#: extmod/ulab/code/numpy/approx/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr "interp est défini pour les tableaux 1D de longueur égale"
msgstr "interp est défini pour les matrices 1D de longueur égale"
#: shared-bindings/_bleio/Adapter.c
#, c-format
@ -3304,6 +3306,10 @@ msgstr "bits_per_pixel %d est invalid, doit être 1, 4, 8, 16, 24 ou 32"
msgid "invalid cert"
msgstr "certificat invalide"
#: py/compile.c
msgid "invalid decorator"
msgstr "décorateur invalide"
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr "index invalide pour dupterm"
@ -3359,10 +3365,6 @@ msgstr "syntaxe invalide pour un entier de base %d"
msgid "invalid syntax for number"
msgstr "syntaxe invalide pour un nombre"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr "io doit être rtc io"
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "l'argument 1 de issubclass() doit être une classe"
@ -3718,11 +3720,11 @@ msgstr "les opérandes ne pouvaient pas être diffusés ensemble"
#: extmod/ulab/code/ndarray.c
msgid "operation is implemented for 1D Boolean arrays only"
msgstr "opération implémentée que pour des tableaux 1D booléennes"
msgstr "opération implémentée que pour les matrices 1D booléennes"
#: extmod/ulab/code/numpy/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr "l'opération n'est pas implémentée sur les ndarrays"
msgstr "l'opération n'est pas implémentée pour les ndarrays"
#: extmod/ulab/code/ndarray.c
msgid "operation is not supported for given type"
@ -3741,11 +3743,11 @@ msgstr ""
#: extmod/ulab/code/utils/utils.c
msgid "out array is too small"
msgstr ""
msgstr "matrice de sortie est trop petite"
#: extmod/ulab/code/utils/utils.c
msgid "out must be a float dense array"
msgstr ""
msgstr "la matrice sortante doit être de type float"
#: shared-bindings/displayio/Bitmap.c
msgid "out of range of source"
@ -3831,6 +3833,7 @@ msgstr "pow() avec 3 arguments nécessite des entiers"
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3856,6 +3859,10 @@ msgstr "bouton boot appuyé lors du démarrage.\n"
msgid "pressing both buttons at start up.\n"
msgstr "les deux boutons appuyés lors du démarrage.\n"
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr "masque pull est en conflit avec les masques de direction"
@ -3924,8 +3931,8 @@ msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
msgstr ""
"le tampon de sample_source doit être un bytearray ou un tableau de type "
"'h','H', 'b' ou 'B'"
"tampon sample_source doit être un bytearray ou une matrice de type 'h', 'H', "
"'b' ou 'B'"
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
@ -3962,7 +3969,7 @@ msgstr "'}' seule rencontrée dans une chaîne de format"
#: extmod/ulab/code/ulab_tools.c
msgid "size is defined for ndarrays only"
msgstr "la taille est définie pour les ndarrays uniquement"
msgstr "la taille n'est définie que pour les ndarrays"
#: shared-bindings/time/__init__.c
msgid "sleep length must be non-negative"
@ -3986,11 +3993,11 @@ msgstr "redémarrage logiciel\n"
#: extmod/ulab/code/numpy/numerical/numerical.c
msgid "sort argument must be an ndarray"
msgstr "l'argument de «sort» doit être un ndarray"
msgstr "le paramètre de «sort» doit être un ndarray"
#: extmod/ulab/code/scipy/signal/signal.c
msgid "sos array must be of shape (n_section, 6)"
msgstr "le tableau sos doit être de forme (n_section, 6)"
msgstr "la matrice sos doit être de forme (n_section, 6)"
#: extmod/ulab/code/scipy/signal/signal.c
msgid "sos[:, 3] should be all ones"
@ -4035,7 +4042,7 @@ msgstr "les indices d'une chaîne doivent être des entiers, pas %q"
#: py/stream.c
msgid "string not supported; use bytes or bytearray"
msgstr ""
"chaîne de carac. non supportée ; utilisez des bytes ou un tableau de bytes"
"chaîne de carac. non supportée; utilisez des bytes ou une matrice de bytes"
#: extmod/moductypes.c
msgid "struct: cannot index"
@ -4105,7 +4112,7 @@ msgstr "timestamp hors bornes pour 'time_t' de la plateforme"
#: extmod/ulab/code/ndarray.c
msgid "tobytes can be invoked for dense arrays only"
msgstr "tobytes ne peut être appelé que pour des tableaux dense"
msgstr "tobytes ne peut être appelée que pour des matrices dense"
#: shared-module/struct/__init__.c
msgid "too many arguments provided with the given format"
@ -4126,15 +4133,11 @@ msgstr "trop de valeur à dégrouper (%d attendues)"
#: extmod/ulab/code/numpy/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr "trapz est défini pour tableaux à une dimension"
msgstr "trapz est définie pour matrices à une dimension"
#: extmod/ulab/code/numpy/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr "trapz n'est défini que pour des tableaux 1D de longueur égale"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr "niveau du déclencheur doit être 0 ou 1"
msgstr "trapz n'est défini que pour des matrices 1D de longueur égales"
#: py/obj.c
msgid "tuple/list has wrong length"
@ -4270,10 +4273,6 @@ msgstr "la valeur doit tenir dans %d octet(s)"
msgid "value_count must be > 0"
msgstr "'value_count' doit être > 0"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr "conflit au réveil"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr "chien de garde (watchdog) non initialisé"
@ -4350,7 +4349,7 @@ msgstr "'step' nul"
#: extmod/ulab/code/scipy/signal/signal.c
msgid "zi must be an ndarray"
msgstr "zi doit être ndarray"
msgstr "zi doit être un ndarray"
#: extmod/ulab/code/scipy/signal/signal.c
msgid "zi must be of float type"
@ -4360,6 +4359,32 @@ 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 "IOs 0, 2 & 4 do not support internal pullup in sleep"
#~ msgstr "IOs 0, 2 & 4 ne supportent pas l'éleveuse interne en mode someil"
#~ msgid "buffer must be a bytes-like object"
#~ msgstr "le tampon doit être un objet bytes-like"
#~ msgid "io must be rtc io"
#~ msgstr "io doit être rtc io"
#~ msgid "trigger level must be 0 or 1"
#~ msgstr "niveau du déclencheur doit être 0 ou 1"
#~ msgid "wakeup conflict"
#~ msgstr "conflit au réveil"
#~ msgid "Attempted heap allocation when MicroPython VM not running."
#~ msgstr ""
#~ "Tentative d'allocation de segments lorsque la machine virtuelle "
#~ "MicroPython n'est pas en cours d'exécution."
#~ msgid "MicroPython NLR jump failed. Likely memory corruption."
#~ msgstr "Échec du saut MicroPython NLR. Corruption de la mémoire probable."
#~ msgid "MicroPython fatal error."
#~ msgstr "Erreur fatale MicroPython."
#~ msgid "argument must be ndarray"
#~ msgstr "l'argument doit être un ndarray"

View File

@ -438,7 +438,7 @@ msgid "Attempt to allocate %d blocks"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: shared-bindings/wifi/Radio.c
@ -879,6 +879,11 @@ msgstr ""
msgid "EXTINT channel already in use"
msgstr ""
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr ""
#: extmod/modure.c
msgid "Error in regex"
msgstr ""
@ -1008,6 +1013,10 @@ msgstr ""
msgid "Failed to write internal flash."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
msgstr ""
@ -1080,10 +1089,6 @@ msgstr ""
msgid "I2SOut not available"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr ""
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1207,6 +1212,10 @@ msgstr ""
msgid "Invalid DAC pin supplied"
msgstr ""
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1398,14 +1407,6 @@ msgstr ""
msgid "Messages limited to 8 bytes"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr ""
@ -1457,6 +1458,10 @@ msgstr ""
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr ""
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr ""
@ -1601,6 +1606,7 @@ msgstr ""
msgid "Not a valid IP string"
msgstr ""
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -2493,10 +2499,6 @@ msgstr ""
msgid "buffer is smaller than requested size"
msgstr ""
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr ""
@ -2938,7 +2940,7 @@ msgid "f-string: single '}' is not allowed"
msgstr ""
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr ""
@ -3194,6 +3196,10 @@ msgstr ""
msgid "invalid cert"
msgstr ""
#: py/compile.c
msgid "invalid decorator"
msgstr ""
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr ""
@ -3249,10 +3255,6 @@ msgstr ""
msgid "invalid syntax for number"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr ""
@ -3712,6 +3714,7 @@ msgstr ""
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3737,6 +3740,10 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr ""
@ -4010,10 +4017,6 @@ msgstr ""
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr ""
@ -4148,10 +4151,6 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr ""

View File

@ -450,8 +450,8 @@ msgid "Attempt to allocate %d blocks"
msgstr "Provo ad allocare %d blocchi"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgstr "Provo l'allocazione quando MicroPython VM non è attivo."
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "Authentication failure"
@ -899,6 +899,11 @@ msgstr ""
msgid "EXTINT channel already in use"
msgstr "Canale EXTINT già in uso"
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr ""
#: extmod/modure.c
msgid "Error in regex"
msgstr "Errore nella regex"
@ -1030,6 +1035,10 @@ msgstr "Impossibile rilasciare il mutex, err 0x%04x"
msgid "Failed to write internal flash."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
msgstr "File esistente"
@ -1102,10 +1111,6 @@ msgstr ""
msgid "I2SOut not available"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr ""
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1231,6 +1236,10 @@ msgstr ""
msgid "Invalid DAC pin supplied"
msgstr ""
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1425,14 +1434,6 @@ msgstr "Valore massimo di x quando rispachiato è %d"
msgid "Messages limited to 8 bytes"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr ""
@ -1485,6 +1486,10 @@ msgstr ""
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr ""
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr ""
@ -1629,6 +1634,7 @@ msgstr ""
msgid "Not a valid IP string"
msgstr ""
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
#, fuzzy
@ -2538,10 +2544,6 @@ msgstr "argomento di chr() non è in range(256)"
msgid "buffer is smaller than requested size"
msgstr ""
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr ""
@ -2991,7 +2993,7 @@ msgid "f-string: single '}' is not allowed"
msgstr ""
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr ""
@ -3248,6 +3250,10 @@ msgstr ""
msgid "invalid cert"
msgstr "certificato non valido"
#: py/compile.c
msgid "invalid decorator"
msgstr ""
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr "indice dupterm non valido"
@ -3303,10 +3309,6 @@ msgstr "sintassi invalida per l'intero con base %d"
msgid "invalid syntax for number"
msgstr "sintassi invalida per il numero"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "il primo argomento di issubclass() deve essere una classe"
@ -3778,6 +3780,7 @@ msgstr "pow() con 3 argomenti richiede interi"
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3803,6 +3806,10 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr ""
@ -4080,10 +4087,6 @@ msgstr ""
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "tupla/lista ha la lunghezza sbagliata"
@ -4218,10 +4221,6 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr ""
@ -4310,6 +4309,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "Attempted heap allocation when MicroPython VM not running."
#~ msgstr "Provo l'allocazione quando MicroPython VM non è attivo."
#~ msgid "Group full"
#~ msgstr "Gruppo pieno"

View File

@ -443,8 +443,8 @@ msgid "Attempt to allocate %d blocks"
msgstr "%d個のブロックの確保を試みました"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgstr "MicroPython VMの非実行時にヒープ確保を試みました"
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "Authentication failure"
@ -890,6 +890,11 @@ msgstr ""
msgid "EXTINT channel already in use"
msgstr "EXTINTチャネルはすでに使用されています"
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr ""
#: extmod/modure.c
msgid "Error in regex"
msgstr "正規表現にエラーがあります"
@ -1019,6 +1024,10 @@ msgstr "ミューテックスの開放に失敗。エラー 0x%04x"
msgid "Failed to write internal flash."
msgstr "内部フラッシュ書き込みに失敗"
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
msgstr "ファイルが存在します"
@ -1091,10 +1100,6 @@ msgstr ""
msgid "I2SOut not available"
msgstr "I2SOutが利用できません"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr ""
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1220,6 +1225,10 @@ msgstr "不正なBSSID"
msgid "Invalid DAC pin supplied"
msgstr "不正なDACピンが与えられました"
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1411,14 +1420,6 @@ msgstr ""
msgid "Messages limited to 8 bytes"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr "MicroPython NLRジャンプ失敗。メモリ破壊の可能性あり"
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr "MicroPython致命的エラー"
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr "マイクのスタートアップディレイは 0.0 から 1.0 の間でなければなりません"
@ -1470,6 +1471,10 @@ msgstr "MISOピンまたはMOSIピンが必要"
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr "%d個でなく6の倍数個のrgbピンを使ってください"
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr ""
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr ""
@ -1614,6 +1619,7 @@ msgstr ""
msgid "Not a valid IP string"
msgstr "不正なIP文字列です"
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -2516,10 +2522,6 @@ msgstr ""
msgid "buffer is smaller than requested size"
msgstr ""
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "バッファはbytes-likeオブジェクトでなければなりません"
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr ""
@ -2965,7 +2967,7 @@ msgid "f-string: single '}' is not allowed"
msgstr "f-string: 1つだけの'}'は許されません"
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr "fileはバイトモードで開かれたファイルでなければなりません"
@ -3222,6 +3224,10 @@ msgstr ""
msgid "invalid cert"
msgstr "不正な証明書"
#: py/compile.c
msgid "invalid decorator"
msgstr ""
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr "不正なduptermインデクス"
@ -3277,10 +3283,6 @@ msgstr ""
msgid "invalid syntax for number"
msgstr "数字として不正な構文"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass()の第1引数はクラスでなければなりません"
@ -3742,6 +3744,7 @@ msgstr "pow()の第3引数には整数が必要"
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3767,6 +3770,10 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr ""
@ -4041,10 +4048,6 @@ msgstr ""
msgid "trapz is defined for 1D arrays of equal length"
msgstr "trapzは同じ長さの1次元arrayに対して定義されています"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "タプル/リストの長さが正しくありません"
@ -4179,10 +4182,6 @@ msgstr "値は%dバイトに収まらなければなりません"
msgid "value_count must be > 0"
msgstr "value_countは0より大きくなければなりません"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr ""
@ -4269,6 +4268,18 @@ msgstr "ziはfloat値でなければなりません"
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "buffer must be a bytes-like object"
#~ msgstr "バッファはbytes-likeオブジェクトでなければなりません"
#~ msgid "Attempted heap allocation when MicroPython VM not running."
#~ msgstr "MicroPython VMの非実行時にヒープ確保を試みました"
#~ msgid "MicroPython NLR jump failed. Likely memory corruption."
#~ msgstr "MicroPython NLRジャンプ失敗。メモリ破壊の可能性あり"
#~ msgid "MicroPython fatal error."
#~ msgstr "MicroPython致命的エラー"
#~ msgid "argument must be ndarray"
#~ msgstr "引数はndarrayでなければなりません"

View File

@ -439,7 +439,7 @@ msgid "Attempt to allocate %d blocks"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: shared-bindings/wifi/Radio.c
@ -882,6 +882,11 @@ msgstr ""
msgid "EXTINT channel already in use"
msgstr ""
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr ""
#: extmod/modure.c
msgid "Error in regex"
msgstr "Regex에 오류가 있습니다."
@ -1011,6 +1016,10 @@ msgstr ""
msgid "Failed to write internal flash."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
msgstr ""
@ -1083,10 +1092,6 @@ msgstr ""
msgid "I2SOut not available"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr ""
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1210,6 +1215,10 @@ msgstr ""
msgid "Invalid DAC pin supplied"
msgstr ""
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1401,14 +1410,6 @@ msgstr ""
msgid "Messages limited to 8 bytes"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr ""
@ -1460,6 +1461,10 @@ msgstr ""
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr ""
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr ""
@ -1604,6 +1609,7 @@ msgstr ""
msgid "Not a valid IP string"
msgstr ""
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -2497,10 +2503,6 @@ msgstr ""
msgid "buffer is smaller than requested size"
msgstr ""
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr ""
@ -2942,7 +2944,7 @@ msgid "f-string: single '}' is not allowed"
msgstr ""
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr ""
@ -3198,6 +3200,10 @@ msgstr ""
msgid "invalid cert"
msgstr "cert가 유효하지 않습니다"
#: py/compile.c
msgid "invalid decorator"
msgstr ""
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr "Dupterm index가 유효하지 않습니다"
@ -3253,10 +3259,6 @@ msgstr "구문(syntax)가 정수가 유효하지 않습니다"
msgid "invalid syntax for number"
msgstr "숫자에 대한 구문(syntax)가 유효하지 않습니다"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr ""
@ -3716,6 +3718,7 @@ msgstr ""
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3741,6 +3744,10 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr ""
@ -4014,10 +4021,6 @@ msgstr ""
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr ""
@ -4152,10 +4155,6 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr ""

View File

@ -441,8 +441,8 @@ msgid "Attempt to allocate %d blocks"
msgstr "Poging om %d blokken toe te wijzen"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgstr "heap allocatie geprobeerd terwijl MicroPython VM niet draait."
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "Authentication failure"
@ -890,6 +890,11 @@ msgstr "ESP-IDF geheugen toewijzing mislukt"
msgid "EXTINT channel already in use"
msgstr "EXTINT kanaal al in gebruik"
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr ""
#: extmod/modure.c
msgid "Error in regex"
msgstr "Fout in regex"
@ -1019,6 +1024,10 @@ msgstr "Mislukt mutex los te laten, err 0x%04x"
msgid "Failed to write internal flash."
msgstr "Schrijven naar interne flash mislukt."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
msgstr "Bestand bestaat"
@ -1092,10 +1101,6 @@ msgstr ""
msgid "I2SOut not available"
msgstr "I2SOut is niet beschikbaar"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr "IO's 0, 2 en 4 ondersteunen geen interne pullup in slaapstand"
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1221,6 +1226,10 @@ msgstr "Ongeldig BSSID"
msgid "Invalid DAC pin supplied"
msgstr "Ongeldige DAC pin opgegeven"
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1412,14 +1421,6 @@ msgstr "Maximale x waarde indien gespiegeld is %d"
msgid "Messages limited to 8 bytes"
msgstr "Berichten zijn beperkt tot 8 bytes"
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr "MicroPython NLR sprong mislukt. Waarschijnlijk geheugen corruptie."
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr "MicroPython fatale fout."
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr "Microfoon opstart vertraging moet in bereik van 0.0 tot 1.0 zijn"
@ -1471,6 +1472,10 @@ msgstr "MISO of MOSI moeten worden gegeven"
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr "Een meervoud van 6 rgb pinnen moet worden gebruikt, niet %d"
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr ""
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr "NVS-fout"
@ -1615,6 +1620,7 @@ msgstr ""
msgid "Not a valid IP string"
msgstr "Geen geldige IP string"
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -2544,10 +2550,6 @@ msgstr "pad (branch) niet binnen bereik"
msgid "buffer is smaller than requested size"
msgstr ""
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "buffer moet een byte-achtig object zijn"
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr ""
@ -2993,7 +2995,7 @@ msgid "f-string: single '}' is not allowed"
msgstr "f-string: enkele '}' is niet toegestaan"
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr "bestand moet een bestand zijn geopend in byte modus"
@ -3250,6 +3252,10 @@ msgstr ""
msgid "invalid cert"
msgstr "ongeldig certificaat"
#: py/compile.c
msgid "invalid decorator"
msgstr ""
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr "ongeldige dupterm index"
@ -3305,10 +3311,6 @@ msgstr "ongeldige syntax voor integer met grondtal %d"
msgid "invalid syntax for number"
msgstr "ongeldige syntax voor nummer"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr "io moet rtc io zijn"
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() argument 1 moet een klasse zijn"
@ -3772,6 +3774,7 @@ msgstr "pow() met 3 argumenten vereist integers"
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3797,6 +3800,10 @@ msgstr "druk bootknop in bij opstarten.\n"
msgid "pressing both buttons at start up.\n"
msgstr "druk beide knoppen in bij opstarten.\n"
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr ""
@ -4072,10 +4079,6 @@ msgstr ""
msgid "trapz is defined for 1D arrays of equal length"
msgstr "trapz is gedefinieerd voor eendimensionale arrays van gelijke lengte"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr "triggerniveau moet 0 of 1 zijn"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "tuple of lijst heeft onjuiste lengte"
@ -4210,10 +4213,6 @@ msgstr "waarde moet in %d byte(s) passen"
msgid "value_count must be > 0"
msgstr "value_count moet groter dan 0 zijn"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr "conflict bij ontwaken"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr "watchdog niet geïnitialiseerd"
@ -4300,6 +4299,30 @@ msgstr "zi moet van type float zijn"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi moet vorm (n_section, 2) hebben"
#~ msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
#~ msgstr "IO's 0, 2 en 4 ondersteunen geen interne pullup in slaapstand"
#~ msgid "buffer must be a bytes-like object"
#~ msgstr "buffer moet een byte-achtig object zijn"
#~ msgid "io must be rtc io"
#~ msgstr "io moet rtc io zijn"
#~ msgid "trigger level must be 0 or 1"
#~ msgstr "triggerniveau moet 0 of 1 zijn"
#~ msgid "wakeup conflict"
#~ msgstr "conflict bij ontwaken"
#~ msgid "Attempted heap allocation when MicroPython VM not running."
#~ msgstr "heap allocatie geprobeerd terwijl MicroPython VM niet draait."
#~ msgid "MicroPython NLR jump failed. Likely memory corruption."
#~ msgstr "MicroPython NLR sprong mislukt. Waarschijnlijk geheugen corruptie."
#~ msgid "MicroPython fatal error."
#~ msgstr "MicroPython fatale fout."
#~ msgid "argument must be ndarray"
#~ msgstr "argument moet ndarray zijn"

View File

@ -443,8 +443,8 @@ msgid "Attempt to allocate %d blocks"
msgstr "Próba przydzielenia %d bloków"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgstr "Próba przydziału sterty, gdy MicroPython VM nie działa."
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "Authentication failure"
@ -890,6 +890,11 @@ msgstr ""
msgid "EXTINT channel already in use"
msgstr "Kanał EXTINT w użyciu"
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr ""
#: extmod/modure.c
msgid "Error in regex"
msgstr "Błąd w regex"
@ -1019,6 +1024,10 @@ msgstr "Nie udało się zwolnić blokady, błąd 0x%04x"
msgid "Failed to write internal flash."
msgstr "Nie udało się zapisać wewnętrznej pamięci flash."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
msgstr "Plik istnieje"
@ -1091,10 +1100,6 @@ msgstr ""
msgid "I2SOut not available"
msgstr "I2SOut niedostępne"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr ""
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1220,6 +1225,10 @@ msgstr ""
msgid "Invalid DAC pin supplied"
msgstr ""
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1411,15 +1420,6 @@ msgstr "Największa wartość x przy odwróceniu to %d"
msgid "Messages limited to 8 bytes"
msgstr "Wiadomości ograniczone do 8 bajtów"
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr ""
"Skok MicroRython NLR nie powiódł się. Prawdopodobne uszkodzenie pamięci."
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr "Błąd krytyczny MicroPython."
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr "Opóźnienie włączenia mikrofonu musi być w zakresie od 0.0 do 1.0"
@ -1471,6 +1471,10 @@ msgstr "Należy podać pin MISO lub MOSI"
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr ""
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr ""
@ -1615,6 +1619,7 @@ msgstr ""
msgid "Not a valid IP string"
msgstr ""
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -2513,10 +2518,6 @@ msgstr "skok poza zakres"
msgid "buffer is smaller than requested size"
msgstr ""
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "bufor mysi być typu bytes"
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr ""
@ -2959,7 +2960,7 @@ msgid "f-string: single '}' is not allowed"
msgstr ""
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr "file musi być otwarte w trybie bajtowym"
@ -3215,6 +3216,10 @@ msgstr ""
msgid "invalid cert"
msgstr "zły ceryfikat"
#: py/compile.c
msgid "invalid decorator"
msgstr ""
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr "zły indeks dupterm"
@ -3270,10 +3275,6 @@ msgstr "zła składnia dla liczby całkowitej w bazie %d"
msgid "invalid syntax for number"
msgstr "zła składnia dla liczby"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr ""
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "argument 1 dla issubclass() musi być klasą"
@ -3734,6 +3735,7 @@ msgstr "trzyargumentowe pow() wymaga liczb całkowitych"
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3759,6 +3761,10 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr ""
@ -4033,10 +4039,6 @@ msgstr ""
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "krotka/lista ma złą długość"
@ -4171,10 +4173,6 @@ msgstr "wartość musi mieścić się w %d bajtach"
msgid "value_count must be > 0"
msgstr "value_count musi być > 0"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr ""
@ -4261,6 +4259,19 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "buffer must be a bytes-like object"
#~ msgstr "bufor mysi być typu bytes"
#~ msgid "Attempted heap allocation when MicroPython VM not running."
#~ msgstr "Próba przydziału sterty, gdy MicroPython VM nie działa."
#~ msgid "MicroPython NLR jump failed. Likely memory corruption."
#~ msgstr ""
#~ "Skok MicroRython NLR nie powiódł się. Prawdopodobne uszkodzenie pamięci."
#~ msgid "MicroPython fatal error."
#~ msgstr "Błąd krytyczny MicroPython."
#~ msgid "vectors must have same lengths"
#~ msgstr "wektory muszą mieć identyczną długość"

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-04-07 12:23+0000\n"
"PO-Revision-Date: 2021-04-19 21:50+0000\n"
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
"Language-Team: \n"
"Language: pt_BR\n"
@ -14,7 +14,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.6-dev\n"
"X-Generator: Weblate 4.7-dev\n"
#: main.c
msgid ""
@ -451,10 +451,9 @@ msgid "Attempt to allocate %d blocks"
msgstr "Tentativa de alocar %d blocos"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgid "Attempted heap allocation when VM not running."
msgstr ""
"A tentativa da área de alocação dinâmica de variáveis (heap) quando o "
"MicroPython VM não está em execução."
"Tentativa de alocação das pilhas quando o VM não estiver em funcionamento."
#: shared-bindings/wifi/Radio.c
msgid "Authentication failure"
@ -908,6 +907,11 @@ msgstr "Houve uma falha na alocação da memória ESP-IDF"
msgid "EXTINT channel already in use"
msgstr "Canal EXTINT em uso"
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr "Houve um erro no fluxo MIDI na posição %d"
#: extmod/modure.c
msgid "Error in regex"
msgstr "Erro no regex"
@ -1037,6 +1041,10 @@ msgstr "Houve uma falha ao liberar o mutex, err 0x%04x"
msgid "Failed to write internal flash."
msgstr "Falha ao gravar o flash interno."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr "Erro fatal."
#: py/moduerrno.c
msgid "File exists"
msgstr "Arquivo já existe"
@ -1110,10 +1118,6 @@ msgstr "Periférico I2C em uso"
msgid "I2SOut not available"
msgstr "O I2SOut não está disponível"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr "IOs 0, 2 e 4 não suportam pullup interno em repouso (sleep)"
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1245,6 +1249,10 @@ msgstr "BSSID Inválido"
msgid "Invalid DAC pin supplied"
msgstr "O pino DAC informado é inválido"
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr "O arquivo MIDI é inválido"
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1436,14 +1444,6 @@ msgstr "O valor máximo de x quando espelhado é %d"
msgid "Messages limited to 8 bytes"
msgstr "As mensagens estão limitadas a 8 bytes"
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr "O salto do MicroPython NLR falhou. Possível corrupção de memória."
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr "Houve um erro fatal do MicroPython."
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr "O atraso na inicialização do microfone deve estar entre 0,0 e 1,0"
@ -1495,6 +1495,10 @@ msgstr "Deve informar os pinos MISO ou MOSI"
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr "Deve utilizar um múltiplo de 6 pinos rgb, não %d"
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr "O salto NLR falhou. Possível corrupção da memória."
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr "Erro NVS"
@ -1641,6 +1645,7 @@ msgstr "O firmware do sistema nórdico está sem memória"
msgid "Not a valid IP string"
msgstr "Não é uma sequência válida de IP"
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -2579,10 +2584,6 @@ msgstr "ramo fora do alcance"
msgid "buffer is smaller than requested size"
msgstr "o tamanho do buffer é menor do que o tamanho que foi solicitado"
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "o buffer deve ser um objeto como bytes"
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr "o tamanho do buffer deve ser um múltiplo do tamanho do elemento"
@ -3033,7 +3034,7 @@ msgid "f-string: single '}' is not allowed"
msgstr "f-string: um único '}' não é permitido"
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr "o arquivo deve ser um arquivo aberto no modo byte"
@ -3290,6 +3291,10 @@ msgstr "bits_per_pixel %d é inválido, deve ser, 1, 4, 8, 16, 24, ou 32"
msgid "invalid cert"
msgstr "certificado inválido"
#: py/compile.c
msgid "invalid decorator"
msgstr "decorador inválido"
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr "Índice de dupterm inválido"
@ -3345,10 +3350,6 @@ msgstr "sintaxe inválida para o número inteiro com base %d"
msgid "invalid syntax for number"
msgstr "sintaxe inválida para o número"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr "O io deve ser rtc io"
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() arg 1 deve ser uma classe"
@ -3818,6 +3819,7 @@ msgstr "o pow() com 3 argumentos requer números inteiros"
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3843,6 +3845,10 @@ msgstr "pressionando o botão de boot na inicialização.\n"
msgid "pressing both buttons at start up.\n"
msgstr "pressionando ambos os botões durante a inicialização.\n"
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr "pressionando o botão esquerdo durante a inicialização\n"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr "puxe as máscaras em conflito com as máscaras de direção"
@ -4118,10 +4124,6 @@ msgstr "Trapz está definido para arrays 1D"
msgid "trapz is defined for 1D arrays of equal length"
msgstr "o trapz está definido para 1D arrays de igual tamanho"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr "nível do gatilho deve ser 0 ou 1"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "a tupla/lista está com tamanho incorreto"
@ -4256,10 +4258,6 @@ msgstr "o valor deve caber em %d byte(s)"
msgid "value_count must be > 0"
msgstr "o value_count deve ser > 0"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr "conflito de wakeup"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr "o watchdog não foi inicializado"
@ -4346,6 +4344,32 @@ 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 "IOs 0, 2 & 4 do not support internal pullup in sleep"
#~ msgstr "IOs 0, 2 e 4 não suportam pullup interno em repouso (sleep)"
#~ msgid "buffer must be a bytes-like object"
#~ msgstr "o buffer deve ser um objeto como bytes"
#~ msgid "io must be rtc io"
#~ msgstr "O io deve ser rtc io"
#~ msgid "trigger level must be 0 or 1"
#~ msgstr "nível do gatilho deve ser 0 ou 1"
#~ msgid "wakeup conflict"
#~ msgstr "conflito de wakeup"
#~ msgid "Attempted heap allocation when MicroPython VM not running."
#~ msgstr ""
#~ "A tentativa da área de alocação dinâmica de variáveis (heap) quando o "
#~ "MicroPython VM não está em execução."
#~ msgid "MicroPython NLR jump failed. Likely memory corruption."
#~ msgstr "O salto do MicroPython NLR falhou. Possível corrupção de memória."
#~ msgid "MicroPython fatal error."
#~ msgstr "Houve um erro fatal do MicroPython."
#~ msgid "argument must be ndarray"
#~ msgstr "o argumento deve ser ndarray"

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-04-06 14:41+0000\n"
"PO-Revision-Date: 2021-04-19 21:50+0000\n"
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: sv\n"
@ -14,7 +14,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.6-dev\n"
"X-Generator: Weblate 4.7-dev\n"
#: main.c
msgid ""
@ -446,8 +446,8 @@ msgid "Attempt to allocate %d blocks"
msgstr "Försök att tilldela %d block"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgstr "Försökte tilldela heap när MicroPython VM inte körs."
msgid "Attempted heap allocation when VM not running."
msgstr "Försök till heap-allokering när den virtuella maskinen inte är igång."
#: shared-bindings/wifi/Radio.c
msgid "Authentication failure"
@ -896,6 +896,11 @@ msgstr "ESP-IDF-minnetilldelning misslyckades"
msgid "EXTINT channel already in use"
msgstr "EXTINT-kanalen används redan"
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr "Fel i MIDI-ström vid position %d"
#: extmod/modure.c
msgid "Error in regex"
msgstr "Fel i regex"
@ -1025,6 +1030,10 @@ msgstr "Det gick inte att frigöra mutex, fel 0x%04x"
msgid "Failed to write internal flash."
msgstr "Det gick inte att skriva till intern flash."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr "Fatalt fel."
#: py/moduerrno.c
msgid "File exists"
msgstr "Filen finns redan"
@ -1097,10 +1106,6 @@ msgstr "I2C-enhet används redan"
msgid "I2SOut not available"
msgstr "I2SOut är inte tillgängligt"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr "IO 0, 2 & 4 stöder inte intern pullup för sovläge"
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1228,6 +1233,10 @@ msgstr "Ogiltig BSSID"
msgid "Invalid DAC pin supplied"
msgstr "Ogiltig DAC-pinne angiven"
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr "Ogiltig MIDI-fil"
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1419,14 +1428,6 @@ msgstr "Maximum x-värde vid spegling är %d"
msgid "Messages limited to 8 bytes"
msgstr "Meddelanden begränsad till 8 byte"
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr "MicroPython NLR jump misslyckades. Troligen korrupt minne."
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr "MicroPython fatalt fel."
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr ""
@ -1479,6 +1480,10 @@ msgstr "Måste ange MISO- eller MOSI-pinne"
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr "Måste använda ett multipel av 6 rgb-pinnar, inte %d"
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr "NLR jump misslyckades. Troligen korrupt minne."
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr "NVS-fel"
@ -1623,6 +1628,7 @@ msgstr "Nordic systemfirmware fick slut på minne"
msgid "Not a valid IP string"
msgstr "Inte en giltig IP-sträng"
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -2547,10 +2553,6 @@ msgstr "branch utanför räckvidd"
msgid "buffer is smaller than requested size"
msgstr "bufferten är mindre än begärd storlek"
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "buffer måste vara en byte-liknande objekt"
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr "buffertstorlek måste vara en multipel av elementstorlek"
@ -2997,7 +2999,7 @@ msgid "f-string: single '}' is not allowed"
msgstr "f-string: singel '}' är inte tillåten"
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr "filen måste vara en fil som öppnats i byte-läge"
@ -3253,6 +3255,10 @@ msgstr "ogiltig bits_per_pixel %d, måste vara 1, 4, 8, 16, 24 eller 32"
msgid "invalid cert"
msgstr "ogiltigt certifikat"
#: py/compile.c
msgid "invalid decorator"
msgstr "ogiltig dekorator"
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr "ogiltigt dupterm index"
@ -3308,10 +3314,6 @@ msgstr "ogiltig syntax för heltal med bas %d"
msgid "invalid syntax for number"
msgstr "ogiltig syntax för tal"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr "io måste vara rtc io"
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() arg 1 måste vara en klass"
@ -3775,6 +3777,7 @@ msgstr "pow() med 3 argument kräver heltal"
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3800,6 +3803,10 @@ msgstr "trycka på startknappen vid start.\n"
msgid "pressing both buttons at start up.\n"
msgstr "trycka båda knapparna vid uppstart.\n"
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr "håll ner vänster knapp vid start\n"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr "pull-mask är i konflikt med riktnings-mask"
@ -4075,10 +4082,6 @@ msgstr "trapz är definierat för 1D-matriser"
msgid "trapz is defined for 1D arrays of equal length"
msgstr "trapz är definierad för 1D-matriser med samma längd"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr "triggernivå måste vara 0 eller 1"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "tupel/lista har fel längd"
@ -4213,10 +4216,6 @@ msgstr "värdet måste passa i %d byte(s)"
msgid "value_count must be > 0"
msgstr "value_count måste vara > 0"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr "wakeup-konflikt"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr "watchdog är inte initierad"
@ -4303,6 +4302,30 @@ 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 "IOs 0, 2 & 4 do not support internal pullup in sleep"
#~ msgstr "IO 0, 2 & 4 stöder inte intern pullup för sovläge"
#~ msgid "buffer must be a bytes-like object"
#~ msgstr "buffer måste vara en byte-liknande objekt"
#~ msgid "io must be rtc io"
#~ msgstr "io måste vara rtc io"
#~ msgid "trigger level must be 0 or 1"
#~ msgstr "triggernivå måste vara 0 eller 1"
#~ msgid "wakeup conflict"
#~ msgstr "wakeup-konflikt"
#~ msgid "Attempted heap allocation when MicroPython VM not running."
#~ msgstr "Försökte tilldela heap när MicroPython VM inte körs."
#~ msgid "MicroPython NLR jump failed. Likely memory corruption."
#~ msgstr "MicroPython NLR jump misslyckades. Troligen korrupt minne."
#~ msgid "MicroPython fatal error."
#~ msgstr "MicroPython fatalt fel."
#~ msgid "argument must be ndarray"
#~ msgstr "argument måste vara ndarray"

View File

@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: circuitpython-cn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-03-29 08:26+0000\n"
"PO-Revision-Date: 2021-04-19 19:15+0000\n"
"Last-Translator: hexthat <hexthat@gmail.com>\n"
"Language-Team: Chinese Hanyu Pinyin\n"
"Language: zh_Latn_pinyin\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.6-dev\n"
"X-Generator: Weblate 4.7-dev\n"
#: main.c
msgid ""
@ -423,7 +423,7 @@ msgstr "Wèi zhīchí zhǐdìng de yǐn jiǎo AnalogOut"
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr ""
msgstr "lìng yí gè PWMAudioOut yǐ jīng chǔ yú huó dòng zhuàng tài"
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
@ -448,8 +448,8 @@ msgid "Attempt to allocate %d blocks"
msgstr "cháng shì fēn pèi %d kuài"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgstr "MicroPython VM zài wèi yùnxíng shí chángshì fēnpèi duī."
msgid "Attempted heap allocation when VM not running."
msgstr "dāng VM bú yùn xíng shí, cháng shì duī fēn pèi."
#: shared-bindings/wifi/Radio.c
msgid "Authentication failure"
@ -895,6 +895,11 @@ msgstr "ESP-IDF nèicún fēnpèi shībài"
msgid "EXTINT channel already in use"
msgstr "EXTINT píndào yǐjīng shǐyòng"
#: shared-module/synthio/MidiTrack.c
#, c-format
msgid "Error in MIDI stream at position %d"
msgstr "wèi yú %d wèi zhì de MIDI liú zhōng de cuò wù"
#: extmod/modure.c
msgid "Error in regex"
msgstr "Zhèngzé biǎodá shì cuòwù"
@ -997,7 +1002,7 @@ msgstr "Wúfǎ fēnpèi wifi sǎomiáo nèicún"
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Failed to buffer the sample"
msgstr ""
msgstr "wèi néng huǎn chōng yàng běn"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to connect: internal error"
@ -1024,6 +1029,10 @@ msgstr "Wúfǎ shìfàng mutex, err 0x%04x"
msgid "Failed to write internal flash."
msgstr "Wúfǎ xiě rù nèibù shǎncún."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr "zhì mìng cuò wù."
#: py/moduerrno.c
msgid "File exists"
msgstr "Wénjiàn cúnzài"
@ -1096,10 +1105,6 @@ msgstr "I2C wài shè zhèng zài shǐ yòng zhōng"
msgid "I2SOut not available"
msgstr "I2SOut bù kě yòng"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr "IOS 0, 2 + 4 bù zhī chí shuì mián zhōng de nèi bù shàng lā"
#: shared-bindings/aesio/aes.c
#, c-format
msgid "IV must be %d bytes long"
@ -1230,6 +1235,10 @@ msgstr "Wúxiào de BSSID"
msgid "Invalid DAC pin supplied"
msgstr "Tí gōng liǎo wúxiào de DAC yǐn jiǎo"
#: shared-bindings/synthio/__init__.c
msgid "Invalid MIDI file"
msgstr "wú xiào de MIDI wén jiàn"
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c
@ -1421,14 +1430,6 @@ msgstr "Jìngxiàng shí de zuìdà X zhí wèi%d"
msgid "Messages limited to 8 bytes"
msgstr "Yóujiàn xiànzhì wèi 8 gè zì jié"
#: supervisor/shared/safe_mode.c
msgid "MicroPython NLR jump failed. Likely memory corruption."
msgstr "MicroPython NLR tiào zhuǎn shībài. Kěnéng shì nèicún sǔnhuài."
#: supervisor/shared/safe_mode.c
msgid "MicroPython fatal error."
msgstr "MicroPython zhìmìng cuòwù."
#: shared-bindings/audiobusio/PDMIn.c
msgid "Microphone startup delay must be in range 0.0 to 1.0"
msgstr "Màikèfēng qǐdòng yánchí bìxū zài 0.0 Dào 1.0 De fànwéi nèi"
@ -1481,6 +1482,10 @@ msgstr "Bìxū tígōng MISO huò MOSI yǐn jiǎo"
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr "bì xū shǐ yòng 6 RGB yǐn jiǎo de bèi shù, ér bù shì %d"
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
msgstr "NLR tiào zhuǎn shī bài. kě néng shì nèi cún sǔn huài."
#: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr "NVS cuò wù"
@ -1615,16 +1620,17 @@ msgstr "Méiyǒu jìshí qì"
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr ""
msgstr "běi ōu xì tǒng gù jiàn gù zhàng duàn yán."
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr ""
msgstr "běi ōu xì tǒng gù jiàn chū nèi cún"
#: shared-bindings/ipaddress/IPv4Address.c shared-bindings/ipaddress/__init__.c
msgid "Not a valid IP string"
msgstr "Wúxiào de IP zìfú chuàn"
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
#: ports/nrf/common-hal/_bleio/__init__.c
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "Not connected"
@ -2288,7 +2294,7 @@ msgstr "Wèizhī de ānquán cuòwù: 0x%04x"
#: ports/nrf/common-hal/_bleio/__init__.c
#, c-format
msgid "Unknown system firmware error: %04x"
msgstr ""
msgstr "wèi zhī xì tǒng gù jiàn cuò wù: %04x"
#: shared-bindings/_pixelbuf/PixelBuf.c
#, c-format
@ -2545,10 +2551,6 @@ msgstr "fēnzhī bùzài fànwéi nèi"
msgid "buffer is smaller than requested size"
msgstr "huǎn chōng qū xiǎo yú qǐng qiú de dà xiǎo"
#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "huǎnchōng qū bìxū shì zì jié lèi duìxiàng"
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/utils/utils.c
msgid "buffer size must be a multiple of element size"
msgstr "huǎn chōng qū dà xiǎo bì xū shì yuán sù dà xiǎo de bèi shù"
@ -2996,7 +2998,7 @@ msgid "f-string: single '}' is not allowed"
msgstr "f-string: bù yǔnxǔ shǐyòng dāngè '}'"
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
#: shared-bindings/displayio/OnDiskBitmap.c
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
msgid "file must be a file opened in byte mode"
msgstr "wénjiàn bìxū shì zài zì jié móshì xià dǎkāi de wénjiàn"
@ -3252,6 +3254,10 @@ msgstr "wú xiào bits_per_pixel %d bì xū shì, 1, 4, 8, 16, 24, huò 32"
msgid "invalid cert"
msgstr "zhèngshū wúxiào"
#: py/compile.c
msgid "invalid decorator"
msgstr "wú xiào zhuāng shì"
#: extmod/uos_dupterm.c
msgid "invalid dupterm index"
msgstr "dupterm suǒyǐn wúxiào"
@ -3307,10 +3313,6 @@ msgstr "jīshù wèi %d de zhěng shǔ de yǔfǎ wúxiào"
msgid "invalid syntax for number"
msgstr "wúxiào de hàomǎ yǔfǎ"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io"
msgstr "IO bì xū shì RTC IO"
#: py/objtype.c
msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() cānshù 1 bìxū shì yīgè lèi"
@ -3682,11 +3684,11 @@ msgstr "ord() yùqí zìfú, dàn chángdù zìfú chuàn %d"
#: extmod/ulab/code/utils/utils.c
msgid "out array is too small"
msgstr ""
msgstr "chū zhèn liè tài xiǎo"
#: extmod/ulab/code/utils/utils.c
msgid "out must be a float dense array"
msgstr ""
msgstr "chū bì xū shì yí gè fú dòng mì jí zhèn liè"
#: shared-bindings/displayio/Bitmap.c
msgid "out of range of source"
@ -3771,6 +3773,7 @@ msgstr "pow() yǒu 3 cānshù xūyào zhěngshù"
#: ports/esp32s2/boards/adafruit_funhouse/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/artisense_rd00/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@ -3796,6 +3799,10 @@ msgstr "Zài qǐdòng shí àn qǐdòng ànniǔ.\n"
msgid "pressing both buttons at start up.\n"
msgstr "zài qǐdòng shí tóngshí àn xià liǎng gè ànniǔ.\n"
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "pressing the left button at start up\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "pull masks conflict with direction masks"
msgstr "lā kǒu zhào yǔ fāng xiàng miàn mó chōng tū"
@ -4071,10 +4078,6 @@ msgstr "wéi 1D shù zǔ dìng yì xiàn jǐng"
msgid "trapz is defined for 1D arrays of equal length"
msgstr "Trapz shì wèi děng zhǎng de 1D shùzǔ dìngyì de"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1"
msgstr "chù fā jí bié bì xū wéi 0 huò 1"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "yuán zǔ/lièbiǎo chángdù cuòwù"
@ -4209,10 +4212,6 @@ msgstr "Zhí bìxū fúhé %d zì jié"
msgid "value_count must be > 0"
msgstr "zhí jìshù bìxū wèi > 0"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict"
msgstr "huàn xǐng chōng tū"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized"
msgstr "wèi chū shǐ huà jiān shì qì"
@ -4299,6 +4298,30 @@ msgstr "zi bìxū wèi fú diǎn xíng"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
#~ msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
#~ msgstr "IOS 0, 2 + 4 bù zhī chí shuì mián zhōng de nèi bù shàng lā"
#~ msgid "buffer must be a bytes-like object"
#~ msgstr "huǎnchōng qū bìxū shì zì jié lèi duìxiàng"
#~ msgid "io must be rtc io"
#~ msgstr "IO bì xū shì RTC IO"
#~ msgid "trigger level must be 0 or 1"
#~ msgstr "chù fā jí bié bì xū wéi 0 huò 1"
#~ msgid "wakeup conflict"
#~ msgstr "huàn xǐng chōng tū"
#~ msgid "Attempted heap allocation when MicroPython VM not running."
#~ msgstr "MicroPython VM zài wèi yùnxíng shí chángshì fēnpèi duī."
#~ msgid "MicroPython NLR jump failed. Likely memory corruption."
#~ msgstr "MicroPython NLR tiào zhuǎn shībài. Kěnéng shì nèicún sǔnhuài."
#~ msgid "MicroPython fatal error."
#~ msgstr "MicroPython zhìmìng cuòwù."
#~ msgid "argument must be ndarray"
#~ msgstr "Cānshù bìxū shì ndarray"

View File

@ -0,0 +1,58 @@
#define MICROPY_HW_BOARD_NAME "Adafruit NeoKey Trinkey M0"
#define MICROPY_HW_MCU_NAME "samd21e18"
#define MICROPY_HW_NEOPIXEL (&pin_PA15)
#define MICROPY_PORT_A (0)
#define MICROPY_PORT_B (0)
#define MICROPY_PORT_C (0)
#define IGNORE_PIN_PA00 1
#define IGNORE_PIN_PA01 1
#define IGNORE_PIN_PA02 1
#define IGNORE_PIN_PA03 1
#define IGNORE_PIN_PA04 1
#define IGNORE_PIN_PA05 1
#define IGNORE_PIN_PA06 1
#define IGNORE_PIN_PA08 1
#define IGNORE_PIN_PA09 1
#define IGNORE_PIN_PA10 1
#define IGNORE_PIN_PA11 1
#define IGNORE_PIN_PA12 1
#define IGNORE_PIN_PA13 1
#define IGNORE_PIN_PA14 1
#define IGNORE_PIN_PA16 1
#define IGNORE_PIN_PA17 1
#define IGNORE_PIN_PA18 1
#define IGNORE_PIN_PA19 1
#define IGNORE_PIN_PA20 1
#define IGNORE_PIN_PA21 1
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1
#define IGNORE_PIN_PA27 1
#define IGNORE_PIN_PA29 1
#define IGNORE_PIN_PA30 1
#define IGNORE_PIN_PA31 1
#define IGNORE_PIN_PB00 1
#define IGNORE_PIN_PB01 1
#define IGNORE_PIN_PB02 1
#define IGNORE_PIN_PB03 1
#define IGNORE_PIN_PB04 1
#define IGNORE_PIN_PB05 1
#define IGNORE_PIN_PB06 1
#define IGNORE_PIN_PB07 1
#define IGNORE_PIN_PB08 1
#define IGNORE_PIN_PB09 1
#define IGNORE_PIN_PB10 1
#define IGNORE_PIN_PB11 1
#define IGNORE_PIN_PB12 1
#define IGNORE_PIN_PB13 1
#define IGNORE_PIN_PB14 1
#define IGNORE_PIN_PB15 1
#define IGNORE_PIN_PB16 1
#define IGNORE_PIN_PB17 1
#define IGNORE_PIN_PB22 1
#define IGNORE_PIN_PB23 1
#define IGNORE_PIN_PB30 1
#define IGNORE_PIN_PB31 1

View File

@ -0,0 +1,34 @@
USB_VID = 0x239A
USB_PID = 0x8100
USB_PRODUCT = "NeoKey Trinkey M0"
USB_MANUFACTURER = "Adafruit Industries LLC"
CHIP_VARIANT = SAMD21E18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_ANALOGIO = 0
CIRCUITPY_ROTARYIO = 0
CIRCUITPY_RTC = 0
CIRCUITPY_SAMD = 0
CIRCUITPY_PS2IO = 0
CIRCUITPY_PULSEIO = 0
CIRCUITPY_PWMIO = 0
CIRCUITPY_AUDIOCORE = 0
CIRCUITPY_BUSIO = 0
CIRCUITPY_STORAGE = 1
CIRCUITPY_MATH = 1
CIRCUITPY_PIXELBUF = 1
CIRCUITPY_USB_MIDI = 1
CIRCUITPY_TOUCHIO = 1
CIRCUITPY_FULL_BUILD = 0
SUPEROPT_GC = 0
SUPEROPT_VM = 0
# Include these Python libraries in firmware.
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_HID

View File

@ -0,0 +1,8 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_TOUCH), MP_ROM_PTR(&pin_PA07) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA15) },
{ MP_ROM_QSTR(MP_QSTR_SWITCH), MP_ROM_PTR(&pin_PA28) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -0,0 +1,40 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "supervisor/board.h"
#include "common-hal/microcontroller/Pin.h"
#include "supervisor/shared/board.h"
#include "hal/include/hal_gpio.h"
void board_init(void) {
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}

View File

@ -0,0 +1,58 @@
#define MICROPY_HW_BOARD_NAME "Adafruit ProxLight Trinkey M0"
#define MICROPY_HW_MCU_NAME "samd21e18"
#define MICROPY_HW_NEOPIXEL (&pin_PA15)
#define MICROPY_PORT_A (0)
#define MICROPY_PORT_B (0)
#define MICROPY_PORT_C (0)
#define IGNORE_PIN_PA01 1
#define IGNORE_PIN_PA02 1
#define IGNORE_PIN_PA04 1
#define IGNORE_PIN_PA05 1
#define IGNORE_PIN_PA06 1
#define IGNORE_PIN_PA08 1
#define IGNORE_PIN_PA09 1
#define IGNORE_PIN_PA10 1
#define IGNORE_PIN_PA11 1
#define IGNORE_PIN_PA12 1
#define IGNORE_PIN_PA13 1
#define IGNORE_PIN_PA14 1
#define IGNORE_PIN_PA18 1
#define IGNORE_PIN_PA19 1
#define IGNORE_PIN_PA20 1
#define IGNORE_PIN_PA21 1
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1
#define IGNORE_PIN_PA27 1
#define IGNORE_PIN_PA28 1
#define IGNORE_PIN_PA29 1
#define IGNORE_PIN_PA30 1
#define IGNORE_PIN_PA31 1
#define IGNORE_PIN_PB00 1
#define IGNORE_PIN_PB01 1
#define IGNORE_PIN_PB02 1
#define IGNORE_PIN_PB03 1
#define IGNORE_PIN_PB04 1
#define IGNORE_PIN_PB05 1
#define IGNORE_PIN_PB06 1
#define IGNORE_PIN_PB07 1
#define IGNORE_PIN_PB08 1
#define IGNORE_PIN_PB09 1
#define IGNORE_PIN_PB10 1
#define IGNORE_PIN_PB11 1
#define IGNORE_PIN_PB12 1
#define IGNORE_PIN_PB13 1
#define IGNORE_PIN_PB14 1
#define IGNORE_PIN_PB15 1
#define IGNORE_PIN_PB16 1
#define IGNORE_PIN_PB17 1
#define IGNORE_PIN_PB22 1
#define IGNORE_PIN_PB23 1
#define IGNORE_PIN_PB30 1
#define IGNORE_PIN_PB31 1
#define DEFAULT_I2C_BUS_SCL (&pin_PA17)
#define DEFAULT_I2C_BUS_SDA (&pin_PA16)

View File

@ -0,0 +1,33 @@
USB_VID = 0x239A
USB_PID = 0x8104
USB_PRODUCT = "ProxLight Trinkey M0"
USB_MANUFACTURER = "Adafruit Industries LLC"
CHIP_VARIANT = SAMD21E18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_ANALOGIO = 0
CIRCUITPY_ROTARYIO = 0
CIRCUITPY_RTC = 0
CIRCUITPY_SAMD = 0
CIRCUITPY_PS2IO = 0
CIRCUITPY_PULSEIO = 0
CIRCUITPY_PWMIO = 0
CIRCUITPY_AUDIOCORE = 0
CIRCUITPY_BUSIO = 1
CIRCUITPY_STORAGE = 1
CIRCUITPY_MATH = 1
CIRCUITPY_PIXELBUF = 0
CIRCUITPY_USB_MIDI = 1
CIRCUITPY_TOUCHIO = 1
CIRCUITPY_FULL_BUILD = 0
SUPEROPT_GC = 0
SUPEROPT_VM = 0
# Include these Python libraries in firmware.
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_HID

View File

@ -0,0 +1,15 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_INTERRUPT), MP_ROM_PTR(&pin_PA00) },
{ MP_ROM_QSTR(MP_QSTR_TOUCH2), MP_ROM_PTR(&pin_PA03) },
{ MP_ROM_QSTR(MP_QSTR_TOUCH1), MP_ROM_PTR(&pin_PA07) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA15) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA16) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA17) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -0,0 +1,40 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "supervisor/board.h"
#include "common-hal/microcontroller/Pin.h"
#include "supervisor/shared/board.h"
#include "hal/include/hal_gpio.h"
void board_init(void) {
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}

View File

@ -18,7 +18,7 @@ CIRCUITPY_PULSEIO = 0
CIRCUITPY_PWMIO = 0
CIRCUITPY_AUDIOCORE = 0
CIRCUITPY_BUSIO = 0
CIRCUITPY_STORAGE = 0
CIRCUITPY_STORAGE = 1
CIRCUITPY_MATH = 0
CIRCUITPY_PIXELBUF = 1

View File

@ -0,0 +1,40 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "supervisor/board.h"
#include "common-hal/microcontroller/Pin.h"
#include "supervisor/shared/board.h"
#include "hal/include/hal_gpio.h"
void board_init(void) {
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}

View File

@ -0,0 +1,58 @@
#define MICROPY_HW_BOARD_NAME "Adafruit Slide Trinkey M0"
#define MICROPY_HW_MCU_NAME "samd21e18"
#define MICROPY_HW_NEOPIXEL (&pin_PA06)
#define MICROPY_PORT_A (0)
#define MICROPY_PORT_B (0)
#define MICROPY_PORT_C (0)
#define IGNORE_PIN_PA00 1
#define IGNORE_PIN_PA01 1
#define IGNORE_PIN_PA02 1
#define IGNORE_PIN_PA03 1
#define IGNORE_PIN_PA04 1
#define IGNORE_PIN_PA05 1
#define IGNORE_PIN_PA08 1
#define IGNORE_PIN_PA09 1
#define IGNORE_PIN_PA10 1
#define IGNORE_PIN_PA11 1
#define IGNORE_PIN_PA12 1
#define IGNORE_PIN_PA13 1
#define IGNORE_PIN_PA14 1
#define IGNORE_PIN_PA15 1
#define IGNORE_PIN_PA16 1
#define IGNORE_PIN_PA17 1
#define IGNORE_PIN_PA18 1
#define IGNORE_PIN_PA19 1
#define IGNORE_PIN_PA20 1
#define IGNORE_PIN_PA21 1
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1
#define IGNORE_PIN_PA27 1
#define IGNORE_PIN_PA29 1
#define IGNORE_PIN_PA30 1
#define IGNORE_PIN_PA31 1
#define IGNORE_PIN_PB00 1
#define IGNORE_PIN_PB01 1
#define IGNORE_PIN_PB02 1
#define IGNORE_PIN_PB03 1
#define IGNORE_PIN_PB04 1
#define IGNORE_PIN_PB05 1
#define IGNORE_PIN_PB06 1
#define IGNORE_PIN_PB07 1
#define IGNORE_PIN_PB08 1
#define IGNORE_PIN_PB09 1
#define IGNORE_PIN_PB10 1
#define IGNORE_PIN_PB11 1
#define IGNORE_PIN_PB12 1
#define IGNORE_PIN_PB13 1
#define IGNORE_PIN_PB14 1
#define IGNORE_PIN_PB15 1
#define IGNORE_PIN_PB16 1
#define IGNORE_PIN_PB17 1
#define IGNORE_PIN_PB22 1
#define IGNORE_PIN_PB23 1
#define IGNORE_PIN_PB30 1
#define IGNORE_PIN_PB31 1

View File

@ -0,0 +1,35 @@
USB_VID = 0x239A
USB_PID = 0x8102
USB_PRODUCT = "Slide Trinkey M0"
USB_MANUFACTURER = "Adafruit Industries LLC"
CHIP_VARIANT = SAMD21E18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_ANALOGIO = 1
CIRCUITPY_ROTARYIO = 0
CIRCUITPY_RTC = 0
CIRCUITPY_SAMD = 0
CIRCUITPY_PS2IO = 0
CIRCUITPY_PULSEIO = 0
CIRCUITPY_PWMIO = 0
CIRCUITPY_AUDIOCORE = 0
CIRCUITPY_BUSIO = 0
CIRCUITPY_STORAGE = 1
CIRCUITPY_MATH = 1
CIRCUITPY_PIXELBUF = 1
CIRCUITPY_USB_MIDI = 1
CIRCUITPY_TOUCHIO = 1
CIRCUITPY_FULL_BUILD = 0
SUPEROPT_GC = 0
SUPEROPT_VM = 0
# Include these Python libraries in firmware.
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_SimpleMath
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_HID

View File

@ -0,0 +1,8 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
//{ MP_ROM_QSTR(MP_QSTR_TOUCH), MP_ROM_PTR(&pin_PA07) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_POTENTIOMETER), MP_ROM_PTR(&pin_PA07) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -8,8 +8,8 @@
#define MICROPY_PORT_B (0)
#define MICROPY_PORT_C (0)
#define DEFAULT_I2C_BUS_SCL (&pin_PA22)
#define DEFAULT_I2C_BUS_SDA (&pin_PA23)
#define DEFAULT_I2C_BUS_SDA (&pin_PA22)
#define DEFAULT_I2C_BUS_SCL (&pin_PA23)
#define DEFAULT_SPI_BUS_SCK (&pin_PB11)
#define DEFAULT_SPI_BUS_MOSI (&pin_PB10)

View File

@ -18,7 +18,7 @@ CIRCUITPY_PULSEIO = 0
CIRCUITPY_PWMIO = 0
CIRCUITPY_AUDIOCORE = 0
CIRCUITPY_BUSIO = 0
CIRCUITPY_STORAGE = 0
CIRCUITPY_STORAGE = 1
CIRCUITPY_MATH = 1
CIRCUITPY_PIXELBUF = 1

View File

@ -0,0 +1,39 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "supervisor/board.h"
#include "mpconfigboard.h"
#include "hal/include/hal_gpio.h"
void board_init(void) {
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}

View File

@ -0,0 +1,24 @@
#define MICROPY_HW_BOARD_NAME "senseBox MCU"
#define MICROPY_HW_MCU_NAME "senseBox"
#define MICROPY_HW_LED_STATUS (&pin_PA27)
#define MICROPY_PORT_A (0)
#define MICROPY_PORT_B (0)
#define MICROPY_PORT_C (0)
#define DEFAULT_I2C_BUS_SCL (&pin_PA09)
#define DEFAULT_I2C_BUS_SDA (&pin_PA08)
#define DEFAULT_SPI_BUS_SCK (&pin_PA17)
#define DEFAULT_SPI_BUS_MOSI (&pin_PA16)
#define DEFAULT_SPI_BUS_MISO (&pin_PA19)
#define DEFAULT_UART_BUS_RX (&pin_PA23)
#define DEFAULT_UART_BUS_TX (&pin_PA22)
#define SAMD21_BOD33_LEVEL (6)
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1

View File

@ -0,0 +1,14 @@
USB_VID = 0x04D8
USB_PID = 0xEF67
USB_PRODUCT = "senseBox MCU"
USB_MANUFACTURER = "senseBox"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
CIRCUITPY_FULL_BUILD = 0
SUPEROPT_GC = 0
SUPEROPT_VM = 0

View File

@ -0,0 +1,71 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
// Analog pins
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA04) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA05) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA07) },
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA03) },
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PA02) },
// Digital pins
// { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA20) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA04) },
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA05) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA07) },
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA03) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA02) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PA27) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA28) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PB02) },
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA22) },
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA23) },
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PB08) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PB09) },
// UART pins
{ MP_ROM_QSTR(MP_QSTR_UART_PWR), MP_ROM_PTR(&pin_PB02) },
{ MP_ROM_QSTR(MP_QSTR_TX1), MP_ROM_PTR(&pin_PA22) },
{ MP_ROM_QSTR(MP_QSTR_RX1), MP_ROM_PTR(&pin_PA23) },
{ MP_ROM_QSTR(MP_QSTR_TX2), MP_ROM_PTR(&pin_PB08) },
{ MP_ROM_QSTR(MP_QSTR_RX2), MP_ROM_PTR(&pin_PB09) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA22) }, // alias of TX1
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA23) }, // alias of RX1
// SPI pins
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA16) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA17) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA19) },
// I2C pins
{ MP_ROM_QSTR(MP_QSTR_I2C_PWR), MP_ROM_PTR(&pin_PB11) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA09) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA08) },
// LED pins
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA27) },
{ MP_ROM_QSTR(MP_QSTR_RED_LED), MP_ROM_PTR(&pin_PA27) },
{ MP_ROM_QSTR(MP_QSTR_GREEN_LED), MP_ROM_PTR(&pin_PA28) },
// XBEE pins
{ MP_ROM_QSTR(MP_QSTR_XB1_PWR), MP_ROM_PTR(&pin_PB03) },
{ MP_ROM_QSTR(MP_QSTR_XB2_PWR), MP_ROM_PTR(&pin_PB10) },
{ MP_ROM_QSTR(MP_QSTR_XB1_CS), MP_ROM_PTR(&pin_PA18) },
{ MP_ROM_QSTR(MP_QSTR_XB2_CS), MP_ROM_PTR(&pin_PA14) },
{ MP_ROM_QSTR(MP_QSTR_XB1_INT), MP_ROM_PTR(&pin_PA21) },
{ MP_ROM_QSTR(MP_QSTR_XB2_INT), MP_ROM_PTR(&pin_PA15) },
{ MP_ROM_QSTR(MP_QSTR_XB1_RX), MP_ROM_PTR(&pin_PA23) },
{ MP_ROM_QSTR(MP_QSTR_XB1_TX), MP_ROM_PTR(&pin_PA22) },
{ MP_ROM_QSTR(MP_QSTR_XB2_RX), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_XB2_TX), MP_ROM_PTR(&pin_PA10) },
// Comm objects
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -41,6 +41,7 @@ CIRCUITPY_BUILTINS_POW3 ?= 0
CIRCUITPY_COMPUTED_GOTO_SAVE_SPACE ?= 1
CIRCUITPY_FREQUENCYIO ?= 0
CIRCUITPY_JSON ?= 0
CIRCUITPY_SYNTHIO ?= 0
CIRCUITPY_TOUCHIO_USE_NATIVE ?= 1
# No room for HCI _bleio on SAMD21.
@ -87,3 +88,22 @@ CIRCUITPY_FRAMEBUFFERIO ?= $(CIRCUITPY_FULL_BUILD)
endif # samd51
######################################################################
######################################################################
# Put same51-only choices here.
ifeq ($(CHIP_FAMILY),same51)
# No native touchio on SAMD51.
CIRCUITPY_TOUCHIO_USE_NATIVE = 0
# The ?='s allow overriding in mpconfigboard.mk.
CIRCUITPY_NETWORK ?= 0
CIRCUITPY_PS2IO ?= 1
CIRCUITPY_SAMD ?= 1
CIRCUITPY_RGBMATRIX ?= $(CIRCUITPY_FULL_BUILD)
CIRCUITPY_FRAMEBUFFERIO ?= $(CIRCUITPY_FULL_BUILD)
endif # same51
######################################################################

View File

@ -0,0 +1,61 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "supervisor/board.h"
#include "mpconfigboard.h"
#include "shared-bindings/microcontroller/Pin.h"
void board_init(void) {
// USB
common_hal_never_reset_pin(&pin_GPIO19);
common_hal_never_reset_pin(&pin_GPIO20);
// Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
// SPI Flash and RAM
common_hal_never_reset_pin(&pin_GPIO26);
common_hal_never_reset_pin(&pin_GPIO27);
common_hal_never_reset_pin(&pin_GPIO28);
common_hal_never_reset_pin(&pin_GPIO29);
common_hal_never_reset_pin(&pin_GPIO30);
common_hal_never_reset_pin(&pin_GPIO31);
common_hal_never_reset_pin(&pin_GPIO32);
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}
void board_deinit(void) {
}

View 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 "ATMegaZero ESP32-S2"
#define MICROPY_HW_MCU_NAME "ESP32S2"
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO0)
#define BOARD_USER_SAFE_MODE_ACTION translate("pressing boot button at start up.\n")
#define AUTORESET_DELAY_MS 500
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO9)
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO8)
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO36)
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO35)
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO37)
#define DEFAULT_UART_BUS_RX (&pin_GPIO44)
#define DEFAULT_UART_BUS_TX (&pin_GPIO43)
#define MICROPY_HW_NEOPIXEL (&pin_GPIO40)

View File

@ -0,0 +1,15 @@
USB_VID = 0x239A
USB_PID = 0x8009
USB_PRODUCT = "ATMegaZero ESP32-S2"
USB_MANUFACTURER = "ATMegaZero"
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = MPZ
# The default queue depth of 16 overflows on release builds,
# so increase it to 32.
CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE=qio
CIRCUITPY_ESP_FLASH_FREQ=40m
CIRCUITPY_ESP_FLASH_SIZE=16MB

View File

@ -0,0 +1,80 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_IO0), MP_ROM_PTR(&pin_GPIO0) },
{ MP_ROM_QSTR(MP_QSTR_IO1), MP_ROM_PTR(&pin_GPIO1) },
{ MP_ROM_QSTR(MP_QSTR_IO2), MP_ROM_PTR(&pin_GPIO2) },
{ MP_ROM_QSTR(MP_QSTR_IO3), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_IO5), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_IO6), MP_ROM_PTR(&pin_GPIO6) },
{ MP_ROM_QSTR(MP_QSTR_IO7), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_IO8), MP_ROM_PTR(&pin_GPIO8) },
{ MP_ROM_QSTR(MP_QSTR_IO9), MP_ROM_PTR(&pin_GPIO9) },
{ MP_ROM_QSTR(MP_QSTR_IO10), MP_ROM_PTR(&pin_GPIO10) },
{ MP_ROM_QSTR(MP_QSTR_IO11), MP_ROM_PTR(&pin_GPIO11) },
{ MP_ROM_QSTR(MP_QSTR_IO12), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_IO13), MP_ROM_PTR(&pin_GPIO13) },
{ MP_ROM_QSTR(MP_QSTR_IO14), MP_ROM_PTR(&pin_GPIO14) },
{ MP_ROM_QSTR(MP_QSTR_IO17), MP_ROM_PTR(&pin_GPIO17) },
{ MP_ROM_QSTR(MP_QSTR_IO18), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_IO21), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_IO33), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_IO34), MP_ROM_PTR(&pin_GPIO34) },
{ MP_ROM_QSTR(MP_QSTR_IO35), MP_ROM_PTR(&pin_GPIO35) },
{ MP_ROM_QSTR(MP_QSTR_IO36), MP_ROM_PTR(&pin_GPIO36) },
{ MP_ROM_QSTR(MP_QSTR_IO37), MP_ROM_PTR(&pin_GPIO37) },
{ MP_ROM_QSTR(MP_QSTR_IO38), MP_ROM_PTR(&pin_GPIO38) },
{ MP_ROM_QSTR(MP_QSTR_IO40), MP_ROM_PTR(&pin_GPIO40) },
{ MP_ROM_QSTR(MP_QSTR_IO43), MP_ROM_PTR(&pin_GPIO43) },
{ MP_ROM_QSTR(MP_QSTR_IO44), MP_ROM_PTR(&pin_GPIO44) },
{ MP_ROM_QSTR(MP_QSTR_PD5), MP_ROM_PTR(&pin_GPIO0) },
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO1) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO2) },
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_HWD), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO6) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO8) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO9) },
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO10) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO11) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO13) },
{ MP_ROM_QSTR(MP_QSTR_AREF), MP_ROM_PTR(&pin_GPIO14) },
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO17) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO34) },
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO35) },
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_GPIO36) },
{ MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_GPIO37) },
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO38) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO43) },
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO44) },
{ MP_ROM_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_GPIO0) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO8) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO9) },
{ MP_ROM_QSTR(MP_QSTR_DAC1), MP_ROM_PTR(&pin_GPIO17) },
{ MP_ROM_QSTR(MP_QSTR_DAC2), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO35) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO36) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO37) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO40) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO43) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO44) },
{ MP_ROM_QSTR(MP_QSTR_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_global_dict_table);

View File

@ -0,0 +1,39 @@
CONFIG_ESP32S2_SPIRAM_SUPPORT=y
#
# SPI RAM config
#
# CONFIG_SPIRAM_TYPE_AUTO is not set
# CONFIG_SPIRAM_TYPE_ESPPSRAM16 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 ESP32S2
#
CONFIG_DEFAULT_PSRAM_CLK_IO=30
CONFIG_DEFAULT_PSRAM_CS_IO=26
# end of PSRAM clock and cs IO for ESP32S2
# CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set
# CONFIG_SPIRAM_RODATA is not set
# CONFIG_SPIRAM_SPEED_80M is not set
CONFIG_SPIRAM_SPEED_40M=y
# CONFIG_SPIRAM_SPEED_26M is not set
# CONFIG_SPIRAM_SPEED_20M is not set
CONFIG_SPIRAM=y
CONFIG_SPIRAM_BOOT_INIT=y
# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set
CONFIG_SPIRAM_USE_MEMMAP=y
# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set
# CONFIG_SPIRAM_USE_MALLOC is not set
CONFIG_SPIRAM_MEMTEST=y
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
# end of SPI RAM config
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="ATMegaZero-Esp32s2"
# end of LWIP

View File

@ -0,0 +1,40 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2021 Uri Shaked
* Copyright (c) 2021 Benjamin Meisels
*
* 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 "common-hal/microcontroller/Pin.h"
void board_init(void) {
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}

View File

@ -0,0 +1,68 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2021 Uri Shaked
* Copyright (c) 2021 Benjamin Meisels
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "nrfx/hal/nrf_gpio.h"
#define MICROPY_HW_BOARD_NAME "ARAMCON2 Badge"
#define MICROPY_HW_MCU_NAME "nRF52840"
#define MICROPY_HW_LED_STATUS (&pin_P1_11)
// Board does not have a 32kHz crystal. It does have a 32MHz crystal.
#define BOARD_HAS_32KHZ_XTAL (0)
#ifdef QSPI_FLASH_FILESYSTEM
#define MICROPY_QSPI_DATA0 NRF_GPIO_PIN_MAP(0, 22)
#define MICROPY_QSPI_DATA1 NRF_GPIO_PIN_MAP(0, 20)
#define MICROPY_QSPI_DATA2 NRF_GPIO_PIN_MAP(1, 4)
#define MICROPY_QSPI_DATA3 NRF_GPIO_PIN_MAP(1, 6)
#define MICROPY_QSPI_SCK NRF_GPIO_PIN_MAP(1, 0)
#define MICROPY_QSPI_CS NRF_GPIO_PIN_MAP(1, 2)
#endif
#ifdef SPI_FLASH_FILESYSTEM
#define SPI_FLASH_MOSI_PIN &pin_P0_20
#define SPI_FLASH_MISO_PIN &pin_P0_22
#define SPI_FLASH_SCK_PIN &pin_P1_00
#define SPI_FLASH_CS_PIN &pin_P1_02
#endif
#define CIRCUITPY_BOOT_BUTTON (&pin_P0_29)
#define BOARD_USER_SAFE_MODE_ACTION translate("pressing the left button at start up\n")
#define CIRCUITPY_AUTORELOAD_DELAY_MS 500
#define CIRCUITPY_INTERNAL_NVM_SIZE (4096)
#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE)
#define DEFAULT_I2C_BUS_SCL (&pin_P0_28)
#define DEFAULT_I2C_BUS_SDA (&pin_P0_03)
#define DEFAULT_SPI_BUS_SCK (&pin_P0_01)
#define DEFAULT_SPI_BUS_MOSI (&pin_P1_10)
#define DEFAULT_SPI_BUS_MISO (&pin_P1_09)

View File

@ -0,0 +1,11 @@
USB_VID = 0x239A
USB_PID = 0x807C
USB_PRODUCT = "ARAMCON2 Badge"
USB_MANUFACTURER = "ARAMCON Badge Team"
MCU_CHIP = nrf52840
QSPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICES = "W25Q128JVxQ"
CIRCUITPY_DISPLAYIO = 1

View File

@ -0,0 +1,42 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_UP_BUTTON), MP_ROM_PTR(&pin_P0_31) },
{ MP_ROM_QSTR(MP_QSTR_LEFT_BUTTON), MP_ROM_PTR(&pin_P0_29) },
{ MP_ROM_QSTR(MP_QSTR_DOWN_BUTTON), MP_ROM_PTR(&pin_P1_13) },
{ MP_ROM_QSTR(MP_QSTR_RIGHT_BUTTON), MP_ROM_PTR(&pin_P0_02) },
{ MP_ROM_QSTR(MP_QSTR_ACTION_BUTTON), MP_ROM_PTR(&pin_P0_10) },
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_P1_11) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_P0_28) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_P0_03) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_P0_01) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_P1_10) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_P1_09) },
{ MP_ROM_QSTR(MP_QSTR_GPIO1), MP_ROM_PTR(&pin_P0_04) },
{ MP_ROM_QSTR(MP_QSTR_GPIO2), MP_ROM_PTR(&pin_P0_05) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_P0_15) },
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_P0_00) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_P0_13) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_P0_24) },
{ MP_ROM_QSTR(MP_QSTR_DISP_BUSY), MP_ROM_PTR(&pin_P0_26) },
{ MP_ROM_QSTR(MP_QSTR_DISP_CS), MP_ROM_PTR(&pin_P0_07) },
{ MP_ROM_QSTR(MP_QSTR_DISP_DC), MP_ROM_PTR(&pin_P0_12) },
{ MP_ROM_QSTR(MP_QSTR_DISP_RESET), MP_ROM_PTR(&pin_P0_06) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_P0_08) },
{ MP_ROM_QSTR(MP_QSTR_VIBRATION_MOTOR), MP_ROM_PTR(&pin_P0_17) },
{ MP_ROM_QSTR(MP_QSTR_BATTERY_SENSE), MP_ROM_PTR(&pin_P0_30) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

View File

@ -131,6 +131,10 @@ size_t common_hal_bleio_characteristic_get_value(bleio_characteristic_obj_t *sel
return 0;
}
size_t common_hal_bleio_characteristic_get_max_length(bleio_characteristic_obj_t *self) {
return self->max_length;
}
void common_hal_bleio_characteristic_set_value(bleio_characteristic_obj_t *self, mp_buffer_info_t *bufinfo) {
// Do GATT operations only if this characteristic has been added to a registered service.
if (self->handle != BLE_GATT_HANDLE_INVALID) {

View File

@ -42,7 +42,8 @@
STATIC void write_to_ringbuf(bleio_packet_buffer_obj_t *self, uint8_t *data, uint16_t len) {
if (len + sizeof(uint16_t) > ringbuf_capacity(&self->ringbuf)) {
// This shouldn't happen.
// This shouldn't happen but can if our buffer size was much smaller than
// the writes the client actually makes.
return;
}
// Push all the data onto the ring buffer.
@ -189,7 +190,7 @@ STATIC bool packet_buffer_on_ble_server_evt(ble_evt_t *ble_evt, void *param) {
void common_hal_bleio_packet_buffer_construct(
bleio_packet_buffer_obj_t *self, bleio_characteristic_obj_t *characteristic,
size_t buffer_size) {
size_t buffer_size, size_t max_packet_size) {
self->characteristic = characteristic;
self->client = self->characteristic->service->is_remote;
@ -206,8 +207,11 @@ void common_hal_bleio_packet_buffer_construct(
self->conn_handle = BLE_CONN_HANDLE_INVALID;
}
// Cap the packet size to our implementation limits.
self->max_packet_size = MIN(max_packet_size, BLE_GATTS_VAR_ATTR_LEN_MAX - 3);
if (incoming) {
if (!ringbuf_alloc(&self->ringbuf, buffer_size * (sizeof(uint16_t) + characteristic->max_length), false)) {
if (!ringbuf_alloc(&self->ringbuf, buffer_size * (sizeof(uint16_t) + self->max_packet_size), false)) {
mp_raise_ValueError(translate("Buffer too large and unable to allocate"));
}
}
@ -216,8 +220,8 @@ void common_hal_bleio_packet_buffer_construct(
self->packet_queued = false;
self->pending_index = 0;
self->pending_size = 0;
self->outgoing[0] = m_malloc(characteristic->max_length, false);
self->outgoing[1] = m_malloc(characteristic->max_length, false);
self->outgoing[0] = m_malloc(self->max_packet_size, false);
self->outgoing[1] = m_malloc(self->max_packet_size, false);
} else {
self->outgoing[0] = NULL;
self->outgoing[1] = NULL;
@ -296,10 +300,16 @@ mp_int_t common_hal_bleio_packet_buffer_write(bleio_packet_buffer_obj_t *self, u
}
uint16_t outgoing_packet_length = common_hal_bleio_packet_buffer_get_outgoing_packet_length(self);
if (len + header_len > outgoing_packet_length) {
uint16_t total_len = len + header_len;
if (total_len > outgoing_packet_length) {
// Supplied data will not fit in a single BLE packet.
mp_raise_ValueError(translate("Total data to write is larger than outgoing_packet_length"));
mp_raise_ValueError_varg(translate("Total data to write is larger than %q"), MP_QSTR_outgoing_packet_length);
}
if (total_len > self->max_packet_size) {
// Supplied data will not fit in a single BLE packet.
mp_raise_ValueError_varg(translate("Total data to write is larger than %q"), MP_QSTR_max_packet_size);
}
outgoing_packet_length = MIN(outgoing_packet_length, self->max_packet_size);
if (len + self->pending_size > outgoing_packet_length) {
// No room to append len bytes to packet. Wait until we get a free buffer,
@ -390,7 +400,8 @@ mp_int_t common_hal_bleio_packet_buffer_get_outgoing_packet_length(bleio_packet_
if (self->conn_handle != BLE_CONN_HANDLE_INVALID) {
bleio_connection_internal_t *connection = bleio_conn_handle_to_connection(self->conn_handle);
if (connection) {
return MIN(common_hal_bleio_connection_get_max_packet_length(connection),
return MIN(MIN(common_hal_bleio_connection_get_max_packet_length(connection),
self->max_packet_size),
self->characteristic->max_length);
}
}
@ -406,11 +417,12 @@ mp_int_t common_hal_bleio_packet_buffer_get_outgoing_packet_length(bleio_packet_
if (self->conn_handle != BLE_CONN_HANDLE_INVALID) {
bleio_connection_internal_t *connection = bleio_conn_handle_to_connection(self->conn_handle);
if (connection) {
return common_hal_bleio_connection_get_max_packet_length(connection);
return MIN(common_hal_bleio_connection_get_max_packet_length(connection),
self->max_packet_size);
}
}
}
return self->characteristic->max_length;
return MIN(self->characteristic->max_length, self->max_packet_size);
}
bool common_hal_bleio_packet_buffer_deinited(bleio_packet_buffer_obj_t *self) {

View File

@ -44,6 +44,7 @@ typedef struct {
// We remember the conn_handle so we can do a NOTIFY/INDICATE to a client.
// We can find out the conn_handle on a Characteristic write or a CCCD write (but not a read).
volatile uint16_t conn_handle;
uint16_t max_packet_size;
uint8_t pending_index;
uint8_t write_type;
bool client;

View File

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

View File

@ -0,0 +1,10 @@
#define MICROPY_HW_BOARD_NAME "Pimoroni Pico LiPo (16MB)"
#define MICROPY_HW_MCU_NAME "rp2040"
#define MICROPY_HW_VBUS_DETECT (&pin_GPIO24)
#define MICROPY_HW_BAT_SENSE (&pin_GPIO29)
#define MICROPY_HW_USER_SW (&pin_GPIO23)
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO5)
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO4)

View File

@ -0,0 +1,11 @@
USB_VID = 0x2E8A
USB_PID = 0x1003
USB_PRODUCT = "Pimoroni Pico LiPo (16MB)"
USB_MANUFACTURER = "Pimoroni"
CHIP_VARIANT = RP2040
CHIP_FAMILY = rp2
EXTERNAL_FLASH_DEVICES = "W25Q128JVxQ"
CIRCUITPY__EVE = 1

View File

@ -0,0 +1,52 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_GP0), MP_ROM_PTR(&pin_GPIO0) },
{ MP_ROM_QSTR(MP_QSTR_GP1), MP_ROM_PTR(&pin_GPIO1) },
{ MP_ROM_QSTR(MP_QSTR_GP2), MP_ROM_PTR(&pin_GPIO2) },
{ MP_ROM_QSTR(MP_QSTR_GP3), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_GP4), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_GP5), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_GP6), MP_ROM_PTR(&pin_GPIO6) },
{ MP_ROM_QSTR(MP_QSTR_GP7), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_GP8), MP_ROM_PTR(&pin_GPIO8) },
{ MP_ROM_QSTR(MP_QSTR_GP9), MP_ROM_PTR(&pin_GPIO9) },
{ MP_ROM_QSTR(MP_QSTR_GP10), MP_ROM_PTR(&pin_GPIO10) },
{ MP_ROM_QSTR(MP_QSTR_GP11), MP_ROM_PTR(&pin_GPIO11) },
{ MP_ROM_QSTR(MP_QSTR_GP12), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_GP13), MP_ROM_PTR(&pin_GPIO13) },
{ MP_ROM_QSTR(MP_QSTR_GP14), MP_ROM_PTR(&pin_GPIO14) },
{ MP_ROM_QSTR(MP_QSTR_GP15), MP_ROM_PTR(&pin_GPIO15) },
{ MP_ROM_QSTR(MP_QSTR_GP16), MP_ROM_PTR(&pin_GPIO16) },
{ MP_ROM_QSTR(MP_QSTR_GP17), MP_ROM_PTR(&pin_GPIO17) },
{ MP_ROM_QSTR(MP_QSTR_GP18), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_GP19), MP_ROM_PTR(&pin_GPIO19) },
{ MP_ROM_QSTR(MP_QSTR_GP20), MP_ROM_PTR(&pin_GPIO20) },
{ MP_ROM_QSTR(MP_QSTR_GP21), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_GP22), MP_ROM_PTR(&pin_GPIO22) },
{ MP_ROM_QSTR(MP_QSTR_USER_SW), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_VBUS_DETECT), MP_ROM_PTR(&pin_GPIO24) },
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_GP25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_GP26_A0), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_GP26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_GP27_A1), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_GP27), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_GP28_A2), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_GP28), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO29) },
{ MP_ROM_QSTR(MP_QSTR_BAT_SENSE), MP_ROM_PTR(&pin_GPIO29) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

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

View File

@ -0,0 +1,10 @@
#define MICROPY_HW_BOARD_NAME "Pimoroni Pico LiPo (4MB)"
#define MICROPY_HW_MCU_NAME "rp2040"
#define MICROPY_HW_VBUS_DETECT (&pin_GPIO24)
#define MICROPY_HW_BAT_SENSE (&pin_GPIO29)
#define MICROPY_HW_USER_SW (&pin_GPIO23)
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO5)
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO4)

View File

@ -0,0 +1,11 @@
USB_VID = 0x2E8A
USB_PID = 0x1002
USB_PRODUCT = "Pimoroni Pico LiPo (4MB)"
USB_MANUFACTURER = "Pimoroni"
CHIP_VARIANT = RP2040
CHIP_FAMILY = rp2
EXTERNAL_FLASH_DEVICES = "W25Q32JVxQ"
CIRCUITPY__EVE = 1

View File

@ -0,0 +1,52 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_GP0), MP_ROM_PTR(&pin_GPIO0) },
{ MP_ROM_QSTR(MP_QSTR_GP1), MP_ROM_PTR(&pin_GPIO1) },
{ MP_ROM_QSTR(MP_QSTR_GP2), MP_ROM_PTR(&pin_GPIO2) },
{ MP_ROM_QSTR(MP_QSTR_GP3), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_GP4), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_GP5), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_GP6), MP_ROM_PTR(&pin_GPIO6) },
{ MP_ROM_QSTR(MP_QSTR_GP7), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_GP8), MP_ROM_PTR(&pin_GPIO8) },
{ MP_ROM_QSTR(MP_QSTR_GP9), MP_ROM_PTR(&pin_GPIO9) },
{ MP_ROM_QSTR(MP_QSTR_GP10), MP_ROM_PTR(&pin_GPIO10) },
{ MP_ROM_QSTR(MP_QSTR_GP11), MP_ROM_PTR(&pin_GPIO11) },
{ MP_ROM_QSTR(MP_QSTR_GP12), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_GP13), MP_ROM_PTR(&pin_GPIO13) },
{ MP_ROM_QSTR(MP_QSTR_GP14), MP_ROM_PTR(&pin_GPIO14) },
{ MP_ROM_QSTR(MP_QSTR_GP15), MP_ROM_PTR(&pin_GPIO15) },
{ MP_ROM_QSTR(MP_QSTR_GP16), MP_ROM_PTR(&pin_GPIO16) },
{ MP_ROM_QSTR(MP_QSTR_GP17), MP_ROM_PTR(&pin_GPIO17) },
{ MP_ROM_QSTR(MP_QSTR_GP18), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_GP19), MP_ROM_PTR(&pin_GPIO19) },
{ MP_ROM_QSTR(MP_QSTR_GP20), MP_ROM_PTR(&pin_GPIO20) },
{ MP_ROM_QSTR(MP_QSTR_GP21), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_GP22), MP_ROM_PTR(&pin_GPIO22) },
{ MP_ROM_QSTR(MP_QSTR_USER_SW), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_VBUS_DETECT), MP_ROM_PTR(&pin_GPIO24) },
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_GP25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_GP26_A0), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_GP26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_GP27_A1), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_GP27), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_GP28_A2), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_GP28), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO29) },
{ MP_ROM_QSTR(MP_QSTR_BAT_SENSE), MP_ROM_PTR(&pin_GPIO29) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -24,18 +24,28 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_GP20), MP_ROM_PTR(&pin_GPIO20) },
{ MP_ROM_QSTR(MP_QSTR_GP21), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_GP22), MP_ROM_PTR(&pin_GPIO22) },
{ MP_ROM_QSTR(MP_QSTR_SMPS_MODE), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_GP23), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_VBUS_SENSE), MP_ROM_PTR(&pin_GPIO24) },
{ MP_ROM_QSTR(MP_QSTR_GP24), MP_ROM_PTR(&pin_GPIO24) },
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_GP25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_GP26_A0), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_GP26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_GP27_A1), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_GP27), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_GP28_A2), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_GP28), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO29) },
{ MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_GPIO29) },
};

View File

@ -0,0 +1,40 @@
/*
* 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"
#include "shared-bindings/microcontroller/Pin.h"
#include "src/rp2_common/hardware_gpio/include/hardware/gpio.h"
void board_init(void) {
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}

View File

@ -0,0 +1,12 @@
#define MICROPY_HW_BOARD_NAME "SparkFun MicroMod ATP - RP2040"
#define MICROPY_HW_MCU_NAME "rp2040"
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO5)
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO4)
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO14)
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO15)
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO12)
#define DEFAULT_UART_BUS_RX (&pin_GPIO1)
#define DEFAULT_UART_BUS_TX (&pin_GPIO0)

View File

@ -0,0 +1,9 @@
USB_VID = 0x1B4F
USB_PID = 0x0024
USB_PRODUCT = "MicroMod RP2040"
USB_MANUFACTURER = "SparkFun"
CHIP_VARIANT = RP2040
CHIP_FAMILY = rp2
EXTERNAL_FLASH_DEVICES = "W25Q128JVxM"

View File

@ -0,0 +1,105 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
// D (Digital only) pins (D0,D1)
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO7) }, // GPIO6 - D0
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO7) }, // GPIO7 - D1
// A (ADC) pins (A0,A1)
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) }, // GPIO26 - A0 | ADC0
{ MP_ROM_QSTR(MP_QSTR_ADC0), MP_ROM_PTR(&pin_GPIO26) }, // ADC0 alias
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27) }, // GPIO27 - A1 | ADC1
{ MP_ROM_QSTR(MP_QSTR_ADC1), MP_ROM_PTR(&pin_GPIO27) }, // ADC1 alias
// G (General/BUS) pins (G0-G7, G8 NC, G9-G10, G11 NC)
{ MP_ROM_QSTR(MP_QSTR_G0), MP_ROM_PTR(&pin_GPIO16) }, // GPIO16 - G0 | BUS0
{ MP_ROM_QSTR(MP_QSTR_BUS0), MP_ROM_PTR(&pin_GPIO16) }, // BUS0 alias
{ MP_ROM_QSTR(MP_QSTR_G1), MP_ROM_PTR(&pin_GPIO17) }, // GPIO17 - G1 | BUS1
{ MP_ROM_QSTR(MP_QSTR_BUS1), MP_ROM_PTR(&pin_GPIO17) }, // BUS1 alias
{ MP_ROM_QSTR(MP_QSTR_G2), MP_ROM_PTR(&pin_GPIO18) }, // GPIO18 - G2 | BUS2
{ MP_ROM_QSTR(MP_QSTR_BUS2), MP_ROM_PTR(&pin_GPIO18) }, // BUS2 alias
{ MP_ROM_QSTR(MP_QSTR_G3), MP_ROM_PTR(&pin_GPIO19) }, // GPIO19 - G3 | BUS3
{ MP_ROM_QSTR(MP_QSTR_BUS3), MP_ROM_PTR(&pin_GPIO19) }, // BUS3 alias
{ MP_ROM_QSTR(MP_QSTR_G4), MP_ROM_PTR(&pin_GPIO20) }, // GPIO20 - G4 | BUS4 | SPI_CIPO
{ MP_ROM_QSTR(MP_QSTR_BUS4), MP_ROM_PTR(&pin_GPIO20) }, // BUS4 alias
{ MP_ROM_QSTR(MP_QSTR_G5), MP_ROM_PTR(&pin_GPIO21) }, // GPIO21 - G5 | BUS5 | SPI_CS
{ MP_ROM_QSTR(MP_QSTR_BUS5), MP_ROM_PTR(&pin_GPIO21) }, // BUS5 alias
{ MP_ROM_QSTR(MP_QSTR_G6), MP_ROM_PTR(&pin_GPIO22) }, // GPIO22 - G6 | BUS6 | SPI_SCK
{ MP_ROM_QSTR(MP_QSTR_BUS6), MP_ROM_PTR(&pin_GPIO22) }, // BUS6 alias
{ MP_ROM_QSTR(MP_QSTR_G7), MP_ROM_PTR(&pin_GPIO23) }, // GPIO23 - G7 | BUS7 | SPI_COPI
{ MP_ROM_QSTR(MP_QSTR_BUS7), MP_ROM_PTR(&pin_GPIO23) }, // BUS7 alias
// NC - G8
{ MP_ROM_QSTR(MP_QSTR_G9), MP_ROM_PTR(&pin_GPIO28) }, // GPIO28- G9 | BUS9 | ADC_D- | CAM_HSYNC
{ MP_ROM_QSTR(MP_QSTR_BUS9), MP_ROM_PTR(&pin_GPIO28) }, // BUS9 alias
{ MP_ROM_QSTR(MP_QSTR_ADC_DM), MP_ROM_PTR(&pin_GPIO28) }, // ADC_DM alias
{ MP_ROM_QSTR(MP_QSTR_CAM_HSYNC), MP_ROM_PTR(&pin_GPIO28) }, // CAM_HSYNC alias
{ MP_ROM_QSTR(MP_QSTR_G10), MP_ROM_PTR(&pin_GPIO25) }, // GPIO25 - G10 | BUS10 | ADC_D+ | CAM_VSYNC
{ MP_ROM_QSTR(MP_QSTR_BUS10), MP_ROM_PTR(&pin_GPIO25) }, // BUS10 alias
{ MP_ROM_QSTR(MP_QSTR_ADC_DP), MP_ROM_PTR(&pin_GPIO25) }, // ADC_DP alias
{ MP_ROM_QSTR(MP_QSTR_CAM_VSYNC), MP_ROM_PTR(&pin_GPIO25) }, // CAM_VSYNC alias
// NC - G11
// PWM pins (PWM0,PWM1)
{ MP_ROM_QSTR(MP_QSTR_PWM0), MP_ROM_PTR(&pin_GPIO13) }, // GPIO13 - PWM0
{ MP_ROM_QSTR(MP_QSTR_PWM1), MP_ROM_PTR(&pin_GPIO24) }, // GPIO24 - PWM1 | AUD_MCLK
// AUD (audio)
{ MP_ROM_QSTR(MP_QSTR_AUD_MCLK), MP_ROM_PTR(&pin_GPIO24) }, // GPIO24 - AUD_MCLK | PWM1
{ MP_ROM_QSTR(MP_QSTR_AUD_OUT), MP_ROM_PTR(&pin_GPIO10) }, // GPIO10 - AUD_OUT | SDIO_DAT2
{ MP_ROM_QSTR(MP_QSTR_AUD_IN), MP_ROM_PTR(&pin_GPIO11) }, // GPIO11 - AUD_IN | SDIO_DAT1
{ MP_ROM_QSTR(MP_QSTR_AUD_LRCLK), MP_ROM_PTR(&pin_GPIO2) }, // GPIO2 - AUD_LRCLK | CTS1
{ MP_ROM_QSTR(MP_QSTR_AUD_BCLK), MP_ROM_PTR(&pin_GPIO3) }, // GPIO3 - AUD_BCLK | UART_RTS1
// Battery Voltage Monitor
{ MP_ROM_QSTR(MP_QSTR_BATT_VIN3), MP_ROM_PTR(&pin_GPIO29) }, // GPIO29 - BATT_VIN/3 (ADC03)
// I2C
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO4) }, // GPIO4 - SDA
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO5) }, // GPIO5 - SCL
{ MP_ROM_QSTR(MP_QSTR_I2C_INT), MP_ROM_PTR(&pin_GPIO8) }, // GPIO9 - I2C_INT | TX2
// SPI
{ MP_ROM_QSTR(MP_QSTR_CIPO), MP_ROM_PTR(&pin_GPIO20) }, // GPIO20 - CIPO | SPI_CIPO | G4
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO20) }, // MISO alias
{ MP_ROM_QSTR(MP_QSTR_COPI), MP_ROM_PTR(&pin_GPIO23) }, // GPIO23 - COPI | SPI_COPI | G7
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO23) }, // MOSI alias
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO22) }, // GPIO22 - SCK | SPI_SCK | G6
{ MP_ROM_QSTR(MP_QSTR_CS), MP_ROM_PTR(&pin_GPIO21) }, // GPIO21 - /CS | SPI_/CS | G5
// SDI/SPI1
{ MP_ROM_QSTR(MP_QSTR_SDIO_CLK), MP_ROM_PTR(&pin_GPIO14) }, // GPIO14 - SDIO SCK | SDIO_CLK
{ MP_ROM_QSTR(MP_QSTR_SPI_SCK1), MP_ROM_PTR(&pin_GPIO14) }, // SPI_SCK1 alias
{ MP_ROM_QSTR(MP_QSTR_SDIO_CMD), MP_ROM_PTR(&pin_GPIO15) }, // GPIO15 - SDIO CMD | SDIO_CMD
{ MP_ROM_QSTR(MP_QSTR_SPI_COPI1), MP_ROM_PTR(&pin_GPIO15) },// SPI_COPI1 alias
{ MP_ROM_QSTR(MP_QSTR_SDIO_DATA0), MP_ROM_PTR(&pin_GPIO12) },// GPIO12 - SDIO DATA0 | SDIO_DATA0
{ MP_ROM_QSTR(MP_QSTR_SPI_CIPO1), MP_ROM_PTR(&pin_GPIO12) }, // SPI_CIPO1 alias
{ MP_ROM_QSTR(MP_QSTR_SDIO_DATA1), MP_ROM_PTR(&pin_GPIO11) },// GPIO11 - SDIO DATA1 | SDIO_DATA1 | AUD_IN
{ MP_ROM_QSTR(MP_QSTR_SDIO_DATA2), MP_ROM_PTR(&pin_GPIO10) },// GPIO10 - SDIO DATA2 | SDIO_DATA2 | AUD_OUT
{ MP_ROM_QSTR(MP_QSTR_SDIO_DATA3), MP_ROM_PTR(&pin_GPIO9) },// GPIO9 - SDIO DATA3 | SDIO_DATA3 | SPI_CS1
{ MP_ROM_QSTR(MP_QSTR_SPI_CS1), MP_ROM_PTR(&pin_GPIO9) }, // SPI_CS1 alias
// Status LED
{ MP_ROM_QSTR(MP_QSTR_LED1), MP_ROM_PTR(&pin_GPIO25) }, // GPIO25 - LED_BUILTIN | STAT | Blue LED | G10
// UART
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO1) }, // GPIO1 - UART RX | UART_RX1 | RX1
{ MP_ROM_QSTR(MP_QSTR_RX1), MP_ROM_PTR(&pin_GPIO1) }, // RX1 alias
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO0) }, // GPIO0 - UART TX | UART_TX1 | TX1
{ MP_ROM_QSTR(MP_QSTR_TX1), MP_ROM_PTR(&pin_GPIO0) }, // TX1 alias
{ MP_ROM_QSTR(MP_QSTR_CTS), MP_ROM_PTR(&pin_GPIO2) }, // GPIO2 - UART CTS | CTS1 (TRACEDATA3)
{ MP_ROM_QSTR(MP_QSTR_CTS1), MP_ROM_PTR(&pin_GPIO2) }, // CTS1 alias
{ MP_ROM_QSTR(MP_QSTR_RTS), MP_ROM_PTR(&pin_GPIO3) }, // GPIO3 - UART RTS | RTS1
{ MP_ROM_QSTR(MP_QSTR_RTS1), MP_ROM_PTR(&pin_GPIO3) }, // RTS1 alias
{ MP_ROM_QSTR(MP_QSTR_RX2), MP_ROM_PTR(&pin_GPIO9) }, // GPIO9 - UART RX | UART_RX2 | RX2 | SDIO_DAT3 | SPI_CS1
{ MP_ROM_QSTR(MP_QSTR_TX2), MP_ROM_PTR(&pin_GPIO8) }, // GPIO8 - UART TX | UART_TX2 | TX2 | I2C_INT
// Board objects
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -43,8 +43,7 @@ CIRCUITPY_AUDIOBUSIO ?= 1
CIRCUITPY_AUDIOCORE ?= 1
CIRCUITPY_AUDIOPWMIO ?= 1
# These libraries require Cortex M4+ for fancy math instructions.
CIRCUITPY_AUDIOMIXER ?= 0
CIRCUITPY_AUDIOMIXER = 1
INTERNAL_LIBM = 1

View File

@ -16,3 +16,5 @@ MCU_PACKAGE = UFQFPN48
LD_COMMON = boards/common_default.ld
LD_FILE = boards/STM32F411_nvm_nofs.ld
CIRCUITPY_SYNTHIO = 0

View File

@ -371,11 +371,7 @@ void mp_binary_set_val(char struct_type, char val_type, mp_obj_t val_in, byte **
}
}
if (val_type == 'x') {
memset(p, 0, 1);
} else {
mp_binary_set_int(MIN((size_t)size, sizeof(val)), struct_type == '>', p, val);
}
}
void mp_binary_set_val_array(char typecode, void *p, mp_uint_t index, mp_obj_t val_in) {

View File

@ -280,6 +280,9 @@ endif
ifeq ($(CIRCUITPY_SUPERVISOR),1)
SRC_PATTERNS += supervisor/%
endif
ifeq ($(CIRCUITPY_SYNTHIO),1)
SRC_PATTERNS += synthio/%
endif
ifeq ($(CIRCUITPY_TERMINALIO),1)
SRC_PATTERNS += terminalio/% fontio/%
endif
@ -524,6 +527,8 @@ SRC_SHARED_MODULE_ALL = \
socket/__init__.c \
storage/__init__.c \
struct/__init__.c \
synthio/MidiTrack.c \
synthio/__init__.c \
terminalio/Terminal.c \
terminalio/__init__.c \
time/__init__.c \

View File

@ -728,6 +728,13 @@ extern const struct _mp_obj_module_t supervisor_module;
#define SUPERVISOR_MODULE
#endif
#if CIRCUITPY_SYNTHIO
#define SYNTHIO_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_synthio), (mp_obj_t)&synthio_module },
extern const struct _mp_obj_module_t synthio_module;
#else
#define SYNTHIO_MODULE
#endif
#if CIRCUITPY_TIME
extern const struct _mp_obj_module_t time_module;
#define TIME_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_time), (mp_obj_t)&time_module },
@ -897,6 +904,7 @@ extern const struct _mp_obj_module_t msgpack_module;
STORAGE_MODULE \
STRUCT_MODULE \
SUPERVISOR_MODULE \
SYNTHIO_MODULE \
TOUCHIO_MODULE \
UHEAP_MODULE \
USB_CDC_MODULE \

View File

@ -311,6 +311,9 @@ CFLAGS += -DCIRCUITPY_STRUCT=$(CIRCUITPY_STRUCT)
CIRCUITPY_SUPERVISOR ?= 1
CFLAGS += -DCIRCUITPY_SUPERVISOR=$(CIRCUITPY_SUPERVISOR)
CIRCUITPY_SYNTHIO ?= $(CIRCUITPY_AUDIOCORE)
CFLAGS += -DCIRCUITPY_SYNTHIO=$(CIRCUITPY_SYNTHIO)
CIRCUITPY_TERMINALIO ?= $(CIRCUITPY_DISPLAYIO)
CFLAGS += -DCIRCUITPY_TERMINALIO=$(CIRCUITPY_TERMINALIO)

View File

@ -768,7 +768,7 @@ STATIC bool compile_built_in_decorator(compiler_t *comp, int name_len, mp_parse_
}
if (name_len != 2) {
compile_syntax_error(comp, name_nodes[0], translate("invalid micropython decorator"));
compile_syntax_error(comp, name_nodes[0], translate("invalid decorator"));
return true;
}

View File

@ -12,7 +12,6 @@ from __future__ import print_function
import re
import sys
from math import log
import collections
import gettext
import os.path
@ -167,7 +166,7 @@ def compute_huffman_coding(translations, compression_filename):
sum_len = 0
while True:
# Until the dictionary is filled to capacity, use a heuristic to find
# the best "word" (2- to 9-gram) to add to it.
# the best "word" (3- to 9-gram) to add to it.
#
# The TextSplitter allows us to avoid considering parts of the text
# that are already covered by a previously chosen word, for example
@ -179,32 +178,25 @@ def compute_huffman_coding(translations, compression_filename):
for t in texts:
for (found, word) in extractor.iter_words(t):
if not found:
for substr in iter_substrings(word, minlen=2, maxlen=9):
for substr in iter_substrings(word, minlen=3, maxlen=9):
counter[substr] += 1
# Score the candidates we found. This is an empirical formula only,
# chosen for its effectiveness.
scores = sorted(
((s, (len(s) - 1) ** log(max(occ - 2, 1)), occ) for (s, occ) in counter.items()),
((s, (len(s) - 1) ** (occ + 4)) for (s, occ) in counter.items() if occ > 4),
key=lambda x: x[1],
reverse=True,
)
# Do we have a "word" that occurred 5 times and got a score of at least
# 5? Horray. Pick the one with the highest score.
word = None
for (s, score, occ) in scores:
if occ < 5:
continue
if score < 5:
break
word = s
# Pick the one with the highest score.
if not scores:
break
word = scores[0][0]
# If we can successfully add it to the dictionary, do so. Otherwise,
# we've filled the dictionary to capacity and are done.
if not word:
break
if sum_len + len(word) - 2 > max_words_len:
break
if len(words) == max_words:
@ -456,27 +448,24 @@ def parse_input_headers(infiles):
return qcfgs, qstrs, i18ns
def escape_bytes(qstr):
if all(32 <= ord(c) <= 126 and c != "\\" and c != '"' for c in qstr):
# qstr is all printable ASCII so render it as-is (for easier debugging)
return qstr
else:
# qstr contains non-printable codes so render entire thing as hex pairs
qbytes = bytes_cons(qstr, "utf8")
return "".join(("\\x%02x" % b) for b in qbytes)
def make_bytes(cfg_bytes_len, cfg_bytes_hash, qstr):
qbytes = bytes_cons(qstr, "utf8")
qlen = len(qbytes)
qhash = compute_hash(qbytes, cfg_bytes_hash)
if all(32 <= ord(c) <= 126 and c != "\\" and c != '"' for c in qstr):
# qstr is all printable ASCII so render it as-is (for easier debugging)
qdata = qstr
else:
# qstr contains non-printable codes so render entire thing as hex pairs
qdata = "".join(("\\x%02x" % b) for b in qbytes)
if qlen >= (1 << (8 * cfg_bytes_len)):
print("qstr is too long:", qstr)
assert False
qlen_str = ("\\x%02x" * cfg_bytes_len) % tuple(
((qlen >> (8 * i)) & 0xFF) for i in range(cfg_bytes_len)
)
qhash_str = ("\\x%02x" * cfg_bytes_hash) % tuple(
((qhash >> (8 * i)) & 0xFF) for i in range(cfg_bytes_hash)
)
return '(const byte*)"%s%s" "%s"' % (qhash_str, qlen_str, qdata)
qdata = escape_bytes(qstr)
return '%d, %d, "%s"' % (qhash, qlen, qdata)
def print_qstr_data(encoding_table, qcfgs, qstrs, i18ns):
@ -489,10 +478,7 @@ def print_qstr_data(encoding_table, qcfgs, qstrs, i18ns):
print("")
# add NULL qstr with no hash or data
print(
'QDEF(MP_QSTR_NULL, (const byte*)"%s%s" "")'
% ("\\x00" * cfg_bytes_hash, "\\x00" * cfg_bytes_len)
)
print('QDEF(MP_QSTR_NULL, 0, 0, "")')
total_qstr_size = 0
total_qstr_compressed_size = 0

View File

@ -214,9 +214,11 @@ STATIC void struct_pack_into_internal(mp_obj_t fmt_in, byte *p, size_t n_args, c
p += cnt;
} else {
while (cnt--) {
mp_binary_set_val(fmt_type, *fmt, args[i], &p);
// Pad bytes don't have a corresponding argument.
if (*fmt != 'x') {
if (*fmt == 'x') {
mp_binary_set_val(fmt_type, *fmt, MP_OBJ_NEW_SMALL_INT(0), &p);
} else {
mp_binary_set_val(fmt_type, *fmt, args[i], &p);
i++;
}
}

View File

@ -197,7 +197,7 @@ typedef struct _mp_state_vm_t {
// pointer and sizes to store interned string data
// (qstr_last_chunk can be root pointer but is also stored in qstr pool)
byte *qstr_last_chunk;
char *qstr_last_chunk;
size_t qstr_last_alloc;
size_t qstr_last_used;

130
py/qstr.c
View File

@ -37,7 +37,6 @@
// NOTE: we are using linear arrays to store and search for qstr's (unique strings, interned strings)
// ultimately we will replace this with a static hash table of some kind
// also probably need to include the length in the string data, to allow null bytes in the string
#if MICROPY_DEBUG_VERBOSE // print debugging info
#define DEBUG_printf DEBUG_printf
@ -46,34 +45,9 @@
#endif
// A qstr is an index into the qstr pool.
// The data for a qstr contains (hash, length, data):
// - hash (configurable number of bytes)
// - length (configurable number of bytes)
// - data ("length" number of bytes)
// - \0 terminated (so they can be printed using printf)
// The data for a qstr is \0 terminated (so they can be printed using printf)
#if MICROPY_QSTR_BYTES_IN_HASH == 1
#define Q_HASH_MASK (0xff)
#define Q_GET_HASH(q) ((mp_uint_t)(q)[0])
#define Q_SET_HASH(q, hash) do { (q)[0] = (hash); } while (0)
#elif MICROPY_QSTR_BYTES_IN_HASH == 2
#define Q_HASH_MASK (0xffff)
#define Q_GET_HASH(q) ((mp_uint_t)(q)[0] | ((mp_uint_t)(q)[1] << 8))
#define Q_SET_HASH(q, hash) do { (q)[0] = (hash); (q)[1] = (hash) >> 8; } while (0)
#else
#error unimplemented qstr hash decoding
#endif
#define Q_GET_ALLOC(q) (MICROPY_QSTR_BYTES_IN_HASH + MICROPY_QSTR_BYTES_IN_LEN + Q_GET_LENGTH(q) + 1)
#define Q_GET_DATA(q) ((q) + MICROPY_QSTR_BYTES_IN_HASH + MICROPY_QSTR_BYTES_IN_LEN)
#if MICROPY_QSTR_BYTES_IN_LEN == 1
#define Q_GET_LENGTH(q) ((q)[MICROPY_QSTR_BYTES_IN_HASH])
#define Q_SET_LENGTH(q, len) do { (q)[MICROPY_QSTR_BYTES_IN_HASH] = (len); } while (0)
#elif MICROPY_QSTR_BYTES_IN_LEN == 2
#define Q_GET_LENGTH(q) ((q)[MICROPY_QSTR_BYTES_IN_HASH] | ((q)[MICROPY_QSTR_BYTES_IN_HASH + 1] << 8))
#define Q_SET_LENGTH(q, len) do { (q)[MICROPY_QSTR_BYTES_IN_HASH] = (len); (q)[MICROPY_QSTR_BYTES_IN_HASH + 1] = (len) >> 8; } while (0)
#else
#error unimplemented qstr length decoding
#endif
#define Q_HASH_MASK ((1 << (8 * MICROPY_QSTR_BYTES_IN_HASH)) - 1)
#if MICROPY_PY_THREAD && !MICROPY_PY_THREAD_GIL
#define QSTR_ENTER() mp_thread_mutex_lock(&MP_STATE_VM(qstr_mutex), 1)
@ -98,14 +72,25 @@ mp_uint_t qstr_compute_hash(const byte *data, size_t len) {
return hash;
}
const qstr_attr_t mp_qstr_const_attr[] = {
#ifndef NO_QSTR
#define QDEF(id, hash, len, str) { hash, len },
#define TRANSLATION(id, length, compressed ...)
#include "genhdr/qstrdefs.generated.h"
#undef TRANSLATION
#undef QDEF
#endif
};
const qstr_pool_t mp_qstr_const_pool = {
NULL, // no previous pool
0, // no previous pool
10, // set so that the first dynamically allocated pool is twice this size; must be <= the len (just below)
MP_QSTRnumber_of, // corresponds to number of strings in array just below
(qstr_attr_t *)mp_qstr_const_attr,
{
#ifndef NO_QSTR
#define QDEF(id, str) str,
#define QDEF(id, hash, len, str) str,
#define TRANSLATION(id, length, compressed ...)
#include "genhdr/qstrdefs.generated.h"
#undef TRANSLATION
@ -130,20 +115,22 @@ void qstr_init(void) {
#endif
}
STATIC const byte *find_qstr(qstr q) {
STATIC const char *find_qstr(qstr q, qstr_attr_t *attr) {
// search pool for this qstr
// total_prev_len==0 in the final pool, so the loop will always terminate
qstr_pool_t *pool = MP_STATE_VM(last_pool);
while (q < pool->total_prev_len) {
pool = pool->prev;
}
assert(q - pool->total_prev_len < pool->len);
return pool->qstrs[q - pool->total_prev_len];
q -= pool->total_prev_len;
assert(q < pool->len);
*attr = pool->attrs[q];
return pool->qstrs[q];
}
// qstr_mutex must be taken while in this function
STATIC qstr qstr_add(const byte *q_ptr) {
DEBUG_printf("QSTR: add hash=%d len=%d data=%.*s\n", Q_GET_HASH(q_ptr), Q_GET_LENGTH(q_ptr), Q_GET_LENGTH(q_ptr), Q_GET_DATA(q_ptr));
STATIC qstr qstr_add(mp_uint_t hash, mp_uint_t len, const char *q_ptr) {
DEBUG_printf("QSTR: add hash=%d len=%d data=%.*s\n", hash, len, len, q_ptr);
// make sure we have room in the pool for a new qstr
if (MP_STATE_VM(last_pool)->len >= MP_STATE_VM(last_pool)->alloc) {
@ -151,11 +138,14 @@ STATIC qstr qstr_add(const byte *q_ptr) {
if (new_pool_length > MICROPY_QSTR_POOL_MAX_ENTRIES) {
new_pool_length = MICROPY_QSTR_POOL_MAX_ENTRIES;
}
qstr_pool_t *pool = m_new_ll_obj_var_maybe(qstr_pool_t, const char *, new_pool_length);
if (pool == NULL) {
mp_uint_t pool_size = sizeof(qstr_pool_t) + sizeof(const char *) * new_pool_length;
void *chunk = m_malloc_maybe(pool_size + sizeof(qstr_attr_t) * new_pool_length, true);
if (chunk == NULL) {
QSTR_EXIT();
m_malloc_fail(new_pool_length);
}
qstr_pool_t *pool = (qstr_pool_t *)chunk;
pool->attrs = (qstr_attr_t *)(void *)((char *)chunk + pool_size);
pool->prev = MP_STATE_VM(last_pool);
pool->total_prev_len = MP_STATE_VM(last_pool)->total_prev_len + MP_STATE_VM(last_pool)->len;
pool->alloc = new_pool_length;
@ -165,10 +155,14 @@ STATIC qstr qstr_add(const byte *q_ptr) {
}
// add the new qstr
MP_STATE_VM(last_pool)->qstrs[MP_STATE_VM(last_pool)->len++] = q_ptr;
mp_uint_t at = MP_STATE_VM(last_pool)->len;
MP_STATE_VM(last_pool)->attrs[at].hash = hash;
MP_STATE_VM(last_pool)->attrs[at].len = len;
MP_STATE_VM(last_pool)->qstrs[at] = q_ptr;
MP_STATE_VM(last_pool)->len++;
// return id for the newly-added qstr
return MP_STATE_VM(last_pool)->total_prev_len + MP_STATE_VM(last_pool)->len - 1;
return MP_STATE_VM(last_pool)->total_prev_len + at;
}
qstr qstr_find_strn(const char *str, size_t str_len) {
@ -177,9 +171,10 @@ qstr qstr_find_strn(const char *str, size_t str_len) {
// search pools for the data
for (qstr_pool_t *pool = MP_STATE_VM(last_pool); pool != NULL; pool = pool->prev) {
for (const byte **q = pool->qstrs, **q_top = pool->qstrs + pool->len; q < q_top; q++) {
if (Q_GET_HASH(*q) == str_hash && Q_GET_LENGTH(*q) == str_len && memcmp(Q_GET_DATA(*q), str, str_len) == 0) {
return pool->total_prev_len + (q - pool->qstrs);
qstr_attr_t *attrs = pool->attrs;
for (mp_uint_t at = 0, top = pool->len; at < top; at++) {
if (attrs[at].hash == str_hash && attrs[at].len == str_len && memcmp(pool->qstrs[at], str, str_len) == 0) {
return pool->total_prev_len + at;
}
}
}
@ -200,14 +195,14 @@ qstr qstr_from_strn(const char *str, size_t len) {
// qstr does not exist in interned pool so need to add it
// compute number of bytes needed to intern this string
size_t n_bytes = MICROPY_QSTR_BYTES_IN_HASH + MICROPY_QSTR_BYTES_IN_LEN + len + 1;
size_t n_bytes = len + 1;
if (MP_STATE_VM(qstr_last_chunk) != NULL && MP_STATE_VM(qstr_last_used) + n_bytes > MP_STATE_VM(qstr_last_alloc)) {
// not enough room at end of previously interned string so try to grow
byte *new_p = m_renew_maybe(byte, MP_STATE_VM(qstr_last_chunk), MP_STATE_VM(qstr_last_alloc), MP_STATE_VM(qstr_last_alloc) + n_bytes, false);
char *new_p = m_renew_maybe(char, MP_STATE_VM(qstr_last_chunk), MP_STATE_VM(qstr_last_alloc), MP_STATE_VM(qstr_last_alloc) + n_bytes, false);
if (new_p == NULL) {
// could not grow existing memory; shrink it to fit previous
(void)m_renew_maybe(byte, MP_STATE_VM(qstr_last_chunk), MP_STATE_VM(qstr_last_alloc), MP_STATE_VM(qstr_last_used), false);
(void)m_renew_maybe(char, MP_STATE_VM(qstr_last_chunk), MP_STATE_VM(qstr_last_alloc), MP_STATE_VM(qstr_last_used), false);
MP_STATE_VM(qstr_last_chunk) = NULL;
} else {
// could grow existing memory
@ -221,10 +216,10 @@ qstr qstr_from_strn(const char *str, size_t len) {
if (al < MICROPY_ALLOC_QSTR_CHUNK_INIT) {
al = MICROPY_ALLOC_QSTR_CHUNK_INIT;
}
MP_STATE_VM(qstr_last_chunk) = m_new_ll_maybe(byte, al);
MP_STATE_VM(qstr_last_chunk) = m_new_ll_maybe(char, al);
if (MP_STATE_VM(qstr_last_chunk) == NULL) {
// failed to allocate a large chunk so try with exact size
MP_STATE_VM(qstr_last_chunk) = m_new_ll_maybe(byte, n_bytes);
MP_STATE_VM(qstr_last_chunk) = m_new_ll_maybe(char, n_bytes);
if (MP_STATE_VM(qstr_last_chunk) == NULL) {
QSTR_EXIT();
m_malloc_fail(n_bytes);
@ -236,39 +231,41 @@ qstr qstr_from_strn(const char *str, size_t len) {
}
// allocate memory from the chunk for this new interned string's data
byte *q_ptr = MP_STATE_VM(qstr_last_chunk) + MP_STATE_VM(qstr_last_used);
char *q_ptr = MP_STATE_VM(qstr_last_chunk) + MP_STATE_VM(qstr_last_used);
MP_STATE_VM(qstr_last_used) += n_bytes;
// store the interned strings' data
mp_uint_t hash = qstr_compute_hash((const byte *)str, len);
Q_SET_HASH(q_ptr, hash);
Q_SET_LENGTH(q_ptr, len);
memcpy(q_ptr + MICROPY_QSTR_BYTES_IN_HASH + MICROPY_QSTR_BYTES_IN_LEN, str, len);
q_ptr[MICROPY_QSTR_BYTES_IN_HASH + MICROPY_QSTR_BYTES_IN_LEN + len] = '\0';
q = qstr_add(q_ptr);
memcpy(q_ptr, str, len);
q_ptr[len] = '\0';
q = qstr_add(hash, len, q_ptr);
}
QSTR_EXIT();
return q;
}
mp_uint_t PLACE_IN_ITCM(qstr_hash)(qstr q) {
return Q_GET_HASH(find_qstr(q));
qstr_attr_t attr;
find_qstr(q, &attr);
return attr.hash;
}
size_t qstr_len(qstr q) {
const byte *qd = find_qstr(q);
return Q_GET_LENGTH(qd);
qstr_attr_t attr;
find_qstr(q, &attr);
return attr.len;
}
const char *qstr_str(qstr q) {
const byte *qd = find_qstr(q);
return (const char *)Q_GET_DATA(qd);
qstr_attr_t attr;
return find_qstr(q, &attr);
}
const byte *qstr_data(qstr q, size_t *len) {
const byte *qd = find_qstr(q);
*len = Q_GET_LENGTH(qd);
return Q_GET_DATA(qd);
qstr_attr_t attr;
const char *qd = find_qstr(q, &attr);
*len = attr.len;
return (byte *)qd;
}
void qstr_pool_info(size_t *n_pool, size_t *n_qstr, size_t *n_str_data_bytes, size_t *n_total_bytes) {
@ -280,13 +277,14 @@ void qstr_pool_info(size_t *n_pool, size_t *n_qstr, size_t *n_str_data_bytes, si
for (qstr_pool_t *pool = MP_STATE_VM(last_pool); pool != NULL && pool != &CONST_POOL; pool = pool->prev) {
*n_pool += 1;
*n_qstr += pool->len;
for (const byte **q = pool->qstrs, **q_top = pool->qstrs + pool->len; q < q_top; q++) {
*n_str_data_bytes += Q_GET_ALLOC(*q);
for (const qstr_attr_t *q = pool->attrs, *q_top = pool->attrs + pool->len; q < q_top; q++) {
*n_str_data_bytes += sizeof(*q) + q->len + 1;
}
#if MICROPY_ENABLE_GC
*n_total_bytes += gc_nbytes(pool); // this counts actual bytes used in heap
// this counts actual bytes used in heap
*n_total_bytes += gc_nbytes(pool) - sizeof(qstr_attr_t) * pool->alloc;
#else
*n_total_bytes += sizeof(qstr_pool_t) + sizeof(qstr) * pool->alloc;
*n_total_bytes += sizeof(qstr_pool_t) + sizeof(const char *) * pool->alloc;
#endif
}
*n_total_bytes += *n_str_data_bytes;
@ -297,8 +295,8 @@ void qstr_pool_info(size_t *n_pool, size_t *n_qstr, size_t *n_str_data_bytes, si
void qstr_dump_data(void) {
QSTR_ENTER();
for (qstr_pool_t *pool = MP_STATE_VM(last_pool); pool != NULL && pool != &CONST_POOL; pool = pool->prev) {
for (const byte **q = pool->qstrs, **q_top = pool->qstrs + pool->len; q < q_top; q++) {
mp_printf(&mp_plat_print, "Q(%s)\n", Q_GET_DATA(*q));
for (const char **q = pool->qstrs, **q_top = pool->qstrs + pool->len; q < q_top; q++) {
mp_printf(&mp_plat_print, "Q(%s)\n", *q);
}
}
QSTR_EXIT();

View File

@ -47,12 +47,30 @@ enum {
typedef size_t qstr;
typedef struct _qstr_attr_t {
#if MICROPY_QSTR_BYTES_IN_HASH == 1
uint8_t hash;
#elif MICROPY_QSTR_BYTES_IN_HASH == 2
uint16_t hash;
#else
#error unimplemented qstr hash decoding
#endif
#if MICROPY_QSTR_BYTES_IN_LEN == 1
uint8_t len;
#elif MICROPY_QSTR_BYTES_IN_LEN == 2
uint16_t len;
#else
#error unimplemented qstr length decoding
#endif
} qstr_attr_t;
typedef struct _qstr_pool_t {
struct _qstr_pool_t *prev;
size_t total_prev_len;
size_t alloc;
size_t len;
const byte *qstrs[];
qstr_attr_t *attrs;
const char *qstrs[];
} qstr_pool_t;
#define QSTR_FROM_STR_STATIC(s) (qstr_from_strn((s), strlen(s)))

View File

@ -281,6 +281,12 @@ size_t mp_repl_autocomplete(const char *str, size_t len, const mp_print_t *print
++str;
}
// after "import", suggest built-in modules
static const char import_str[] = "import ";
if (len >= 7 && !memcmp(org_str, import_str, 7)) {
obj = MP_OBJ_NULL;
}
// look for matches
size_t match_len;
qstr q_first, q_last;
@ -291,19 +297,12 @@ size_t mp_repl_autocomplete(const char *str, size_t len, const mp_print_t *print
if (q_first == 0) {
// If there're no better alternatives, and if it's first word
// in the line, try to complete "import".
static const char import_str[] = "import ";
if (s_start == org_str && s_len > 0) {
if (memcmp(s_start, import_str, s_len) == 0) {
*compl_str = import_str + s_len;
return sizeof(import_str) - 1 - s_len;
}
}
// after "import", suggest built-in modules
if (len >= 7 && !memcmp(org_str, import_str, 7)) {
obj = NULL;
match_str = find_completions(
s_start, s_len, obj, &match_len, &q_first, &q_last);
}
if (q_first == 0) {
*compl_str = " ";
return s_len ? 0 : 4;

View File

@ -219,6 +219,23 @@ const mp_obj_property_t bleio_characteristic_value_obj = {
(mp_obj_t)&mp_const_none_obj },
};
//| max_length: int
//| """The max length of this characteristic."""
//|
STATIC mp_obj_t bleio_characteristic_get_max_length(mp_obj_t self_in) {
bleio_characteristic_obj_t *self = MP_OBJ_TO_PTR(self_in);
return MP_OBJ_NEW_SMALL_INT(common_hal_bleio_characteristic_get_max_length(self));
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(bleio_characteristic_get_max_length_obj, bleio_characteristic_get_max_length);
const mp_obj_property_t bleio_characteristic_max_length_obj = {
.base.type = &mp_type_property,
.proxy = { (mp_obj_t)&bleio_characteristic_get_max_length_obj,
(mp_obj_t)&mp_const_none_obj,
(mp_obj_t)&mp_const_none_obj },
};
//| descriptors: Descriptor
//| """A tuple of :py:class:`Descriptor` objects related to this characteristic. (read-only)"""
//|

View File

@ -40,6 +40,7 @@ extern bleio_characteristic_properties_t common_hal_bleio_characteristic_get_pro
extern mp_obj_tuple_t *common_hal_bleio_characteristic_get_descriptors(bleio_characteristic_obj_t *self);
extern bleio_service_obj_t *common_hal_bleio_characteristic_get_service(bleio_characteristic_obj_t *self);
extern bleio_uuid_obj_t *common_hal_bleio_characteristic_get_uuid(bleio_characteristic_obj_t *self);
extern size_t common_hal_bleio_characteristic_get_max_length(bleio_characteristic_obj_t *self);
extern size_t common_hal_bleio_characteristic_get_value(bleio_characteristic_obj_t *self, uint8_t *buf, size_t len);
extern void common_hal_bleio_characteristic_add_descriptor(bleio_characteristic_obj_t *self, bleio_descriptor_obj_t *descriptor);
extern void common_hal_bleio_characteristic_construct(bleio_characteristic_obj_t *self, bleio_service_obj_t *service, uint16_t handle, bleio_uuid_obj_t *uuid, bleio_characteristic_properties_t props, bleio_attribute_security_mode_t read_perm, bleio_attribute_security_mode_t write_perm, mp_int_t max_length, bool fixed_length, mp_buffer_info_t *initial_value_bufinfo);

View File

@ -44,7 +44,7 @@
//| When we're the server, we ignore all connections besides the first to subscribe to
//| notifications."""
//|
//| def __init__(self, characteristic: Characteristic, *, buffer_size: int) -> None:
//| def __init__(self, characteristic: Characteristic, *, buffer_size: int, max_packet_size: Optional[int] = None) -> None:
//| """Monitor the given Characteristic. Each time a new value is written to the Characteristic
//| add the newly-written bytes to a FIFO buffer.
//|
@ -55,14 +55,17 @@
//| It may be a local Characteristic provided by a Peripheral Service, or a remote Characteristic
//| in a remote Service that a Central has connected to.
//| :param int buffer_size: Size of ring buffer (in packets of the Characteristic's maximum
//| length) that stores incoming packets coming from the peer."""
//| length) that stores incoming packets coming from the peer.
//| :param int max_packet_size: Maximum size of packets. Overrides value from the characteristic.
//| (Remote characteristics may not have the correct length.)"""
//| ...
//|
STATIC mp_obj_t bleio_packet_buffer_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
enum { ARG_characteristic, ARG_buffer_size };
enum { ARG_characteristic, ARG_buffer_size, ARG_max_packet_size };
static const mp_arg_t allowed_args[] = {
{ MP_QSTR_characteristic, MP_ARG_REQUIRED | MP_ARG_OBJ },
{ MP_QSTR_buffer_size, MP_ARG_KW_ONLY | MP_ARG_REQUIRED | MP_ARG_INT },
{ MP_QSTR_max_packet_size, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = mp_const_none}},
};
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
@ -79,10 +82,15 @@ STATIC mp_obj_t bleio_packet_buffer_make_new(const mp_obj_type_t *type, size_t n
mp_raise_TypeError(translate("Expected a Characteristic"));
}
size_t max_packet_size = common_hal_bleio_characteristic_get_max_length(characteristic);
if (args[ARG_max_packet_size].u_obj != mp_const_none) {
max_packet_size = mp_obj_get_int(args[ARG_max_packet_size].u_obj);
}
bleio_packet_buffer_obj_t *self = m_new_obj(bleio_packet_buffer_obj_t);
self->base.type = &bleio_packet_buffer_type;
common_hal_bleio_packet_buffer_construct(self, MP_OBJ_TO_PTR(characteristic), buffer_size);
common_hal_bleio_packet_buffer_construct(self, MP_OBJ_TO_PTR(characteristic), buffer_size, max_packet_size);
return MP_OBJ_FROM_PTR(self);
}
@ -133,7 +141,7 @@ STATIC mp_obj_t bleio_packet_buffer_write(mp_uint_t n_args, const mp_obj_t *pos_
enum { ARG_data, ARG_header };
static const mp_arg_t allowed_args[] = {
{ MP_QSTR_data, MP_ARG_REQUIRED | MP_ARG_OBJ },
{ MP_QSTR_header, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL}},
{ MP_QSTR_header, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = mp_const_none}},
};
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
@ -147,7 +155,7 @@ STATIC mp_obj_t bleio_packet_buffer_write(mp_uint_t n_args, const mp_obj_t *pos_
mp_buffer_info_t header_bufinfo;
header_bufinfo.len = 0;
if (args[ARG_header].u_obj != MP_OBJ_NULL) {
if (args[ARG_header].u_obj != mp_const_none) {
mp_get_buffer_raise(args[ARG_header].u_obj, &header_bufinfo, MP_BUFFER_READ);
}

View File

@ -33,7 +33,7 @@ extern const mp_obj_type_t bleio_packet_buffer_type;
extern void common_hal_bleio_packet_buffer_construct(
bleio_packet_buffer_obj_t *self, bleio_characteristic_obj_t *characteristic,
size_t buffer_size);
size_t buffer_size, size_t max_packet_size);
mp_int_t common_hal_bleio_packet_buffer_write(bleio_packet_buffer_obj_t *self, uint8_t *data, size_t len, uint8_t *header, size_t header_len);
mp_int_t common_hal_bleio_packet_buffer_readinto(bleio_packet_buffer_obj_t *self, uint8_t *data, size_t len);
mp_int_t common_hal_bleio_packet_buffer_get_incoming_packet_length(bleio_packet_buffer_obj_t *self);

View File

@ -38,7 +38,7 @@ WriteableBuffer = Union[
"""
AudioSample = Union[
audiocore.WaveFile, audiocore.RawSample, audiomixer.Mixer, audiomp3.MP3Decoder
audiocore.WaveFile, audiocore.RawSample, audiomixer.Mixer, audiomp3.MP3Decoder, synthio.MidiTrack
]
"""Classes that implement the audiosample protocol
@ -46,6 +46,7 @@ AudioSample = Union[
- `audiocore.RawSample`
- `audiomixer.Mixer`
- `audiomp3.MP3Decoder`
- `synthio.MidiTrack`
You can play these back with `audioio.AudioOut`, `audiobusio.I2SOut` or `audiopwmio.PWMAudioOut`.
"""

View File

@ -30,7 +30,6 @@
#include "py/binary.h"
#include "py/objproperty.h"
#include "py/runtime.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/util.h"
#include "shared-bindings/audiocore/RawSample.h"
#include "supervisor/shared/translate.h"
@ -83,7 +82,7 @@ STATIC mp_obj_t audioio_rawsample_make_new(const mp_obj_type_t *type, size_t n_a
audioio_rawsample_obj_t *self = m_new_obj(audioio_rawsample_obj_t);
self->base.type = &audioio_rawsample_type;
mp_buffer_info_t bufinfo;
if (mp_get_buffer(args[ARG_buffer].u_obj, &bufinfo, MP_BUFFER_READ)) {
mp_get_buffer_raise(args[ARG_buffer].u_obj, &bufinfo, MP_BUFFER_READ);
uint8_t bytes_per_sample = 1;
bool signed_samples = bufinfo.typecode == 'b' || bufinfo.typecode == 'h';
if (bufinfo.typecode == 'h' || bufinfo.typecode == 'H') {
@ -94,15 +93,12 @@ STATIC mp_obj_t audioio_rawsample_make_new(const mp_obj_type_t *type, size_t n_a
common_hal_audioio_rawsample_construct(self, ((uint8_t *)bufinfo.buf), bufinfo.len,
bytes_per_sample, signed_samples, args[ARG_channel_count].u_int,
args[ARG_sample_rate].u_int);
} else {
mp_raise_TypeError(translate("buffer must be a bytes-like object"));
}
return MP_OBJ_FROM_PTR(self);
}
//| def deinit(self) -> None:
//| """Deinitialises the AudioOut and releases any hardware resources for reuse."""
//| """Deinitialises the RawSample and releases any hardware resources for reuse."""
//| ...
//|
STATIC mp_obj_t audioio_rawsample_deinit(mp_obj_t self_in) {

View File

@ -27,7 +27,6 @@
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_AUDIOIO_RAWSAMPLE_H
#define MICROPY_INCLUDED_SHARED_BINDINGS_AUDIOIO_RAWSAMPLE_H
#include "common-hal/microcontroller/Pin.h"
#include "shared-module/audiocore/RawSample.h"
extern const mp_obj_type_t audioio_rawsample_type;

View File

@ -44,7 +44,7 @@
//| """Load a .wav file for playback with `audioio.AudioOut` or `audiobusio.I2SOut`.
//|
//| :param typing.BinaryIO file: Already opened wave file
//| :param ~_typing.WriteableBuffer buffer: Optional pre-allocated buffer, that will be split in half and used for double-buffering of the data. If not provided, two 512 byte buffers are allocated internally.
//| :param ~_typing.WriteableBuffer buffer: Optional pre-allocated buffer, that will be split in half and used for double-buffering of the data. If not provided, two 256 byte buffers are allocated internally.
//|
//|
//| Playing a wave file from flash::

View File

@ -6,6 +6,11 @@ Module Support Matrix - Which Modules Are Available on Which Boards
The following table lists the available built-in modules for each CircuitPython
capable board.
.. raw:: html
<p id="support-matrix-filter-block"><input placeholder="Filter the boards by available modules" id="support-matrix-filter" type="text"/><span id="support-matrix-filter-num">(all)</span></p>
.. rst-class:: support-matrix-table
.. list-table::
:header-rows: 1
:widths: 7, 50

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