Tiny Core Linux

Tiny Core Base => Raspberry Pi => Topic started by: linvincible on September 03, 2014, 05:57:38 PM

Title: GPIO usage
Post by: linvincible on September 03, 2014, 05:57:38 PM
Hello,
am new here and DID search before posting ;o)
but answers were above my level of understanding...
I use tinycore on a Raspberry Pi and added an IR card capable of starting and cutting the power to the pi.
it's from http://www.msldigital.com/ and they provide sh scripts for other releases here http://www.msldigital.com/pages/more-information/ (http://www.msldigital.com/pages/more-information/), that I tried
I get the error: "can't open '/sys/class/gpio/gpio22/value"
I guess the GPIO query doesn't work the same way than on the proposals...
How can I make it work?
Thanks in advance!
Cheers,
Charles
Title: Re: GPIO usage
Post by: linvincible on September 06, 2014, 03:04:40 PM
I think my issue was with accessing the folders/files
new scripts sets ownership to all touched files to tc before each access and it works now
I'll post it after it's validated by the guys at msldigital.com
Title: Re: GPIO usage
Post by: linvincible on September 07, 2014, 12:20:49 PM
script looks ok to the msldigital.com guys and I received a tip to use a graceful shutdown script included in the picoreplayer release
If it's not in the default tinycore just use your shutdown script
I tried with less sudo and chown commands but I really had to do them all for all the commands to be accepted!
script can be placed in tc''s home directory and called from .profile


#! /bin/sh
# 22 is the GPIO pin receiving the shutdown signal

sudo chown tc /sys/class/gpio/export
echo "22" > /sys/class/gpio/export

sudo chown tc /sys/class/gpio/gpio22/direction
sudo chown tc /sys/class/gpio/gpio22/value

echo "in" > /sys/class/gpio/gpio22/direction

while true; do
 sleep 1
 power=$(cat /sys/class/gpio/gpio22/value)
 if [ $power != 0 ]; then
    echo "out" > /sys/class/gpio/gpio22/direction
    echo "1" > /sys/class/gpio/gpio22/value
    sleep 5
  exitcheck.sh
 fi
done
Title: Re: GPIO usage
Post by: ahhh on August 29, 2017, 04:37:47 AM
1. THX
2. further example (mainly 4 me to record)
(don't forget to make executable by
$ chmod +x led.sh )

Code: [Select]
#! /bin/sh
# The script sets an GPIO pin pnNr from cli to state for some secs (<10000) or unlimited
#
# Usage: $ ./led.sh pinNr [state [sec]]
# # Example: turn pin 24 ON
#       $ ./led.sh 24 1
#     or (STATE defaults to 1)
#       $ ./led.sh 24
# Example2: turn pin 24 OFF 10sec
#       $ ./led.sh 24 0 10

STATE="1" # default 1 vs 0
UNSTATE="0"

if [ "$2" != "" ] && [ $2 -eq 0 ]
then
        STATE="0"
        UNSTATE="1"
fi

if [ "$1" != "" ]
then
        if [ ! -d /sys/class/gpio/gpio$1 ]
        then
                sudo chown tc /sys/class/gpio/export
                echo "$1" > /sys/class/gpio/export
        fi

        if [ -d /sys/class/gpio/gpio$1 ]
        then
                sudo chown tc /sys/class/gpio/gpio$1/direction
                sudo chown tc /sys/class/gpio/gpio$1/value

                echo "out" > /sys/class/gpio/gpio$1/direction
                echo "$STATE" > /sys/class/gpio/gpio$1/value

                if [ "$3" != "" ] && [ $3 -gt 0 ] && [ $3 -lt 10000 ]
                then
                        sleep $3
                        echo "$UNSTATE" > /sys/class/gpio/gpio$1/value

                        if [ -d /sys/class/gpio/gpio$1 ]
                        then
                                sudo chown tc /sys/class/gpio/unexport
                                echo "$1" > /sys/class/gpio/unexport
                        fi
                fi
        fi
else
        echo $'Usage: \n$ ./led.sh pinNr [state [sec]]\nExample: turn pin 24 ON 10sec \n$ ./led.sh 24 1 10'
fi

((uups))