From ca8a532054edb81b04c1bc8c17a1af1302c95d3b Mon Sep 17 00:00:00 2001 From: Mike Causer Date: Sat, 24 Feb 2018 02:38:02 +1100 Subject: [PATCH] Initial commit --- LICENSE.txt | 22 ++ README.md | 32 ++ docs/demo.jpg | Bin 0 -> 249400 bytes epaper1in54.py | 146 ++++++++ epaper1in54b.py | 319 ++++++++++++++++++ epaper2in13.py | 151 +++++++++ epaper2in13b.py | 281 +++++++++++++++ epaper2in7.py | 139 ++++++++ epaper2in7b.py | 302 +++++++++++++++++ epaper2in9.py | 149 ++++++++ epaper2in9b.py | 277 +++++++++++++++ epaper4in2.py | 146 ++++++++ epaper4in2b.py | 118 +++++++ epaper7in5.py | 133 ++++++++ epaper7in5b.py | 137 ++++++++ .../2in9-hello-world/hello-world-white.bmp | Bin 0 -> 113720 bytes .../2in9-hello-world/hello-world-white.png | Bin 0 -> 2543 bytes examples/2in9-hello-world/hello-world.bmp | Bin 0 -> 151690 bytes examples/2in9-hello-world/hello-world.png | Bin 0 -> 2496 bytes examples/2in9-hello-world/image_dark.py | 3 + examples/2in9-hello-world/image_light.py | 3 + examples/2in9-hello-world/test.py | 54 +++ 22 files changed, 2412 insertions(+) create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 docs/demo.jpg create mode 100644 epaper1in54.py create mode 100644 epaper1in54b.py create mode 100644 epaper2in13.py create mode 100644 epaper2in13b.py create mode 100644 epaper2in7.py create mode 100644 epaper2in7b.py create mode 100644 epaper2in9.py create mode 100644 epaper2in9b.py create mode 100644 epaper4in2.py create mode 100644 epaper4in2b.py create mode 100644 epaper7in5.py create mode 100644 epaper7in5b.py create mode 100644 examples/2in9-hello-world/hello-world-white.bmp create mode 100644 examples/2in9-hello-world/hello-world-white.png create mode 100644 examples/2in9-hello-world/hello-world.bmp create mode 100644 examples/2in9-hello-world/hello-world.png create mode 100644 examples/2in9-hello-world/image_dark.py create mode 100644 examples/2in9-hello-world/image_light.py create mode 100644 examples/2in9-hello-world/test.py diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..a14b994 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2017 Waveshare +Copyright (c) 2018 Mike Causer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..242d531 --- /dev/null +++ b/README.md @@ -0,0 +1,32 @@ +# MicroPython Waveshare e-Paper + +MicroPython drivers for various Waveshare e-Paper displays, based on the original Waveshare Raspberry Pi examples found in the [wiki](https://www.waveshare.com/wiki/Main_Page). + +![demo](docs/demo.jpg) + +| Waveshare e-Paper Module | Colors | Grey Level | Resolution px | Display mm | Outline mm | Partial Refresh | Full Refresh | Interface | Pi Header | Controller | Display | +| ----------------------------------------------------------------------------------------- | -------------------- |:----------:|:-------------:|:--------------:|:-------------:|:---------------:|:------------:|:---------:|:---------:|:-----------|:----------------------------------------------------------------------------------------------------------------------------------------------------:| +| [1.54inch e-Paper Module](https://www.waveshare.com/wiki/1.54inch_e-Paper_Module) | Black, White | 2 | 200 × 200 | 27.60 × 27.60 | 48.0 × 33.0 | 0.3 | 2 | SPI | No | ? | [GDEH0154D27](http://www.eink-display.com/new-1-54-inch-partial-refresh-bi-stable-e0154a05-e-paper-display-electronic-paper-screen-gdeh0154d27.html) | +| [1.54inch e-Paper Module (B)](https://www.waveshare.com/wiki/1.54inch_e-Paper_Module_(B)) | Black, White, Red | 2 | 200 × 200 | 27.60 × 27.60 | 48.0 × 33.0 | N/A | 8 | SPI | No | ? | [GDEW0154Z04](http://www.eink-display.com/1-54-inch-3-color-ultra-low-power-consumption-e-paper-display-screen-spi-interface-gdew0154z04.html) | +| [1.54inch e-Paper Module (C)](https://www.waveshare.com/wiki/1.54inch_e-Paper_Module_(C)) | Black, White, Yellow | 2 | 152 × 152 | 27.51 × 27.51 | 48.0 × 33.0 | N/A | 27 | SPI | No | ? | [GDEW0154C39](http://www.eink-display.com/new-1-54-inch-bwy-three-colors-e-ink-e-paper-display-panel-black-write-and-yellow-gdew0154c39.html) | +| [2.13inch e-Paper HAT](https://www.waveshare.com/wiki/2.13inch_e-Paper_HAT) | Black, White | 2 | 250 × 122 | 48.55 × 23.71 | 65.0 × 30.2 | 0.3 | 2 | SPI | Yes | IL3895 | [GDEH0213B1](http://www.eink-display.com/new-2-13-inch-partial-refresh-e-paper-display-250x122-electronic-paper-screen-gdeh0213b1.html) | +| [2.13inch e-Paper HAT (B)](https://www.waveshare.com/wiki/2.13inch_e-Paper_HAT_(B)) | Black, White, Red | 2 | 212 × 104 | 48.55 × 23.71 | 65.0 × 30.2 | N/A | 15 | SPI | Yes | ? | [GDEW0213Z16](http://www.eink-display.com/2-13-inch-three-color-low-power-e-paper-display-electronic-paper-screen-gdew0213z16.html) | +| [2.13inch e-Paper HAT (C)](https://www.waveshare.com/wiki/2.13inch_e-Paper_HAT_(C)) | Black, White, Yellow | 2 | 212 × 104 | 48.55 × 23.71 | 65.0 × 30.2 | N/A | 15 | SPI | Yes | ? | [GDEW0213C38](http://www.eink-display.com/new-2-13-inch-bwy-three-colors-e-ink-e-paper-display-panel-black-write-and-yellow-gdew0213c38.html) | +| [2.7inch e-Paper HAT](https://www.waveshare.com/wiki/2.7inch_e-Paper_HAT) | Black, White | 2 | 264 × 176 | 57.29 × 38.19 | 85.0 × 56.0 | N/A | 6 | SPI | Yes | ? | [GDEW027W3](http://www.eink-display.com/2-7-inch-ultra-low-power-consumption-high-contrast-small-size-electronic-paper-display-gdew027w3.html) | +| [2.7inch e-Paper HAT (B)](https://www.waveshare.com/wiki/2.7inch_e-Paper_HAT_(B)) | Black, White, Red | 2 | 264 × 176 | 57.29 × 38.19 | 85.0 × 56.0 | N/A | 15 | SPI | Yes | ? | [GDEW027C44](http://www.eink-display.com/2-7-inch-three-color-low-power-consumption-bi-stable-electronic-paper-screen-gdew027c44.html) | +| [2.9inch e-Paper Module](https://www.waveshare.com/wiki/2.9inch_e-Paper_Module) | Black, White | 2 | 296 × 128 | 66.89 × 29.05 | 89.5 × 38.0 | 0.3 | 2 | SPI | No | IL3820 | [GDEH029A1](http://www.eink-display.com/2-9-inch-partial-update-bi-stable-e-paper-display-electronic-paper-screen-gdeh029a1.html) | +| [2.9inch e-Paper Module (B)](https://www.waveshare.com/wiki/2.9inch_e-Paper_Module_(B)) | Black, White, Red | 2 | 296 × 128 | 66.89 × 29.05 | 89.5 × 38.0 | N/A | 15 | SPI | No | IL3820? | [GDEW029Z10](http://www.eink-display.com/2-9-inch-three-color-bi-stable-e-paper-display-electronic-paper-screen-gdew029z10.html) | +| [2.9inch e-Paper Module (C)](https://www.waveshare.com/wiki/2.9inch_e-Paper_Module_(C)) | Black, White, Yellow | 2 | 296 × 128 | 66.89 × 29.05 | 89.5 × 38.0 | N/A | 15 | SPI | No | IL3820? | [GDEW029C32](http://www.eink-display.com/new-2-9-inch-bwy-three-colors-e-ink-e-paper-display-panel-black-write-and-yellow-gdew029c32.html) | +| [4.2inch e-Paper Module](https://www.waveshare.com/wiki/4.2inch_e-Paper_Module) | Black, White | 2 | 400 × 300 | 84.80 × 63.60 | 103.0 × 78.5 | N/A | 4 | SPI | No | ? | [GDEW042T2](http://www.eink-display.com/4-2-inch-ultra-low-power-consumption-400x300-resolution-electronic-paper-screen-gdew042t2.html) | +| [4.2inch e-Paper Module (B)](https://www.waveshare.com/wiki/4.2inch_e-Paper_Module_(B)) | Black, White, Red | 2 | 400 × 300 | 84.80 × 63.60 | 103.0 × 78.5 | N/A | 15 | SPI | No | ? | [GDEW042Z15](http://www.eink-display.com/4-2-inch-three-color-bi-stable-electronic-paper-screen-gdew042z15.html) | +| [4.2inch e-Paper Module (C)](https://www.waveshare.com/wiki/4.2inch_e-Paper_Module_(C)) | Black, White, Yellow | 2 | 400 × 300 | 84.80 × 63.60 | 103.0 × 78.5 | N/A | 15 | SPI | No | ? | [GDEW042C37](http://www.eink-display.com/new-4-2-inch-bwy-three-colors-e-ink-e-paper-display-panel-black-write-and-yellow-gdew042c37.html) | +| [4.3inch e-Paper UART Module](https://www.waveshare.com/wiki/4.3inch_e-Paper_UART_Module) | Black, White | 4 | 800 × 600 | 88.00 × 66.00 | 118.0 × 75.0 | N/A | 1.5 | UART | No | ? | [GDE043A2](http://www.eink-display.com/4-3-inch-low-power-e-paper-display-electronic-paper-screen-gde043a2.html) | +| [7.5inch e-Paper HAT](https://www.waveshare.com/wiki/7.5inch_e-Paper_HAT) | Black, White | 2 | 600 × 384 | 163.20 × 97.92 | 170.2 × 111.2 | N/A | 6 | SPI | Yes | ? | [GDEW075T8](http://www.eink-display.com/7-5-inch-large-size-ultra-wide-viewing-angle-bi-stable-e-paper-display-e-paper-monitor-gdew075t8.html) | +| [7.5inch e-Paper HAT (B)](https://www.waveshare.com/wiki/7.5inch_e-Paper_HAT_(B)) | Black, White, Red | 2 | 170.2 × 111.2 | 163.20 × 97.92 | 170.2 × 111.2 | N/A | 31 | SPI | Yes | ? | [GDEW075Z09](http://www.eink-display.com/7-5-inch-large-size-three-color-bi-stable-e-paper-display-e-paper-monitor-gdew075z09.html) | +| [7.5inch e-Paper HAT (C)](https://www.waveshare.com/wiki/7.5inch_e-Paper_HAT_(C)) | Black, White, Yellow | 2 | 640 × 384 | 163.20 × 97.92 | 170.2 × 111.2 | N/A | 31 | SPI | Yes | ? | [GDEW075C21](http://www.eink-display.com/new-7-5-inch-bwy-three-colors-e-ink-e-paper-display-panel-black-write-and-yellow-gdew075c21.html) | + +## Links + +* [Waveshare Wiki](https://www.waveshare.com/wiki/Main_Page) +* [micropython.org](http://micropython.org) +* [Docs on framebuf](http://docs.micropython.org/en/latest/pyboard/library/framebuf.html) diff --git a/docs/demo.jpg b/docs/demo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bd5fb371688d9499756c12ea3e9cb11e9329babc GIT binary patch literal 249400 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

_aemfI$?`Jt)AK8| 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

DU39pTGjsJrGGuGa<8r;r*{4fW`<5$=CYy)D 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 z zOOkHZ&i!vq^I!6F!|Crxe_spy^!NV&6{rY~J!MLp5OKW|NI%hz#fUn{7~b@pboJ|N zXL@GN`u_kX{-wq5ZuJ20u)zZQgU$w`5084K6iqXqP+H`iTGp+O`$w#GSS^M0;x%>7 z)Q9x+9TpL4#@+hoji^Lek~EBZaWElpxX7+yhgyjL01Gh$gL`x%v7jEFk)!Ca&X{!S zz+wLYj@3Yo#^%P@D8~iy>ro5^SV~wH7qBAty%GHlo7VpTR}C7kYhN6{omgK_LHOZ& ztm+auV09%lG>Bj3+Ug=k6#;Ad31V%x8dz-6ovIC4iSp2$y3ny+N^0+Urmmy zi&)@q-jy$_>5o7yt>~^?g(*(yI^)kpkFuy*q6XQqFF1@`IJT{Am#X z0II&BIpcAKzS^}Xr~d%4sAG?Bl?X`K6bt&=RilM@+ay_5wDGfi*@>MY%l&U z)m=SZK5Odf@bIMziDma`VvK>^um;ouRRjLvOIsf<9WXSVzo)F~xINay{I6;@^?f`) z*0H~9botPwW}8tLH(O!wrYwb{us&S$oT`r6+Qqy6F7<3^vflQ;T&jXXwk1Kex@Ag| zNfk6k*En2tt3GWFruM2${{Yz|Pt{|uw}n7if)%jH(()#@E%&7@o7<5f{{R}kKA$d|+wuH5(>K~bQn_pNlh)DnWre;}73>hYiv2l~qV(mELbrTW*x$q9 zQZ#59ey*MByq`;Jy{-4q7{}GrfLxQ)D|D+0AM)XIgh`}d@T%e#s%4e>GU{gO@U4jQ$Dp^EV$MH>QBIe>p0@4ND!-1g zmaF61pkRe`wx+(UN{qz>mPABDmM6c?rTtAqE8N=OeL=mN*?uGb9}2{R;=8`9+qmyR zKH@bX9LTU+TjhFcY4Yf*8_(2#xcTf3k0r5NTjh;ZQTp}i)-9_se77i|%_)aNz6 zVv)DL7SH@tQt9Zb zZY_>lsfS0bzP5M#KTTKN>it6L{{T;?^Pww^0Z?VR#9It#CPfUYN0{2xu%Az-`Cm+Yy{YUYv z+K*PtKQ>Hs1bK*5snpk2*>MFk;eg6(l5zoTL4Ye^d1zX(QIv} z9a^%#g{tt^`Vp_`{{Y+5RK=R&$k+^+nfXR(4>C)QC)qHTnfOK z7yu$&W!zl#9yE=^`f38-Q(!9m*SOVd_JGf7Y^X zex#SSufE$$$GF^0ex|oBkC@Hu1=g zt!tBX!!Ml@t&X5>gCW+3Z?E(|Z}jyY7W%w?RJkvPoUPODy#Zrw>qWXQ2asZpKm01U z^*Ebr`E!0G{3ff#>gn=lVXL(ln@ak3)vFC1>nPO1Nmoq1U86Y}w-2>h;Q&by{MEKA z{w1pGDso7pd1RU}0?Y^0KgCx60Ppp~aGLM=w>W6FI`FM_k(Q7^Q;3xVW@a+@^^=B{>s&Vk&(jqS)n9nsv4N3tpqIT> 8) & 0xFF])) + self._data(bytearray([0x00])) # GD = 0 SM = 0 TB = 0 + self._command(BOOSTER_SOFT_START_CONTROL, b'\xD7\xD6\x9D') + self._command(WRITE_VCOM_REGISTER, b'\xA8') # VCOM 7C + self._command(SET_DUMMY_LINE_PERIOD, b'\x1A') # 4 dummy lines per gate + self._command(SET_GATE_TIME, b'\x08') # 2us per line + self._command(DATA_ENTRY_MODE_SETTING, b'\x03') # X increment Y increment + self.set_lut(self.LUT_FULL_UPDATE) + + def wait_until_idle(self): + while self.busy.value() == 1: + sleep_ms(100) + + def reset(self): + self.rst.low() + sleep_ms(200) + self.rst.high() + sleep_ms(200) + + def set_lut(self, lut): + self._command(WRITE_LUT_REGISTER, lut) + + # put an image in the frame memory + def set_frame_memory(self, image, x, y, w, h): + # x point must be the multiple of 8 or the last 3 bits will be ignored + x = x & 0xF8 + w = w & 0xF8 + + if (x + w >= self.width): + x_end = self.width - 1 + else: + x_end = x + w - 1 + + if (y + h >= self.height): + y_end = self.height - 1 + else: + y_end = y + h - 1 + + self.set_memory_area(x, y, x_end, y_end) + self.set_memory_pointer(x, y) + self._command(WRITE_RAM, image) + + # replace the frame memory with the specified color + def clear_frame_memory(self, color): + self.set_memory_area(0, 0, self.width - 1, self.height - 1) + self.set_memory_pointer(0, 0) + self._command(WRITE_RAM) + # send the color data + for i in range(0, self.width // 8 * self.height): + self._data(bytearray([color])) + + # draw the current frame memory and switch to the next memory area + def display_frame(self): + self._command(DISPLAY_UPDATE_CONTROL_2, b'\xC4') + self._command(MASTER_ACTIVATION) + self._command(TERMINATE_FRAME_READ_WRITE) + self.wait_until_idle() + + # specify the memory area for data R/W + def set_memory_area(self, x_start, y_start, x_end, y_end): + self._command(SET_RAM_X_ADDRESS_START_END_POSITION) + # x point must be the multiple of 8 or the last 3 bits will be ignored + self._data(bytearray([(x_start >> 3) & 0xFF])) + self._data(bytearray([(x_end >> 3) & 0xFF])) + self._command(SET_RAM_Y_ADDRESS_START_END_POSITION, ustruct.pack("> 3) & 0xFF])) + self._command(SET_RAM_Y_ADDRESS_COUNTER, ustruct.pack("BH", EPD_WIDTH, EPD_HEIGHT)) + self._command(VCM_DC_SETTING_REGISTER, b'\x0E') # -1.4V + self.set_lut_bw() + self.set_lut_red() + + def wait_until_idle(self): + while self.busy.value() == 1: + sleep_ms(100) + + def reset(self): + self.rst.low() + sleep_ms(200) + self.rst.high() + sleep_ms(200) + + def set_lut_bw(self): + self._command(VCOM_LUT, self.LUT_VCOM0) # vcom + self._command(W2W_LUT, self.LUT_W) # ww -- + self._command(B2W_LUT, self.LUT_B) # bw r + self._command(W2B_LUT, self.LUT_G1) # wb w + self._command(B2B_LUT, self.LUT_G2) # bb b + + def set_lut_red(self): + self._command(LUT_RED_0, self.LUT_VCOM1) + self._command(LUT_RED_1, self.LUT_RED0) + self._command(LUT_RED_2, self.LUT_RED1) + + def display_frame(self, frame_buffer_black, frame_buffer_red): + if (frame_buffer_black != None): + self._command(DATA_START_TRANSMISSION_1) + sleep_ms(2) + for i in range(0, self.width * self.height // 8): + temp = 0x00 + for bit in range(0, 4): + if (frame_buffer_black[i] & (0x80 >> bit) != 0): + temp |= 0xC0 >> (bit * 2) + self._data(bytearray([temp])) + temp = 0x00 + for bit in range(4, 8): + if (frame_buffer_black[i] & (0x80 >> bit) != 0): + temp |= 0xC0 >> ((bit - 4) * 2) + self._data(bytearray([temp])) + sleep_ms(2) + if (frame_buffer_red != None): + self._command(DATA_START_TRANSMISSION_2) + sleep_ms(2) + for i in range(0, self.width * self.height // 8): + self._data(bytearray([frame_buffer_red[i]])) + sleep_ms(2) + + self._command(DISPLAY_REFRESH) + self.wait_until_idle() + + def set_rotate(self, rotate): + if (rotate == ROTATE_0): + self.rotate = ROTATE_0 + self.width = EPD_WIDTH + self.height = EPD_HEIGHT + elif (rotate == ROTATE_90): + self.rotate = ROTATE_90 + self.width = EPD_HEIGHT + self.height = EPD_WIDTH + elif (rotate == ROTATE_180): + self.rotate = ROTATE_180 + self.width = EPD_WIDTH + self.height = EPD_HEIGHT + elif (rotate == ROTATE_270): + self.rotate = ROTATE_270 + self.width = EPD_HEIGHT + self.height = EPD_WIDTH + + def set_pixel(self, frame_buffer, x, y, colored): + if (x < 0 or x >= self.width or y < 0 or y >= self.height): + return + if (self.rotate == ROTATE_0): + self.set_absolute_pixel(frame_buffer, x, y, colored) + elif (self.rotate == ROTATE_90): + point_temp = x + x = EPD_WIDTH - y + y = point_temp + self.set_absolute_pixel(frame_buffer, x, y, colored) + elif (self.rotate == ROTATE_180): + x = EPD_WIDTH - x + y = EPD_HEIGHT- y + self.set_absolute_pixel(frame_buffer, x, y, colored) + elif (self.rotate == ROTATE_270): + point_temp = x + x = y + y = EPD_HEIGHT - point_temp + self.set_absolute_pixel(frame_buffer, x, y, colored) + + def set_absolute_pixel(self, frame_buffer, x, y, colored): + # To avoid display orientation effects + # use EPD_WIDTH instead of self.width + # use EPD_HEIGHT instead of self.height + if (x < 0 or x >= EPD_WIDTH or y < 0 or y >= EPD_HEIGHT): + return + if (colored): + frame_buffer[(x + y * EPD_WIDTH) // 8] &= ~(0x80 >> (x % 8)) + else: + frame_buffer[(x + y * EPD_WIDTH) // 8] |= 0x80 >> (x % 8) + + def display_string_at(self, frame_buffer, x, y, text, font, colored): + image = Image.new('1', (self.width, self.height)) + draw = ImageDraw.Draw(image) + draw.text((x, y), text, font = font, fill = 255) + # Set buffer to value of Python Imaging Library image. + # Image must be in mode 1. + pixels = image.load() + for y in range(self.height): + for x in range(self.width): + # Set the bits for the column of pixels at the current position. + if pixels[x, y] != 0: + self.set_pixel(frame_buffer, x, y, colored) + + def draw_line(self, frame_buffer, x0, y0, x1, y1, colored): + # Bresenham algorithm + dx = abs(x1 - x0) + sx = 1 if x0 < x1 else -1 + dy = -abs(y1 - y0) + sy = 1 if y0 < y1 else -1 + err = dx + dy + while((x0 != x1) and (y0 != y1)): + self.set_pixel(frame_buffer, x0, y0 , colored) + if (2 * err >= dy): + err += dy + x0 += sx + if (2 * err <= dx): + err += dx + y0 += sy + + def draw_horizontal_line(self, frame_buffer, x, y, width, colored): + for i in range(x, x + width): + self.set_pixel(frame_buffer, i, y, colored) + + def draw_vertical_line(self, frame_buffer, x, y, height, colored): + for i in range(y, y + height): + self.set_pixel(frame_buffer, x, i, colored) + + def draw_rectangle(self, frame_buffer, x0, y0, x1, y1, colored): + min_x = x0 if x1 > x0 else x1 + max_x = x1 if x1 > x0 else x0 + min_y = y0 if y1 > y0 else y1 + max_y = y1 if y1 > y0 else y0 + self.draw_horizontal_line(frame_buffer, min_x, min_y, max_x - min_x + 1, colored) + self.draw_horizontal_line(frame_buffer, min_x, max_y, max_x - min_x + 1, colored) + self.draw_vertical_line(frame_buffer, min_x, min_y, max_y - min_y + 1, colored) + self.draw_vertical_line(frame_buffer, max_x, min_y, max_y - min_y + 1, colored) + + def draw_filled_rectangle(self, frame_buffer, x0, y0, x1, y1, colored): + min_x = x0 if x1 > x0 else x1 + max_x = x1 if x1 > x0 else x0 + min_y = y0 if y1 > y0 else y1 + max_y = y1 if y1 > y0 else y0 + for i in range(min_x, max_x + 1): + self.draw_vertical_line(frame_buffer, i, min_y, max_y - min_y + 1, colored) + + def draw_circle(self, frame_buffer, x, y, radius, colored): + # Bresenham algorithm + x_pos = -radius + y_pos = 0 + err = 2 - 2 * radius + if (x >= self.width or y >= self.height): + return + while True: + self.set_pixel(frame_buffer, x - x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y - y_pos, colored) + self.set_pixel(frame_buffer, x - x_pos, y - y_pos, colored) + e2 = err + if (e2 <= y_pos): + y_pos += 1 + err += y_pos * 2 + 1 + if(-x_pos == y_pos and e2 <= x_pos): + e2 = 0 + if (e2 > x_pos): + x_pos += 1 + err += x_pos * 2 + 1 + if x_pos > 0: + break + + def draw_filled_circle(self, frame_buffer, x, y, radius, colored): + # Bresenham algorithm + x_pos = -radius + y_pos = 0 + err = 2 - 2 * radius + if (x >= self.width or y >= self.height): + return + while True: + self.set_pixel(frame_buffer, x - x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y - y_pos, colored) + self.set_pixel(frame_buffer, x - x_pos, y - y_pos, colored) + self.draw_horizontal_line(frame_buffer, x + x_pos, y + y_pos, 2 * (-x_pos) + 1, colored) + self.draw_horizontal_line(frame_buffer, x + x_pos, y - y_pos, 2 * (-x_pos) + 1, colored) + e2 = err + if (e2 <= y_pos): + y_pos += 1 + err += y_pos * 2 + 1 + if(-x_pos == y_pos and e2 <= x_pos): + e2 = 0 + if (e2 > x_pos): + x_pos += 1 + err += x_pos * 2 + 1 + if x_pos > 0: + break + + # to wake call reset() or init() + def sleep(self): + # TODO do we need to reset these here? + self._command(VCOM_AND_DATA_INTERVAL_SETTING, b'\x17') # for this panel, must be 0x17 + self._command(VCM_DC_SETTING_REGISTER, b'\x00') # to solve Vcom drop + self._command(POWER_SETTING, b'\x02\x00\x00\x00') # gate switch to external + # /TODO + self.wait_until_idle() + self._command(POWER_OFF) diff --git a/epaper2in13.py b/epaper2in13.py new file mode 100644 index 0000000..c5f30ef --- /dev/null +++ b/epaper2in13.py @@ -0,0 +1,151 @@ +# MicroPython library for Waveshare 2.13" B/W e-paper display GDEH0213B1 + +from micropython import const +from time import sleep_ms +import ustruct + +# Display resolution +EPD_WIDTH = const(128) +EPD_HEIGHT = const(250) +# datasheet says 250x122 (increased to 128 to be multiples of 8) + +# Display commands +DRIVER_OUTPUT_CONTROL = const(0x01) +# Gate Driving Voltage Control 0x03 +# Source Driving voltage Control 0x04 +BOOSTER_SOFT_START_CONTROL = const(0x0C) # not in datasheet +#GATE_SCAN_START_POSITION = const(0x0F) # not in datasheet +DEEP_SLEEP_MODE = const(0x10) +DATA_ENTRY_MODE_SETTING = const(0x11) +#SW_RESET = const(0x12) +#TEMPERATURE_SENSOR_CONTROL = const(0x1A) +MASTER_ACTIVATION = const(0x20) +#DISPLAY_UPDATE_CONTROL_1 = const(0x21) +DISPLAY_UPDATE_CONTROL_2 = const(0x22) +# Panel Break Detection 0x23 +WRITE_RAM = const(0x24) +WRITE_VCOM_REGISTER = const(0x2C) +# Status Bit Read 0x2F +WRITE_LUT_REGISTER = const(0x32) +SET_DUMMY_LINE_PERIOD = const(0x3A) +SET_GATE_TIME = const(0x3B) +#BORDER_WAVEFORM_CONTROL = const(0x3C) +SET_RAM_X_ADDRESS_START_END_POSITION = const(0x44) +SET_RAM_Y_ADDRESS_START_END_POSITION = const(0x45) +SET_RAM_X_ADDRESS_COUNTER = const(0x4E) +SET_RAM_Y_ADDRESS_COUNTER = const(0x4F) +TERMINATE_FRAME_READ_WRITE = const(0xFF) # not in datasheet, aka NOOP + +class EPD: + def __init__(self, spi, cs, dc, rst, busy): + self.spi = spi + self.cs = cs + self.dc = dc + self.rst = rst + self.busy = busy + self.cs.init(self.cs.OUT, value=1) + self.dc.init(self.dc.OUT, value=0) + self.rst.init(self.rst.OUT, value=0) + self.busy.init(self.busy.IN) + self.width = EPD_WIDTH + self.height = EPD_HEIGHT + + LUT_FULL_UPDATE = bytearray(b'\x22\x55\xAA\x55\xAA\x55\xAA\x11\x00\x00\x00\x00\x00\x00\x00\x00\x1E\x1E\x1E\x1E\x1E\x1E\x1E\x1E\x01\x00\x00\x00\x00\x00') + LUT_PARTIAL_UPDATE = bytearray(b'\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0F\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + + def _command(self, command, data=None): + self.dc.low() + self.cs.low() + self.spi.write(bytearray([command])) + self.cs.high() + if data is not None: + self._data(data) + + def _data(self, data): + self.dc.high() + self.cs.low() + self.spi.write(data) + self.cs.high() + + def init(self): + self.reset() + self._command(DRIVER_OUTPUT_CONTROL) + self._data(bytearray([(EPD_HEIGHT - 1) & 0xFF])) + self._data(bytearray([((EPD_HEIGHT - 1) >> 8) & 0xFF])) + self._data(bytearray([0x00])) # GD = 0 SM = 0 TB = 0 + self._command(BOOSTER_SOFT_START_CONTROL, b'\xD7\xD6\x9D') + self._command(WRITE_VCOM_REGISTER, b'\xA8') # VCOM 7C + self._command(SET_DUMMY_LINE_PERIOD, b'\x1A') # 4 dummy lines per gate + self._command(SET_GATE_TIME, b'\x08') # 2us per line + self._command(DATA_ENTRY_MODE_SETTING, b'\x03') # X increment Y increment + self.set_lut(self.LUT_FULL_UPDATE) + + def wait_until_idle(self): + while self.busy.value() == 1: + sleep_ms(100) + + def reset(self): + self.rst.low() + sleep_ms(200) + self.rst.high() + sleep_ms(200) + + def set_lut(self, lut): + self._command(WRITE_LUT_REGISTER, lut) + + # put an image in the frame memory + def set_frame_memory(self, image, x, y, w, h): + # x point must be the multiple of 8 or the last 3 bits will be ignored + x = x & 0xF8 + w = w & 0xF8 + + if (x + w >= self.width): + x_end = self.width - 1 + else: + x_end = x + w - 1 + + if (y + h >= self.height): + y_end = self.height - 1 + else: + y_end = y + h - 1 + + self.set_memory_area(x, y, x_end, y_end) + self.set_memory_pointer(x, y) + self._command(WRITE_RAM, image) + + # replace the frame memory with the specified color + def clear_frame_memory(self, color): + self.set_memory_area(0, 0, self.width - 1, self.height - 1) + self.set_memory_pointer(0, 0) + self._command(WRITE_RAM) + # send the color data + for i in range(0, self.width // 8 * self.height): + self._data(bytearray([color])) + + # draw the current frame memory and switch to the next memory area + def display_frame(self): + self._command(DISPLAY_UPDATE_CONTROL_2, b'\xC4') + self._command(MASTER_ACTIVATION) + self._command(TERMINATE_FRAME_READ_WRITE) + self.wait_until_idle() + + # specify the memory area for data R/W + def set_memory_area(self, x_start, y_start, x_end, y_end): + self._command(SET_RAM_X_ADDRESS_START_END_POSITION) + # x point must be the multiple of 8 or the last 3 bits will be ignored + self._data(bytearray([(x_start >> 3) & 0xFF])) + self._data(bytearray([(x_end >> 3) & 0xFF])) + self._command(SET_RAM_Y_ADDRESS_START_END_POSITION, ustruct.pack("> 3) & 0xFF])) + self._command(SET_RAM_Y_ADDRESS_COUNTER, ustruct.pack("BH", EPD_WIDTH, EPD_HEIGHT)) + + def wait_until_idle(self): + while self.busy.value() == 1: + sleep_ms(100) + + def reset(self): + self.rst.low() + sleep_ms(200) + self.rst.high() + sleep_ms(200) + + def display_frame(self, frame_buffer_black, frame_buffer_red): + if (frame_buffer_black != None): + self._command(DATA_START_TRANSMISSION_1) + sleep_ms(2) + for i in range(0, self.width * self.height // 8): + self._data(bytearray([frame_buffer_black[i]])) + sleep_ms(2) + if (frame_buffer_red != None): + self._command(DATA_START_TRANSMISSION_2) + sleep_ms(2) + for i in range(0, self.width * self.height // 8): + self._data(bytearray([frame_buffer_red[i]])) + sleep_ms(2) + + self._command(DISPLAY_REFRESH) + self.wait_until_idle() + + def set_rotate(self, rotate): + if (rotate == ROTATE_0): + self.rotate = ROTATE_0 + self.width = epdif.EPD_WIDTH + self.height = epdif.EPD_HEIGHT + elif (rotate == ROTATE_90): + self.rotate = ROTATE_90 + self.width = epdif.EPD_HEIGHT + self.height = epdif.EPD_WIDTH + elif (rotate == ROTATE_180): + self.rotate = ROTATE_180 + self.width = epdif.EPD_WIDTH + self.height = epdif.EPD_HEIGHT + elif (rotate == ROTATE_270): + self.rotate = ROTATE_270 + self.width = epdif.EPD_HEIGHT + self.height = epdif.EPD_WIDTH + + def set_pixel(self, frame_buffer, x, y, colored): + if (x < 0 or x >= self.width or y < 0 or y >= self.height): + return + if (self.rotate == ROTATE_0): + self.set_absolute_pixel(frame_buffer, x, y, colored) + elif (self.rotate == ROTATE_90): + point_temp = x + x = epdif.EPD_WIDTH - y + y = point_temp + self.set_absolute_pixel(frame_buffer, x, y, colored) + elif (self.rotate == ROTATE_180): + x = epdif.EPD_WIDTH - x + y = epdif.EPD_HEIGHT- y + self.set_absolute_pixel(frame_buffer, x, y, colored) + elif (self.rotate == ROTATE_270): + point_temp = x + x = y + y = epdif.EPD_HEIGHT - point_temp + self.set_absolute_pixel(frame_buffer, x, y, colored) + + def set_absolute_pixel(self, frame_buffer, x, y, colored): + # To avoid display orientation effects + # use EPD_WIDTH instead of self.width + # use EPD_HEIGHT instead of self.height + if (x < 0 or x >= EPD_WIDTH or y < 0 or y >= EPD_HEIGHT): + return + if (colored): + frame_buffer[(x + y * EPD_WIDTH) // 8] &= ~(0x80 >> (x % 8)) + else: + frame_buffer[(x + y * EPD_WIDTH) // 8] |= 0x80 >> (x % 8) + + def draw_string_at(self, frame_buffer, x, y, text, font, colored): + image = Image.new('1', (self.width, self.height)) + draw = ImageDraw.Draw(image) + draw.text((x, y), text, font = font, fill = 255) + # Set buffer to value of Python Imaging Library image. + # Image must be in mode 1. + pixels = image.load() + for y in range(self.height): + for x in range(self.width): + # Set the bits for the column of pixels at the current position. + if pixels[x, y] != 0: + self.set_pixel(frame_buffer, x, y, colored) + + def draw_line(self, frame_buffer, x0, y0, x1, y1, colored): + # Bresenham algorithm + dx = abs(x1 - x0) + sx = 1 if x0 < x1 else -1 + dy = -abs(y1 - y0) + sy = 1 if y0 < y1 else -1 + err = dx + dy + while((x0 != x1) and (y0 != y1)): + self.set_pixel(frame_buffer, x0, y0 , colored) + if (2 * err >= dy): + err += dy + x0 += sx + if (2 * err <= dx): + err += dx + y0 += sy + + def draw_horizontal_line(self, frame_buffer, x, y, width, colored): + for i in range(x, x + width): + self.set_pixel(frame_buffer, i, y, colored) + + def draw_vertical_line(self, frame_buffer, x, y, height, colored): + for i in range(y, y + height): + self.set_pixel(frame_buffer, x, i, colored) + + def draw_rectangle(self, frame_buffer, x0, y0, x1, y1, colored): + min_x = x0 if x1 > x0 else x1 + max_x = x1 if x1 > x0 else x0 + min_y = y0 if y1 > y0 else y1 + max_y = y1 if y1 > y0 else y0 + self.draw_horizontal_line(frame_buffer, min_x, min_y, max_x - min_x + 1, colored) + self.draw_horizontal_line(frame_buffer, min_x, max_y, max_x - min_x + 1, colored) + self.draw_vertical_line(frame_buffer, min_x, min_y, max_y - min_y + 1, colored) + self.draw_vertical_line(frame_buffer, max_x, min_y, max_y - min_y + 1, colored) + + def draw_filled_rectangle(self, frame_buffer, x0, y0, x1, y1, colored): + min_x = x0 if x1 > x0 else x1 + max_x = x1 if x1 > x0 else x0 + min_y = y0 if y1 > y0 else y1 + max_y = y1 if y1 > y0 else y0 + for i in range(min_x, max_x + 1): + self.draw_vertical_line(frame_buffer, i, min_y, max_y - min_y + 1, colored) + + def draw_circle(self, frame_buffer, x, y, radius, colored): + # Bresenham algorithm + x_pos = -radius + y_pos = 0 + err = 2 - 2 * radius + if (x >= self.width or y >= self.height): + return + while True: + self.set_pixel(frame_buffer, x - x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y - y_pos, colored) + self.set_pixel(frame_buffer, x - x_pos, y - y_pos, colored) + e2 = err + if (e2 <= y_pos): + y_pos += 1 + err += y_pos * 2 + 1 + if(-x_pos == y_pos and e2 <= x_pos): + e2 = 0 + if (e2 > x_pos): + x_pos += 1 + err += x_pos * 2 + 1 + if x_pos > 0: + break + + def draw_filled_circle(self, frame_buffer, x, y, radius, colored): + # Bresenham algorithm + x_pos = -radius + y_pos = 0 + err = 2 - 2 * radius + if (x >= self.width or y >= self.height): + return + while True: + self.set_pixel(frame_buffer, x - x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y - y_pos, colored) + self.set_pixel(frame_buffer, x - x_pos, y - y_pos, colored) + self.draw_horizontal_line(frame_buffer, x + x_pos, y + y_pos, 2 * (-x_pos) + 1, colored) + self.draw_horizontal_line(frame_buffer, x + x_pos, y - y_pos, 2 * (-x_pos) + 1, colored) + e2 = err + if (e2 <= y_pos): + y_pos += 1 + err += y_pos * 2 + 1 + if(-x_pos == y_pos and e2 <= x_pos): + e2 = 0 + if (e2 > x_pos): + x_pos += 1 + err += x_pos * 2 + 1 + if x_pos > 0: + break + + # to wake call reset() or init() + def sleep(self): + self._command(VCOM_AND_DATA_INTERVAL_SETTING, b'\x37') + self._command(VCM_DC_SETTING_REGISTER, b'\x00') # to solve Vcom drop + self._command(POWER_SETTING, b'\x02\x00\x00\x00') # gate switch to external + self.wait_until_idle() + self._command(POWER_OFF) diff --git a/epaper2in7.py b/epaper2in7.py new file mode 100644 index 0000000..ae34d74 --- /dev/null +++ b/epaper2in7.py @@ -0,0 +1,139 @@ +# MicroPython library for Waveshare 2.7" B/W e-paper display GDEW027W3 + +from micropython import const +from time import sleep_ms + +# Display resolution +EPD_WIDTH = const(176) +EPD_HEIGHT = const(264) + +# Display commands +PANEL_SETTING = const(0x00) +POWER_SETTING = const(0x01) +#POWER_OFF = const(0x02) +#POWER_OFF_SEQUENCE_SETTING = const(0x03) +POWER_ON = const(0x04) +#POWER_ON_MEASURE = const(0x05) +BOOSTER_SOFT_START = const(0x06) +DEEP_SLEEP = const(0x07) +DATA_START_TRANSMISSION_1 = const(0x10) +#DATA_STOP = const(0x11) +DISPLAY_REFRESH = const(0x12) +DATA_START_TRANSMISSION_2 = const(0x13) # not in datasheet +#PARTIAL_DATA_START_TRANSMISSION_1 = const(0x14) +#PARTIAL_DATA_START_TRANSMISSION_2 = const(0x15) +PARTIAL_DISPLAY_REFRESH = const(0x16) +LUT_FOR_VCOM = const(0x20) # LUT for VCOM(LUT1) +LUT_WHITE_TO_WHITE = const(0x21) # White to white LUT (LUTWW) +LUT_BLACK_TO_WHITE = const(0x22) # Black to white LUT (LUTBW/LUTR) +LUT_WHITE_TO_BLACK = const(0x23) # White to Black LUT (LUTWB/LUTW) +LUT_BLACK_TO_BLACK = const(0x24) # Black to Black LUT (LUTBB/LUTB) +PLL_CONTROL = const(0x30) +#TEMPERATURE_SENSOR_COMMAND = const(0x40) +#TEMPERATURE_SENSOR_CALIBRATION = const(0x41) +#TEMPERATURE_SENSOR_WRITE = const(0x42) +#TEMPERATURE_SENSOR_READ = const(0x43) +#VCOM_AND_DATA_INTERVAL_SETTING = const(0x50) +#LOW_POWER_DETECTION = const(0x51) +#TCON_SETTING = const(0x60) +#TCON_RESOLUTION = const(0x61) +#SOURCE_AND_GATE_START_SETTING = const(0x62) +#GET_STATUS = const(0x71) +#AUTO_MEASURE_VCOM = const(0x80) +#VCOM_VALUE = const(0x81) +VCM_DC_SETTING_REGISTER = const(0x82) +#PROGRAM_MODE = const(0xA0) +#ACTIVE_PROGRAM = const(0xA1) +#READ_OTP_DATA = const(0xA2) +POWER_OPTIMIZATION = const(0xF8) # Power optimization in flow diagram + +class EPD: + def __init__(self, spi, cs, dc, rst, busy): + self.spi = spi + self.cs = cs + self.dc = dc + self.rst = rst + self.busy = busy + self.cs.init(self.cs.OUT, value=1) + self.dc.init(self.dc.OUT, value=0) + self.rst.init(self.rst.OUT, value=0) + self.busy.init(self.busy.IN) + self.width = EPD_WIDTH + self.height = EPD_HEIGHT + + LUT_VCOM_DC = bytearray(b'\x00\x00\x00\x0F\x0F\x00\x00\x05\x00\x32\x32\x00\x00\x02\x00\x0F\x0F\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + LUT_WW = bytearray(b'\x50\x0F\x0F\x00\x00\x05\x60\x32\x32\x00\x00\x02\xA0\x0F\x0F\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') # R21H + LUT_BW = LUT_BW # R22H r + LUT_BB = bytearray(b'\xA0\x0F\x0F\x00\x00\x05\x60\x32\x32\x00\x00\x02\x50\x0F\x0F\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') # R24H b + LUT_WB = LUT_BB # R23H w + + def _command(self, command, data=None): + self.dc.low() + self.cs.low() + self.spi.write(bytearray([command])) + self.cs.high() + if data is not None: + self._data(data) + + def _data(self, data): + self.dc.high() + self.cs.low() + self.spi.write(data) + self.cs.high() + + def init(self): + self.reset() + self._command(POWER_SETTING, b'\x03\x00\x2B\x2B\x09') # VDS_EN VDG_EN, VCOM_HV VGHL_LV[1] VGHL_LV[0], VDH, VDL, VDHR + self._command(BOOSTER_SOFT_START, b'\x07\x07\x17') + self._command(POWER_OPTIMIZATION, b'\x60\xA5') + self._command(POWER_OPTIMIZATION, b'\x89\xA5') + self._command(POWER_OPTIMIZATION, b'\x90\x00') + self._command(POWER_OPTIMIZATION, b'\x93\x2A') + self._command(POWER_OPTIMIZATION, b'\xA0\xA5') + self._command(POWER_OPTIMIZATION, b'\xA1\x00') + self._command(POWER_OPTIMIZATION, b'\x73\x41') + self._command(PARTIAL_DISPLAY_REFRESH, b'\x00') + self._command(POWER_ON) + self.wait_until_idle() + self._command(PANEL_SETTING, b'\xAF') # KW-BF KWR-AF BWROTP 0f + self._command(PLL_CONTROL, b'\x3A') # 3A 100HZ 29 150Hz 39 200HZ 31 171HZ + self._command(VCM_DC_SETTING_REGISTER, b'\x12') + sleep_ms(2) + self.set_lut() + + def wait_until_idle(self): + while self.busy.value() == 1: + sleep_ms(100) + + def reset(self): + self.rst.low() + sleep_ms(200) + self.rst.high() + sleep_ms(200) + + def set_lut(self): + self._command(LUT_FOR_VCOM, self.LUT_VCOM_DC) # vcom + self._command(LUT_WHITE_TO_WHITE, self.LUT_WW) # ww -- + self._command(LUT_BLACK_TO_WHITE, self.LUT_BW) # bw r + self._command(LUT_WHITE_TO_BLACK, self.LUT_BB) # wb w + self._command(LUT_BLACK_TO_BLACK, self.LUT_WB) # bb b + + # draw the current frame memory + def display_frame(self, frame_buffer): + if (frame_buffer != None): + self._command(DATA_START_TRANSMISSION_1) + sleep_ms(2) + for i in range(0, self.width * self.height // 8): + self._data(bytearray([0xFF])) + sleep_ms(2) + self._command(DATA_START_TRANSMISSION_2) + sleep_ms(2) + for i in range(0, self.width * self.height // 8): + self._data(bytearray([frame_buffer[i]])) + sleep_ms(2) + self._command(DISPLAY_REFRESH) + self.wait_until_idle() + + # to wake call reset() or init() + def sleep(self): + self._command(DEEP_SLEEP, b'\xA5') diff --git a/epaper2in7b.py b/epaper2in7b.py new file mode 100644 index 0000000..e6764d8 --- /dev/null +++ b/epaper2in7b.py @@ -0,0 +1,302 @@ +# MicroPython library for Waveshare 2.7" B/W/R e-paper display GDEW027C44 + +from micropython import const +from time import sleep_ms +import ustruct + +# Display resolution +EPD_WIDTH = const(176) +EPD_HEIGHT = const(264) + +# Display commands +PANEL_SETTING = const(0x00) +POWER_SETTING = const(0x01) +#POWER_OFF = const(0x02) +#POWER_OFF_SEQUENCE_SETTING = const(0x03) +POWER_ON = const(0x04) +#POWER_ON_MEASURE = const(0x05) +BOOSTER_SOFT_START = const(0x06) +DEEP_SLEEP = const(0x07) +#DATA_START_TRANSMISSION_1 = const(0x10) +#DATA_STOP = const(0x11) +DISPLAY_REFRESH = const(0x12) +DATA_START_TRANSMISSION_2 = const(0x13) +#PARTIAL_DATA_START_TRANSMISSION_1 = const(0x14) +#PARTIAL_DATA_START_TRANSMISSION_2 = const(0x15) +PARTIAL_DISPLAY_REFRESH = const(0x16) +LUT_FOR_VCOM = const(0x20) +LUT_WHITE_TO_WHITE = const(0x21) +LUT_BLACK_TO_WHITE = const(0x22) +LUT_WHITE_TO_BLACK = const(0x23) +LUT_BLACK_TO_BLACK = const(0x24) +PLL_CONTROL = const(0x30) +#TEMPERATURE_SENSOR_COMMAND = const(0x40) +#TEMPERATURE_SENSOR_CALIBRATION = const(0x41) +#TEMPERATURE_SENSOR_WRITE = const(0x42) +#TEMPERATURE_SENSOR_READ = const(0x43) +VCOM_AND_DATA_INTERVAL_SETTING = const(0x50) +#LOW_POWER_DETECTION = const(0x51) +#TCON_SETTING = const(0x60) +TCON_RESOLUTION = const(0x61) +#SOURCE_AND_GATE_START_SETTING = const(0x62) +#GET_STATUS = const(0x71) +#AUTO_MEASURE_VCOM = const(0x80) +#VCOM_VALUE = const(0x81) +VCM_DC_SETTING_REGISTER = const(0x82) +#PROGRAM_MODE = const(0xA0) +#ACTIVE_PROGRAM = const(0xA1) +#READ_OTP_DATA = const(0xA2) +POWER_OPTIMIZATION = const(0xF8) # Power optimization in flow diagram + +# Display orientation +ROTATE_0 = const(0) +ROTATE_90 = const(1) +ROTATE_180 = const(2) +ROTATE_270 = const(3) + +class EPD: + def __init__(self, spi, cs, dc, rst, busy): + self.spi = spi + self.cs = cs + self.dc = dc + self.rst = rst + self.busy = busy + self.cs.init(self.cs.OUT, value=1) + self.dc.init(self.dc.OUT, value=0) + self.rst.init(self.rst.OUT, value=0) + self.busy.init(self.busy.IN) + self.width = EPD_WIDTH + self.height = EPD_HEIGHT + self.rotate = ROTATE_0 + + LUT_VCOM_DC = bytearray(b'\x00\x00\x00\x1A\x1A\x00\x00\x01\x00\x0A\x0A\x00\x00\x08\x00\x0E\x01\x0E\x01\x10\x00\x0A\x0A\x00\x00\x08\x00\x04\x10\x00\x00\x05\x00\x03\x0E\x00\x00\x0A\x00\x23\x00\x00\x00\x01') + LUT_WW = bytearray(b'\x90\x1A\x1A\x00\x00\x01\x40\x0A\x0A\x00\x00\x08\x84\x0E\x01\x0E\x01\x10\x80\x0A\x0A\x00\x00\x08\x00\x04\x10\x00\x00\x05\x00\x03\x0E\x00\x00\x0A\x00\x23\x00\x00\x00\x01') # R21H + LUT_BW = bytearray(b'\xA0\x1A\x1A\x00\x00\x01\x00\x0A\x0A\x00\x00\x08\x84\x0E\x01\x0E\x01\x10\x90\x0A\x0A\x00\x00\x08\xB0\x04\x10\x00\x00\x05\xB0\x03\x0E\x00\x00\x0A\xC0\x23\x00\x00\x00\x01') # R22H r + LUT_BB = LUT_WW # R23H w + LUT_WB = bytearray(b'\x90\x1A\x1A\x00\x00\x01\x20\x0A\x0A\x00\x00\x08\x84\x0E\x01\x0E\x01\x10\x10\x0A\x0A\x00\x00\x08\x00\x04\x10\x00\x00\x05\x00\x03\x0E\x00\x00\x0A\x00\x23\x00\x00\x00\x01') # R24H b + + def _command(self, command, data=None): + self.dc.low() + self.cs.low() + self.spi.write(bytearray([command])) + self.cs.high() + if data is not None: + self._data(data) + + def _data(self, data): + self.dc.high() + self.cs.low() + self.spi.write(data) + self.cs.high() + + def init(self): + self.reset() + self._command(POWER_ON) + self.wait_until_idle() + self._command(PANEL_SETTING, b'\xAF') # (296x160, LUT from register, B/W/R run both LU1 LU2, scan up, shift right, bootster on) KW-BF KWR-AF BWROTP 0f + self._command(PLL_CONTROL, b'\x3A') # 3A 100HZ 29 150Hz 39 200HZ 31 171HZ + self._command(POWER_SETTING, b'\x03\x00\x2b\x2b\x09') # VDS_EN VDG_EN, VCOM_HV VGHL_LV[1] VGHL_LV[0], VDH, VDL, VDHR + self._command(BOOSTER_SOFT_START, b'\x07\x07\x17') + self._command(POWER_OPTIMIZATION, b'\x60\xA5') + self._command(POWER_OPTIMIZATION, b'\x89\xA5') + self._command(POWER_OPTIMIZATION, b'\x90\x00') + self._command(POWER_OPTIMIZATION, b'\x93\x2A') + self._command(POWER_OPTIMIZATION, b'\x73\x41') + self._command(VCM_DC_SETTING_REGISTER, b'\x12') + self._command(VCOM_AND_DATA_INTERVAL_SETTING, b'\x87') # define by OTP + self.set_lut() + self._command(PARTIAL_DISPLAY_REFRESH, b'\x00') + + def wait_until_idle(self): + while self.busy.value() == 1: + sleep_ms(100) + + def reset(self): + self.rst.low() + sleep_ms(200) + self.rst.high() + sleep_ms(200) + + def set_lut(self): + self._command(LUT_FOR_VCOM, self.LUT_VCOM_DC) # vcom + self._command(LUT_WHITE_TO_WHITE, self.LUT_WW) # ww -- + self._command(LUT_BLACK_TO_WHITE, self.LUT_BW) # bw r + self._command(LUT_WHITE_TO_BLACK, self.LUT_BB) # wb w + self._command(LUT_BLACK_TO_BLACK, self.LUT_WB) # bb b + + def display_frame(self, frame_buffer_black, frame_buffer_red): + self._command(TCON_RESOLUTION, ustruct.pack(">HH", EPD_WIDTH, EPD_HEIGHT)) + + if (frame_buffer_black != None): + self._command(DATA_START_TRANSMISSION_1) + sleep_ms(2) + for i in range(0, self.width * self.height // 8): + self._data(bytearray([frame_buffer_black[i]])) + sleep_ms(2) + if (frame_buffer_red != None): + self._command(DATA_START_TRANSMISSION_2) + sleep_ms(2) + for i in range(0, self.width * self.height // 8): + self._data(bytearray([frame_buffer_red[i]])) + sleep_ms(2) + + self._command(DISPLAY_REFRESH) + self.wait_until_idle() + + def set_rotate(self, rotate): + if (rotate == ROTATE_0): + self.rotate = ROTATE_0 + self.width = EPD_WIDTH + self.height = EPD_HEIGHT + elif (rotate == ROTATE_90): + self.rotate = ROTATE_90 + self.width = EPD_HEIGHT + self.height = EPD_WIDTH + elif (rotate == ROTATE_180): + self.rotate = ROTATE_180 + self.width = EPD_WIDTH + self.height = EPD_HEIGHT + elif (rotate == ROTATE_270): + self.rotate = ROTATE_270 + self.width = EPD_HEIGHT + self.height = EPD_WIDTH + + def set_pixel(self, frame_buffer, x, y, colored): + if (x < 0 or x >= self.width or y < 0 or y >= self.height): + return + if (self.rotate == ROTATE_0): + self.set_absolute_pixel(frame_buffer, x, y, colored) + elif (self.rotate == ROTATE_90): + point_temp = x + x = EPD_WIDTH - y + y = point_temp + self.set_absolute_pixel(frame_buffer, x, y, colored) + elif (self.rotate == ROTATE_180): + x = EPD_WIDTH - x + y = EPD_HEIGHT- y + self.set_absolute_pixel(frame_buffer, x, y, colored) + elif (self.rotate == ROTATE_270): + point_temp = x + x = y + y = EPD_HEIGHT - point_temp + self.set_absolute_pixel(frame_buffer, x, y, colored) + + def set_absolute_pixel(self, frame_buffer, x, y, colored): + # To avoid display orientation effects + # use EPD_WIDTH instead of self.width + # use EPD_HEIGHT instead of self.height + if (x < 0 or x >= EPD_WIDTH or y < 0 or y >= EPD_HEIGHT): + return + if (colored): + frame_buffer[(x + y * EPD_WIDTH) // 8] |= 0x80 >> (x % 8) + else: + frame_buffer[(x + y * EPD_WIDTH) // 8] &= ~(0x80 >> (x % 8)) + + def draw_string_at(self, frame_buffer, x, y, text, font, colored): + image = Image.new('1', (self.width, self.height)) + draw = ImageDraw.Draw(image) + draw.text((x, y), text, font = font, fill = 255) + # Set buffer to value of Python Imaging Library image. + # Image must be in mode 1. + pixels = image.load() + for y in range(self.height): + for x in range(self.width): + # Set the bits for the column of pixels at the current position. + if pixels[x, y] != 0: + self.set_pixel(frame_buffer, x, y, colored) + + def draw_line(self, frame_buffer, x0, y0, x1, y1, colored): + # Bresenham algorithm + dx = abs(x1 - x0) + sx = 1 if x0 < x1 else -1 + dy = -abs(y1 - y0) + sy = 1 if y0 < y1 else -1 + err = dx + dy + while((x0 != x1) and (y0 != y1)): + self.set_pixel(frame_buffer, x0, y0 , colored) + if (2 * err >= dy): + err += dy + x0 += sx + if (2 * err <= dx): + err += dx + y0 += sy + + def draw_horizontal_line(self, frame_buffer, x, y, width, colored): + for i in range(x, x + width): + self.set_pixel(frame_buffer, i, y, colored) + + def draw_vertical_line(self, frame_buffer, x, y, height, colored): + for i in range(y, y + height): + self.set_pixel(frame_buffer, x, i, colored) + + def draw_rectangle(self, frame_buffer, x0, y0, x1, y1, colored): + min_x = x0 if x1 > x0 else x1 + max_x = x1 if x1 > x0 else x0 + min_y = y0 if y1 > y0 else y1 + max_y = y1 if y1 > y0 else y0 + self.draw_horizontal_line(frame_buffer, min_x, min_y, max_x - min_x + 1, colored) + self.draw_horizontal_line(frame_buffer, min_x, max_y, max_x - min_x + 1, colored) + self.draw_vertical_line(frame_buffer, min_x, min_y, max_y - min_y + 1, colored) + self.draw_vertical_line(frame_buffer, max_x, min_y, max_y - min_y + 1, colored) + + def draw_filled_rectangle(self, frame_buffer, x0, y0, x1, y1, colored): + min_x = x0 if x1 > x0 else x1 + max_x = x1 if x1 > x0 else x0 + min_y = y0 if y1 > y0 else y1 + max_y = y1 if y1 > y0 else y0 + for i in range(min_x, max_x + 1): + self.draw_vertical_line(frame_buffer, i, min_y, max_y - min_y + 1, colored) + + def draw_circle(self, frame_buffer, x, y, radius, colored): + # Bresenham algorithm + x_pos = -radius + y_pos = 0 + err = 2 - 2 * radius + if (x >= self.width or y >= self.height): + return + while True: + self.set_pixel(frame_buffer, x - x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y - y_pos, colored) + self.set_pixel(frame_buffer, x - x_pos, y - y_pos, colored) + e2 = err + if (e2 <= y_pos): + y_pos += 1 + err += y_pos * 2 + 1 + if(-x_pos == y_pos and e2 <= x_pos): + e2 = 0 + if (e2 > x_pos): + x_pos += 1 + err += x_pos * 2 + 1 + if x_pos > 0: + break + + def draw_filled_circle(self, frame_buffer, x, y, radius, colored): + # Bresenham algorithm + x_pos = -radius + y_pos = 0 + err = 2 - 2 * radius + if (x >= self.width or y >= self.height): + return + while True: + self.set_pixel(frame_buffer, x - x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y - y_pos, colored) + self.set_pixel(frame_buffer, x - x_pos, y - y_pos, colored) + self.draw_horizontal_line(frame_buffer, x + x_pos, y + y_pos, 2 * (-x_pos) + 1, colored); + self.draw_horizontal_line(frame_buffer, x + x_pos, y - y_pos, 2 * (-x_pos) + 1, colored); + e2 = err + if (e2 <= y_pos): + y_pos += 1 + err += y_pos * 2 + 1 + if(-x_pos == y_pos and e2 <= x_pos): + e2 = 0 + if (e2 > x_pos): + x_pos += 1 + err += x_pos * 2 + 1 + if x_pos > 0: + break + + # to wake call reset() or init() + def sleep(self): + self._command(DEEP_SLEEP, b'\xA5') diff --git a/epaper2in9.py b/epaper2in9.py new file mode 100644 index 0000000..aca6396 --- /dev/null +++ b/epaper2in9.py @@ -0,0 +1,149 @@ +# MicroPython library for Waveshare 2.9" B/W e-paper display GDEH029A1 + +from micropython import const +from time import sleep_ms +import ustruct + +# Display resolution +EPD_WIDTH = const(128) +EPD_HEIGHT = const(296) + +# Display commands +DRIVER_OUTPUT_CONTROL = const(0x01) +BOOSTER_SOFT_START_CONTROL = const(0x0C) +#GATE_SCAN_START_POSITION = const(0x0F) +DEEP_SLEEP_MODE = const(0x10) +DATA_ENTRY_MODE_SETTING = const(0x11) +#SW_RESET = const(0x12) +#TEMPERATURE_SENSOR_CONTROL = const(0x1A) +MASTER_ACTIVATION = const(0x20) +#DISPLAY_UPDATE_CONTROL_1 = const(0x21) +DISPLAY_UPDATE_CONTROL_2 = const(0x22) +WRITE_RAM = const(0x24) +WRITE_VCOM_REGISTER = const(0x2C) +WRITE_LUT_REGISTER = const(0x32) +SET_DUMMY_LINE_PERIOD = const(0x3A) +SET_GATE_TIME = const(0x3B) +#BORDER_WAVEFORM_CONTROL = const(0x3C) +SET_RAM_X_ADDRESS_START_END_POSITION = const(0x44) +SET_RAM_Y_ADDRESS_START_END_POSITION = const(0x45) +SET_RAM_X_ADDRESS_COUNTER = const(0x4E) +SET_RAM_Y_ADDRESS_COUNTER = const(0x4F) +TERMINATE_FRAME_READ_WRITE = const(0xFF) + +class EPD: + def __init__(self, spi, cs, dc, rst, busy): + self.spi = spi + self.cs = cs + self.dc = dc + self.rst = rst + self.busy = busy + self.cs.init(self.cs.OUT, value=1) + self.dc.init(self.dc.OUT, value=0) + self.rst.init(self.rst.OUT, value=0) + self.busy.init(self.busy.IN) + self.width = EPD_WIDTH + self.height = EPD_HEIGHT + + # 30 bytes (look up tables) + # original waveshare example + LUT_FULL_UPDATE = bytearray(b'\x02\x02\x01\x11\x12\x12\x22\x22\x66\x69\x69\x59\x58\x99\x99\x88\x00\x00\x00\x00\xF8\xB4\x13\x51\x35\x51\x51\x19\x01\x00') + LUT_PARTIAL_UPDATE = bytearray(b'\x10\x18\x18\x08\x18\x18\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x14\x44\x12\x00\x00\x00\x00\x00\x00') + + # https://github.com/ZinggJM/GxEPD/blob/master/GxGDEH029A1/GxGDEH029A1.cpp + #LUT_FULL_UPDATE = bytearray(b'\x50\xAA\x55\xAA\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\x1F\x00\x00\x00\x00\x00\x00\x00') + #LUT_PARTIAL_UPDATE = bytearray(b'\x10\x18\x18\x08\x18\x18\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x14\x44\x12\x00\x00\x00\x00\x00\x00') + + def _command(self, command, data=None): + self.dc.low() + self.cs.low() + self.spi.write(bytearray([command])) + self.cs.high() + if data is not None: + self._data(data) + + def _data(self, data): + self.dc.high() + self.cs.low() + self.spi.write(data) + self.cs.high() + + def init(self): + self.reset() + self._command(DRIVER_OUTPUT_CONTROL, ustruct.pack("= self.width): + x_end = self.width - 1 + else: + x_end = x + w - 1 + + if (y + h >= self.height): + y_end = self.height - 1 + else: + y_end = y + h - 1 + + self.set_memory_area(x, y, x_end, y_end) + self.set_memory_pointer(x, y) + self._command(WRITE_RAM, image) + + # replace the frame memory with the specified color + def clear_frame_memory(self, color): + self.set_memory_area(0, 0, self.width - 1, self.height - 1) + self.set_memory_pointer(0, 0) + self._command(WRITE_RAM) + # send the color data + for i in range(0, self.width // 8 * self.height): + self._data(bytearray([color])) + + # draw the current frame memory and switch to the next memory area + def display_frame(self): + self._command(DISPLAY_UPDATE_CONTROL_2, b'\xC4') + self._command(MASTER_ACTIVATION) + self._command(TERMINATE_FRAME_READ_WRITE) + self.wait_until_idle() + + # specify the memory area for data R/W + def set_memory_area(self, x_start, y_start, x_end, y_end): + self._command(SET_RAM_X_ADDRESS_START_END_POSITION) + # x point must be the multiple of 8 or the last 3 bits will be ignored + self._data(bytearray([(x_start >> 3) & 0xFF])) + self._data(bytearray([(x_end >> 3) & 0xFF])) + self._command(SET_RAM_Y_ADDRESS_START_END_POSITION, ustruct.pack("> 3) & 0xFF])) + self._command(SET_RAM_Y_ADDRESS_COUNTER, ustruct.pack("BH", EPD_WIDTH, EPD_HEIGHT)) + self._command(VCM_DC_SETTING_REGISTER, b'\x0A') + + def wait_until_idle(self): + while self.busy.value() == 1: + sleep_ms(100) + + def reset(self): + self.rst.low() + sleep_ms(200) + self.rst.high() + sleep_ms(200) + + def display_frame(self, frame_buffer_black, frame_buffer_red): + if (frame_buffer_black != None): + self._command(DATA_START_TRANSMISSION_1) + sleep_ms(2) + for i in range(0, self.width * self.height // 8): + self._data(bytearray([frame_buffer_black[i]])) + sleep_ms(2) + if (frame_buffer_red != None): + self._command(DATA_START_TRANSMISSION_2) + sleep_ms(2) + for i in range(0, self.width * self.height // 8): + self._data(bytearray([frame_buffer_red[i]])) + sleep_ms(2) + + self._command(DISPLAY_REFRESH) + self.wait_until_idle() + + def set_rotate(self, rotate): + if (rotate == ROTATE_0): + self.rotate = ROTATE_0 + self.width = epdif.EPD_WIDTH + self.height = epdif.EPD_HEIGHT + elif (rotate == ROTATE_90): + self.rotate = ROTATE_90 + self.width = epdif.EPD_HEIGHT + self.height = epdif.EPD_WIDTH + elif (rotate == ROTATE_180): + self.rotate = ROTATE_180 + self.width = epdif.EPD_WIDTH + self.height = epdif.EPD_HEIGHT + elif (rotate == ROTATE_270): + self.rotate = ROTATE_270 + self.width = epdif.EPD_HEIGHT + self.height = epdif.EPD_WIDTH + + def set_pixel(self, frame_buffer, x, y, colored): + if (x < 0 or x >= self.width or y < 0 or y >= self.height): + return + if (self.rotate == ROTATE_0): + self.set_absolute_pixel(frame_buffer, x, y, colored) + elif (self.rotate == ROTATE_90): + point_temp = x + x = epdif.EPD_WIDTH - y + y = point_temp + self.set_absolute_pixel(frame_buffer, x, y, colored) + elif (self.rotate == ROTATE_180): + x = epdif.EPD_WIDTH - x + y = epdif.EPD_HEIGHT- y + self.set_absolute_pixel(frame_buffer, x, y, colored) + elif (self.rotate == ROTATE_270): + point_temp = x + x = y + y = epdif.EPD_HEIGHT - point_temp + self.set_absolute_pixel(frame_buffer, x, y, colored) + + def set_absolute_pixel(self, frame_buffer, x, y, colored): + # To avoid display orientation effects + # use EPD_WIDTH instead of self.width + # use EPD_HEIGHT instead of self.height + if (x < 0 or x >= EPD_WIDTH or y < 0 or y >= EPD_HEIGHT): + return + if (colored): + frame_buffer[(x + y * EPD_WIDTH) // 8] &= ~(0x80 >> (x % 8)) + else: + frame_buffer[(x + y * EPD_WIDTH) // 8] |= 0x80 >> (x % 8) + + def draw_string_at(self, frame_buffer, x, y, text, font, colored): + image = Image.new('1', (self.width, self.height)) + draw = ImageDraw.Draw(image) + draw.text((x, y), text, font = font, fill = 255) + # Set buffer to value of Python Imaging Library image. + # Image must be in mode 1. + pixels = image.load() + for y in range(self.height): + for x in range(self.width): + # Set the bits for the column of pixels at the current position. + if pixels[x, y] != 0: + self.set_pixel(frame_buffer, x, y, colored) + + def draw_line(self, frame_buffer, x0, y0, x1, y1, colored): + # Bresenham algorithm + dx = abs(x1 - x0) + sx = 1 if x0 < x1 else -1 + dy = -abs(y1 - y0) + sy = 1 if y0 < y1 else -1 + err = dx + dy + while((x0 != x1) and (y0 != y1)): + self.set_pixel(frame_buffer, x0, y0 , colored) + if (2 * err >= dy): + err += dy + x0 += sx + if (2 * err <= dx): + err += dx + y0 += sy + + def draw_horizontal_line(self, frame_buffer, x, y, width, colored): + for i in range(x, x + width): + self.set_pixel(frame_buffer, i, y, colored) + + def draw_vertical_line(self, frame_buffer, x, y, height, colored): + for i in range(y, y + height): + self.set_pixel(frame_buffer, x, i, colored) + + def draw_rectangle(self, frame_buffer, x0, y0, x1, y1, colored): + min_x = x0 if x1 > x0 else x1 + max_x = x1 if x1 > x0 else x0 + min_y = y0 if y1 > y0 else y1 + max_y = y1 if y1 > y0 else y0 + self.draw_horizontal_line(frame_buffer, min_x, min_y, max_x - min_x + 1, colored) + self.draw_horizontal_line(frame_buffer, min_x, max_y, max_x - min_x + 1, colored) + self.draw_vertical_line(frame_buffer, min_x, min_y, max_y - min_y + 1, colored) + self.draw_vertical_line(frame_buffer, max_x, min_y, max_y - min_y + 1, colored) + + def draw_filled_rectangle(self, frame_buffer, x0, y0, x1, y1, colored): + min_x = x0 if x1 > x0 else x1 + max_x = x1 if x1 > x0 else x0 + min_y = y0 if y1 > y0 else y1 + max_y = y1 if y1 > y0 else y0 + for i in range(min_x, max_x + 1): + self.draw_vertical_line(frame_buffer, i, min_y, max_y - min_y + 1, colored) + + def draw_circle(self, frame_buffer, x, y, radius, colored): + # Bresenham algorithm + x_pos = -radius + y_pos = 0 + err = 2 - 2 * radius + if (x >= self.width or y >= self.height): + return + while True: + self.set_pixel(frame_buffer, x - x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y - y_pos, colored) + self.set_pixel(frame_buffer, x - x_pos, y - y_pos, colored) + e2 = err + if (e2 <= y_pos): + y_pos += 1 + err += y_pos * 2 + 1 + if(-x_pos == y_pos and e2 <= x_pos): + e2 = 0 + if (e2 > x_pos): + x_pos += 1 + err += x_pos * 2 + 1 + if x_pos > 0: + break + + def draw_filled_circle(self, frame_buffer, x, y, radius, colored): + # Bresenham algorithm + x_pos = -radius + y_pos = 0 + err = 2 - 2 * radius + if (x >= self.width or y >= self.height): + return + while True: + self.set_pixel(frame_buffer, x - x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y + y_pos, colored) + self.set_pixel(frame_buffer, x + x_pos, y - y_pos, colored) + self.set_pixel(frame_buffer, x - x_pos, y - y_pos, colored) + self.draw_horizontal_line(frame_buffer, x + x_pos, y + y_pos, 2 * (-x_pos) + 1, colored) + self.draw_horizontal_line(frame_buffer, x + x_pos, y - y_pos, 2 * (-x_pos) + 1, colored) + e2 = err + if (e2 <= y_pos): + y_pos += 1 + err += y_pos * 2 + 1 + if(-x_pos == y_pos and e2 <= x_pos): + e2 = 0 + if (e2 > x_pos): + x_pos += 1 + err += x_pos * 2 + 1 + if x_pos > 0: + break + + # to wake call reset() or init() + def sleep(self): + self._command(VCOM_AND_DATA_INTERVAL_SETTING, b'\x37') + self._command(VCM_DC_SETTING_REGISTER, b'\x00') # to solve Vcom drop + self._command(POWER_SETTING, b'\x02\x00\x00\x00') # gate switch to external + self.wait_until_idle() + self._command(POWER_OFF) diff --git a/epaper4in2.py b/epaper4in2.py new file mode 100644 index 0000000..29e4b93 --- /dev/null +++ b/epaper4in2.py @@ -0,0 +1,146 @@ +# MicroPython library for Waveshare 4.2" B/W e-paper display GDEW042T2 + +from micropython import const +from time import sleep_ms +import ustruct + +# Display resolution +EPD_WIDTH = const(400) +EPD_HEIGHT = const(300) + +# Display commands +PANEL_SETTING = const(0x00) +POWER_SETTING = const(0x01) +POWER_OFF = const(0x02) +#POWER_OFF_SEQUENCE_SETTING = const(0x03) +POWER_ON = const(0x04) +#POWER_ON_MEASURE = const(0x05) +BOOSTER_SOFT_START = const(0x06) +DEEP_SLEEP = const(0x07) +DATA_START_TRANSMISSION_1 = const(0x10) +#DATA_STOP = const(0x11) +DISPLAY_REFRESH = const(0x12) +DATA_START_TRANSMISSION_2 = const(0x13) +LUT_FOR_VCOM = const(0x20) +LUT_WHITE_TO_WHITE = const(0x21) +LUT_BLACK_TO_WHITE = const(0x22) +LUT_WHITE_TO_BLACK = const(0x23) +LUT_BLACK_TO_BLACK = const(0x24) +PLL_CONTROL = const(0x30) +#TEMPERATURE_SENSOR_COMMAND = const(0x40) +#TEMPERATURE_SENSOR_SELECTION = const(0x41) +#TEMPERATURE_SENSOR_WRITE = const(0x42) +#TEMPERATURE_SENSOR_READ = const(0x43) +VCOM_AND_DATA_INTERVAL_SETTING = const(0x50) +#LOW_POWER_DETECTION = const(0x51) +#TCON_SETTING = const(0x60) +RESOLUTION_SETTING = const(0x61) +#GSST_SETTING = const(0x65) +#GET_STATUS = const(0x71) +#AUTO_MEASUREMENT_VCOM = const(0x80) +#READ_VCOM_VALUE = const(0x81) +VCM_DC_SETTING = const(0x82) +#PARTIAL_WINDOW = const(0x90) +#PARTIAL_IN = const(0x91) +#PARTIAL_OUT = const(0x92) + +#PROGRAM_MODE = const(0xA0) +#ACTIVE_PROGRAMMING = const(0xA1) +#READ_OTP = const(0xA2) +#POWER_SAVING = const(0xE3) + +class EPD: + def __init__(self, spi, cs, dc, rst, busy): + self.spi = spi + self.cs = cs + self.dc = dc + self.rst = rst + self.busy = busy + self.cs.init(self.cs.OUT, value=1) + self.dc.init(self.dc.OUT, value=0) + self.rst.init(self.rst.OUT, value=0) + self.busy.init(self.busy.IN) + self.width = EPD_WIDTH + self.height = EPD_HEIGHT + + # 44/42 bytes (look up tables) + LUT_VCOM0 = bytearray(b'\x00\x17\x00\x00\x00\x02\x00\x17\x17\x00\x00\x02\x00\x0A\x01\x00\x00\x01\x00\x0E\x0E\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + LUT_WW = bytearray(b'\x40\x17\x00\x00\x00\x02\x90\x17\x17\x00\x00\x02\x40\x0A\x01\x00\x00\x01\xA0\x0E\x0E\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + LUT_BW = LUT_WW + LUT_BB = bytearray(b'\x80\x17\x00\x00\x00\x02\x90\x17\x17\x00\x00\x02\x80\x0A\x01\x00\x00\x01\x50\x0E\x0E\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + LUT_WB = LUT_BB + + def _command(self, command, data=None): + self.dc.low() + self.cs.low() + self.spi.write(bytearray([command])) + self.cs.high() + if data is not None: + self._data(data) + + def _data(self, data): + self.dc.high() + self.cs.low() + self.spi.write(data) + self.cs.high() + + def init(self): + self.reset() + self._command(POWER_SETTING, b'\x03\x00\x2B\x2B\xFF') # VDS_EN VDG_EN, VCOM_HV VGHL_LV[1] VGHL_LV[0], VDH, VDL, VDHR + self._command(BOOSTER_SOFT_START, b'\x17\x17\x17') # 07 0f 17 1f 27 2F 37 2f + self._command(POWER_ON) + self.wait_until_idle() + self._command(PANEL_SETTING, b'\xBF\x0B') # KW-BF KWR-AF BWROTP 0f + self._command(PLL_CONTROL, b'\x3C') # 3A 100HZ 29 150Hz 39 200HZ 31 171HZ + + def wait_until_idle(self): + while self.busy.value() == 1: + sleep_ms(100) + + def reset(self): + self.rst.low() + sleep_ms(200) + self.rst.high() + sleep_ms(200) + + def set_lut(self): + self._command(LUT_FOR_VCOM, self.LUT_VCOM0) # vcom + self._command(LUT_WHITE_TO_WHITE, self.LUT_WW) # ww -- + self._command(LUT_BLACK_TO_WHITE, self.LUT_BW) # bw r + self._command(LUT_WHITE_TO_BLACK, self.LUT_BB) # wb w + self._command(LUT_BLACK_TO_BLACK, self.LUT_WB) # bb b + + # draw the current frame memory + def display_frame(self, frame_buffer): + self._command(RESOLUTION_SETTING, ustruct.pack(">HH", EPD_WIDTH, EPD_HEIGHT)) + self._command(VCM_DC_SETTING, b'\x12') + self._command(VCOM_AND_DATA_INTERVAL_SETTING) + self._command(0x97) # VBDF 17|D7 VBDW 97 VBDB 57 VBDF F7 VBDW 77 VBDB 37 VBDR B7 + # TODO should ^ this be _data(0x97), not sure what it does + + if (frame_buffer != None): + self._command(DATA_START_TRANSMISSION_1) + for i in range(0, self.width * self.height // 8): + self._data(bytearray([0xFF])) # bit set: white, bit reset: black + sleep_ms(2) + self._command(DATA_START_TRANSMISSION_2) + for i in range(0, self.width * self.height // 8): + self._data(bytearray([frame_buffer[i]])) + sleep_ms(2) + + self.set_lut() + self._command(DISPLAY_REFRESH) + sleep_ms(100) + self.wait_until_idle() + + # to wake call reset() or init() + def sleep(self): + self._command(VCOM_AND_DATA_INTERVAL_SETTING, b'\x17') # border floating + self._command(VCM_DC_SETTING) # VCOM to 0V + self._command(PANEL_SETTING) + sleep_ms(100) + self._command(POWER_SETTING, b'\x00\x00\x00\x00\x00') # VG&VS to 0V fast + sleep_ms(100) + self._command(POWER_OFF) + self.wait_until_idle() + self._command(DEEP_SLEEP, b'\xA5') diff --git a/epaper4in2b.py b/epaper4in2b.py new file mode 100644 index 0000000..1757935 --- /dev/null +++ b/epaper4in2b.py @@ -0,0 +1,118 @@ +# MicroPython library for Waveshare 4.2" B/W/R e-paper display GDEW042Z15 + +from micropython import const +from time import sleep_ms + +# Display resolution +EPD_WIDTH = const(400) +EPD_HEIGHT = const(300) + +# Display commands +PANEL_SETTING = const(0x00) +#POWER_SETTING = const(0x01) +POWER_OFF = const(0x02) +#POWER_OFF_SEQUENCE_SETTING = const(0x03) +POWER_ON = const(0x04) +#POWER_ON_MEASURE = const(0x05) +BOOSTER_SOFT_START = const(0x06) +DEEP_SLEEP = const(0x07) +DATA_START_TRANSMISSION_1 = const(0x10) +#DATA_STOP = const(0x11) +DISPLAY_REFRESH = const(0x12) +DATA_START_TRANSMISSION_2 = const(0x13) +#VCOM_LUT = const(0x20) +#W2W_LUT = const(0x21) +#B2W_LUT = const(0x22) +#W2B_LUT = const(0x23) +#B2B_LUT = const(0x24) +#PLL_CONTROL = const(0x30) +#TEMPERATURE_SENSOR_CALIBRATION = const(0x40) +#TEMPERATURE_SENSOR_SELECTION = const(0x41) +#TEMPERATURE_SENSOR_WRITE = const(0x42) +#TEMPERATURE_SENSOR_READ = const(0x43) +VCOM_AND_DATA_INTERVAL_SETTING = const(0x50) +#LOW_POWER_DETECTION = const(0x51) +#TCON_SETTING = const(0x60) +#RESOLUTION_SETTING = const(0x61) +#GSST_SETTING = const(0x65) +#GET_STATUS = const(0x71) +#AUTO_MEASURE_VCOM = const(0x80) +#VCOM_VALUE = const(0x81) +#VCM_DC_SETTING = const(0x82) +#PARTIAL_WINDOW = const(0x90) +#PARTIAL_IN = const(0x91) +#PARTIAL_OUT = const(0x92) +#PROGRAM_MODE = const(0xA0) +#ACTIVE_PROGRAM = const(0xA1) +#READ_OTP_DATA = const(0xA2) +#POWER_SAVING = const(0xE3) + +class EPD: + def __init__(self, spi, cs, dc, rst, busy): + self.spi = spi + self.cs = cs + self.dc = dc + self.rst = rst + self.busy = busy + self.cs.init(self.cs.OUT, value=1) + self.dc.init(self.dc.OUT, value=0) + self.rst.init(self.rst.OUT, value=0) + self.busy.init(self.busy.IN) + self.width = EPD_WIDTH + self.height = EPD_HEIGHT + + def _command(self, command, data=None): + self.dc.low() + self.cs.low() + self.spi.write(bytearray([command])) + self.cs.high() + if data is not None: + self._data(data) + + def _data(self, data): + self.dc.high() + self.cs.low() + self.spi.write(data) + self.cs.high() + + def init(self): + self.reset() + self._command(BOOSTER_SOFT_START, b'\x17\x17\x17') # 07 0f 17 1f 27 2F 37 2f + self._command(POWER_ON) + self.wait_until_idle() + self._command(PANEL_SETTING, b'\x0F') # LUT from OTP + + def wait_until_idle(self): + while self.busy.value() == 1: + sleep_ms(100) + + def reset(self): + self.rst.low() + sleep_ms(200) + self.rst.high() + sleep_ms(200) + + # draw the current frame memory + def display_frame(self, frame_buffer_black, frame_buffer_red): + if (frame_buffer_black != None): + self._command(DATA_START_TRANSMISSION_1) + sleep_ms(2) + for i in range(0, self.width * self.height // 8): + self._data(bytearray([frame_buffer_black[i]])) + sleep_ms(2) + if (frame_buffer_red != None): + self._command(DATA_START_TRANSMISSION_2) + sleep_ms(2) + for i in range(0, self.width * self.height // 8): + self._data(bytearray([frame_buffer_red[i]])) + sleep_ms(2) + + self._command(DISPLAY_REFRESH) + self.wait_until_idle() + + # to wake call reset() or init() + def sleep(self): + self._command(VCOM_AND_DATA_INTERVAL_SETTING, b'\xF7') # border floating + self._command(POWER_OFF) + self.wait_until_idle() + self._command(DEEP_SLEEP, b'\xA5') # check code diff --git a/epaper7in5.py b/epaper7in5.py new file mode 100644 index 0000000..997087d --- /dev/null +++ b/epaper7in5.py @@ -0,0 +1,133 @@ +# MicroPython library for Waveshare 7.5" B/W e-paper display GDEW075T8 + +from micropython import const +from time import sleep_ms +import ustruct + +# Display resolution +EPD_WIDTH = const(640) +EPD_HEIGHT = const(384) + +# Display commands +PANEL_SETTING = const(0x00) +POWER_SETTING = const(0x01) +POWER_OFF = const(0x02) +#POWER_OFF_SEQUENCE_SETTING = const(0x03) +POWER_ON = const(0x04) +#POWER_ON_MEASURE = const(0x05) +BOOSTER_SOFT_START = const(0x06) +DEEP_SLEEP = const(0x07) +DATA_START_TRANSMISSION_1 = const(0x10) +#DATA_STOP = const(0x11) +DISPLAY_REFRESH = const(0x12) +#IMAGE_PROCESS = const(0x13) +#LUT_FOR_VCOM = const(0x20) +#LUT_BLUE = const(0x21) +#LUT_WHITE = const(0x22) +#LUT_GRAY_1 = const(0x23) +#LUT_GRAY_2 = const(0x24) +#LUT_RED_0 = const(0x25) +#LUT_RED_1 = const(0x26) +#LUT_RED_2 = const(0x27) +#LUT_RED_3 = const(0x28) +#LUT_XON = const(0x29) +PLL_CONTROL = const(0x30) +#TEMPERATURE_SENSOR_COMMAND = const(0x40) +TEMPERATURE_CALIBRATION = const(0x41) +#TEMPERATURE_SENSOR_WRITE = const(0x42) +#TEMPERATURE_SENSOR_READ = const(0x43) +VCOM_AND_DATA_INTERVAL_SETTING = const(0x50) +#LOW_POWER_DETECTION = const(0x51) +TCON_SETTING = const(0x60) +TCON_RESOLUTION = const(0x61) +#SPI_FLASH_CONTROL = const(0x65) +#REVISION = const(0x70) +#GET_STATUS = const(0x71) +#AUTO_MEASUREMENT_VCOM = const(0x80) +#READ_VCOM_VALUE = const(0x81) +VCM_DC_SETTING = const(0x82) +FLASH_MODE = const(0xE5) + +class EPD: + def __init__(self, spi, cs, dc, rst, busy): + self.spi = spi + self.cs = cs + self.dc = dc + self.rst = rst + self.busy = busy + self.cs.init(self.cs.OUT, value=1) + self.dc.init(self.dc.OUT, value=0) + self.rst.init(self.rst.OUT, value=0) + self.busy.init(self.busy.IN) + self.width = EPD_WIDTH + self.height = EPD_HEIGHT + + def _command(self, command, data=None): + self.dc.low() + self.cs.low() + self.spi.write(bytearray([command])) + self.cs.high() + if data is not None: + self._data(data) + + def _data(self, data): + self.dc.high() + self.cs.low() + self.spi.write(data) + self.cs.high() + + def init(self): + self.reset() + self._command(POWER_SETTING, b'\x37\x00') + self._command(PANEL_SETTING, b'\xCF\x08') + self._command(BOOSTER_SOFT_START, b'\xC7\xCC\x28') + self._command(POWER_ON) + self.wait_until_idle() + self._command(PLL_CONTROL, b'\x3C') + self._command(TEMPERATURE_CALIBRATION, b'\x00') + self._command(VCOM_AND_DATA_INTERVAL_SETTING, b'\x77') + self._command(TCON_SETTING, b'\x22') + self._command(TCON_RESOLUTION, ustruct.pack(">HH", EPD_WIDTH, EPD_HEIGHT)) + self._command(VCM_DC_SETTING, b'\x1E') # decide by LUT file + self._command(FLASH_MODE, b'\x03') + + def wait_until_idle(self): + while self.busy.value() == 1: + sleep_ms(100) + + def reset(self): + self.rst.low() + sleep_ms(200) + self.rst.high() + sleep_ms(200) + + # draw the current frame memory + def display_frame(self, frame_buffer): + self._command(DATA_START_TRANSMISSION_1) + for i in range(0, 30720): + temp1 = frame_buffer[i] + j = 0 + while (j < 8): + if (temp1 & 0x80): + temp2 = 0x03 + else: + temp2 = 0x00 + temp2 = (temp2 << 4) & 0xFF + temp1 = (temp1 << 1) & 0xFF + j += 1 + if (temp1 & 0x80): + temp2 |= 0x03 + else: + temp2 |= 0x00 + temp1 = (temp1 << 1) & 0xFF + self._data(bytearray([temp2])) + j += 1 + self._command(DISPLAY_REFRESH) + sleep_ms(100) + self.wait_until_idle() + + # to wake call reset() or init() + def sleep(self): + self._command(POWER_OFF) + self.wait_until_idle() + self._command(DEEP_SLEEP, b'\xA5') diff --git a/epaper7in5b.py b/epaper7in5b.py new file mode 100644 index 0000000..60eec18 --- /dev/null +++ b/epaper7in5b.py @@ -0,0 +1,137 @@ +# MicroPython library for Waveshare 7.5" B/W/R e-paper display GDEW075Z09 + +from micropython import const +from time import sleep_ms +import ustruct + +# Display resolution +EPD_WIDTH = const(640) +EPD_HEIGHT = const(384) + +# Display commands +PANEL_SETTING = const(0x00) +POWER_SETTING = const(0x01) +POWER_OFF = const(0x02) +#POWER_OFF_SEQUENCE_SETTING = const(0x03) +POWER_ON = const(0x04) +#POWER_ON_MEASURE = const(0x05) +BOOSTER_SOFT_START = const(0x06) +DEEP_SLEEP = const(0x07) +DATA_START_TRANSMISSION_1 = const(0x10) +#DATA_STOP = const(0x11) +DISPLAY_REFRESH = const(0x12) +#IMAGE_PROCESS = const(0x13) +#LUT_FOR_VCOM = const(0x20) +#LUT_BLUE = const(0x21) +#LUT_WHITE = const(0x22) +#LUT_GRAY_1 = const(0x23) +#LUT_GRAY_2 = const(0x24) +#LUT_RED_0 = const(0x25) +#LUT_RED_1 = const(0x26) +#LUT_RED_2 = const(0x27) +#LUT_RED_3 = const(0x28) +#LUT_XON = const(0x29) +PLL_CONTROL = const(0x30) +#TEMPERATURE_SENSOR_COMMAND = const(0x40) +TEMPERATURE_CALIBRATION = const(0x41) +#TEMPERATURE_SENSOR_WRITE = const(0x42) +#TEMPERATURE_SENSOR_READ = const(0x43) +VCOM_AND_DATA_INTERVAL_SETTING = const(0x50) +#LOW_POWER_DETECTION = const(0x51) +TCON_SETTING = const(0x60) +TCON_RESOLUTION = const(0x61) +#SPI_FLASH_CONTROL = const(0x65) +#REVISION = const(0x70) +#GET_STATUS = const(0x71) +#AUTO_MEASUREMENT_VCOM = const(0x80) +#READ_VCOM_VALUE = const(0x81) +VCM_DC_SETTING = const(0x82) +FLASH_MODE = const(0xE5) + +class EPD: + def __init__(self, spi, cs, dc, rst, busy): + self.spi = spi + self.cs = cs + self.dc = dc + self.rst = rst + self.busy = busy + self.cs.init(self.cs.OUT, value=1) + self.dc.init(self.dc.OUT, value=0) + self.rst.init(self.rst.OUT, value=0) + self.busy.init(self.busy.IN) + self.width = EPD_WIDTH + self.height = EPD_HEIGHT + + def _command(self, command, data=None): + self.dc.low() + self.cs.low() + self.spi.write(bytearray([command])) + self.cs.high() + if data is not None: + self._data(data) + + def _data(self, data): + self.dc.high() + self.cs.low() + self.spi.write(data) + self.cs.high() + + def init(self): + self.reset() + self._command(POWER_SETTING, b'\x37\x00') + self._command(PANEL_SETTING, b'\xCF\x08') + self._command(BOOSTER_SOFT_START, b'\xC7\xCC\x28') + self._command(POWER_ON) + self.wait_until_idle() + self._command(PLL_CONTROL, b'\x3C') + self._command(TEMPERATURE_CALIBRATION, b'\x00') + self._command(VCOM_AND_DATA_INTERVAL_SETTING, b'\x77') + self._command(TCON_SETTING, b'\x22') + self._command(TCON_RESOLUTION, ustruct.pack(">HH", EPD_WIDTH, EPD_HEIGHT)) + self._command(VCM_DC_SETTING, b'\x1E') # decide by LUT file + self._command(FLASH_MODE, b'\x03') + + def wait_until_idle(self): + while self.busy.value() == 1: + sleep_ms(100) + + def reset(self): + self.rst.low() + sleep_ms(200) + self.rst.high() + sleep_ms(200) + + # draw the current frame memory + def display_frame(self, frame_buffer): + self._command(DATA_START_TRANSMISSION_1) + for i in range(0, self.width // 4 * self.height): + temp1 = frame_buffer[i] + j = 0 + while (j < 4): + if ((temp1 & 0xC0) == 0xC0): + temp2 = 0x03 + elif ((temp1 & 0xC0) == 0x00): + temp2 = 0x00 + else: + temp2 = 0x04 + temp2 = (temp2 << 4) & 0xFF + temp1 = (temp1 << 2) & 0xFF + j += 1 + if ((temp1 & 0xC0) == 0xC0): + temp2 |= 0x03 + elif ((temp1 & 0xC0) == 0x00): + temp2 |= 0x00 + else: + temp2 |= 0x04 + temp1 = (temp1 << 2) & 0xFF + self._data(bytearray([temp2])) + j += 1 + self._command(DISPLAY_REFRESH) + sleep_ms(100) + self.wait_until_idle() + + # to wake call reset() or init() + def sleep(self): + self._command(POWER_OFF) + self.wait_until_idle() + self._command(DEEP_SLEEP, b'\xA5') diff --git a/examples/2in9-hello-world/hello-world-white.bmp b/examples/2in9-hello-world/hello-world-white.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b83f409176cda69eab9f51f657690f2bb3c2f177 GIT binary patch literal 113720 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 literal 0 HcmV?d00001 diff --git a/examples/2in9-hello-world/hello-world.bmp b/examples/2in9-hello-world/hello-world.bmp new file mode 100644 index 0000000000000000000000000000000000000000..411dc3df3b21734352275784a1ceb0f394b6b709 GIT binary patch literal 151690 zcmeI2y^dWq5P#v^w@z33>moLA3xWE7Q)&2cvf4zPC`S)M^ z{p_1x{`~Gk{^jzizj%7SR&-VQVg@*X12}*KIDi8ikH?* z#Wh7stzM}6tnsM-|s~cfXP8{?&qAE;bgqY>r;JmHqMJA z1cO6Zj$>In%M{+4TCqAcHHfwMU?jJZwQ#}4g%Goz*^jQ*(+jz2heE8}UhmvOb$e@) zpJv%IA1zK=bz43oIdN~aIBC^|Wt?TpY_vFO)ouBV>8a9r!@J;2w&4%0PIj5MGo{jE_dbTc=a+Yy$vgKqkZ^>A$ zEqdUN^LYhRnBo8q-~bNbz&r=!?{h1y@j};&l~~7m!2vx7Vl!W9AO7&if!lNd?t0vr zEwjY|9KZn_zyTb<0UW>q9KZn_sBs|ox5AoQ#O~!@j{R{C*S)xw@;dmIyqDG_ZXZ`l zxF0ca-G^%ptAlUuy{0Cyd%F^H0j7I1t>Fj%+hHxefc@>VcP@lp(h=6@bp-zBWt;oH zg+1(j2Xek}ehy!J=KeE$&%rmw(Pu56V>#@v<%HxmdJXTjc>6p?vrg6X@8x+7CsMpd zpTT?$=01nfj8paedwE{Rg%q<H=!+(ALIo>&jz4^KNoa;H1Vplu& zk+o{?Cce#)7_-)Sj;`0*2YGoPv{;4e!XwYadPZ8DwCY;V=j``sanh=Lb{^KBPm7aQ zUF-Rr{XPv&p_*>*?6chQ^MzRTeh!VAy*-g1|J`#WuTU+w$Nb~-pFNuq%wjcQzb^N~ zyA-<|zg%uE|LB4Dxt^48Y>9#ET&^|qZ{eHDskxijH9Sf2tT}_{8a!J$)UftrTkj)p zU0-~@p=a2w%MLcM!2ukwc0m3+VSPXM**Y(Iht@E$WuiIn5Z~OMW<53OITr7-q7-`Kl$1``X)faVjJ<4&7ox??!i`9H%eC57XKip&M zmE?S^;b6;Q*1QkiCGWF(3S67ShEi! zT}B%7t>G(UHTt2ZokNmm$r?U(d^BfW!rH}X_CW19gAnq={c`BpBT%Y{S`ka zJ$>wE593rWv;KJ2tIZ_E&zRQj|?DuJK3e|LbXP@PcpD)C! z_j72}?CpvC`0t)0d4+1ZJ?0;u|Loa}U>2(Z`*pb=-lf>(_~mkQ`9}}D&-J8)V@nKN z=W?x?e+%DKPR-rKuHi|FXU!Qr*WlU8p@y{|+j<{)>-ysJ4L!qdU3Rd64G!P{4&VR| z-~bNbfOH`AJN+tqvRBq){auA~st=ftW$w>2HTPA{{C;^J>%uCGQ+>dEEOR-})a+-U z$zECOy1;yyFAm@U4&VR|-~bNb01n^)4&VR|oYR5Xf8$Brk8`@trDng%84l<hNe2kflbL&_v z`}W+Anb&aAiamPa-QI%`Q@0mlA!9=^ZZGzV#j|hE-Jf}gmw$dd%eZ4-zRNhbmNBg7 zGWX{n;w72M7(f4bmNEYNh~a%5?gtB>lmC32yLb8W&qC*Zyo_bNmjgb_<2lFth;#4o zUXQnA;`18$Ebn2xt_vf%yIQbbmvxNI2nS-d+26y5RtMm_2j3b_ITvbb5qmyAU$h@IzIFXxhc_|D^-n|%qt5iz+wIG^Xp2)?-* z@SVrEcJ?`zt>?9U5WkNzKC74?ehklhvMuEna-cMqxc%LL|Nabnz7OFKf9XJvPvq|7 zljQE!@Y{!9533M+_`|-(DRS5MhwuCK8EJhV!TvVc$GG$F{a!w#ILnrEB2GiTo~ literal 0 HcmV?d00001 diff --git a/examples/2in9-hello-world/hello-world.png b/examples/2in9-hello-world/hello-world.png new file mode 100644 index 0000000000000000000000000000000000000000..da26df72a95ef482dd0e535cae8867b372b1a408 GIT binary patch literal 2496 zcmZWrc|6ox8-IQ?!Y5sTJs0K39k=qiU1Bzgnu{^Y6JGw(Q|y^1u-v&sB& z>nDuxbp&7lU*(UQqO}5TY~Kew09%RoEAkOWzSfWo-zW)#iiQ6<&=)#51Q8gA%edB(7pmPsW#r+bgkxK^@r-h(b?~K@vL3MX-I6AxNmc%%-e7@m2j(ved zOW>#v2as=8)?kW`+R>D&aQu>=>uuQLK#BQw+Xxr{buJ5mVNd2%^#`X)Yt0fa~@ z;V&)3?0g=dYu2H3ZLR?=P3DB}vd7miRe67l7Zq+wmirZfi#oU!{0dF zro4jZzr0#q=XR_V8A9c>Kz?h8yTkwzQX0K`>ms)#L4{?rKfV_ zsgY&yLon``n$-`QW-7c114FH|9^4g0(b;kt zO|cCD392}OTbyOlOdNek#JfG;LfqsR{IaLUcQ{&@s`_oHtbpo&8aMNIR z$*gVH_lk(Gb4#?+CjfzZd*XWvqrQPwK63Z@?sY3hE3cNc%MGJ_)FCDS4mwus3jk;5 zUDX+odBZ#L859+{`Y0jvJq^U$2*c)XyOjfmXXi|l41+Rlt7|r)>^VCOI-oWV)oYFW z51Vbt#IjinJ-S6|!bJk-q|Ti?*peNWKWt!lJ=2a;3gCEfsizLm+*bw9>ayX%F+!lh ziX*uPo=L^-PMOo|!s=-X3@8=!gILOr<}t;%BOaL|bk7(!F*PJ0CEjq4_D- z{6U=JO(WNuu@myY8C2-J2g#sFxRK!X%(8fA@bkqhis24&ruYG_R6~lid{C-Si*XjN zNW|uleLyfFM5+yKsEv5nQl?vZWad-tbLCeS|NvX=;54qN{Yh2(C|SsBR8)%|@O zC^-iPHGr;l+_4j(t7mXsfN|{MjdU!-QPGbBXxW85+wtfPiyk`!JU;oDkzvo}>uDI^ zzUa6>1D_=g1(E;1AQ}qex7I8BB8;aBt(A{++PvECf}CvBQ%8jUd+!~)6zY0)4PfS+=|2rqU*nqFdp-4K1DH zLxKdT&H+radR*PScOklyh#!rAf1pAOdj=@$58pdrD9VktvGXmqWYl0xHB2EvALtQY zGj2LPz&A@#$T|K+o9{^AU#d^LR)}S8$GGUXXZ%>HNI0xdgpiAsn_cwdw0(c#9^40||HyF}Xp%*j9ZeDSL5y|sM@C)AyMwRgOqkInrRr&#_@NhF|8 z+|#SI{2$qlkA_u;jkYfOJ;mr}Ts0+4({^YX1r1(4fATlGW&w?#TjItDk$J=<3@E&_ z)T>Y32;%n6W1_^FeG%LzykEk4<2B*Nt$*L069ZQFo<|0tXFbV!Ckc7kKg68|c3gk{ zLyj6)1_??%A_i53y`3cF5_^d_ItK8^-t)h6iRbRbb5VZz$hEAKONLda$0j$31L5ft z4vdU0%izM3xDSR4JFyj&SFk)=(P8B(9VCOplgGe-$I<#SobdeeDiYybdH0LuTuLZ(3&NRY~58Xvv&ZY6Ymj1 zi#t-&jg>`C)ny8Q{%+OJ7?mFq@9FPx7P4j@CUS8{Bxe3c&c)(<%Vd>RMeer&=|_dw zWs3{`3PySpaOrc`e8K?&2But=eHFl@pvs^x6g3zOtP|=8w=~Da>7$~+D-;(dbK{BJY0(fky>i@o>-mbc%Fa%t_lyu{OHK6xnO|m=!w6pyiX9E) zBS{EX5kvd|A9C!LeNn?#p?w{~zpE~H5fcLxYf}1MDt#wy2h