From c1722ad4867d865c095714cfec921eef36216354 Mon Sep 17 00:00:00 2001 From: Graeme Winter Date: Wed, 24 May 2023 06:43:51 +0100 Subject: [PATCH 1/6] Additional cast through void* Tell the compiler we know what we are doing, and that the bytes are correctly aligned, to avoid compiler warning: error: cast increases required alignment of target type --- extmod/moductypes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extmod/moductypes.c b/extmod/moductypes.c index f770ead006..38f700c055 100644 --- a/extmod/moductypes.c +++ b/extmod/moductypes.c @@ -544,7 +544,7 @@ STATIC mp_obj_t uctypes_struct_subscr(mp_obj_t base_in, mp_obj_t index_in, mp_ob } } else if (agg_type == PTR) { - byte *p = *(void **)self->addr; + byte *p = *(void **)(void *)self->addr; if (mp_obj_is_small_int(t->items[1])) { uint val_type = GET_TYPE(MP_OBJ_SMALL_INT_VALUE(t->items[1]), VAL_TYPE_BITS); return get_aligned(val_type, p, index); @@ -574,7 +574,7 @@ STATIC mp_obj_t uctypes_struct_unary_op(mp_unary_op_t op, mp_obj_t self_in) { mp_int_t offset = MP_OBJ_SMALL_INT_VALUE(t->items[0]); uint agg_type = GET_TYPE(offset, AGG_TYPE_BITS); if (agg_type == PTR) { - byte *p = *(void **)self->addr; + byte *p = *(void **)(void *)self->addr; return mp_obj_new_int((mp_int_t)(uintptr_t)p); } } From d73f390a4dac791943facd3d7c505b8fe0ba65fb Mon Sep 17 00:00:00 2001 From: hyx0329 Date: Sat, 27 May 2023 09:49:53 +0800 Subject: [PATCH 2/6] M60 keyboard: allow run on battery This also expose the battery control pin as BATTERY_ENABLE, so users can fully power off the keyboard. --- .../boards/makerdiary_m60_keyboard/board.c | 33 +++++++++++++++++++ .../makerdiary_m60_keyboard/mpconfigboard.h | 2 ++ .../nrf/boards/makerdiary_m60_keyboard/pins.c | 1 + 3 files changed, 36 insertions(+) diff --git a/ports/nrf/boards/makerdiary_m60_keyboard/board.c b/ports/nrf/boards/makerdiary_m60_keyboard/board.c index 8074c895dc..83f42558cb 100644 --- a/ports/nrf/boards/makerdiary_m60_keyboard/board.c +++ b/ports/nrf/boards/makerdiary_m60_keyboard/board.c @@ -25,6 +25,39 @@ */ #include "supervisor/board.h" +#include "supervisor/shared/board.h" +#include "mpconfigboard.h" +static void power_on(void) { + // turn on internal battery + nrf_gpio_cfg(POWER_SWITCH_PIN->number, + NRF_GPIO_PIN_DIR_OUTPUT, + NRF_GPIO_PIN_INPUT_DISCONNECT, + NRF_GPIO_PIN_NOPULL, + NRF_GPIO_PIN_S0S1, + NRF_GPIO_PIN_NOSENSE); + nrf_gpio_pin_write(POWER_SWITCH_PIN->number, true); +} + +static void preserve_and_release_battery_pin(void) { + // Preserve the battery state. The battery is enabled by default in factory bootloader. + // Reset claimed_pins so user can control pin's state in the vm. + // The code below doesn't actually reset the pin's state, but only set the flags. + reset_pin_number(POWER_SWITCH_PIN->number); // clear claimed_pins and never_reset_pins + never_reset_pin_number(POWER_SWITCH_PIN->number); // set never_reset_pins +} + +void board_init(void) { + // As of cpy 8.1.0, board_init() runs after reset_ports() on first run. That means + // never_reset_pins won't be set at boot, the battery pin is reset, causing system + // shutdown. + // So if we need to run on battery, we must enable the battery here. + power_on(); + preserve_and_release_battery_pin(); +} + +void reset_board(void) { + preserve_and_release_battery_pin(); +} // Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here. diff --git a/ports/nrf/boards/makerdiary_m60_keyboard/mpconfigboard.h b/ports/nrf/boards/makerdiary_m60_keyboard/mpconfigboard.h index 23a98c948b..eb2bf93e76 100644 --- a/ports/nrf/boards/makerdiary_m60_keyboard/mpconfigboard.h +++ b/ports/nrf/boards/makerdiary_m60_keyboard/mpconfigboard.h @@ -49,3 +49,5 @@ #define DEFAULT_I2C_BUS_SCL (&pin_P1_06) #define DEFAULT_I2C_BUS_SDA (&pin_P1_05) + +#define POWER_SWITCH_PIN (&pin_P0_28) diff --git a/ports/nrf/boards/makerdiary_m60_keyboard/pins.c b/ports/nrf/boards/makerdiary_m60_keyboard/pins.c index 485b968f4a..9a889bdd48 100644 --- a/ports/nrf/boards/makerdiary_m60_keyboard/pins.c +++ b/ports/nrf/boards/makerdiary_m60_keyboard/pins.c @@ -39,6 +39,7 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_CHARGING), MP_ROM_PTR(&pin_P0_03) }, { MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_P0_02) }, { MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_P0_02) }, + { MP_ROM_QSTR(MP_QSTR_BATTERY_ENABLE), MP_ROM_PTR(&pin_P0_28) }, { MP_ROM_QSTR(MP_QSTR_RGB_POWER), MP_ROM_PTR(&pin_P1_04) }, From 923d443a25f77c693c1ebce8ef70845d5fcba302 Mon Sep 17 00:00:00 2001 From: Ettore Atalan Date: Sat, 27 May 2023 17:33:59 +0000 Subject: [PATCH 3/6] Translated using Weblate (German) Currently translated at 99.4% (992 of 997 strings) Translation: CircuitPython/main Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/de/ --- locale/de_DE.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/locale/de_DE.po b/locale/de_DE.po index 90efb4b1e8..6bca238bd0 100644 --- a/locale/de_DE.po +++ b/locale/de_DE.po @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-04 12:55-0600\n" -"PO-Revision-Date: 2023-05-21 00:49+0000\n" -"Last-Translator: Scott Shawcroft \n" +"PO-Revision-Date: 2023-05-28 17:49+0000\n" +"Last-Translator: Ettore Atalan \n" "Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1318,7 +1318,7 @@ msgstr "Ungültige format chunk size" #: shared-bindings/wifi/Radio.c msgid "Invalid hex password" -msgstr "" +msgstr "Ungültiges Hex-Passwort" #: ports/espressif/common-hal/wifi/Radio.c msgid "Invalid multicast MAC address" From 31f2faa977235f051ed4f71e411996d572fea4eb Mon Sep 17 00:00:00 2001 From: tomiahola <59969326+tomiahola@users.noreply.github.com> Date: Thu, 1 Jun 2023 08:36:25 +0300 Subject: [PATCH 4/6] SAM E54 Xplained Pro: add support for SST26VF064B flash chip --- ports/atmel-samd/boards/same54_xplained/mpconfigboard.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/atmel-samd/boards/same54_xplained/mpconfigboard.mk b/ports/atmel-samd/boards/same54_xplained/mpconfigboard.mk index 53aac7df2a..449023893f 100644 --- a/ports/atmel-samd/boards/same54_xplained/mpconfigboard.mk +++ b/ports/atmel-samd/boards/same54_xplained/mpconfigboard.mk @@ -7,7 +7,7 @@ CHIP_VARIANT = SAME54P20A CHIP_FAMILY = same54 QSPI_FLASH_FILESYSTEM = 1 -EXTERNAL_FLASH_DEVICES = "N25Q256A" +EXTERNAL_FLASH_DEVICES = "N25Q256A", "SST26VF064B" LONGINT_IMPL = MPZ CIRCUITPY_SDIOIO = 1 From f2f19e93ec9188b2cedb35224d260a8106621257 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Thu, 1 Jun 2023 09:47:30 -0700 Subject: [PATCH 5/6] Fix listing --- ports/atmel-samd/boards/same54_xplained/mpconfigboard.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/atmel-samd/boards/same54_xplained/mpconfigboard.mk b/ports/atmel-samd/boards/same54_xplained/mpconfigboard.mk index 449023893f..d5038030e4 100644 --- a/ports/atmel-samd/boards/same54_xplained/mpconfigboard.mk +++ b/ports/atmel-samd/boards/same54_xplained/mpconfigboard.mk @@ -7,7 +7,7 @@ CHIP_VARIANT = SAME54P20A CHIP_FAMILY = same54 QSPI_FLASH_FILESYSTEM = 1 -EXTERNAL_FLASH_DEVICES = "N25Q256A", "SST26VF064B" +EXTERNAL_FLASH_DEVICES = "N25Q256A,SST26VF064B" LONGINT_IMPL = MPZ CIRCUITPY_SDIOIO = 1 From a1ea6331db965560ebfa06d31f4d5e50d669d1ae Mon Sep 17 00:00:00 2001 From: Ettore Atalan Date: Thu, 1 Jun 2023 20:03:33 +0000 Subject: [PATCH 6/6] Translated using Weblate (German) Currently translated at 99.5% (993 of 997 strings) Translation: CircuitPython/main Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/de/ --- locale/de_DE.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locale/de_DE.po b/locale/de_DE.po index 6bca238bd0..b4b6af060c 100644 --- a/locale/de_DE.po +++ b/locale/de_DE.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-04 12:55-0600\n" -"PO-Revision-Date: 2023-05-28 17:49+0000\n" +"PO-Revision-Date: 2023-06-02 20:48+0000\n" "Last-Translator: Ettore Atalan \n" "Language: de_DE\n" "MIME-Version: 1.0\n" @@ -2544,7 +2544,7 @@ msgstr "Die Annotation muss ein Bezeichner sein" #: extmod/ulab/code/numpy/create.c msgid "arange: cannot compute length" -msgstr "" +msgstr "arange: kann Länge nicht berechnen" #: py/modbuiltins.c msgid "arg is an empty sequence"