Subj : Re: how to write and read back GPIO pin states with lgpio To : Computer Nerd Kev From : =?UTF-8?Q?Josef_M=C3=B6llers?= Date : Thu Aug 08 2024 12:35:28 On 05.08.24 01:04, Computer Nerd Kev wrote: > Josef M?llers wrote: >> I used to use the sysfs interface to the GPIO pins (/sys/class/gpio) but >> I understand that is deprecated nowadays. So I tried to switch to lgpio >> which looks OK. > > Personally I switched to using the "gpio" command that's one of the > example programs included with the bcm2835 library. If you're just > trying to build C programs to replace the /sys/class/gpio devices > in a shell script, it's an existing option. It does have some bugs > though. > > https://www.airspayce.com/mikem/bcm2835/ > > See examples/gpio/gpio.c in the source code. I'll have a look at that, thanks! >> However, I have problems writing and reading back pin >> states from different programs. >> [snip] >> However ... When I set the pin's state to "1", I still read back "0"! >> >> What am I doing wrong? Thanks in advance for any pointers. > > At a GUESS, you're reading the input buffer instead of the output > buffer. In output mode the input is disabled and always reads zero > or is meaningless. Well, the documentation (https://abyz.me.uk/lg/py_lgpio.html#gpio_read) says "This command will work for any claimed GPIO (even if a member of a group). For an output GPIO the value returned will be that last written to the GPIO." So, I was thinking that that would happen. > Unfortunately I've forgotten whether this is the case with the Pi, > or at least where to look to confirm I'm not mis-remembering, so > check for yourself. But this is a common way for IO hardware to > work. OK, that sounds logical ... at the hardware level. However, I read the documentation such that either it works eg like the ATMega port pins, where you can read back the state of an output pin, OR the kernel driver would keep a copy of the output state and return that upon a read OR the library function would do that, but shame on me I have not checked the latter myself. Thanks anyway, Josef --- SoupGate-Win32 v1.05 * Origin: Agency HUB, Dunedin - New Zealand | Fido<>Usenet Gateway (3:770/3) .