Skip to content

Commit ab7f506

Browse files
authored
Merge pull request #7997 from bablokb/if57_update
If57 update
2 parents 436f982 + 9f91eb4 commit ab7f506

File tree

4 files changed

+64
-5
lines changed

4 files changed

+64
-5
lines changed

ports/raspberrypi/boards/pimoroni_inky_frame_5_7/board.c

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,17 @@
3333
#include "shared-module/displayio/__init__.h"
3434
#include "shared-bindings/board/__init__.h"
3535
#include "supervisor/shared/board.h"
36+
#include "inky-shared.h"
3637

3738
#define DELAY 0x80
3839

40+
digitalio_digitalinout_obj_t enable_pin_obj;
41+
3942
// This is an SPD1656 control chip. The display is a 5.7" ACeP EInk.
4043

4144
const uint8_t display_start_sequence[] = {
4245
0x01, 4, 0x37, 0x00, 0x23, 0x23, // power setting
43-
0x00, 2, 0xef, 0x08, // panel setting (PSR)
46+
0x00, 2, 0xe3, 0x08, // panel setting (PSR, 0xe3: no rotation)
4447
0x03, 1, 0x00, // PFS
4548
0x06, 3, 0xc7, 0xc7, 0x1d, // booster
4649
0x30, 1, 0x3c, // PLL setting
@@ -62,6 +65,13 @@ const uint8_t refresh_sequence[] = {
6265
};
6366

6467
void board_init(void) {
68+
// Drive the EN_3V3 pin high so the board stays awake on battery power
69+
enable_pin_obj.base.type = &digitalio_digitalinout_type;
70+
common_hal_digitalio_digitalinout_construct(&enable_pin_obj, &pin_GPIO2);
71+
common_hal_digitalio_digitalinout_switch_to_output(&enable_pin_obj, true, DRIVE_MODE_PUSH_PULL);
72+
73+
// Never reset
74+
common_hal_digitalio_digitalinout_never_reset(&enable_pin_obj);
6575
fourwire_fourwire_obj_t *bus = &allocate_display_bus()->fourwire_bus;
6676
busio_spi_obj_t *spi = common_hal_board_create_spi(0);
6777

@@ -89,7 +99,7 @@ void board_init(void) {
8999
480, // ram_height
90100
0, // colstart
91101
0, // rowstart
92-
180, // rotation
102+
0, // rotation
93103
NO_COMMAND, // set_column_window_command
94104
NO_COMMAND, // set_row_window_command
95105
NO_COMMAND, // set_current_column_command
@@ -103,7 +113,7 @@ void board_init(void) {
103113
28.0, // refresh_time
104114
NULL, // busy_pin
105115
false, // busy_state
106-
30.0, // seconds_per_frame
116+
40.0, // seconds_per_frame
107117
false, // always_toggle_chip_select
108118
false, // grayscale
109119
true, // acep
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#ifndef PIMORONI_INKY_SHARED
2+
#define PIMORONI_INKY_SHARED
3+
4+
#include "shared-bindings/digitalio/DigitalInOut.h"
5+
6+
extern digitalio_digitalinout_obj_t enable_pin_obj;
7+
8+
#endif // PIMORONI_INKY_SHARED

ports/raspberrypi/boards/pimoroni_inky_frame_5_7/mpconfigboard.mk

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,6 @@ CFLAGS += -DCYW43_PIN_WL_HOST_WAKE=24 -DCYW43_PIN_WL_REG_ON=23 -DCYW43_WL_GPIO_C
2424
# Must be accompanied by a linker script change
2525
CFLAGS += -DCIRCUITPY_FIRMWARE_SIZE='(1536 * 1024)'
2626

27-
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
27+
FROZEN_MPY_DIRS += $(TOP)/frozen/circuitpython-pcf85063a
28+
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register
29+
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_SD

ports/raspberrypi/boards/pimoroni_inky_frame_5_7/pins.c

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,46 @@
22

33
#include "supervisor/board.h"
44
#include "shared-module/displayio/__init__.h"
5+
#include "py/objtuple.h"
6+
#include "py/qstr.h"
7+
8+
#include "inky-shared.h"
9+
10+
// for use with keypad.ShiftRegisterKeys: map keycode (bit-number)
11+
// to logical names board.KEYCODES.SW_A etc.
12+
// N.B.: labels and bit-numbers in the schematic are reversed, i.e.
13+
// SW_A on D0 has bit-number 7
14+
15+
STATIC const qstr board_keycodes_fields[] = {
16+
MP_QSTR_SW_A,
17+
MP_QSTR_SW_B,
18+
MP_QSTR_SW_C,
19+
MP_QSTR_SW_D,
20+
MP_QSTR_SW_E,
21+
MP_QSTR_RTC_ALARM,
22+
MP_QSTR_EXT_TRIGGER,
23+
MP_QSTR_INKY_BUS
24+
};
25+
26+
STATIC MP_DEFINE_ATTRTUPLE(
27+
board_keycodes_obj,
28+
board_keycodes_fields,
29+
8,
30+
MP_ROM_INT(7),
31+
MP_ROM_INT(6),
32+
MP_ROM_INT(5),
33+
MP_ROM_INT(4),
34+
MP_ROM_INT(3),
35+
MP_ROM_INT(2),
36+
MP_ROM_INT(1),
37+
MP_ROM_INT(0)
38+
);
539

640
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
741
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
842

943
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO0) },
1044
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO1) },
11-
{ MP_ROM_QSTR(MP_QSTR_HOLD_SYS_EN), MP_ROM_PTR(&pin_GPIO2) },
1245
{ MP_ROM_QSTR(MP_QSTR_I2C_INT), MP_ROM_PTR(&pin_GPIO3) },
1346

1447
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO4) },
@@ -39,6 +72,10 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
3972
{ MP_ROM_QSTR(MP_QSTR_INKY_RES), MP_ROM_PTR(&pin_GPIO27) },
4073
{ MP_ROM_QSTR(MP_QSTR_INKY_DC), MP_ROM_PTR(&pin_GPIO28) },
4174

75+
{ MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_GPIO29) },
76+
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO29) },
77+
78+
{ MP_ROM_QSTR(MP_QSTR_PICO_LED), MP_ROM_PTR(&pin_CYW0) },
4279
{ MP_ROM_QSTR(MP_QSTR_SMPS_MODE), MP_ROM_PTR(&pin_CYW1) },
4380
{ MP_ROM_QSTR(MP_QSTR_VBUS_SENSE), MP_ROM_PTR(&pin_CYW2) },
4481

@@ -48,5 +85,7 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
4885
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
4986

5087
{ MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].epaper_display)},
88+
{ MP_ROM_QSTR(MP_QSTR_ENABLE_DIO), MP_ROM_PTR(&enable_pin_obj)}, // GP2
89+
{ MP_ROM_QSTR(MP_QSTR_KEYCODES), MP_ROM_PTR(&board_keycodes_obj)},
5190
};
5291
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

0 commit comments

Comments
 (0)