-
-
Notifications
You must be signed in to change notification settings - Fork 81
Open
Labels
has attachmentAttachment was not transfered from GitLabAttachment was not transfered from GitLabhelp wantedExtra attention is neededExtra attention is neededraspberry pi
Description
Created by: eMUQI
Description
Unable to interact with the GPIO of Raspberry Pi 5
Expected Behavior
Draw a dot on Processing, which blinks synchronously with the LED.
Current Behavior
/sys/class/gpio/export:Invalid argument
GPIO pin 17 does not seem to be available on your platform
RuntimeException: /sys/class/gpio/export: Invalid argument
RuntimeException: /sys/class/gpio/export: Invalid argument
Steps to Reproduce
-
Run the code
import processing.io.*; int ledPin = 17; boolean state = true; void setup() { size(100, 100); frameRate(2); //set frame rate GPIO.pinMode(ledPin, GPIO.OUTPUT); //set the ledPin to output mode } void draw() { state = !state; if (state==true) { GPIO.digitalWrite(ledPin, GPIO.LOW); //led on fill(255, 0, 0); //set the fill color of led on } else { GPIO.digitalWrite(ledPin, GPIO.HIGH); //led off fill(155); //set the fill color of led off } ellipse(width/2, height/2, width*0.75, height*0.75); }
-
error
Your Environment
- Processing version:
- 4.3
- Operating System and OS version:
- OS: Debian GNU/Linux 12 (bookworm) aarch64
- Kernel: 6.1.0-rpi6-rpi-2712
- Other information:
- Raspberry Pi 5 Model B Rev 1.0
- CPU: BCM2835 (4) @ 2.400GHz
Possible Causes / Solutions
My suspicion is that it might be related to the introduction of the new southbridge chip, RP1, on the Raspberry Pi 5, which now handles the GPIOs and may have altered the access protocol.
Other
Also report at https://discourse.processing.org/t/issue-with-gpio-access-on-raspberry-pi-5-using-processing-4/43337
Metadata
Metadata
Assignees
Labels
has attachmentAttachment was not transfered from GitLabAttachment was not transfered from GitLabhelp wantedExtra attention is neededExtra attention is neededraspberry pi
Type
Projects
Status
To do
Milestone
Relationships
Development
Select code repository
Activity
processing-bot commentedon Dec 19, 2023
Created by: Khushikela29
Hii !! I think the issue is being resolved because the output after running the program is same as expected output
processing-bot commentedon Jan 15, 2024
Created by: eMUQI
Hello @Khushikela29, may I ask if you have run the aforementioned program on a Raspberry Pi 5? Today I tried again and still encountered the same error.
processing-bot commentedon Apr 23, 2024
In GitLab by @fabianluescher on Apr 23, 2024, 17:38
I have the same issue (identical error messages) even with a rpi4.
I figure it has something to do with the fact that the rpi3 uses the "Sysfs Interface" for GPIO pins (which is phased out for a long time), and the rpi4 onwards "GPIO Character Device Interface". The Hardware I/O library seems to rely on the "Sysfs Interface"?
The folder
/sys/class/gpio
on the rpi 4 is almost empty, Output ofls -l /sys/class/gpio
is:Whereas output of the rpi 3
ls -l /sys/class/gpio
is:I might be totally off course.
Not sure how anyone had used Processing 4 with GPIOs on a rpi4 or even rpi5, though. I might be missing something blatantly obvious to someone of course ;)
processing-bot commentedon Apr 26, 2024
Created by: JinbaoPeng
In the latest systems (bookworm), processing is not available, so try going back to bullseye.
jSdCool commentedon Dec 31, 2024
I have also encountered this problem on my PI4, after doing some research I found out that in version 6.6 they changed the numbers you have to use to access the GPIO pins more info can be found here: https://stackoverflow.com/questions/78452048/not-able-to-access-gpio-pins-on-my-raspberry-pi-5
jcelerier commentedon Feb 18, 2025
It actually also does not work either on a RPi 3B with Bookworm ARM64 here, it's more of a "kernel > 6.6" issue I believe:
SableRaf commentedon May 20, 2025
The Hardware I/O library lives on this fork of the old Processing repository:
https://github.com/gohai/processing/releases/tag/latest
Hi @gohai and thanks for your work on this! Do you think it would make sense to migrate the Hardware I/O library to a dedicated repository so issues like that one above can be addressed by the community? How was the release generated?
gohai commentedon May 21, 2025
Hi @SableRaf
From what I can see, the library is still part of main processing4 repo in java/libraries/io - so anyone could contribute to its development there. Feel free to point the library URL in the contributions manager away from my own repo if you want. (Be great to have my work in this area acknowledged if there is going to be a continuation of this effort [which I'd applaud]. Thanks.)