From 24ef737efb51cab904b462028ea73824509e2004 Mon Sep 17 00:00:00 2001 From: Ace Date: Sun, 28 Apr 2024 16:27:00 +0200 Subject: [PATCH 1/3] fix issue with 12.48" rendering See #334 and #335 for more details --- .github/workflows/test-on-rpi.yml | 9 ++- .github/workflows/update-os.yml | 10 ++- README.md | 25 ++++--- .../display/drivers/epd_12_in_48_lib_32bit.so | Bin 12176 -> 11972 bytes .../display/drivers/epd_12_in_48_lib_64bit.so | Bin 70512 -> 223952 bytes inkycal/display/drivers/epdconfig_12_in_48.py | 63 ++++++++++++++++-- 6 files changed, 83 insertions(+), 24 deletions(-) diff --git a/.github/workflows/test-on-rpi.yml b/.github/workflows/test-on-rpi.yml index 720a64e..cad32d2 100644 --- a/.github/workflows/test-on-rpi.yml +++ b/.github/workflows/test-on-rpi.yml @@ -1,4 +1,4 @@ -name: Raspberry Pi build +name: Test on Raspberry Pi OS on: push: @@ -29,7 +29,7 @@ jobs: TINDIE_USERNAME: ${{ secrets.TINDIE_USERNAME }} with: # Set the base_image to the desired Raspberry Pi OS version - base_image: https://downloads.raspberrypi.com/raspios_lite_armhf/images/raspios_lite_armhf-2023-12-11/2023-12-11-raspios-bookworm-armhf-lite.img.xz + base_image: https://downloads.raspberrypi.com/raspios_lite_armhf/images/raspios_lite_armhf-2024-03-15/2024-03-15-raspios-bookworm-armhf-lite.img.xz image_additional_mb: 3072 # enlarge free space to 3GB optimize_image: true # user: inky --> not supported? @@ -42,12 +42,11 @@ jobs: whoami cd /home/inky sudo apt-get update -y - - sudo apt-get install zlib1g libjpeg-dev libatlas-base-dev rustc libopenjp2-7 python3-dev scons libssl-dev python3-venv python3-pip git libfreetype6-dev wkhtmltopdf libopenblas-dev -y + sudo apt-get install git zlib1g libjpeg-dev libatlas-base-dev rustc libopenjp2-7 python3-dev scons libssl-dev python3-venv python3-pip git libfreetype6-dev wkhtmltopdf libopenblas-dev -y echo $PWD && ls git clone --branch main --single-branch https://github.com/aceinnolab/Inkycal cd Inkycal - python3.11 -m venv venv + python3.12 -m venv venv . venv/bin/activate python -m pip install --upgrade pip pip install wheel diff --git a/.github/workflows/update-os.yml b/.github/workflows/update-os.yml index 00d8b3e..9df2466 100644 --- a/.github/workflows/update-os.yml +++ b/.github/workflows/update-os.yml @@ -24,7 +24,7 @@ jobs: TINDIE_USERNAME: ${{ secrets.TINDIE_USERNAME }} with: # Set the base_image to the desired Raspberry Pi OS version - base_image: https://downloads.raspberrypi.com/raspios_lite_armhf/images/raspios_lite_armhf-2023-12-11/2023-12-11-raspios-bookworm-armhf-lite.img.xz + base_image: https://downloads.raspberrypi.com/raspios_lite_armhf/images/raspios_lite_armhf-2024-03-15/2024-03-15-raspios-bookworm-armhf-lite.img.xz image_additional_mb: 3072 # enlarge free space to 3 GB optimize_image: true commands: | @@ -40,7 +40,13 @@ jobs: sudo apt-get dist-upgrade -y sudo apt-get install -y python3-pip - sudo apt-get install zlib1g libjpeg-dev libatlas-base-dev rustc libopenjp2-7 python3-dev scons libssl-dev python3-venv python3-pip git libfreetype6-dev wkhtmltopdf libopenblas-dev libxml2-dev libxslt-dev python-dev-is-python3 -y + sudo apt-get install git zlib1g libjpeg-dev libatlas-base-dev rustc libopenjp2-7 python3-dev scons libssl-dev python3-venv python3-pip git libfreetype6-dev wkhtmltopdf libopenblas-dev libxml2-dev libxslt-dev python-dev-is-python3 -y + # #334 & #335 + git clone https://github.com/WiringPi/WiringPi + cd WiringPi + ./build + cd .. + echo $PWD && ls git clone https://github.com/aceinnolab/Inkycal cd Inkycal diff --git a/README.md b/README.md index 7a3783b..88606a3 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Inkycal is a software written in python for selected E-Paper displays. It converts these displays into useful information dashboards. It's open-source, free for personal use, fully modular and user-friendly. Despite all this, -Inkycal can run well even on the Raspberry Pi Zero. Oh, and it's open for third-party modules! Hooray! +Inkycal can run well even on the Raspberry Pi Zero W. Oh, and it's open for third-party modules! Hooray! ## ⚠️ Warning: long installation time expected! @@ -56,7 +56,7 @@ Watch the one-minute video on getting started with Inkycal: ## Hardware guide Before you can start, please ensure you have one of the supported displays and of the supported Raspberry -Pi: `|4|3A|3B|3B+|2B|0W|0WH|02W|`. We personally recommend the Raspberry Pi Zero W as this is relatively cheaper, uses +Pi: `|4|3A|3B|3B+|2B|ZeroW|ZeroWH|Zero2W|`. We personally recommend the Raspberry Pi Zero W as this is relatively cheaper, uses less power and is perfect to fit in a small photo frame once you have assembled everything. **Serial** displays are usually cheaper, but slower. Their main advantage is ease of use, like being able to communicate @@ -92,11 +92,6 @@ display!** | MicroSD card | Sandisk |  Search for `MicroSD card 8GB` on amazon or similar | ## Configuring the Raspberry Pi - -⚠️ Warning: You cannot use the latest version of Raspberry Pi OS as a kernel upgrade has caused many projects to fail. -Please only use the version mentioned below. -Download this specific version -of [Raspberry Pi OS (11-12-2023)](https://downloads.raspberrypi.com/raspios_lite_armhf/images/raspios_lite_armhf-2023-12-11/2023-12-11-raspios-bookworm-armhf-lite.img.xz) Flash Raspberry Pi OS on your microSD card (min. 4GB) with [Raspberry Pi Imager](https://rptl.io/imager). Use the following settings: @@ -175,19 +170,23 @@ This will help keep this project growing and cover the ongoing expenses too! Win Run the following steps to install Inkycal. Do **not** use sudo for this, except where explicitly specified. ```bash -# the next line is for the Raspberry Pi only -sudo apt-get install zlib1g libjpeg-dev libatlas-base-dev rustc libopenjp2-7 python-dev-is-python3 scons libssl-dev python3-venv python3-pip git libfreetype6-dev wkhtmltopdf libopenblas-dev +# Raspberry Pi specific section start +sudo apt-get install git zlib1g libjpeg-dev libatlas-base-dev rustc libopenjp2-7 python-dev-is-python3 scons libssl-dev python3-venv python3-pip git libfreetype6-dev wkhtmltopdf libopenblas-dev +git clone https://github.com/WiringPi/WiringPi +cd WiringPi +./build +cd .. +pip install RPi.GPIO==0.7.1 spidev==3.5 gpiozero==2.0 +# Raspberry Pi specific section end + cd $HOME -git clone --branch main --single-branch https://github.com/aceinnolab/Inkycal +git clone --branch main https://github.com/aceinnolab/Inkycal cd Inkycal python3 -m venv venv source venv/bin/activate python -m pip install --upgrade pip pip install wheel pip install -e ./ - -# If you are running on the Raspberry Pi, please install the following too to allow rendering on the display -pip install RPi.GPIO==0.7.1 spidev==3.5 gpiozero==2.0 ``` ## Running Inkycal diff --git a/inkycal/display/drivers/epd_12_in_48_lib_32bit.so b/inkycal/display/drivers/epd_12_in_48_lib_32bit.so index acdbb26b97a64fb0d5fe5079a2e6988283c4c62e..61482b51f0f9a75675723366e5df8961836a5939 100644 GIT binary patch literal 11972 zcmeHNeQaFC5#RG&oQv&%lbC#3?N*>|=dJ>OmL z-Vq1UHWZL7H8c^Se1lyYT8l!lP)H*cQc4hiP*76^A=IX=&(1+`Pz4n&G^n}$e(&wt z>x+$w)c@*D=4NJRc6N4mcHjEF`TqLQ29L)hRPlkRL7Jmub8K`n1N={!YLy_|G|=f#17;k4!}j0nZer;#1&zO58Oh zKMcMCd{W9=fFqiIB^)#`(SBg+KMDC+$h)NeYrqFEZQYVDfnFc%bz#w{Uj=?CV)9NY z7pB?XnTVTdJDjpjQ<$5Z8_Y;F6>YcDb~M%8P!~(Yqs`%#Sk#q`FELxY!e*Nl567%K zq9UDWv-gHmQ8S&iME&}k&3dcdvcoa+8!5|*IBaxSdMGoE{*^#G;$ymM!*LDJ$OIXzhsFndHW#l@Q5{op$|*#=`r| zjLvkXMTE7Ed`IJE*T;4H;3s=$4P6K9>;t5qre2vy2#h2Z>8@o)V+)8e(jgHN+UXzqaZF?6LFy{V$*M4OHcP13kIR z1`ZDRKRS`yGar-k`oX~&ZyXrhbK#|&qIYR@qegGi=vs}g(deK?FV$#6qvvXLxkmdn zT7a$y_T(yzo}4#$aG=OI{60?Kp)2#%p7-+k;r@9Zu?g$2O!VZIK~IQ-1Jn~@N7evO zn!0n*z9`7HJDj$&^3~Y^v^@j36HpHuHLy{m+bFLapv|>2db70ilZAH;{Isejy4VDMQ(h{1hdLoA zT>|DlCl=K|XO`z%f6wuowJqvV5 z(hERumh@cE8zfCX1Cpkn*MX+b^mD1C>F3pwrk{%?O+OccX20~IQquHop46ewvn9>3 z%%TqFS6}CASckRbnqZEfxdpL*Iokw#hj82sH-aw(&loN>dWZUrli6C(C7@pby$ZAd z?KkeuF>Xnhfo9B7r+?AO>_cuJ&RVkXXK^mQ31IQ{SLFoawL*(G98<&aX~>CNweG>Y z2g$R){^h5$#|*||Q})w*el_FL6RaC#tdizf{+7?rcgA|^hl9TUC(dH8q8>%tAAV7q z^NR(!Qy1NNnP?A8XPk@Pp;w^SxUwhb4<1I$W4=D_dFV~}cMj)nAI@AG=XfogUk082 z;OUWgev$Su9`2W`pkG!Xe-3i4e;@FlrT=&YJacwMPwoZSVN7se{1kFLI)>kr^=iL7 zf%@s#hj(Kg=__sh7FU|N5I^-9?YrQ!&5Pyck}s2AA$XtY^Uts3w`DP zBFIApcE1bxbet))Idf%ic7M=2$Th$iN(||%@*xFXj=?YMRUa|>1mD_$KU_X`{-RR0 zhj<*n{|LX27qr<0-8S^oE9+JNO{mw$vcEun6XX+(r5U>VdfW(Ij%AIkS7W&W^&HD8 zU_;thvK3NRMLfY+K4gq*>vlDCSE8S{3+fl5ULVU*DOY{XfqbH|bVFAkOBr-ImZYp# zHi}Wtv3P)+3;NIh+m&4)o?t9|_UdE#J9M!Nhn>BtKR2|!sh&NI<#Pr8e9HFNOT}_e z{z>v`ZylHYDgWProH73g;9~g5J;Jt!q+RZ-zq&TE9`0#8i>Qaa;q-y$)UeB+ba>i2 z0sY2;alIt_`4#YZbHTmEGf|)O*Pu(=^kL-e(dL0;;CcQu^hooZe@fDatB>Hl=saM4XIcP+cQW`6?tX8ol>9#~<`a1J zFVIAs#S03U6cO-v4Jk}uyoz+bci~-z5cuu`71053znQwXtse8L8i2Znj^5pX^D3&8FdWmNtbh2P&*IfVYdEU2~$^V{3Ty1LcI z(xz}a*y7On}4*O@(h^W!8sJXZ|w ziAQ*@oVy0ZUV#8X;o7ixoz-w-!{y!C=DfK)R~+x0T{F<<%DXW{>~$gw-`wT9cCQm* zLVP&F{cYOvVTC%pVIHs z^q(3>Kce;b9OQ~u{yeP7*?*tLKd54m9iNvU`j zznpK*BeNoCPpuzMfpZ$~0Z;ophul&sE=NPfEBh)Q1ma-<4a<1&fTw-6zC2M@YYV96 zm-!WLDHR(bzr~O5(!k2TibtM!w8wAoN}v8QUqkVf^P9TjDQA9%;wk4hd&N`E?=gy} zoZsRVPdW2F6i+$7(JP*E=5r{%FdnF{_7AgmZpOG2?{TttR9iRRcrL4WEW&=g4ZK=! z57v7xc(uPgi2wcI)%;R^0KD37ls^St#e0#AcXb}{2|)jPN8-E0-47byhxU5@%!{-y z%VOZ)YrFyeJa|3-gckFy=To=>x< zpnY2bf4jyT=>J~udOpvCnwP`ym=(`-Rkg=6eByMpRo7Gp0`mWO;?|UH1rlOOShR*?F>`M;{B5%> zE|x^Z|G;t_meE1l&a|}!T9KHevW-l;(`;oXQW^4v7Y4eQPITkDxa#ct?9I$?H%;}ND#)qivA+J?<_s6|SZ(%Tr?wr*|6 z+_quEj`huE^V)Tx^=QqW$EHx3W74Z?Ye(~oz9?ObK5A)EDx1kkyK>T*WFFQ?rd7R@ z9mRyGOA@rk{7X7BW{i+ggK*EAu=Xa zO??U)%>fgE^uA6z+yZQ;T->3kc*2ebumb`u87mg4vLeFaI>PA=5s2)Iqos@OlqZIpTsppwuHTG^wXAJ7S)-Z}v9wS*4P)Z_W7 z^lk@D`@H(_`9|R1MXFGbo)^$5(zRC>Hm5+d3kE6UyvG(A423G`bP zrN^<+9>>f33*knk1g!K9fmV9F7Z8+;>WY38G_N7feDQvT9AYI?dgOlwfC)#B_d4GM zdM`kSb4Po;PcY~CGtkN=F~{|50R40NH9#4-kAPQ&dW2U1N{{!IMq|_#L?d=z2Ti-Q z$9qe&ftUuZit7J&sGvQ@91HcXawzwQGQ!&c*h;#!LhLn!s8S3tby$eG7OEUEU>g&_ ozPAF{Z#jTV?u-?fmpbj56AyuhQ?z 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 literal 70512 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 diff --git a/inkycal/display/drivers/epdconfig_12_in_48.py b/inkycal/display/drivers/epdconfig_12_in_48.py index cdc84bc..276adab 100644 --- a/inkycal/display/drivers/epdconfig_12_in_48.py +++ b/inkycal/display/drivers/epdconfig_12_in_48.py @@ -31,6 +31,8 @@ import os import time from ctypes import * +import RPi.GPIO as GPIO + EPD_SCK_PIN = 11 EPD_MOSI_PIN = 10 @@ -71,11 +73,11 @@ if spi is None: def digital_write(pin, value): - spi.DEV_Digital_Write(pin, value) + GPIO.output(pin, value) def digital_read(pin): - return spi.DEV_Digital_Read(pin) + return GPIO.input(pin) def spi_writebyte(value): @@ -87,15 +89,68 @@ def delay_ms(delaytime): def module_init(): + GPIO.setmode(GPIO.BCM) + GPIO.setwarnings(False) + GPIO.setup(EPD_SCK_PIN, GPIO.OUT) + GPIO.setup(EPD_MOSI_PIN, GPIO.OUT) + + logging.debug("python call bcm2835 Lib") + + GPIO.setup(EPD_M2S2_RST_PIN, GPIO.OUT) + GPIO.setup(EPD_M1S1_RST_PIN, GPIO.OUT) + GPIO.setup(EPD_M2S2_DC_PIN, GPIO.OUT) + GPIO.setup(EPD_M1S1_DC_PIN, GPIO.OUT) + GPIO.setup(EPD_S1_CS_PIN, GPIO.OUT) + GPIO.setup(EPD_S2_CS_PIN, GPIO.OUT) + GPIO.setup(EPD_M1_CS_PIN, GPIO.OUT) + GPIO.setup(EPD_M2_CS_PIN, GPIO.OUT) + + GPIO.setup(EPD_S1_BUSY_PIN, GPIO.IN) + GPIO.setup(EPD_S2_BUSY_PIN, GPIO.IN) + GPIO.setup(EPD_M1_BUSY_PIN, GPIO.IN) + GPIO.setup(EPD_M2_BUSY_PIN, GPIO.IN) + + digital_write(EPD_M1_CS_PIN, 1) + digital_write(EPD_S1_CS_PIN, 1) + digital_write(EPD_M2_CS_PIN, 1) + digital_write(EPD_S2_CS_PIN, 1) + + digital_write(EPD_M2S2_RST_PIN, 0) + digital_write(EPD_M1S1_RST_PIN, 0) + digital_write(EPD_M2S2_DC_PIN, 1) + digital_write(EPD_M1S1_DC_PIN, 1) + spi.DEV_ModuleInit() def module_exit(): - spi.DEV_ModuleExit() + digital_write(EPD_M2S2_RST_PIN, 0) + digital_write(EPD_M1S1_RST_PIN, 0) + digital_write(EPD_M2S2_DC_PIN, 0) + digital_write(EPD_M1S1_DC_PIN, 0) + digital_write(EPD_S1_CS_PIN, 1) + digital_write(EPD_S2_CS_PIN, 1) + digital_write(EPD_M1_CS_PIN, 1) + digital_write(EPD_M2_CS_PIN, 1) def spi_readbyte(Reg): - return spi.DEV_SPI_ReadByte(Reg) + GPIO.setup(EPD_MOSI_PIN, GPIO.IN) + j = 0 + # time.sleep(0.01) + for i in range(0, 8): + GPIO.output(EPD_SCK_PIN, GPIO.LOW) + # time.sleep(0.01) + j = j << 1 + if (GPIO.input(EPD_MOSI_PIN) == GPIO.HIGH): + j |= 0x01 + else: + j &= 0xfe + # time.sleep(0.01) + GPIO.output(EPD_SCK_PIN, GPIO.HIGH) + # time.sleep(0.01) + GPIO.setup(EPD_MOSI_PIN, GPIO.OUT) + return j def delay_ms(delaytime): From 0ff28e4e11b63d23901dc7d4456c6a1106d25be9 Mon Sep 17 00:00:00 2001 From: Ace Date: Sun, 28 Apr 2024 16:48:04 +0200 Subject: [PATCH 2/3] fix tests --- .github/workflows/test-on-rpi.yml | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-on-rpi.yml b/.github/workflows/test-on-rpi.yml index cad32d2..5e3f014 100644 --- a/.github/workflows/test-on-rpi.yml +++ b/.github/workflows/test-on-rpi.yml @@ -44,9 +44,9 @@ jobs: sudo apt-get update -y sudo apt-get install git zlib1g libjpeg-dev libatlas-base-dev rustc libopenjp2-7 python3-dev scons libssl-dev python3-venv python3-pip git libfreetype6-dev wkhtmltopdf libopenblas-dev -y echo $PWD && ls - git clone --branch main --single-branch https://github.com/aceinnolab/Inkycal + git clone https://github.com/aceinnolab/Inkycal cd Inkycal - python3.12 -m venv venv + python3.11 -m venv venv . venv/bin/activate python -m pip install --upgrade pip pip install wheel diff --git a/README.md b/README.md index 88606a3..9f2dd81 100644 --- a/README.md +++ b/README.md @@ -180,7 +180,7 @@ pip install RPi.GPIO==0.7.1 spidev==3.5 gpiozero==2.0 # Raspberry Pi specific section end cd $HOME -git clone --branch main https://github.com/aceinnolab/Inkycal +git clone https://github.com/aceinnolab/Inkycal cd Inkycal python3 -m venv venv source venv/bin/activate From 0ba210a8aa9a4e821061c05622bfee8ba2e5ba36 Mon Sep 17 00:00:00 2001 From: Ace Date: Mon, 29 Apr 2024 13:58:23 +0200 Subject: [PATCH 3/3] review adjustment --- .github/workflows/update-os.yml | 4 ---- README.md | 7 ++++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/update-os.yml b/.github/workflows/update-os.yml index 9df2466..49ea466 100644 --- a/.github/workflows/update-os.yml +++ b/.github/workflows/update-os.yml @@ -65,10 +65,6 @@ jobs: tar -xf bcm2835-1.71.tar cd bcm2835-1.71/ sudo ./configure && sudo make && sudo make check && sudo make install - cd .. - echo $CWD - wget https://project-downloads.drogon.net/wiringpi-latest.deb - sudo dpkg -i wiringpi-latest.deb cd .. echo $CWD diff --git a/README.md b/README.md index 9f2dd81..6663b97 100644 --- a/README.md +++ b/README.md @@ -133,8 +133,6 @@ wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz tar zxvf bcm2835-1.71.tar.gz cd bcm2835-1.71/ sudo ./configure && sudo make && sudo make check && sudo make install -wget https://project-downloads.drogon.net/wiringpi-latest.deb -sudo dpkg -i wiringpi-latest.deb # If you are using the Raspberry Pi Zero models, you may need to increase the swapfile size to be able to install Inkycal: sudo dphys-swapfile swapoff @@ -176,7 +174,6 @@ git clone https://github.com/WiringPi/WiringPi cd WiringPi ./build cd .. -pip install RPi.GPIO==0.7.1 spidev==3.5 gpiozero==2.0 # Raspberry Pi specific section end cd $HOME @@ -187,6 +184,10 @@ source venv/bin/activate python -m pip install --upgrade pip pip install wheel pip install -e ./ + + +# only for Raspberry Pi: +pip install RPi.GPIO==0.7.1 spidev==3.5 gpiozero==2.0 ``` ## Running Inkycal