Skip to content

Commit 976f3af

Browse files
committed
board.c updates
1 parent bb49868 commit 976f3af

File tree

1 file changed

+23
-3
lines changed
  • ports/espressif/boards/elecrow_crowpanel_4_2_epaper

1 file changed

+23
-3
lines changed

ports/espressif/boards/elecrow_crowpanel_4_2_epaper/board.c

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,15 @@ uint8_t refresh_sequence[] = {
3636
};
3737

3838
void board_init(void) {
39+
40+
// Pull EPD Enable pin high
41+
digitalio_digitalinout_obj_t vext_pin_obj;
42+
vext_pin_obj.base.type = &digitalio_digitalinout_type;
43+
common_hal_digitalio_digitalinout_construct(&vext_pin_obj, &pin_GPIO7);
44+
common_hal_digitalio_digitalinout_switch_to_output(&vext_pin_obj, true, DRIVE_MODE_PUSH_PULL);
45+
common_hal_digitalio_digitalinout_never_reset(&vext_pin_obj);
46+
47+
// Set up SPI bus
3948
fourwire_fourwire_obj_t *bus = &allocate_display_bus()->fourwire_bus;
4049
busio_spi_obj_t *spi = &bus->inline_bus;
4150
common_hal_busio_spi_construct(spi, &pin_GPIO12, &pin_GPIO11, NULL, false);
@@ -51,6 +60,7 @@ void board_init(void) {
5160
0, // Polarity
5261
0); // Phase
5362

63+
// Set up EPD object
5464
epaperdisplay_epaperdisplay_obj_t *display = &allocate_display()->epaper_display;
5565
display->base.type = &epaperdisplay_epaperdisplay_type;
5666
common_hal_epaperdisplay_epaperdisplay_construct(display,
@@ -62,11 +72,11 @@ void board_init(void) {
6272
sizeof(stop_sequence),
6373
400, // width
6474
300, // height
65-
400, // RAM width
66-
300, // RAM height
75+
300, // RAM width
76+
400, // RAM height
6777
0, // colstart
6878
0, // rowstart
69-
0, // rotation
79+
90, // rotation
7080
NO_COMMAND, // set_column_window_command
7181
NO_COMMAND, // set_row_window_command
7282
NO_COMMAND, // set_current_column_command
@@ -89,4 +99,14 @@ void board_init(void) {
8999
false); // address_little_endian
90100
}
91101

102+
void board_deinit(void) {
103+
epaperdisplay_epaperdisplay_obj_t *display = &displays[0].epaper_display;
104+
if (display->base.type == &epaperdisplay_epaperdisplay_type) {
105+
while (common_hal_epaperdisplay_epaperdisplay_get_busy(display)) {
106+
RUN_BACKGROUND_TASKS;
107+
}
108+
}
109+
common_hal_displayio_release_displays();
110+
}
111+
92112
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.

0 commit comments

Comments
 (0)