Is there documentation for RPi.GPIO? I have searched the web and can't find anything.

I know I can use pydoc or help() but this produces the following:-

    Wait for an edge.  Returns the channel number or None on timeout.
    channel      - either board pin number or BCM number depending on which mode is set.
    edge         - RISING, FALLING or BOTH
    [bouncetime] - time allowed between calls to allow for switchbounce
    [timeout]    - timeout in ms

This is OK, in as far as it goes, but doesn't really explain. I assume the function blocks until the interrupt, but this is not stated. What are the limits/defaults for timeout?

I have the following code, which I start on boot. Pressing the button successfully shuts down, but I have noticed it also seems to shut down at other times.

I could add some code to verify the button push, or some circuitry to make it more robust, but though I would check the documentation first.

while True:
    # set an interrupt on a falling edge and wait for it to happen
    GPIO.wait_for_edge(INT, GPIO.FALLING)

    subprocess.call(['poweroff'], shell=True, \
        stdout=subprocess.PIPE, stderr=subprocess.PIPE)

Edit 2016-01-03

I downloaded the source from SourceForge, which made things somewhat clearer, but the timeout parameter seems to be missing in action.

  • 1
    Have you tried here: raspi.tv/2013/… – Patrick Cook Jan 1 '16 at 10:15
  • 1
    it's common knowledge that you can always find the documentation on the source code and examples. Authors use seldescripted names: usually 'wait' means that :) – fcm Jan 1 '16 at 23:15

The official documentation is http://sourceforge.net/p/raspberry-gpio-python/wiki/Examples/

It doesn't seem to have a traditional API style of documentation.

  • 4
    This answers my question - with "No". I have tried teaching myself python many times over the last 2 years. I like the philosophy and the language itself (apart from classes - which are bizarre). When I want to develop something using a library I get lost in the woeful documentation, and take the easy path and use c or c++, with well documented libraries. – Milliways Jan 2 '16 at 2:40
  • 1
    I can grasp a language tg – fcm Jan 2 '16 at 3:17
  • 1
    @Milliways My pigpio Python module has, perhaps, more traditional documentation. Python classes are pretty much the same (in my opinion) with the Arduino class wrappers for motors/servos etc., i.e. pretty similar to C++ classes. – joan Jan 2 '16 at 10:07

I have finally found a Python library with documentation gpiozero

I recommend this to anyone attempting to manipulate GPIO with Python.

Just to clarify I also highly recommend the pigpio Python module which has more functionality.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.