Skip to content

Commit

Permalink
Merge pull request #328 from aceinnolab/hotfix/327
Browse files Browse the repository at this point in the history
Hotfix/327
  • Loading branch information
aceisace authored Mar 24, 2024
2 parents 6c79d4c + 9acde64 commit 3096bad
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 154 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test-on-rpi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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?
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/update-os.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ jobs:
TINDIE_USERNAME: ${{ secrets.TINDIE_USERNAME }}
with:
# Set the base_image to the desired Raspberry Pi OS version
base_image: https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2023-05-03/2023-05-03-raspios-bullseye-armhf-lite.img.xz
image_additional_mb: 2560 # enlarge free space to 2.5 GB
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: |
cd /home
Expand Down Expand Up @@ -71,7 +71,7 @@ jobs:
sudo dphys-swapfile swapon
# enable SPI
sudo sed -i s/#dtparam=spi=on/dtparam=spi=on/ /boot/config.txt
sudo sed -i s/#dtparam=spi=on/dtparam=spi=on/ /boot/firmware/config.txt
# enable inkycal start at boot
sudo -u inky bash -c 'echo "@reboot sleep 60 && cd /home/inky/Inkycal && venv/bin/python inky_run.py &" | crontab -'
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,8 @@ following settings:

```bash
sudo raspi-config --expand-rootfs
sudo sed -i s/#dtparam=spi=on/dtparam=spi=on/ /boot/firmware/config.txt
# note: on older releases, this file is located in /boot/config.txt. If you get an error saying file not found, run the command below:
sudo sed -i s/#dtparam=spi=on/dtparam=spi=on/ /boot/config.txt
sudo dpkg-reconfigure tzdata

Expand Down
151 changes: 1 addition & 150 deletions inkycal/display/drivers/epdconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,156 +124,7 @@ def module_exit(self, cleanup=False):
self.GPIO_BUSY_PIN.close()


class JetsonNano:
# Pin definition
RST_PIN = 17
DC_PIN = 25
CS_PIN = 8
BUSY_PIN = 24
PWR_PIN = 18

def __init__(self):
import ctypes
find_dirs = [
os.path.dirname(os.path.realpath(__file__)),
'/usr/local/lib',
'/usr/lib',
]
self.SPI = None
for find_dir in find_dirs:
so_filename = os.path.join(find_dir, 'sysfs_software_spi.so')
if os.path.exists(so_filename):
self.SPI = ctypes.cdll.LoadLibrary(so_filename)
break
if self.SPI is None:
raise RuntimeError('Cannot find sysfs_software_spi.so')

import Jetson.GPIO
self.GPIO = Jetson.GPIO

def digital_write(self, pin, value):
self.GPIO.output(pin, value)

def digital_read(self, pin):
return self.GPIO.input(self.BUSY_PIN)

def delay_ms(self, delaytime):
time.sleep(delaytime / 1000.0)

def spi_writebyte(self, data):
self.SPI.SYSFS_software_spi_transfer(data[0])

def spi_writebyte2(self, data):
for i in range(len(data)):
self.SPI.SYSFS_software_spi_transfer(data[i])

def module_init(self):
self.GPIO.setmode(self.GPIO.BCM)
self.GPIO.setwarnings(False)
self.GPIO.setup(self.RST_PIN, self.GPIO.OUT)
self.GPIO.setup(self.DC_PIN, self.GPIO.OUT)
self.GPIO.setup(self.CS_PIN, self.GPIO.OUT)
self.GPIO.setup(self.PWR_PIN, self.GPIO.OUT)
self.GPIO.setup(self.BUSY_PIN, self.GPIO.IN)

self.GPIO.output(self.PWR_PIN, 1)

self.SPI.SYSFS_software_spi_begin()
return 0

def module_exit(self):
logger.debug("spi end")
self.SPI.SYSFS_software_spi_end()

logger.debug("close 5V, Module enters 0 power consumption ...")
self.GPIO.output(self.RST_PIN, 0)
self.GPIO.output(self.DC_PIN, 0)
self.GPIO.output(self.PWR_PIN, 0)

self.GPIO.cleanup([self.RST_PIN, self.DC_PIN, self.CS_PIN, self.BUSY_PIN, self.PWR_PIN])


class SunriseX3:
# Pin definition
RST_PIN = 17
DC_PIN = 25
CS_PIN = 8
BUSY_PIN = 24
PWR_PIN = 18
Flag = 0

def __init__(self):
import spidev
import Hobot.GPIO

self.GPIO = Hobot.GPIO
self.SPI = spidev.SpiDev()

def digital_write(self, pin, value):
self.GPIO.output(pin, value)

def digital_read(self, pin):
return self.GPIO.input(pin)

def delay_ms(self, delaytime):
time.sleep(delaytime / 1000.0)

def spi_writebyte(self, data):
self.SPI.writebytes(data)

def spi_writebyte2(self, data):
# for i in range(len(data)):
# self.SPI.writebytes([data[i]])
self.SPI.xfer3(data)

def module_init(self):
if self.Flag == 0:
self.Flag = 1
self.GPIO.setmode(self.GPIO.BCM)
self.GPIO.setwarnings(False)
self.GPIO.setup(self.RST_PIN, self.GPIO.OUT)
self.GPIO.setup(self.DC_PIN, self.GPIO.OUT)
self.GPIO.setup(self.CS_PIN, self.GPIO.OUT)
self.GPIO.setup(self.PWR_PIN, self.GPIO.OUT)
self.GPIO.setup(self.BUSY_PIN, self.GPIO.IN)

self.GPIO.output(self.PWR_PIN, 1)

# SPI device, bus = 0, device = 0
self.SPI.open(2, 0)
self.SPI.max_speed_hz = 4000000
self.SPI.mode = 0b00
return 0
else:
return 0

def module_exit(self):
logger.debug("spi end")
self.SPI.close()

logger.debug("close 5V, Module enters 0 power consumption ...")
self.Flag = 0
self.GPIO.output(self.RST_PIN, 0)
self.GPIO.output(self.DC_PIN, 0)
self.GPIO.output(self.PWR_PIN, 0)

self.GPIO.cleanup([self.RST_PIN, self.DC_PIN, self.CS_PIN, self.BUSY_PIN], self.PWR_PIN)


if sys.version_info[0] == 2:
process = subprocess.Popen("cat /proc/cpuinfo | grep Raspberry", shell=True, stdout=subprocess.PIPE)
else:
process = subprocess.Popen("cat /proc/cpuinfo | grep Raspberry", shell=True, stdout=subprocess.PIPE, text=True)
output, _ = process.communicate()
if sys.version_info[0] == 2:
output = output.decode(sys.stdout.encoding)

if "Raspberry" in output:
implementation = RaspberryPi()
elif os.path.exists('/sys/bus/platform/drivers/gpio-x3'):
implementation = SunriseX3()
else:
implementation = JetsonNano()
implementation = RaspberryPi()

for func in [x for x in dir(implementation) if not x.startswith('_')]:
setattr(sys.modules[__name__], func, getattr(implementation, func))
Expand Down

0 comments on commit 3096bad

Please sign in to comment.