Adding support for 9.7"" ePaper display

This commit is contained in:
Ace 2020-06-18 16:21:53 +02:00
parent 8e27116f3a
commit 2693eb64b9
4 changed files with 83 additions and 10 deletions

View File

@ -23,15 +23,16 @@ class Layout:
if (model != None) and (width == None) and (height == None):
display_dimensions = {
'epd_7_in_5_v2_colour': (800, 480),
'epd_7_in_5_v2': (800, 480),
'epd_7_in_5_colour': (640, 384),
'epd_7_in_5': (640, 384),
'epd_5_in_83_colour': (600, 448),
'epd_5_in_83': (600, 448),
'epd_4_in_2_colour': (400, 300),
'epd_4_in_2': (400, 300),
}
'9_in_7': (1200, 825),
'epd_7_in_5_v2_colour': (800, 480),
'epd_7_in_5_v2': (800, 480),
'epd_7_in_5_colour': (640, 384),
'epd_7_in_5': (640, 384),
'epd_5_in_83_colour': (600, 448),
'epd_5_in_83': (600, 448),
'epd_4_in_2_colour': (400, 300),
'epd_4_in_2': (400, 300)
}
self.display_height, self.display_width = display_dimensions[model]
self.display_size = display_dimensions[model]

View File

@ -26,7 +26,8 @@ class Settings:
'epd_7_in_5_v2_colour', 'epd_7_in_5_v2',
'epd_7_in_5_colour', 'epd_7_in_5',
'epd_5_in_83_colour','epd_5_in_83',
'epd_4_in_2_colour', 'epd_4_in_2'
'epd_4_in_2_colour', 'epd_4_in_2',
'9_in_7'
]
def __init__(self, settings_file_path):

View File

@ -0,0 +1,57 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
9.7" driver class
Copyright by aceisace
"""
from inkycal.custom import images, top_level
from subprocess import call, run
from os import chdir
from PIL import Image
# Display resolution
EPD_WIDTH = 1200
EPD_HEIGHT = 825
driver_dir = top_level+'/inkycal/display/drivers/9_in_7_drivers/'
class EPD:
def __init__(self):
"""9.7" epaper class"""
with open(driver_dir+'setup_state.txt', 'r') as file:
setup_state = int(file.readline().rstrip())
if setup_state == 0:
print('installing additional drivers...')
self.setup()
def init(self):
pass
def display(self, command):
"""displays an image"""
try:
run_command = command.split()
run(run_command)
except:
print("oops, something didn't work right :/")
def getbuffer(self, image):
"""ad-hoc"""
image.convert('RGB').save(images+'canvas.bmp', 'BMP')
command = 'sudo {}IT8951/IT8951 0 0 {}'.format(driver_dir, images+'canvas.bmp')
print(command)
return command
def setup(self):
"""Runs the required setup for 9.7" epaper displays"""
run(["chmod", "+x", driver_dir+"install.sh"])
call(driver_dir+"install.sh")
with open(driver_dir+'setup_state.txt', 'w') as file:
file.write('1')
def sleep(self):
pass

View File

@ -0,0 +1,14 @@
#!/bin/bash
# Installs drivers for 9.7" ePaper display
cd bcm2835-1.58
chmod +x configure
./configure
make
sudo make check
sudo make install
cd ..
cd IT8951
make clean
make