Skip to content

Commit ad6e8ea

Browse files
authored
Merge pull request #2548 from dhalbert/cpb-reset-neopixels
reset NeoPixels on soft reload on CPB, pybadge, and pygamer boards
2 parents 1831f51 + 6f13979 commit ad6e8ea

File tree

20 files changed

+133
-36
lines changed

20 files changed

+133
-36
lines changed

ports/atmel-samd/boards/circuitplayground_express/board.c

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,8 @@
2828

2929
#include "boards/board.h"
3030
#include "common-hal/microcontroller/Pin.h"
31+
#include "supervisor/shared/board.h"
3132
#include "hal/include/hal_gpio.h"
32-
#include "shared-bindings/digitalio/DigitalInOut.h"
33-
#include "shared-bindings/neopixel_write/__init__.h"
3433

3534
void board_init(void)
3635
{
@@ -54,12 +53,5 @@ bool board_requests_safe_mode(void) {
5453
}
5554

5655
void reset_board(void) {
57-
uint8_t empty[30];
58-
memset(empty, 0, 30);
59-
digitalio_digitalinout_obj_t neopixel_pin;
60-
common_hal_digitalio_digitalinout_construct(&neopixel_pin, &pin_PB23);
61-
common_hal_digitalio_digitalinout_switch_to_output(&neopixel_pin, false,
62-
DRIVE_MODE_PUSH_PULL);
63-
common_hal_neopixel_write(&neopixel_pin, empty, 30);
64-
common_hal_digitalio_digitalinout_deinit(&neopixel_pin);
56+
board_reset_user_neopixels();
6557
}

ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
// Increase stack size slightly due to CPX library import nesting
3131
#define CIRCUITPY_DEFAULT_STACK_SIZE (4760) //divisible by 8
3232

33+
#define USER_NEOPIXELS_PIN (&pin_PB23)
34+
3335
#define DEFAULT_I2C_BUS_SCL (&pin_PB03)
3436
#define DEFAULT_I2C_BUS_SDA (&pin_PB02)
3537

ports/atmel-samd/boards/circuitplayground_express_crickit/board.c

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@
2929
#include "boards/board.h"
3030
#include "common-hal/microcontroller/Pin.h"
3131
#include "hal/include/hal_gpio.h"
32-
#include "shared-bindings/digitalio/DigitalInOut.h"
33-
#include "shared-bindings/neopixel_write/__init__.h"
32+
#include "supervisor/shared/board.h"
3433

3534
void board_init(void)
3635
{
@@ -54,12 +53,5 @@ bool board_requests_safe_mode(void) {
5453
}
5554

5655
void reset_board(void) {
57-
uint8_t empty[30];
58-
memset(empty, 0, 30);
59-
digitalio_digitalinout_obj_t neopixel_pin;
60-
common_hal_digitalio_digitalinout_construct(&neopixel_pin, &pin_PB23);
61-
common_hal_digitalio_digitalinout_switch_to_output(&neopixel_pin, false,
62-
DRIVE_MODE_PUSH_PULL);
63-
common_hal_neopixel_write(&neopixel_pin, empty, 30);
64-
common_hal_digitalio_digitalinout_deinit(&neopixel_pin);
56+
board_reset_user_neopixels();
6557
}

ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424

2525
#define CALIBRATE_CRYSTALLESS 1
2626

27+
#define USER_NEOPIXELS_PIN (&pin_PB23)
28+
2729
// Explanation of how a user got into safe mode.
2830
#define BOARD_USER_SAFE_MODE_ACTION "pressing both buttons at start up"
2931

ports/atmel-samd/boards/circuitplayground_express_displayio/board.c

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@
2929
#include "boards/board.h"
3030
#include "common-hal/microcontroller/Pin.h"
3131
#include "hal/include/hal_gpio.h"
32-
#include "shared-bindings/digitalio/DigitalInOut.h"
33-
#include "shared-bindings/neopixel_write/__init__.h"
32+
#include "supervisor/shared/board.h"
3433

3534
void board_init(void)
3635
{
@@ -54,12 +53,5 @@ bool board_requests_safe_mode(void) {
5453
}
5554

5655
void reset_board(void) {
57-
uint8_t empty[30];
58-
memset(empty, 0, 30);
59-
digitalio_digitalinout_obj_t neopixel_pin;
60-
common_hal_digitalio_digitalinout_construct(&neopixel_pin, &pin_PB23);
61-
common_hal_digitalio_digitalinout_switch_to_output(&neopixel_pin, false,
62-
DRIVE_MODE_PUSH_PULL);
63-
common_hal_neopixel_write(&neopixel_pin, empty, 30);
64-
common_hal_digitalio_digitalinout_deinit(&neopixel_pin);
56+
board_reset_user_neopixels();
6557
}

ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
// Increase stack size slightly due to CPX library import nesting.
3131
#define CIRCUITPY_DEFAULT_STACK_SIZE (4760) // divisible by 8
3232

33+
#define USER_NEOPIXELS_PIN (&pin_PB23)
34+
3335
#define DEFAULT_I2C_BUS_SCL (&pin_PB03)
3436
#define DEFAULT_I2C_BUS_SDA (&pin_PB02)
3537

ports/atmel-samd/boards/pybadge/board.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#include "shared-bindings/displayio/FourWire.h"
3232
#include "shared-module/displayio/__init__.h"
3333
#include "shared-module/displayio/mipi_constants.h"
34+
#include "supervisor/shared/board.h"
3435
#include "tick.h"
3536

3637
displayio_fourwire_obj_t board_display_obj;
@@ -118,4 +119,5 @@ bool board_requests_safe_mode(void) {
118119
}
119120

120121
void reset_board(void) {
122+
board_reset_user_neopixels();
121123
}

ports/atmel-samd/boards/pybadge/mpconfigboard.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
#define MICROPY_PORT_C (0)
1515
#define MICROPY_PORT_D (0)
1616

17+
#define USER_NEOPIXELS_PIN (&pin_PA15)
18+
1719
#define DEFAULT_I2C_BUS_SCL (&pin_PA13)
1820
#define DEFAULT_I2C_BUS_SDA (&pin_PA12)
1921

ports/atmel-samd/boards/pybadge_airlift/board.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#include "shared-bindings/displayio/FourWire.h"
3232
#include "shared-module/displayio/__init__.h"
3333
#include "shared-module/displayio/mipi_constants.h"
34+
#include "supervisor/shared/board.h"
3435
#include "tick.h"
3536

3637
displayio_fourwire_obj_t board_display_obj;
@@ -96,4 +97,5 @@ bool board_requests_safe_mode(void) {
9697
}
9798

9899
void reset_board(void) {
100+
board_reset_user_neopixels();
99101
}

ports/atmel-samd/boards/pybadge_airlift/mpconfigboard.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
#define MICROPY_PORT_C (0)
1515
#define MICROPY_PORT_D (0)
1616

17+
#define USER_NEOPIXELS_PIN (&pin_PA15)
18+
1719
#define DEFAULT_I2C_BUS_SCL (&pin_PA13)
1820
#define DEFAULT_I2C_BUS_SDA (&pin_PA12)
1921

0 commit comments

Comments
 (0)