summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2021-04-11 09:37:25 +0200
committerDaniel Friesel <derf@finalrewind.org>2021-04-11 09:37:25 +0200
commitf7966df39849bfc0c6954d058a621da0d58335e0 (patch)
tree059d3f810a379beb93d38c190e371951ea1f136f
parente5f488ae91a7d7862efad5762794206b701ea25c (diff)
examples/ssd1306: add support for 128x32 displays
-rwxr-xr-xcommandline/examples/ssd1306-getpixels5
-rwxr-xr-xcommandline/examples/ssd1306-init12
-rwxr-xr-xcommandline/examples/ssd1306-show6
3 files changed, 14 insertions, 9 deletions
diff --git a/commandline/examples/ssd1306-getpixels b/commandline/examples/ssd1306-getpixels
index 8527b7a..ba3e2b3 100755
--- a/commandline/examples/ssd1306-getpixels
+++ b/commandline/examples/ssd1306-getpixels
@@ -3,9 +3,6 @@
from PIL import Image
import sys
-buf_w = 128
-buf_h = 64
-
def load_image(filename):
im = Image.open(filename)
@@ -20,6 +17,8 @@ def load_image(filename):
filename = sys.argv[1]
offset = int(sys.argv[2])
+buf_w = int(sys.argv[3])
+buf_h = int(sys.argv[4])
buf = load_image(filename)
buf = buf[offset : offset + 128]
diff --git a/commandline/examples/ssd1306-init b/commandline/examples/ssd1306-init
index 56e77e5..4d587be 100755
--- a/commandline/examples/ssd1306-init
+++ b/commandline/examples/ssd1306-init
@@ -3,8 +3,14 @@
WR_CMD=0x80
WR_DATA=0x40
-WIDTH=128
-HEIGHT=64
+: ${WIDTH:=128}
+: ${HEIGHT:=64}
+
+if [ "${HEIGHT}" = 32 ]; then
+ COM_PIN_CFG=0x02
+else
+ COM_PIN_CFG=0x12
+fi
SET_CONTRAST=0x81
SET_ENTIRE_ON=0xa4
@@ -32,7 +38,7 @@ for cmd in $SET_DISP_OFF \
$SET_MUX_RATIO $(( HEIGHT - 1 )) \
$SET_COM_OUT_DIR_08 \
$SET_DISP_OFFSET 0x00 \
- $SET_COM_PIN_CFG 0x12 \
+ $SET_COM_PIN_CFG $COM_PIN_CFG \
$SET_DISP_CLK_DIV 0x80 \
$SET_PRECHARGE 0xf1 \
$SET_VCOM_DESEL 0x30 \
diff --git a/commandline/examples/ssd1306-show b/commandline/examples/ssd1306-show
index bac18da..63a63cd 100755
--- a/commandline/examples/ssd1306-show
+++ b/commandline/examples/ssd1306-show
@@ -3,8 +3,8 @@
WR_CMD=0x80
WR_DATA=0x40
-WIDTH=128
-HEIGHT=64
+: ${WIDTH:=128}
+: ${HEIGHT:=64}
SET_CONTRAST=0x81
SET_ENTIRE_ON=0xa4
@@ -33,5 +33,5 @@ for cmd in $SET_COL_ADDR 0 $(( WIDTH - 1 )) \
done
for offset in $(seq 0 7); do
- vusb-i2cset 0x3c $WR_DATA $("${BASE}/ssd1306-getpixels" "$1" $(( offset * 128 )))
+ vusb-i2cset 0x3c $WR_DATA $("${BASE}/ssd1306-getpixels" "$1" $(( offset * 128 )) "${WIDTH}" "${HEIGHT}")
done