mirror of
https://github.com/jayofelony/pwnagotchi.git
synced 2025-07-01 18:37:27 -04:00

display check with 2.9.2 -gfxhat sn3218 library missing from the venv, added to /hw/libs/pimoroni/gfxhat/ cleanup of the code (EPD changed to LCD) logging info added for config options (contrast, color) touch control work in progress (6 touch buttons with short and long press and LED feedback) -i2coled cleanup of the code (EPD changed to OLED) Logging info added for config options (width, height, i2c address) -oledlcd and oledlcdvert working out of the box logging info added for available gpio breakouts (buttons) -displayhatmini working out of the box logging info added for available gpio breakouts (buttons, rgb LED, i2c bus) -pirateaudio working out of the box logging info added for available gpio breakouts (buttons, i2s bus) -pitft working out of the box logging info added for available gpio breakouts (buttons) -tftbonnet working out of the box logging info added for available gpio breakouts (buttons, i2c bus) -minipitft working out of the box logging info added for available gpio breakouts (buttons, i2c bus) -minipitft2 cant test on HW but should work! logging info added for available gpio breakouts (buttons, i2c bus) -argonpod cant test on HW but should work! logging info added for available gpio breakouts (buttons, IR)
58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
# board GPIO:
|
|
# Key1: GPIO 16
|
|
# Key2: GPIO 20
|
|
# Key3: GPIO 21
|
|
# Key4: GPIO 26
|
|
# IR: GPIO 23
|
|
# Touch chipset:
|
|
# HW info: https://argon40.com/products/pod-display-2-8inch
|
|
# HW MANUAL: https://cdn.shopify.com/s/files/1/0556/1660/2177/files/ARGON_POD_MANUAL.pdf?v=1668390711%0A
|
|
|
|
import logging
|
|
|
|
import pwnagotchi.ui.fonts as fonts
|
|
from pwnagotchi.ui.hw.base import DisplayImpl
|
|
|
|
|
|
class ArgonPod(DisplayImpl):
|
|
def __init__(self, config):
|
|
super(ArgonPod, self).__init__(config, 'argonpod')
|
|
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'] = (0, 36)
|
|
self._layout['name'] = (150, 36)
|
|
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': (150, 48),
|
|
'font': fonts.status_font(fonts.Medium),
|
|
'max': 20
|
|
}
|
|
|
|
return self._layout
|
|
|
|
def initialize(self):
|
|
logging.info("Initializing Argon Pod display")
|
|
logging.info("Available pins for GPIO Buttons: 16, 20, 21, 26")
|
|
logging.info("IR available on GPIO 23")
|
|
logging.info("Backlight pin available on GPIO 18")
|
|
from pwnagotchi.ui.hw.libs.argon.argonpod.ILI9341 import ILI9341
|
|
self._display = ILI9341(0, 0, 22, 18)
|
|
|
|
def render(self, canvas):
|
|
self._display.display(canvas)
|
|
|
|
def clear(self):
|
|
self._display.clear()
|