Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Easier setting up of multiple (digital) ports via config parameter for complex chips #34

Open
GoogleCodeExporter opened this issue Jul 18, 2015 · 10 comments

Comments

@GoogleCodeExporter
Copy link

When using e.g. digital I/O port IC's in many cases its necessary so set them 
up as input or output. Moreover, in some cases they may also provide the 
possibility to enable pull-ups or pull-downs. This setting-up can be done in 
custom macros with python api calls, but it would be much simpler to provide 
this as config option. For GPIOS there is already the option in config.

A parameter scheme for e.g. setting up 8 digital IO's could just be 

IIOOIOB_

where I = Input, O = Output, B = Bidirectional (like PCF8574), _ = default

For Pullup resistors this could be

UUUNDD_N

where U = Pullup enabled, D = Pulldown enabled, N = No pullup, _ = default again

As this options need some parsing this will be a little bit more effort to 
implement.

Original issue reported on code.google.com by andreas....@googlemail.com on 25 Feb 2013 at 11:48

@GoogleCodeExporter
Copy link
Author

I thought this one and I would like to reuse the GPIO setup/reset notation and 
generalize it to other kind device.

Assume we have :
[DEVICES]
mygpio = MCP23017
mydac = MCP4921

then we could have :
[mygpio]
# setup
1 = IN
2 = OUT 0
3 = OUT 0
4 = OUT 1

[~mygpio]
# reset
1 = IN
2 = IN
3 = IN
4 = OUT 0

[mydac]
0 = 1.0

Original comment by tro...@trouch.com on 25 Feb 2013 at 1:50

  • Added labels: Priority-Low, Type-Enhancement
  • Removed labels: Priority-Medium, Type-Defect

@GoogleCodeExporter
Copy link
Author

this is even better as it handles the value (re)setting also. maybe pullups can 
be done also this way.

Original comment by andreas....@googlemail.com on 25 Feb 2013 at 2:06

@GoogleCodeExporter
Copy link
Author

I think I will add this after the next release as we can init devices using 
custom scripts and deviceInstance(name) Python function.
But I moved device init before script loading or the device will be not found 
in script setup().
I also imported deviceInstance in root package, to help calling it using 
webiopi.deviceInstance
see r977

Original comment by tro...@trouch.com on 25 Feb 2013 at 7:51

@GoogleCodeExporter
Copy link
Author

Original comment by tro...@trouch.com on 27 Mar 2013 at 11:59

  • Added labels: Priority-Medium
  • Removed labels: Priority-Low

@GoogleCodeExporter
Copy link
Author

Original comment by tro...@trouch.com on 28 Mar 2013 at 12:03

  • Changed state: Accepted

@GoogleCodeExporter
Copy link
Author

Original comment by tro...@trouch.com on 4 Jan 2014 at 9:01

@GoogleCodeExporter
Copy link
Author

Is this issue solved in webiopi-0.7.0?
How do you setup pullups or pulldowns in the config file?

Best regards

Jacques

Original comment by j...@csm-instruments.com on 30 Mar 2014 at 3:36

@GoogleCodeExporter
Copy link
Author

No, 0.7.0 makes no updates here.

Pullups/downs can be set for GPIOs, but I don't know exactly how, there was 
some answer in the support group how to do that some days/weeks ago, please use 
the search function of the group to find it.

Best

Andreas

Original comment by andreas....@googlemail.com on 31 Mar 2014 at 12:15

@GoogleCodeExporter
Copy link
Author

Hello, 
I have found a python program which does it, could it be done also in the 
Webiopi config file ?

#1/usr/bin/env python
#sample python code to test digital inputs on Custard Pi 2
#www.sf-innovations.co.uk
#This program sets up pins 7,22,18 & 16
#As inputs with a pull up resistor
#Scans all 4 inputs
#Prints results to screen
#Waits 1 second
#Repeats 10 times
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)

GPIO.setup(7, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(22, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)

Best regards

Jacques

Original comment by j...@csm-instruments.com on 1 Apr 2014 at 9:15

@GoogleCodeExporter
Copy link
Author

Sorry, no WebIOPi has been implemented to be NOT dependent on other packages or 
components.

The code you show uses the RPi.GPIO package which is NOT part of WebIOPi. Both 
can't  be used together as their functionality overlaps partly.

However, the calls you show above can (almost identical) be put into a WebIOPi 
custom script in the setup() section (thus overlaps). The idea is to avoid this 
and allow such settings with WebIIOPi config file entries.

But, as I mentioned, this is still tbd.

Andreas

Original comment by andreas....@googlemail.com on 1 Apr 2014 at 10:18

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant