From 6a6e998ea5bcfcc5ca4ca8a689720acc365b6927 Mon Sep 17 00:00:00 2001 From: sabas1080 Date: Sat, 7 Nov 2020 19:21:36 -0600 Subject: [PATCH 1/9] Added BastBLE --- ports/nrf/boards/bastble/README.md | 8 ++++ ports/nrf/boards/bastble/board.c | 41 +++++++++++++++++++ ports/nrf/boards/bastble/mpconfigboard.h | 16 ++++++++ ports/nrf/boards/bastble/mpconfigboard.mk | 12 ++++++ ports/nrf/boards/bastble/pins.c | 48 +++++++++++++++++++++++ 5 files changed, 125 insertions(+) create mode 100644 ports/nrf/boards/bastble/README.md create mode 100644 ports/nrf/boards/bastble/board.c create mode 100644 ports/nrf/boards/bastble/mpconfigboard.h create mode 100644 ports/nrf/boards/bastble/mpconfigboard.mk create mode 100644 ports/nrf/boards/bastble/pins.c diff --git a/ports/nrf/boards/bastble/README.md b/ports/nrf/boards/bastble/README.md new file mode 100644 index 0000000000000..c68464106275e --- /dev/null +++ b/ports/nrf/boards/bastble/README.md @@ -0,0 +1,8 @@ +# Electronic Cats BastBLE + +The [BastBLE](https://electroniccats.com/store/bast-ble/) based on Nordic nRF 52840 and containing +a powerful Cortex M4F. This board include a external memory QSPI flash. + + +I2C pins `board.SCL1` and `board.SDA1` are not exposed and are used for onboard peripherals. + diff --git a/ports/nrf/boards/bastble/board.c b/ports/nrf/boards/bastble/board.c new file mode 100644 index 0000000000000..d91a915f19721 --- /dev/null +++ b/ports/nrf/boards/bastble/board.c @@ -0,0 +1,41 @@ +/* + * 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 "boards/board.h" +#include "nrf.h" +#include "nrf_rtc.h" + +void board_init(void) { + +} + +bool board_requests_safe_mode(void) { + return false; +} + +void reset_board(void) { + +} diff --git a/ports/nrf/boards/bastble/mpconfigboard.h b/ports/nrf/boards/bastble/mpconfigboard.h new file mode 100644 index 0000000000000..67a62e915bd0d --- /dev/null +++ b/ports/nrf/boards/bastble/mpconfigboard.h @@ -0,0 +1,16 @@ +#include "nrfx/hal/nrf_gpio.h" + +#define MICROPY_HW_BOARD_NAME "BastBLE" +#define MICROPY_HW_MCU_NAME "nRF52840" + +#define CIRCUITPY_AUTORELOAD_DELAY_MS 500 + +#define DEFAULT_I2C_BUS_SCL (&pin_P1_10) +#define DEFAULT_I2C_BUS_SDA (&pin_P1_11) + +#define DEFAULT_SPI_BUS_SCK (&pin_P1_00) +#define DEFAULT_SPI_BUS_MOSI (&pin_P1_06) +#define DEFAULT_SPI_BUS_MISO (&pin_P0_15) + +#define DEFAULT_UART_BUS_RX (&pin_P0_09) +#define DEFAULT_UART_BUS_TX (&pin_P0_10) diff --git a/ports/nrf/boards/bastble/mpconfigboard.mk b/ports/nrf/boards/bastble/mpconfigboard.mk new file mode 100644 index 0000000000000..9441b913b7288 --- /dev/null +++ b/ports/nrf/boards/bastble/mpconfigboard.mk @@ -0,0 +1,12 @@ +USB_VID = 0x2341 +USB_PID = 0x805A +USB_PRODUCT = "BastBLE" +USB_MANUFACTURER = "ElectronicCats" + +MCU_CHIP = nrf52840 + +INTERNAL_FLASH_FILESYSTEM = 1 + +QSPI_FLASH_FILESYSTEM = 1 +EXTERNAL_FLASH_DEVICE_COUNT = 1 +EXTERNAL_FLASH_DEVICES = "GD25Q16C" diff --git a/ports/nrf/boards/bastble/pins.c b/ports/nrf/boards/bastble/pins.c new file mode 100644 index 0000000000000..6e4cc511b03db --- /dev/null +++ b/ports/nrf/boards/bastble/pins.c @@ -0,0 +1,48 @@ +#include "shared-bindings/board/__init__.h" + +STATIC const mp_rom_map_elem_t board_module_globals_table[] = { + { MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_P1_11) }, + { MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_P1_10) }, + { MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_P1_00) }, + { MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_P1_02) }, + { MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_P1_13) }, + { MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_P1_06) }, + { MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_P0_15) }, + { MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_P0_06) }, + { MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_P1_09) }, + { MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_P0_08) }, + { MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_P0_26) }, + { MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_P0_07) }, + + { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_P0_02) }, + { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_P0_28) }, + { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_P0_05) }, + { MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_P0_03) }, + + { MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_P0_30) }, + { MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_P1_11) }, + + { MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_P0_29) }, + { MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_P1_10) }, + + { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_P1_06) }, + { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_P0_15) }, + + { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_P1_00) }, + { MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_P0_24) }, + + { MP_ROM_QSTR(MP_QSTR_AREF), MP_ROM_PTR(&pin_P0_31) }, + + // voltage sense battery + { MP_ROM_QSTR(MP_QSTR_VBAT), MP_ROM_PTR(&pin_P0_26) }, + + + { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_P0_10) }, + { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_P0_09) }, + + { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, + { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, + { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, +}; + +MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table); From 78dffd8ef8d88eb88e3186f68eeb988f649a7971 Mon Sep 17 00:00:00 2001 From: Ricardo Date: Mon, 9 Nov 2020 14:17:25 -0600 Subject: [PATCH 2/9] add board on build.yml --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 404d2ea2e5391..8f098cb92e43a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -182,6 +182,7 @@ jobs: - "arduino_nano_33_iot" - "arduino_zero" - "bast_pro_mini_m0" + - "bastBLE" - "bdmicro_vina_d21" - "bdmicro_vina_d51" - "bless_dev_board_multi_sensor" From ee57bc4d8359b6f833c6a34f3cc0dceabdf51cdb Mon Sep 17 00:00:00 2001 From: Ricardo Date: Mon, 9 Nov 2020 14:25:42 -0600 Subject: [PATCH 3/9] fix name --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8f098cb92e43a..f68402be8f7e6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -182,7 +182,7 @@ jobs: - "arduino_nano_33_iot" - "arduino_zero" - "bast_pro_mini_m0" - - "bastBLE" + - "bastble" - "bdmicro_vina_d21" - "bdmicro_vina_d51" - "bless_dev_board_multi_sensor" From 7253b2eb31890d24cee10975844b8de9b4880a23 Mon Sep 17 00:00:00 2001 From: Ricardo Date: Fri, 13 Nov 2020 09:22:42 -0600 Subject: [PATCH 4/9] fix name board --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f68402be8f7e6..70fc723761882 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -182,7 +182,7 @@ jobs: - "arduino_nano_33_iot" - "arduino_zero" - "bast_pro_mini_m0" - - "bastble" + - "bastble" - "bdmicro_vina_d21" - "bdmicro_vina_d51" - "bless_dev_board_multi_sensor" From 089fa82067549b97990eaf0d61c073b852cf7636 Mon Sep 17 00:00:00 2001 From: sabas1080 Date: Mon, 16 Nov 2020 21:21:24 -0600 Subject: [PATCH 5/9] Fix pre-commit --- ports/nrf/boards/bastble/README.md | 6 +----- ports/nrf/boards/bastble/board.c | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/ports/nrf/boards/bastble/README.md b/ports/nrf/boards/bastble/README.md index c68464106275e..0af6209bdb2df 100644 --- a/ports/nrf/boards/bastble/README.md +++ b/ports/nrf/boards/bastble/README.md @@ -1,8 +1,4 @@ # Electronic Cats BastBLE The [BastBLE](https://electroniccats.com/store/bast-ble/) based on Nordic nRF 52840 and containing -a powerful Cortex M4F. This board include a external memory QSPI flash. - - -I2C pins `board.SCL1` and `board.SDA1` are not exposed and are used for onboard peripherals. - +a powerful Cortex M4F. This board include a external memory QSPI flash. diff --git a/ports/nrf/boards/bastble/board.c b/ports/nrf/boards/bastble/board.c index d91a915f19721..7c42cee57da98 100644 --- a/ports/nrf/boards/bastble/board.c +++ b/ports/nrf/boards/bastble/board.c @@ -29,7 +29,7 @@ #include "nrf_rtc.h" void board_init(void) { - + } bool board_requests_safe_mode(void) { From 33ca357094b58f136c3d9bdf30b73d297302cbbc Mon Sep 17 00:00:00 2001 From: sabas1080 Date: Mon, 16 Nov 2020 22:10:37 -0600 Subject: [PATCH 6/9] fix VID and PID --- ports/nrf/boards/bastble/mpconfigboard.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/nrf/boards/bastble/mpconfigboard.mk b/ports/nrf/boards/bastble/mpconfigboard.mk index 9441b913b7288..0e01c4d0f36e7 100644 --- a/ports/nrf/boards/bastble/mpconfigboard.mk +++ b/ports/nrf/boards/bastble/mpconfigboard.mk @@ -1,4 +1,4 @@ -USB_VID = 0x2341 +USB_VID = 0x1209 USB_PID = 0x805A USB_PRODUCT = "BastBLE" USB_MANUFACTURER = "ElectronicCats" From 88b1e2fe61d68c4a4d2ef9e48147c20a929e779e Mon Sep 17 00:00:00 2001 From: sabas1080 Date: Sun, 20 Dec 2020 13:35:15 -0600 Subject: [PATCH 7/9] remove Internal flash unnecessary --- ports/nrf/boards/bastble/mpconfigboard.mk | 2 -- ports/nrf/boards/bastble/pins.c | 1 - 2 files changed, 3 deletions(-) diff --git a/ports/nrf/boards/bastble/mpconfigboard.mk b/ports/nrf/boards/bastble/mpconfigboard.mk index 0e01c4d0f36e7..eca900de775fa 100644 --- a/ports/nrf/boards/bastble/mpconfigboard.mk +++ b/ports/nrf/boards/bastble/mpconfigboard.mk @@ -5,8 +5,6 @@ USB_MANUFACTURER = "ElectronicCats" MCU_CHIP = nrf52840 -INTERNAL_FLASH_FILESYSTEM = 1 - QSPI_FLASH_FILESYSTEM = 1 EXTERNAL_FLASH_DEVICE_COUNT = 1 EXTERNAL_FLASH_DEVICES = "GD25Q16C" diff --git a/ports/nrf/boards/bastble/pins.c b/ports/nrf/boards/bastble/pins.c index 6e4cc511b03db..b35dad43de946 100644 --- a/ports/nrf/boards/bastble/pins.c +++ b/ports/nrf/boards/bastble/pins.c @@ -36,7 +36,6 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { // voltage sense battery { MP_ROM_QSTR(MP_QSTR_VBAT), MP_ROM_PTR(&pin_P0_26) }, - { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_P0_10) }, { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_P0_09) }, From bd3c5c33fb0d49f420410e3a949a093d235db81c Mon Sep 17 00:00:00 2001 From: sabas1080 Date: Sun, 20 Dec 2020 14:57:10 -0600 Subject: [PATCH 8/9] define QSPI pinout --- ports/nrf/boards/bastble/mpconfigboard.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ports/nrf/boards/bastble/mpconfigboard.h b/ports/nrf/boards/bastble/mpconfigboard.h index 67a62e915bd0d..e36227c6bc20d 100644 --- a/ports/nrf/boards/bastble/mpconfigboard.h +++ b/ports/nrf/boards/bastble/mpconfigboard.h @@ -5,6 +5,15 @@ #define CIRCUITPY_AUTORELOAD_DELAY_MS 500 +#if QSPI_FLASH_FILESYSTEM +#define MICROPY_QSPI_DATA0 NRF_GPIO_PIN_MAP(0, 30) +#define MICROPY_QSPI_DATA1 NRF_GPIO_PIN_MAP(0, 29) +#define MICROPY_QSPI_DATA2 NRF_GPIO_PIN_MAP(0, 28) +#define MICROPY_QSPI_DATA3 NRF_GPIO_PIN_MAP(0, 2) +#define MICROPY_QSPI_SCK NRF_GPIO_PIN_MAP(0, 3) +#define MICROPY_QSPI_CS NRF_GPIO_PIN_MAP(0, 26) +#endif + #define DEFAULT_I2C_BUS_SCL (&pin_P1_10) #define DEFAULT_I2C_BUS_SDA (&pin_P1_11) From d24a5d62700252a49152ed2bc6af0b9b3025344e Mon Sep 17 00:00:00 2001 From: sabas1080 Date: Sun, 20 Dec 2020 15:52:19 -0600 Subject: [PATCH 9/9] update path board.h --- ports/nrf/boards/bastble/board.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/nrf/boards/bastble/board.c b/ports/nrf/boards/bastble/board.c index 7c42cee57da98..b6fb04f06c48d 100644 --- a/ports/nrf/boards/bastble/board.c +++ b/ports/nrf/boards/bastble/board.c @@ -24,7 +24,7 @@ * THE SOFTWARE. */ -#include "boards/board.h" +#include "supervisor/board.h" #include "nrf.h" #include "nrf_rtc.h"