Merge pull request #336 from aceinnolab/hotfix/#335
fix issue with 12.48" rendering
This commit is contained in:
commit
6ade114f8a
9
.github/workflows/test-on-rpi.yml
vendored
9
.github/workflows/test-on-rpi.yml
vendored
@ -1,4 +1,4 @@
|
|||||||
name: Raspberry Pi build
|
name: Test on Raspberry Pi OS
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
@ -29,7 +29,7 @@ jobs:
|
|||||||
TINDIE_USERNAME: ${{ secrets.TINDIE_USERNAME }}
|
TINDIE_USERNAME: ${{ secrets.TINDIE_USERNAME }}
|
||||||
with:
|
with:
|
||||||
# Set the base_image to the desired Raspberry Pi OS version
|
# 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
|
image_additional_mb: 3072 # enlarge free space to 3GB
|
||||||
optimize_image: true
|
optimize_image: true
|
||||||
# user: inky --> not supported?
|
# user: inky --> not supported?
|
||||||
@ -42,10 +42,9 @@ jobs:
|
|||||||
whoami
|
whoami
|
||||||
cd /home/inky
|
cd /home/inky
|
||||||
sudo apt-get update -y
|
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
|
||||||
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
|
|
||||||
echo $PWD && ls
|
echo $PWD && ls
|
||||||
git clone --branch main --single-branch https://github.com/aceinnolab/Inkycal
|
git clone https://github.com/aceinnolab/Inkycal
|
||||||
cd Inkycal
|
cd Inkycal
|
||||||
python3.11 -m venv venv
|
python3.11 -m venv venv
|
||||||
. venv/bin/activate
|
. venv/bin/activate
|
||||||
|
14
.github/workflows/update-os.yml
vendored
14
.github/workflows/update-os.yml
vendored
@ -24,7 +24,7 @@ jobs:
|
|||||||
TINDIE_USERNAME: ${{ secrets.TINDIE_USERNAME }}
|
TINDIE_USERNAME: ${{ secrets.TINDIE_USERNAME }}
|
||||||
with:
|
with:
|
||||||
# Set the base_image to the desired Raspberry Pi OS version
|
# 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
|
image_additional_mb: 3072 # enlarge free space to 3 GB
|
||||||
optimize_image: true
|
optimize_image: true
|
||||||
commands: |
|
commands: |
|
||||||
@ -40,7 +40,13 @@ jobs:
|
|||||||
sudo apt-get dist-upgrade -y
|
sudo apt-get dist-upgrade -y
|
||||||
|
|
||||||
sudo apt-get install -y python3-pip
|
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
|
echo $PWD && ls
|
||||||
git clone https://github.com/aceinnolab/Inkycal
|
git clone https://github.com/aceinnolab/Inkycal
|
||||||
cd Inkycal
|
cd Inkycal
|
||||||
@ -59,10 +65,6 @@ jobs:
|
|||||||
tar -xf bcm2835-1.71.tar
|
tar -xf bcm2835-1.71.tar
|
||||||
cd bcm2835-1.71/
|
cd bcm2835-1.71/
|
||||||
sudo ./configure && sudo make && sudo make check && sudo make install
|
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 ..
|
cd ..
|
||||||
echo $CWD
|
echo $CWD
|
||||||
|
|
||||||
|
26
README.md
26
README.md
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
Inkycal is a software written in python for selected E-Paper displays. It converts these displays into useful
|
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,
|
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!
|
## ⚠️ Warning: long installation time expected!
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ Watch the one-minute video on getting started with Inkycal:
|
|||||||
## Hardware guide
|
## Hardware guide
|
||||||
|
|
||||||
Before you can start, please ensure you have one of the supported displays and of the supported Raspberry
|
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.
|
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
|
**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 |
|
| MicroSD card | Sandisk | Search for `MicroSD card 8GB` on amazon or similar |
|
||||||
|
|
||||||
## Configuring the Raspberry Pi
|
## 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).
|
Flash Raspberry Pi OS on your microSD card (min. 4GB) with [Raspberry Pi Imager](https://rptl.io/imager).
|
||||||
Use the following settings:
|
Use the following settings:
|
||||||
|
|
||||||
@ -138,8 +133,6 @@ wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
|
|||||||
tar zxvf bcm2835-1.71.tar.gz
|
tar zxvf bcm2835-1.71.tar.gz
|
||||||
cd bcm2835-1.71/
|
cd bcm2835-1.71/
|
||||||
sudo ./configure && sudo make && sudo make check && sudo make install
|
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:
|
# 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
|
sudo dphys-swapfile swapoff
|
||||||
@ -175,10 +168,16 @@ 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.
|
Run the following steps to install Inkycal. Do **not** use sudo for this, except where explicitly specified.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# the next line is for the Raspberry Pi only
|
# Raspberry Pi specific section start
|
||||||
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
|
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 ..
|
||||||
|
# Raspberry Pi specific section end
|
||||||
|
|
||||||
cd $HOME
|
cd $HOME
|
||||||
git clone --branch main --single-branch https://github.com/aceinnolab/Inkycal
|
git clone https://github.com/aceinnolab/Inkycal
|
||||||
cd Inkycal
|
cd Inkycal
|
||||||
python3 -m venv venv
|
python3 -m venv venv
|
||||||
source venv/bin/activate
|
source venv/bin/activate
|
||||||
@ -186,7 +185,8 @@ python -m pip install --upgrade pip
|
|||||||
pip install wheel
|
pip install wheel
|
||||||
pip install -e ./
|
pip install -e ./
|
||||||
|
|
||||||
# If you are running on the Raspberry Pi, please install the following too to allow rendering on the display
|
|
||||||
|
# only for Raspberry Pi:
|
||||||
pip install RPi.GPIO==0.7.1 spidev==3.5 gpiozero==2.0
|
pip install RPi.GPIO==0.7.1 spidev==3.5 gpiozero==2.0
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -31,6 +31,8 @@ import os
|
|||||||
import time
|
import time
|
||||||
from ctypes import *
|
from ctypes import *
|
||||||
|
|
||||||
|
import RPi.GPIO as GPIO
|
||||||
|
|
||||||
EPD_SCK_PIN = 11
|
EPD_SCK_PIN = 11
|
||||||
EPD_MOSI_PIN = 10
|
EPD_MOSI_PIN = 10
|
||||||
|
|
||||||
@ -71,11 +73,11 @@ if spi is None:
|
|||||||
|
|
||||||
|
|
||||||
def digital_write(pin, value):
|
def digital_write(pin, value):
|
||||||
spi.DEV_Digital_Write(pin, value)
|
GPIO.output(pin, value)
|
||||||
|
|
||||||
|
|
||||||
def digital_read(pin):
|
def digital_read(pin):
|
||||||
return spi.DEV_Digital_Read(pin)
|
return GPIO.input(pin)
|
||||||
|
|
||||||
|
|
||||||
def spi_writebyte(value):
|
def spi_writebyte(value):
|
||||||
@ -87,15 +89,68 @@ def delay_ms(delaytime):
|
|||||||
|
|
||||||
|
|
||||||
def module_init():
|
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()
|
spi.DEV_ModuleInit()
|
||||||
|
|
||||||
|
|
||||||
def module_exit():
|
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):
|
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):
|
def delay_ms(delaytime):
|
||||||
|
Loading…
Reference in New Issue
Block a user