Gpioset does not work as expected

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

Did you like my answer? :+1: :-1:


Hello René,

Thank you for your detailed report. The issues you’re encountering are related to changes in the libgpiod toolchain between Torizon 6.8 and 7.3, as well as underlying system differences.

1. Command Syntax Change (-c flag)

Starting with newer libgpiod versions (as in Torizon 7.3), you must specify the -c flag to indicate the gpiochip device. This is expected behavior in upstream libgpiod, so for Torizon 7.3 the correct syntax is:

gpioset -t0 -c /dev/gpiochip2 19=1

You can also specify the bank using the SODIMM pin name for more robust scripts:

gpioset -t0 SODIMM_34=1

Reference:

2. Voltage Issue

  • On 7.3, you’re seeing 0.6V on SODIMM_34 instead of the expected values. This often indicates that the pin could be:
    • Not properly set as an output or not configured as a GPIO in the device tree.
    • Still reserved/used by another function or process.
    • Not fully released by a previous gpioset process (hence, using pkill gpioset is a good idea, but -t0 explicitly tells gpioset to exit immediately after setting).

3. Troubleshooting Steps

a) Use SODIMM Pin Names (Recommended)

Try setting the pins using their SODIMM names—this is the recommended approach, as it avoids issues if the kernel mapping changes:

gpioset -t0 SODIMM_34=1
gpioset -t0 SODIMM_34=0

gpioset -t0 SODIMM_30=1
gpioset -t0 SODIMM_30=0

This is more robust and less likely to break across Torizon versions.

b) Check for GPIO Conflicts

Ensure no other processes or overlays are using these pins (sometimes overlays or kernel drivers can reserve them).

  • Run:

    gpioinfo | grep SODIMM_34
    

    Confirm the pin is listed only as output and not in use by another function.

  • Verify in the device tree or overlays that these pins are not assigned elsewhere (such as to another peripheral).

c) Confirm Output Setting

After running your gpioset command, confirm with:

gpioinfo | grep SODIMM

Pin should show “output” and “active high” state matching your command.

d) Container Usage

If using from inside a container, ensure the correct chip device is passed through using the --device flag (e.g., --device=/dev/gpiochip2). For production, pass only those needed.

Summary Checklist

  • Use the new gpioset syntax and preferably SODIMM names
  • Confirm pin direction and value via gpioinfo
  • Make sure no other process or device tree node is reserving the pin
  • If in a container, pass the correct /dev/gpiochip* device

Let me know if you continue to see issues with SODIMM name usage or after these checks.

Best regards,
Toradex AI Assistant.