Skip to content

Commit

Permalink
Added support for Pimoroni Display Hat Mini (credit to evilsocket#1113)
Browse files Browse the repository at this point in the history
  • Loading branch information
swanserquack committed May 21, 2023
1 parent c9505ca commit eab60c3
Show file tree
Hide file tree
Showing 5 changed files with 417 additions and 3 deletions.
7 changes: 5 additions & 2 deletions pwnagotchi/ui/display.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,16 +69,19 @@ def is_waveshare213d(self):

def is_waveshare213bc(self):
return self._implementation.name == 'waveshare213bc'

def is_waveshare213inb_v4(self):
return self._implementation.name == 'waveshare213inb_v4'

def is_waveshare35lcd(self):
return self._implementation.name == 'waveshare35lcd'

def is_spotpear24inch(self):
return self._implementation.name == 'spotpear24inch'

def is_displayhatmini(self):
return self._implementation.name == 'displayhatmini'

def is_waveshare_any(self):
return self.is_waveshare_v1() or self.is_waveshare_v2()

Expand Down
6 changes: 5 additions & 1 deletion pwnagotchi/ui/hw/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
from pwnagotchi.ui.hw.waveshare213inb_v4 import Waveshare213bV4
from pwnagotchi.ui.hw.waveshare35lcd import Waveshare35lcd
from pwnagotchi.ui.hw.spotpear24inch import Spotpear24inch
from pwnagotchi.ui.hw.displayhatmini import DisplayHatMini

def display_for(config):
# config has been normalized already in utils.load_config
Expand Down Expand Up @@ -63,7 +64,7 @@ def display_for(config):

elif config['ui']['display']['type'] == 'waveshare213bc':
return Waveshare213bc(config)

elif config['ui']['display']['type'] == 'waveshare213inb_v4':
return Waveshare213bV4(config)

Expand All @@ -72,3 +73,6 @@ def display_for(config):

elif config['ui']['display']['type'] == 'spotpear24inch':
return Spotpear24inch(config)

elif config['ui']['display']['type'] == 'displayhatmini':
return DisplayHatMini(config)
44 changes: 44 additions & 0 deletions pwnagotchi/ui/hw/displayhatmini.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import logging

import pwnagotchi.ui.fonts as fonts
from pwnagotchi.ui.hw.base import DisplayImpl


class DisplayHatMini(DisplayImpl):
def __init__(self, config):
super(DisplayHatMini, self).__init__(config, 'displayhatmini')
self._display = None

def layout(self):
fonts.setup(12, 10, 12, 70, 25, 9)
self._layout['width'] = 320
self._layout['height'] = 240
self._layout['face'] = (35, 50)
self._layout['name'] = (5, 20)
self._layout['channel'] = (0, 0)
self._layout['aps'] = (40, 0)
self._layout['uptime'] = (240, 0)
self._layout['line1'] = [0, 14, 320, 14]
self._layout['line2'] = [0, 220, 320, 220]
self._layout['friend_face'] = (0, 130)
self._layout['friend_name'] = (40, 135)
self._layout['shakes'] = (0, 220)
self._layout['mode'] = (280, 220)
self._layout['status'] = {
'pos': (80, 160),
'font': fonts.status_font(fonts.Medium),
'max': 20
}

return self._layout

def initialize(self):
logging.info("initializing Display Hat Mini")
from pwnagotchi.ui.hw.libs.pimoroni.displayhatmini.ST7789 import ST7789
self._display = ST7789(0,1,9,13)

def render(self, canvas):
self._display.display(canvas)

def clear(self):
self._display.clear()
Loading

0 comments on commit eab60c3

Please sign in to comment.