From 32c10482d9c6f7ce8f08a878745f4f57c4b62092 Mon Sep 17 00:00:00 2001 From: Connor Linfoot Date: Wed, 17 Apr 2024 13:41:02 +0100 Subject: [PATCH] Add support for 96x48 display to Interstate75 (#867) * Add DISPLAY_INTERSTATE75_96X48 --- micropython/modules/picographics/README.md | 1 + micropython/modules/picographics/picographics.c | 1 + micropython/modules/picographics/picographics.cpp | 8 ++++++++ micropython/modules/picographics/picographics.h | 1 + micropython/modules_py/interstate75.md | 1 + micropython/modules_py/interstate75.py | 3 ++- 6 files changed, 14 insertions(+), 1 deletion(-) diff --git a/micropython/modules/picographics/README.md b/micropython/modules/picographics/README.md index 0ed64688..26ebac51 100644 --- a/micropython/modules/picographics/README.md +++ b/micropython/modules/picographics/README.md @@ -84,6 +84,7 @@ The available display settings are listed here: * 32 x 32 Matrix - `DISPLAY_INTERSTATE75_32X32` * 64 x 32 Matrix - `DISPLAY_INTERSTATE75_64X32` * 96 x 32 Matrix - `DISPLAY_INTERSTATE75_96X32` +* 96 x 48 Matrix - `DISPLAY_INTERSTATE75_96X48` * 128 x 32 Matrix - `DISPLAY_INTERSTATE75_128X32` * 64 x 64 Matrix - `DISPLAY_INTERSTATE75_64X64` * 128 x 64 Matrix - `DISPLAY_INTERSTATE75_128X64` diff --git a/micropython/modules/picographics/picographics.c b/micropython/modules/picographics/picographics.c index 01c58763..ce1db0ef 100644 --- a/micropython/modules/picographics/picographics.c +++ b/micropython/modules/picographics/picographics.c @@ -145,6 +145,7 @@ STATIC const mp_map_elem_t picographics_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_DISPLAY_INTERSTATE75_32X32), MP_ROM_INT(DISPLAY_INTERSTATE75_32X32) }, { MP_ROM_QSTR(MP_QSTR_DISPLAY_INTERSTATE75_64X32), MP_ROM_INT(DISPLAY_INTERSTATE75_64X32) }, { MP_ROM_QSTR(MP_QSTR_DISPLAY_INTERSTATE75_96X32), MP_ROM_INT(DISPLAY_INTERSTATE75_96X32) }, + { MP_ROM_QSTR(MP_QSTR_DISPLAY_INTERSTATE75_96X48), MP_ROM_INT(DISPLAY_INTERSTATE75_96X48) }, { MP_ROM_QSTR(MP_QSTR_DISPLAY_INTERSTATE75_128X32), MP_ROM_INT(DISPLAY_INTERSTATE75_128X32) }, { MP_ROM_QSTR(MP_QSTR_DISPLAY_INTERSTATE75_64X64), MP_ROM_INT(DISPLAY_INTERSTATE75_64X64) }, { MP_ROM_QSTR(MP_QSTR_DISPLAY_INTERSTATE75_128X64), MP_ROM_INT(DISPLAY_INTERSTATE75_128X64) }, diff --git a/micropython/modules/picographics/picographics.cpp b/micropython/modules/picographics/picographics.cpp index 2a855374..0e94573c 100644 --- a/micropython/modules/picographics/picographics.cpp +++ b/micropython/modules/picographics/picographics.cpp @@ -155,6 +155,14 @@ bool get_display_settings(PicoGraphicsDisplay display, int &width, int &height, if(rotate == -1) rotate = (int)Rotation::ROTATE_0; if(pen_type == -1) pen_type = PEN_RGB888; break; + case DISPLAY_INTERSTATE75_96X48: + width = 96; + height = 48; + bus_type = BUS_PIO; + // Portrait to match labelling + if(rotate == -1) rotate = (int)Rotation::ROTATE_0; + if(pen_type == -1) pen_type = PEN_RGB888; + break; case DISPLAY_INTERSTATE75_128X32: width = 128; height = 32; diff --git a/micropython/modules/picographics/picographics.h b/micropython/modules/picographics/picographics.h index 2503cbbf..1812a875 100644 --- a/micropython/modules/picographics/picographics.h +++ b/micropython/modules/picographics/picographics.h @@ -19,6 +19,7 @@ enum PicoGraphicsDisplay { DISPLAY_INTERSTATE75_32X32, DISPLAY_INTERSTATE75_64X32, DISPLAY_INTERSTATE75_96X32, + DISPLAY_INTERSTATE75_96X48, DISPLAY_INTERSTATE75_128X32, DISPLAY_INTERSTATE75_64X64, DISPLAY_INTERSTATE75_128X64, diff --git a/micropython/modules_py/interstate75.md b/micropython/modules_py/interstate75.md index f54bcc6b..33974921 100644 --- a/micropython/modules_py/interstate75.md +++ b/micropython/modules_py/interstate75.md @@ -32,6 +32,7 @@ You can choose the HUB75 matrix display size that you wish to use by defining `d DISPLAY_INTERSTATE75_32X32 DISPLAY_INTERSTATE75_64X32 DISPLAY_INTERSTATE75_96X32 +DISPLAY_INTERSTATE75_96X48 DISPLAY_INTERSTATE75_128X32 DISPLAY_INTERSTATE75_64X64 DISPLAY_INTERSTATE75_128X64 diff --git a/micropython/modules_py/interstate75.py b/micropython/modules_py/interstate75.py index 13f231e0..6792d865 100644 --- a/micropython/modules_py/interstate75.py +++ b/micropython/modules_py/interstate75.py @@ -1,5 +1,5 @@ from pimoroni import RGBLED, Button -from picographics import PicoGraphics, DISPLAY_INTERSTATE75_32X32, DISPLAY_INTERSTATE75_64X32, DISPLAY_INTERSTATE75_96X32, DISPLAY_INTERSTATE75_128X32, DISPLAY_INTERSTATE75_64X64, DISPLAY_INTERSTATE75_128X64, DISPLAY_INTERSTATE75_192X64, DISPLAY_INTERSTATE75_256X64 +from picographics import PicoGraphics, DISPLAY_INTERSTATE75_32X32, DISPLAY_INTERSTATE75_64X32, DISPLAY_INTERSTATE75_96X32, DISPLAY_INTERSTATE75_96X48, DISPLAY_INTERSTATE75_128X32, DISPLAY_INTERSTATE75_64X64, DISPLAY_INTERSTATE75_128X64, DISPLAY_INTERSTATE75_192X64, DISPLAY_INTERSTATE75_256X64 from pimoroni_i2c import PimoroniI2C import hub75 import sys @@ -23,6 +23,7 @@ class Interstate75: DISPLAY_INTERSTATE75_32X32 = DISPLAY_INTERSTATE75_32X32 DISPLAY_INTERSTATE75_64X32 = DISPLAY_INTERSTATE75_64X32 DISPLAY_INTERSTATE75_96X32 = DISPLAY_INTERSTATE75_96X32 + DISPLAY_INTERSTATE75_96X48 = DISPLAY_INTERSTATE75_96X48 DISPLAY_INTERSTATE75_128X32 = DISPLAY_INTERSTATE75_128X32 DISPLAY_INTERSTATE75_64X64 = DISPLAY_INTERSTATE75_64X64 DISPLAY_INTERSTATE75_128X64 = DISPLAY_INTERSTATE75_128X64