balena-os / balena-iot2000

Balena support for the Siemens IOT2000 family
Apache License 2.0
3 stars 3 forks source link

LED identification not working #2

Open telphan opened 6 years ago

telphan commented 6 years ago

The board provides a user LED we should make use of it.

wkloucek commented 6 years ago

I tried to use the user LED via /sys/class/gpio7 according to Galileo Gen2 Board, which is very similar to IOT2000. This Link from Siemens Support points to gpio7 too. I also tried to use other GPIO Pins but failed. At the moment I don't know where to look for the problem. If you help me where to start I can try to fix this.

wkloucek commented 6 years ago

Today I tried again and could manage to blink the LED on GPIO46.

edit: This is the full setup:

echo 7 > /sys/class/gpio/export
echo 46 > /sys/class/gpio/export
echo 31 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio7/direction
echo out > /sys/class/gpio/gpio46/direction
echo out > /sys/class/gpio/gpio31/direction

# gpio 31 = 1 -> pullup
echo 1 > /sys/class/gpio/gpio31/value
# gpio 46 = 0 -> mux to led
echo 0 > /sys/class/gpio/gpio46/value

# toggle led
echo 1 > /sys/class/gpio/gpio7/value
sleep 1
echo 0 > /sys/class/gpio/gpio7/value
sleep 1
echo 1 > /sys/class/gpio/gpio7/value
sleep 1
echo 0 > /sys/class/gpio/gpio7/value

echo 7 > /sys/class/gpio/unexport
echo 46 > /sys/class/gpio/unexport
echo 31 > /sys/class/gpio/unexport
telphan commented 6 years ago

@wkloucek I will have a look at this asap. Thank you for the investigation. The device should expose /sys/class/leds/, but for some reason it does not. Will try to fix this.

wkloucek commented 6 years ago

I forgot to set the dir_out in the script above, so it has to be:

#!/bin/bash
echo 7 > /sys/class/gpio/export
echo 46 > /sys/class/gpio/export
echo 30 > /sys/class/gpio/export
echo 31 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio7/direction
echo out > /sys/class/gpio/gpio46/direction
echo out > /sys/class/gpio/gpio30/direction
echo out > /sys/class/gpio/gpio31/direction

# gpio 30 = 0 -> dir_out
echo 0 > /sys/class/gpio/gpio30/value
# gpio 31 = 1 -> pullup
echo 1 > /sys/class/gpio/gpio31/value
# gpio 46 = 0 -> mux to led
echo 0 > /sys/class/gpio/gpio46/value

# toggle led
echo 1 > /sys/class/gpio/gpio7/value
sleep 1
echo 0 > /sys/class/gpio/gpio7/value
sleep 1
echo 1 > /sys/class/gpio/gpio7/value
sleep 1
echo 0 > /sys/class/gpio/gpio7/value

echo 7 > /sys/class/gpio/unexport
echo 46 > /sys/class/gpio/unexport
echo 30 > /sys/class/gpio/unexport
echo 31 > /sys/class/gpio/unexport
imrehg commented 6 years ago

ping @spanceac @telphan about this

telphan commented 6 years ago

This is not forgotten, just low on the priority list.

telphan commented 6 years ago

This happens due to a lack of dependency in our kernel. It is fixed by: https://github.com/resin-os/meta-resin/commit/1e06fe5a53872c6a46b8de933a1675147da71540. Once meta-resin is released we can go ahead and fix this issue.