waveshareteam / e-Paper

1.31k stars 586 forks source link

RuntimeError: Failed to add edge detection #350

Open mrbobdobolina opened 3 months ago

mrbobdobolina commented 3 months ago

Several months ago I setup a Raspberry Pi Zero with a Waveshare 2.13 display and it's been running great. The display refreshes and updates every 15 minutes.

2 days ago I noticed the screen was getting darker and it was not refreshing and updating. I connected to the machine, ran the normal test script and the first time nothing happened. The second time I ran it the test program ran fine and the display was back to normal.

Today the screen is just noise. Random black and white pixels. When I try to run the test script I get a Runtime Error. I ran all the updates on my Pi and I went through the re-installation process for the waveshare software. I'm still getting the same error.

Here's the full error. Not sure what my next steps should be for troubleshooting this. Traceback (most recent call last): File "/home/philip/e-Paper/RaspberryPi_JetsonNano/python/examples/inky-test.py", line 11, in <module> from waveshare_epd import epd2in13_V4 File "/home/philip/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in13_V4.py", line 32, in <module> from . import epdconfig File "/home/philip/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.py", line 313, in <module> implementation = RaspberryPi() File "/home/philip/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.py", line 60, in __init__ self.GPIO_BUSY_PIN = gpiozero.Button(self.BUSY_PIN, pull_up = False) File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 108, in __call__ self = super(GPIOMeta, cls).__call__(*args, **kwargs) File "/usr/lib/python3/dist-packages/gpiozero/input_devices.py", line 414, in __init__ super(Button, self).__init__( File "/usr/lib/python3/dist-packages/gpiozero/mixins.py", line 433, in __init__ super(HoldMixin, self).__init__(*args, **kwargs) File "/usr/lib/python3/dist-packages/gpiozero/input_devices.py", line 171, in __init__ self.pin.when_changed = self._pin_changed File "/usr/lib/python3/dist-packages/gpiozero/pins/__init__.py", line 432, in <lambda> lambda self, value: self._set_when_changed(value), File "/usr/lib/python3/dist-packages/gpiozero/pins/pi.py", line 319, in _set_when_changed self._enable_event_detect() File "/usr/lib/python3/dist-packages/gpiozero/pins/rpigpio.py", line 226, in _enable_event_detect GPIO.add_event_detect( RuntimeError: Failed to add edge detection

I have not made any changes to the pins since I set it up and it has been working fine for months, so I'm not sure what changed.

ascandella commented 3 months ago

Since you mentioned you updated your Pi, it's possible you're now on a newer linux kernel that is causing issues with the rpi-gpio library. See this issue: https://github.com/raspberrypi/linux/issues/6037#issuecomment-2047494918

If that is the issue you're running in, you could try uninstalling that library and installing rpi-lgpio (https://github.com/waveform80/rpi-lgpio) which provides the same interface (and package name), but works on newer kernel versions.