Skip to content

Commit 276d425

Browse files
authored
Merge pull request adafruit#5302 from maholli/pycubed_v05c
updating pycubed firmware for mainboardv05
2 parents 48866dd + f16a475 commit 276d425

File tree

12 files changed

+374
-3
lines changed

12 files changed

+374
-3
lines changed

main.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,11 @@
107107
#include "shared-bindings/wifi/__init__.h"
108108
#endif
109109

110+
#if CIRCUITPY_BOOT_COUNTER
111+
#include "shared-bindings/nvm/ByteArray.h"
112+
uint8_t value_out = 0;
113+
#endif
114+
110115
#if MICROPY_ENABLE_PYSTACK
111116
static size_t PLACE_IN_DTCM_BSS(_pystack[CIRCUITPY_PYSTACK_SIZE / sizeof(size_t)]);
112117
#endif
@@ -796,6 +801,13 @@ int __attribute__((used)) main(void) {
796801
// Turn on RX and TX LEDs if we have them.
797802
init_rxtx_leds();
798803

804+
#if CIRCUITPY_BOOT_COUNTER
805+
// Increment counter before possibly entering safe mode
806+
common_hal_nvm_bytearray_get_bytes(&common_hal_mcu_nvm_obj,0,1,&value_out);
807+
++value_out;
808+
common_hal_nvm_bytearray_set_bytes(&common_hal_mcu_nvm_obj,0,&value_out,1);
809+
#endif
810+
799811
// Wait briefly to give a reset window where we'll enter safe mode after the reset.
800812
if (safe_mode == NO_SAFE_MODE) {
801813
safe_mode = wait_for_safe_mode_reset();
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* This file is part of the MicroPython project, http://micropython.org/
3+
*
4+
* The MIT License (MIT)
5+
*
6+
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
7+
*
8+
* Permission is hereby granted, free of charge, to any person obtaining a copy
9+
* of this software and associated documentation files (the "Software"), to deal
10+
* in the Software without restriction, including without limitation the rights
11+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12+
* copies of the Software, and to permit persons to whom the Software is
13+
* furnished to do so, subject to the following conditions:
14+
*
15+
* The above copyright notice and this permission notice shall be included in
16+
* all copies or substantial portions of the Software.
17+
*
18+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24+
* THE SOFTWARE.
25+
*/
26+
27+
#include "supervisor/board.h"
28+
#include "mpconfigboard.h"
29+
#include "common-hal/microcontroller/Pin.h"
30+
#include "hal/include/hal_gpio.h"
31+
#include "shared-bindings/pwmio/PWMOut.h"
32+
33+
void board_init(void) {
34+
pwmio_pwmout_obj_t pwm;
35+
common_hal_pwmio_pwmout_construct(&pwm, &pin_PA23, 4096, 2, false);
36+
common_hal_pwmio_pwmout_never_reset(&pwm);
37+
}
38+
39+
bool board_requests_safe_mode(void) {
40+
return false;
41+
}
42+
43+
void reset_board(void) {
44+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
2+
#define MICROPY_HW_BOARD_NAME "PyCubedv05-MRAM"
3+
#define MICROPY_HW_MCU_NAME "samd51j19"
4+
#define CIRCUITPY_MCU_FAMILY samd51
5+
6+
#define MICROPY_HW_NEOPIXEL (&pin_PA21)
7+
8+
// External flash MR2xH40 MRAM
9+
#define EXTERNAL_FLASH_QSPI_SINGLE
10+
#define EXTERNAL_FLASH_NO_JEDEC
11+
12+
#define AUTORESET_DELAY_MS 500
13+
14+
#define CIRCUITPY_INTERNAL_NVM_SIZE 8192
15+
16+
#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE)
17+
18+
#define CIRCUITPY_DRIVE_LABEL "PYCUBED"
19+
#define CIRCUITPY_BOOT_COUNTER 1
20+
21+
#define BOARD_HAS_CRYSTAL 1
22+
23+
#define DEFAULT_I2C_BUS_SCL (&pin_PB13)
24+
#define DEFAULT_I2C_BUS_SDA (&pin_PB12)
25+
26+
#define DEFAULT_SPI_BUS_SCK (&pin_PA13)
27+
#define DEFAULT_SPI_BUS_MOSI (&pin_PA12)
28+
#define DEFAULT_SPI_BUS_MISO (&pin_PA14)
29+
30+
#define DEFAULT_UART_BUS_TX (&pin_PB02)
31+
#define DEFAULT_UART_BUS_RX (&pin_PB03)
32+
33+
#define IGNORE_PIN_PA24 1
34+
#define IGNORE_PIN_PA25 1
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
USB_VID = 0x04D8
2+
USB_PID = 0xEC44
3+
USB_PRODUCT = "PyCubed"
4+
USB_MANUFACTURER = "maholli"
5+
6+
CHIP_VARIANT = SAMD51J19A
7+
CHIP_FAMILY = samd51
8+
9+
QSPI_FLASH_FILESYSTEM = 1
10+
EXTERNAL_FLASH_DEVICES = MR2xH40
11+
LONGINT_IMPL = MPZ
12+
13+
CIRCUITPY_ULAB = 1
14+
CIRCUITPY_BINASCII = 1
15+
CIRCUITPY_SDCARDIO = 1
16+
CIRCUITPY_JSON = 1
17+
CIRCUITPY_MSGPACK = 1
18+
19+
# no SAMD51 support... yet ;)
20+
# CIRCUITPY_ALARM = 1
21+
# CIRCUITPY_DUALBANK=1
22+
23+
# Not needed
24+
CIRCUITPY_AUDIOBUSIO = 0
25+
CIRCUITPY_DISPLAYIO = 0
26+
CIRCUITPY_FRAMEBUFFERIO = 0
27+
CIRCUITPY_KEYPAD = 0
28+
CIRCUITPY_RGBMATRIX = 0
29+
CIRCUITPY_PS2IO = 0
30+
CIRCUITPY_BLEIO_HCI=0
31+
CIRCUITPY_BLEIO=0
32+
33+
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
34+
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#include "shared-bindings/board/__init__.h"
2+
#include "supervisor/board.h"
3+
4+
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
5+
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
6+
7+
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA13) },
8+
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA12) },
9+
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA14) },
10+
{ MP_ROM_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_PA27) },
11+
12+
{ MP_ROM_QSTR(MP_QSTR_RELAY_A), MP_ROM_PTR(&pin_PB15) },
13+
{ MP_ROM_QSTR(MP_QSTR_BURN1), MP_ROM_PTR(&pin_PB31) },
14+
{ MP_ROM_QSTR(MP_QSTR_BURN2), MP_ROM_PTR(&pin_PA15) },
15+
16+
{ MP_ROM_QSTR(MP_QSTR_DAC0), MP_ROM_PTR(&pin_PA02) },
17+
{ MP_ROM_QSTR(MP_QSTR_EN_RF), MP_ROM_PTR(&pin_PA04) },
18+
{ MP_ROM_QSTR(MP_QSTR_AIN5), MP_ROM_PTR(&pin_PA05) },
19+
{ MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_PA06) },
20+
{ MP_ROM_QSTR(MP_QSTR_L1PROG), MP_ROM_PTR(&pin_PA07) },
21+
22+
{ MP_ROM_QSTR(MP_QSTR_CHRG), MP_ROM_PTR(&pin_PB08) },
23+
{ MP_ROM_QSTR(MP_QSTR_PA16), MP_ROM_PTR(&pin_PA16) },
24+
{ MP_ROM_QSTR(MP_QSTR_PA17), MP_ROM_PTR(&pin_PA17) },
25+
{ MP_ROM_QSTR(MP_QSTR_VBUS_RST), MP_ROM_PTR(&pin_PA18) },
26+
{ MP_ROM_QSTR(MP_QSTR_PA19), MP_ROM_PTR(&pin_PA19) },
27+
{ MP_ROM_QSTR(MP_QSTR_PA20), MP_ROM_PTR(&pin_PA20) },
28+
{ MP_ROM_QSTR(MP_QSTR_PA22), MP_ROM_PTR(&pin_PA22) },
29+
{ MP_ROM_QSTR(MP_QSTR_PB16), MP_ROM_PTR(&pin_PB16) },
30+
{ MP_ROM_QSTR(MP_QSTR_PB17), MP_ROM_PTR(&pin_PB17) },
31+
{ MP_ROM_QSTR(MP_QSTR_PB22), MP_ROM_PTR(&pin_PB22) },
32+
{ MP_ROM_QSTR(MP_QSTR_PB23), MP_ROM_PTR(&pin_PB23) },
33+
34+
{ MP_ROM_QSTR(MP_QSTR_RF1_RST), MP_ROM_PTR(&pin_PB00) },
35+
{ MP_ROM_QSTR(MP_QSTR_RF1_CS), MP_ROM_PTR(&pin_PB30) },
36+
{ MP_ROM_QSTR(MP_QSTR_RF1_IO4), MP_ROM_PTR(&pin_PB04) },
37+
{ MP_ROM_QSTR(MP_QSTR_RF1_IO0), MP_ROM_PTR(&pin_PB05) },
38+
39+
{ MP_ROM_QSTR(MP_QSTR_RF2_IO0), MP_ROM_PTR(&pin_PB06) },
40+
{ MP_ROM_QSTR(MP_QSTR_RF2_IO4), MP_ROM_PTR(&pin_PB07) },
41+
{ MP_ROM_QSTR(MP_QSTR_RF2_CS), MP_ROM_PTR(&pin_PB09) },
42+
{ MP_ROM_QSTR(MP_QSTR_RF2_RST), MP_ROM_PTR(&pin_PB14) },
43+
44+
{ MP_ROM_QSTR(MP_QSTR_EN_GPS), MP_ROM_PTR(&pin_PB01) },
45+
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB02) },
46+
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB03) },
47+
{ MP_ROM_QSTR(MP_QSTR_TX2), MP_ROM_PTR(&pin_PA17) },
48+
{ MP_ROM_QSTR(MP_QSTR_RX2), MP_ROM_PTR(&pin_PA16) },
49+
50+
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PB12) },
51+
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PB13) },
52+
{ MP_ROM_QSTR(MP_QSTR_SCL2), MP_ROM_PTR(&pin_PA16) },
53+
{ MP_ROM_QSTR(MP_QSTR_SDA2), MP_ROM_PTR(&pin_PA17) },
54+
55+
{ MP_ROM_QSTR(MP_QSTR_WDT_WDI), MP_ROM_PTR(&pin_PA23) },
56+
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA21) },
57+
58+
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
59+
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
60+
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
61+
62+
};
63+
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* This file is part of the MicroPython project, http://micropython.org/
3+
*
4+
* The MIT License (MIT)
5+
*
6+
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
7+
*
8+
* Permission is hereby granted, free of charge, to any person obtaining a copy
9+
* of this software and associated documentation files (the "Software"), to deal
10+
* in the Software without restriction, including without limitation the rights
11+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12+
* copies of the Software, and to permit persons to whom the Software is
13+
* furnished to do so, subject to the following conditions:
14+
*
15+
* The above copyright notice and this permission notice shall be included in
16+
* all copies or substantial portions of the Software.
17+
*
18+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24+
* THE SOFTWARE.
25+
*/
26+
27+
#include "supervisor/board.h"
28+
#include "mpconfigboard.h"
29+
#include "common-hal/microcontroller/Pin.h"
30+
#include "hal/include/hal_gpio.h"
31+
#include "shared-bindings/pwmio/PWMOut.h"
32+
33+
void board_init(void) {
34+
pwmio_pwmout_obj_t pwm;
35+
common_hal_pwmio_pwmout_construct(&pwm, &pin_PA23, 4096, 2, false);
36+
common_hal_pwmio_pwmout_never_reset(&pwm);
37+
}
38+
39+
bool board_requests_safe_mode(void) {
40+
return false;
41+
}
42+
43+
void reset_board(void) {
44+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
2+
#define MICROPY_HW_BOARD_NAME "PyCubedv05"
3+
#define MICROPY_HW_MCU_NAME "samd51j19"
4+
#define CIRCUITPY_MCU_FAMILY samd51
5+
6+
#define MICROPY_HW_NEOPIXEL (&pin_PA21)
7+
8+
#define AUTORESET_DELAY_MS 500
9+
10+
#define CIRCUITPY_INTERNAL_NVM_SIZE 8192
11+
12+
#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE)
13+
14+
// External flash W25Q80DV
15+
#define EXTERNAL_FLASH_QSPI_DUAL
16+
17+
#define CIRCUITPY_DRIVE_LABEL "PYCUBED"
18+
#define CIRCUITPY_BOOT_COUNTER 1
19+
20+
#define BOARD_HAS_CRYSTAL 1
21+
22+
#define DEFAULT_I2C_BUS_SCL (&pin_PB13)
23+
#define DEFAULT_I2C_BUS_SDA (&pin_PB12)
24+
25+
#define DEFAULT_SPI_BUS_SCK (&pin_PA13)
26+
#define DEFAULT_SPI_BUS_MOSI (&pin_PA12)
27+
#define DEFAULT_SPI_BUS_MISO (&pin_PA14)
28+
29+
#define DEFAULT_UART_BUS_TX (&pin_PB02)
30+
#define DEFAULT_UART_BUS_RX (&pin_PB03)
31+
32+
#define IGNORE_PIN_PA24 1
33+
#define IGNORE_PIN_PA25 1
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
USB_VID = 0x04D8
2+
USB_PID = 0xEC44
3+
USB_PRODUCT = "PyCubed"
4+
USB_MANUFACTURER = "maholli"
5+
6+
CHIP_VARIANT = SAMD51J19A
7+
CHIP_FAMILY = samd51
8+
9+
QSPI_FLASH_FILESYSTEM = 1
10+
EXTERNAL_FLASH_DEVICE_COUNT = 1
11+
EXTERNAL_FLASH_DEVICES = W25Q80DV
12+
LONGINT_IMPL = MPZ
13+
14+
CIRCUITPY_ULAB = 1
15+
CIRCUITPY_BINASCII = 1
16+
CIRCUITPY_SDCARDIO = 1
17+
CIRCUITPY_JSON = 1
18+
CIRCUITPY_MSGPACK = 1
19+
20+
# no SAMD51 support... yet ;)
21+
# CIRCUITPY_ALARM = 1
22+
# CIRCUITPY_DUALBANK=1
23+
24+
# Not needed
25+
CIRCUITPY_AUDIOBUSIO = 0
26+
CIRCUITPY_DISPLAYIO = 0
27+
CIRCUITPY_FRAMEBUFFERIO = 0
28+
CIRCUITPY_KEYPAD = 0
29+
CIRCUITPY_RGBMATRIX = 0
30+
CIRCUITPY_PS2IO = 0
31+
CIRCUITPY_BLEIO_HCI=0
32+
CIRCUITPY_BLEIO=0
33+
34+
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
35+
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#include "shared-bindings/board/__init__.h"
2+
3+
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
4+
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
5+
6+
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA13) },
7+
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA12) },
8+
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA14) },
9+
{ MP_ROM_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_PA27) },
10+
11+
{ MP_ROM_QSTR(MP_QSTR_RELAY_A), MP_ROM_PTR(&pin_PB15) },
12+
{ MP_ROM_QSTR(MP_QSTR_BURN1), MP_ROM_PTR(&pin_PB31) },
13+
{ MP_ROM_QSTR(MP_QSTR_BURN2), MP_ROM_PTR(&pin_PA15) },
14+
15+
{ MP_ROM_QSTR(MP_QSTR_DAC0), MP_ROM_PTR(&pin_PA02) },
16+
{ MP_ROM_QSTR(MP_QSTR_EN_RF), MP_ROM_PTR(&pin_PA04) },
17+
{ MP_ROM_QSTR(MP_QSTR_AIN5), MP_ROM_PTR(&pin_PA05) },
18+
{ MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_PA06) },
19+
{ MP_ROM_QSTR(MP_QSTR_L1PROG), MP_ROM_PTR(&pin_PA07) },
20+
21+
{ MP_ROM_QSTR(MP_QSTR_CHRG), MP_ROM_PTR(&pin_PB08) },
22+
{ MP_ROM_QSTR(MP_QSTR_PA16), MP_ROM_PTR(&pin_PA16) },
23+
{ MP_ROM_QSTR(MP_QSTR_PA17), MP_ROM_PTR(&pin_PA17) },
24+
{ MP_ROM_QSTR(MP_QSTR_VBUS_RST), MP_ROM_PTR(&pin_PA18) },
25+
{ MP_ROM_QSTR(MP_QSTR_PA19), MP_ROM_PTR(&pin_PA19) },
26+
{ MP_ROM_QSTR(MP_QSTR_PA20), MP_ROM_PTR(&pin_PA20) },
27+
{ MP_ROM_QSTR(MP_QSTR_PA22), MP_ROM_PTR(&pin_PA22) },
28+
{ MP_ROM_QSTR(MP_QSTR_PB16), MP_ROM_PTR(&pin_PB16) },
29+
{ MP_ROM_QSTR(MP_QSTR_PB17), MP_ROM_PTR(&pin_PB17) },
30+
{ MP_ROM_QSTR(MP_QSTR_PB22), MP_ROM_PTR(&pin_PB22) },
31+
{ MP_ROM_QSTR(MP_QSTR_PB23), MP_ROM_PTR(&pin_PB23) },
32+
33+
{ MP_ROM_QSTR(MP_QSTR_RF1_RST), MP_ROM_PTR(&pin_PB00) },
34+
{ MP_ROM_QSTR(MP_QSTR_RF1_CS), MP_ROM_PTR(&pin_PB30) },
35+
{ MP_ROM_QSTR(MP_QSTR_RF1_IO4), MP_ROM_PTR(&pin_PB04) },
36+
{ MP_ROM_QSTR(MP_QSTR_RF1_IO0), MP_ROM_PTR(&pin_PB05) },
37+
38+
{ MP_ROM_QSTR(MP_QSTR_RF2_IO0), MP_ROM_PTR(&pin_PB06) },
39+
{ MP_ROM_QSTR(MP_QSTR_RF2_IO4), MP_ROM_PTR(&pin_PB07) },
40+
{ MP_ROM_QSTR(MP_QSTR_RF2_CS), MP_ROM_PTR(&pin_PB09) },
41+
{ MP_ROM_QSTR(MP_QSTR_RF2_RST), MP_ROM_PTR(&pin_PB14) },
42+
43+
{ MP_ROM_QSTR(MP_QSTR_EN_GPS), MP_ROM_PTR(&pin_PB01) },
44+
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB02) },
45+
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB03) },
46+
{ MP_ROM_QSTR(MP_QSTR_TX2), MP_ROM_PTR(&pin_PA17) },
47+
{ MP_ROM_QSTR(MP_QSTR_RX2), MP_ROM_PTR(&pin_PA16) },
48+
49+
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PB12) },
50+
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PB13) },
51+
{ MP_ROM_QSTR(MP_QSTR_SCL2), MP_ROM_PTR(&pin_PA16) },
52+
{ MP_ROM_QSTR(MP_QSTR_SDA2), MP_ROM_PTR(&pin_PA17) },
53+
54+
{ MP_ROM_QSTR(MP_QSTR_WDT_WDI), MP_ROM_PTR(&pin_PA23) },
55+
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA21) },
56+
57+
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
58+
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
59+
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
60+
61+
};
62+
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

py/circuitpy_mpconfig.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,6 +554,14 @@ void supervisor_run_background_tasks_if_tick(void);
554554

555555
#define CIRCUITPY_BOOT_OUTPUT_FILE "/boot_out.txt"
556556

557+
#ifndef CIRCUITPY_BOOT_COUNTER
558+
#define CIRCUITPY_BOOT_COUNTER 0
559+
#endif
560+
561+
#if !defined(CIRCUITPY_INTERNAL_NVM_SIZE) && CIRCUITPY_BOOT_COUNTER != 0
562+
#error "boot counter requires CIRCUITPY_NVM enabled"
563+
#endif
564+
557565
#define CIRCUITPY_VERBOSE_BLE 0
558566

559567
// This trades ~1k flash space (1) for that much in RAM plus the cost to compute

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy