waveshare213b and waveshare213c support bug fixes

This commit is contained in:
mohesh.mohan 2019-12-12 00:37:24 +04:00
parent eddcf32b62
commit a4daf4af61
2 changed files with 26 additions and 17 deletions
pwnagotchi/ui/hw
libs/waveshare/v213bc
waveshare213bc.py

@ -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