waveshare213b and waveshare213c support bug fixes
This commit is contained in:
parent
eddcf32b62
commit
a4daf4af61
pwnagotchi/ui/hw
@ -46,11 +46,11 @@ class EPD:
|
|||||||
# Hardware reset
|
# Hardware reset
|
||||||
def reset(self):
|
def reset(self):
|
||||||
epdconfig.digital_write(self.reset_pin, 1)
|
epdconfig.digital_write(self.reset_pin, 1)
|
||||||
epdconfig.delay_ms(200)
|
epdconfig.delay_ms(200)
|
||||||
epdconfig.digital_write(self.reset_pin, 0)
|
epdconfig.digital_write(self.reset_pin, 0)
|
||||||
epdconfig.delay_ms(10)
|
epdconfig.delay_ms(10)
|
||||||
epdconfig.digital_write(self.reset_pin, 1)
|
epdconfig.digital_write(self.reset_pin, 1)
|
||||||
epdconfig.delay_ms(200)
|
epdconfig.delay_ms(200)
|
||||||
|
|
||||||
def send_command(self, command):
|
def send_command(self, command):
|
||||||
epdconfig.digital_write(self.dc_pin, 0)
|
epdconfig.digital_write(self.dc_pin, 0)
|
||||||
@ -63,7 +63,7 @@ class EPD:
|
|||||||
epdconfig.digital_write(self.cs_pin, 0)
|
epdconfig.digital_write(self.cs_pin, 0)
|
||||||
epdconfig.spi_writebyte([data])
|
epdconfig.spi_writebyte([data])
|
||||||
epdconfig.digital_write(self.cs_pin, 1)
|
epdconfig.digital_write(self.cs_pin, 1)
|
||||||
|
|
||||||
def ReadBusy(self):
|
def ReadBusy(self):
|
||||||
logging.debug("e-Paper busy")
|
logging.debug("e-Paper busy")
|
||||||
while(epdconfig.digital_read(self.busy_pin) == 0): # 0: idle, 1: busy
|
while(epdconfig.digital_read(self.busy_pin) == 0): # 0: idle, 1: busy
|
||||||
@ -73,23 +73,23 @@ class EPD:
|
|||||||
def init(self):
|
def init(self):
|
||||||
if (epdconfig.module_init() != 0):
|
if (epdconfig.module_init() != 0):
|
||||||
return -1
|
return -1
|
||||||
|
|
||||||
self.reset()
|
self.reset()
|
||||||
|
|
||||||
self.send_command(0x06) # BOOSTER_SOFT_START
|
self.send_command(0x06) # BOOSTER_SOFT_START
|
||||||
self.send_data(0x17)
|
self.send_data(0x17)
|
||||||
self.send_data(0x17)
|
self.send_data(0x17)
|
||||||
self.send_data(0x17)
|
self.send_data(0x17)
|
||||||
|
|
||||||
self.send_command(0x04) # POWER_ON
|
self.send_command(0x04) # POWER_ON
|
||||||
self.ReadBusy()
|
self.ReadBusy()
|
||||||
|
|
||||||
self.send_command(0x00) # PANEL_SETTING
|
self.send_command(0x00) # PANEL_SETTING
|
||||||
self.send_data(0x8F)
|
self.send_data(0x8F)
|
||||||
|
|
||||||
self.send_command(0x50) # VCOM_AND_DATA_INTERVAL_SETTING
|
self.send_command(0x50) # VCOM_AND_DATA_INTERVAL_SETTING
|
||||||
self.send_data(0xF0)
|
self.send_data(0xF0)
|
||||||
|
|
||||||
self.send_command(0x61) # RESOLUTION_SETTING
|
self.send_command(0x61) # RESOLUTION_SETTING
|
||||||
self.send_data(self.width & 0xff)
|
self.send_data(self.width & 0xff)
|
||||||
self.send_data(self.height >> 8)
|
self.send_data(self.height >> 8)
|
||||||
@ -125,26 +125,36 @@ class EPD:
|
|||||||
for i in range(0, int(self.width * self.height / 8)):
|
for i in range(0, int(self.width * self.height / 8)):
|
||||||
self.send_data(imageblack[i])
|
self.send_data(imageblack[i])
|
||||||
self.send_command(0x92)
|
self.send_command(0x92)
|
||||||
|
|
||||||
self.send_command(0x13)
|
self.send_command(0x13)
|
||||||
for i in range(0, int(self.width * self.height / 8)):
|
for i in range(0, int(self.width * self.height / 8)):
|
||||||
self.send_data(imagered[i])
|
self.send_data(imagered[i])
|
||||||
self.send_command(0x92)
|
self.send_command(0x92)
|
||||||
|
|
||||||
self.send_command(0x12) # REFRESH
|
self.send_command(0x12) # REFRESH
|
||||||
self.ReadBusy()
|
self.ReadBusy()
|
||||||
|
|
||||||
|
def pwndisplay(self, imageblack):
|
||||||
|
self.send_command(0x10)
|
||||||
|
for i in range(0, int(self.width * self.height / 8)):
|
||||||
|
self.send_data(imageblack[i])
|
||||||
|
self.send_command(0x92)
|
||||||
|
|
||||||
|
self.send_command(0x12) # REFRESH
|
||||||
|
self.ReadBusy()
|
||||||
|
|
||||||
|
|
||||||
def Clear(self):
|
def Clear(self):
|
||||||
self.send_command(0x10)
|
self.send_command(0x10)
|
||||||
for i in range(0, int(self.width * self.height / 8)):
|
for i in range(0, int(self.width * self.height / 8)):
|
||||||
self.send_data(0xFF)
|
self.send_data(0xFF)
|
||||||
self.send_command(0x92)
|
self.send_command(0x92)
|
||||||
|
|
||||||
self.send_command(0x13)
|
self.send_command(0x13)
|
||||||
for i in range(0, int(self.width * self.height / 8)):
|
for i in range(0, int(self.width * self.height / 8)):
|
||||||
self.send_data(0xFF)
|
self.send_data(0xFF)
|
||||||
self.send_command(0x92)
|
self.send_command(0x92)
|
||||||
|
|
||||||
self.send_command(0x12) # REFRESH
|
self.send_command(0x12) # REFRESH
|
||||||
self.ReadBusy()
|
self.ReadBusy()
|
||||||
|
|
||||||
@ -153,7 +163,6 @@ class EPD:
|
|||||||
self.ReadBusy()
|
self.ReadBusy()
|
||||||
self.send_command(0x07) # DEEP_SLEEP
|
self.send_command(0x07) # DEEP_SLEEP
|
||||||
self.send_data(0xA5) # check code
|
self.send_data(0xA5) # check code
|
||||||
|
|
||||||
epdconfig.module_exit()
|
epdconfig.module_exit()
|
||||||
### END OF FILE ###
|
### END OF FILE ###
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ class Waveshare213bc(DisplayImpl):
|
|||||||
|
|
||||||
def render(self, canvas):
|
def render(self, canvas):
|
||||||
buf = self._display.getbuffer(canvas)
|
buf = self._display.getbuffer(canvas)
|
||||||
self._display.display(buf)
|
self._display.pwndisplay(buf)
|
||||||
|
|
||||||
def clear(self):
|
def clear(self):
|
||||||
#pass
|
#pass
|
||||||
|
Loading…
x
Reference in New Issue
Block a user