GPiO

This is a silly question regarding GPIO access.

It is possible to access I2C at user level (non root) buy adding your user to the I2C group

Is there a similar way to gain access to the GPIO pins (as a user not root)

--
It looks like it's up to me to save our skins.  Get into that garbage  
chute, 
flyboy! 
		-- Princess Leia Organa
Reply to
alister
Loading thread data ...

Yes.

Additionally, if you use the gpio command (part of wiringPi) to load the i2c kernel module then it changes ownership to that of the calling user.

You can - I think the foundation has changed group ownership to 'gpio' which makes it easier, but I think you still need to be root to setup the actual export via the /sys/class/gpio interface. Again wiringPi's gpio command will make this easy for you.

It runs as a set-uid root program, so you can run it from the command-line or in scripts without using sudo ..

The down-side of using the sysfs interface is thats it's not that fast - fine for simple stuff though.

Gordon

Reply to
Gordon Henderson

I have already set this up manually (Working fine) but may be useful for others.

Speed is not an issue, I just don't want code running a root if it is not needed.

wiringPI looks like it needs downloading as source & compiling, is there a simpler option (I am not opposed to building software if necessary but would prefer to keep to the standard repositories if possible)

Cheers for the info so far.

--
Wait ... is this a FUN THING or the END of LIFE in Petticoat Junction??
Reply to
alister

I probably should have added I will be programming in python. after years of 8 bit assembler programming I don't want to get involved in all that low level stuff again.

--
You may worry about your hair-do today, but tomorrow much peanut butter  
will 
be sold.
Reply to
alister

This is what we wrote in the PIF

formatting link
manual. I hope it helps:

Provided you have /etc/modprobe.d/raspi-blacklist.conf, you will need to remove the I2C and SPI blacklisting. Start up an editor, for instance nano:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

then comment out these lines by putting a # at the start of each line:

blacklist spi-bcm2708 blacklist i2c-bcm2708

Add the I2C kernel modules by editing /etc/modules:

sudo nano /etc/modules

and insert two lines at the end of the file:

i2c-bcm2708 i2c-dev

then reboot (sudo reboot).

Download the i2ctools utility:

sudo apt-get install python-smbus sudo apt-get install i2c-tools

and check that the ... board is visible:

sudo i2cdetect -y 1

Reply to
Tim

It's in the works as it were - so it'll be in the repositories in a week or 2, hopefully.

wiringPi is a C library for C/C++ programs. I don't consider it particularly low-level.

// blink.c:

#include main () { wiringPiSetup () ; pinMode (0, OUTPUT) ; for (;;) { digitalWrite (0, 1) ; delay (500) ; digitalWrite (0, 0) ; delay (500) ; } }

The gpio command is a command-line swiss army knife type utility for all the Pi's GPIO. It started life as the wiringPi test program then because usefull - I've written projects in bash using it... (and been horrified to see people using it via system() from C, Python, PHP, and even my BASIC which has it built in...

#!/bin/bash

gpio mode 0 out while true; do gpio write 0 1 ; sleep 0.5 gpio write 0 0 ; sleep 0.5 done

You probably want RPi.GPIO for your Python code.

Gordon

Reply to
Gordon Henderson

As i said I have already done this for the i2c the question was could the same be done for the GPIO so far Gordon has given me a good start by suggesting wiringPI.

--
The difference between waltzes and disco is mostly one of volume. 
		-- T.K.
Reply to
alister

Yep, I read the question too quickly. Apologies.

Tim

Reply to
Tim

silly question If i build wiringPi on my shiny new fast 2B will it run on my old rev 1 model B?

--
Live in a world of your own, but always welcome visitors.
Reply to
alister

Yes.

And if you use wiringPi pin numbers you don't need to wory about the pin 22->27 change either. (Nor the I2C interface)

Gordon

Reply to
Gordon Henderson

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.