Adding support for PaPiRus display
This commit is contained in:
parent
000e11869f
commit
395207de7b
@ -50,6 +50,7 @@ The supported models are:
|
||||
|
||||
- [Waveshare eInk Display (V2)](https://www.waveshare.com/2.13inch-e-paper-hat.htm)
|
||||
- [Pimoroni Inky pHAT](https://shop.pimoroni.com/products/inky-phat)
|
||||
- [PaPiRus eInk Screen](https://www.sparkfun.com/products/14826)
|
||||
|
||||
### Software
|
||||
|
||||
|
@ -92,7 +92,7 @@ ui:
|
||||
display:
|
||||
enabled: true
|
||||
rotation: 180
|
||||
# Possible options inkyphat/inky or waveshare/ws
|
||||
# Possible options inkyphat/inky, papirus/papi or waveshare/ws
|
||||
type: 'waveshare'
|
||||
# Possible options red/yellow/black (black used for monocromatic displays)
|
||||
color: 'black'
|
||||
|
@ -104,6 +104,9 @@ class Display(View):
|
||||
def _is_inky(self):
|
||||
return self._display_type in ('inkyphat', 'inky')
|
||||
|
||||
def _is_papirus(self):
|
||||
return self._display_type in ('papirus', 'papi')
|
||||
|
||||
def _is_waveshare(self):
|
||||
return self._display_type in ('waveshare', 'ws')
|
||||
|
||||
@ -113,6 +116,12 @@ class Display(View):
|
||||
self._display = InkyPHAT(self._display_color)
|
||||
self._display.set_border(InkyPHAT.BLACK)
|
||||
self._render_cb = self._inky_render
|
||||
elif self._is_papirus():
|
||||
from papirus import Papirus
|
||||
exec(open('/etc/default/epd-fuse').read())
|
||||
self._display = Papirus()
|
||||
self._display.clear()
|
||||
self._render_cb = self._papirus_render
|
||||
elif self._is_waveshare():
|
||||
from pwnagotchi.ui.waveshare import EPD
|
||||
# core.log("display module started")
|
||||
@ -163,6 +172,10 @@ class Display(View):
|
||||
self._display.set_image(imgbuf)
|
||||
self._display.show()
|
||||
|
||||
def _papirus_render(self):
|
||||
self._display.display(self.canvas)
|
||||
self._display.partial_update()
|
||||
|
||||
def _waveshare_render(self):
|
||||
buf = self._display.getbuffer(self.canvas)
|
||||
self._display.displayPartial(buf)
|
||||
|
@ -31,6 +31,14 @@ def setup_display_specifics(config):
|
||||
face_pos = (0, int(height / 4))
|
||||
name_pos = (int(width / 2) - 15, int(height * .15))
|
||||
status_pos = (int(width / 2) - 15, int(height * .30))
|
||||
elif config['ui']['display']['type'] in ('papirus', 'papi'):
|
||||
fonts.setup(10, 8, 10, 23)
|
||||
|
||||
width = 200
|
||||
height = 96
|
||||
face_pos = (0, int(height / 4))
|
||||
name_pos = (int(width / 2) - 15, int(height * .15))
|
||||
status_pos = (int(width / 2) - 15, int(height * .30))
|
||||
elif config['ui']['display']['type'] in ('ws', 'waveshare'):
|
||||
fonts.setup(10, 9, 10, 35)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user