{ "info": { "author": "Justin Cooper", "author_email": "justin@adafruit.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Home Automation", "Topic :: Software Development", "Topic :: System :: Hardware" ], "description": "# Adafruit Beaglebone I/O Python API\n\n[![Documentation Status](https://readthedocs.org/projects/adafruit-beaglebone-io-python/badge/?version=latest)](http://adafruit-beaglebone-io-python.readthedocs.io/en/latest/?badge=latest)\n[![PyPI version](https://badge.fury.io/py/Adafruit_BBIO.svg)](https://badge.fury.io/py/Adafruit_BBIO)\n[![PyPI pyversions](https://img.shields.io/pypi/pyversions/Adafruit_BBIO.svg)](https://pypi.python.org/pypi/Adafruit_BBIO/)\n\nAdafruit BBIO is an API to enable [GPIO](README.md#gpio-setup), [PWM](README.md#pwm), [ADC](README.md#adc), [UART](README.md#uart), [SPI](README.md#spi) and [eQEP](README.md#eqep) (Quadrature Encoder) hardware access from Python applications running on the Beaglebone. \n\n* It is recommended to use an [official BeagleBoard.org Debian image](https://beagleboard.org/latest-images)\n * **Currently recommended image: [Debian 9.4 \"Stretch\" IoT (2018-06-17)](http://debian.beagleboard.org/images/bone-debian-9.4-iot-armhf-2018-06-17-4gb.img.xz)**\n * Install [Linux kernel](https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Kernel_Options) [4.14.x](https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Mainline_.284.14.x_lts.29) to enable [non-root control of GPIO](https://github.com/rcn-ee/repos/blob/master/bb-customizations/suite/stretch/debian/80-gpio-noroot.rules) and [PWM](https://github.com/rcn-ee/repos/blob/master/bb-customizations/suite/stretch/debian/81-pwm-noroot.rules) [_(commit)_](https://github.com/adafruit/adafruit-beaglebone-io-python/commit/b65cbf8e41b444bad7c4ef6cfd4f88a30210fd78)\n\n* Adafruit_BBIO supports Linux kernels 3.8 through 4.14\n\n* New versions of Adafruit_BBIO may break backwards compatibility. Please read the [changelog](CHANGELOG.md).\n\n## Installation on Debian\n\nEasiest:\n```\nsudo ntpdate pool.ntp.org\nsudo apt-get update\nsudo apt-get install build-essential python-dev python-pip -y\nsudo pip install Adafruit_BBIO\n```\n \nManual:\n```\nsudo ntpdate pool.ntp.org\nsudo apt-get update\nsudo apt-get install build-essential python-dev python-pip -y\ngit clone git://github.com/adafruit/adafruit-beaglebone-io-python.git\ncd adafruit-beaglebone-io-python\nsudo python setup.py install\n```\n\nUpgrade Adafruit_BBIO to latest version on [PyPI](https://pypi.python.org/pypi/Adafruit_BBIO):\n```\nsudo pip install --upgrade Adafruit_BBIO\n```\n \n## Usage\n\nUsing the library is very similar to the excellent RPi.GPIO library used on the Raspberry Pi. Below are some examples.\n\n### Pin Numbers\n\nPlease note that there is no '0' prefix for the pin numbers. For example, pin 7 on header P8 is `P8_7`.\n\n**Correct:**\n```\nGPIO.setup(\"P8_7\", OUT )\n```\n\n**INCORRECT:**\n```\nGPIO.setup(\"P8_07\", OUT )\n```\n\nRefer to `pins_t table[]` in [common.c](https://github.com/adafruit/adafruit-beaglebone-io-python/blob/master/source/common.c#L73) all the pin labels.\n\n### config-pin\n\n[config-pin](https://github.com/beagleboard/bb.org-overlays/tree/master/tools/beaglebone-universal-io) is now used on the official BeagleBoard.org Debian Jessie and Stretch images to control pin mode (e.g. pin mux).\n\n```\ndebian@beaglebone:~$ config-pin -q P9_14\nP9_14 Mode: pwm\n\ndebian@beaglebone:~$ config-pin -l P9_14\ndefault gpio gpio_pu gpio_pd pwm\n\ndebian@beaglebone:~$ config-pin P9_14 gpio\n\ndebian@beaglebone:~$ config-pin -q P9_14\nP9_14 Mode: gpio Direction: in Value: 0\n\ndebian@beaglebone:~$ config-pin P9_14 pwm\n\ndebian@beaglebone:~$ config-pin -q P9_14\nP9_14 Mode: pwm\n```\n\n### GPIO Setup\n\nImport the library, and setup as GPIO.OUT or GPIO.IN::\n\n import Adafruit_BBIO.GPIO as GPIO\n GPIO.setup(\"P8_14\", GPIO.OUT)\n\nYou can also refer to the pin names::\n\n GPIO.setup(\"GPIO0_26\", GPIO.OUT)\n\n### GPIO Output\n\nSetup the pin for output, and write GPIO.HIGH or GPIO.LOW. Or you can use 1 or 0.::\n\n import Adafruit_BBIO.GPIO as GPIO\n GPIO.setup(\"P8_14\", GPIO.OUT)\n GPIO.output(\"P8_14\", GPIO.HIGH)\n\n### On-Board LEDs\n\nOn-board LEDs (USR0-USR3) are handled by LED class driver rather than the GPIO pin driver.\n\nThey have a different path in the /sys/ filesystem.\n\nSetup the pin for output and write GPIO.HIGH or GPIO.LOW::\n\n import Adafruit_BBIO.GPIO as GPIO\n import time\n \n for i in range(4):\n GPIO.setup(\"USR%d\" % i, GPIO.OUT)\n\n while True:\n for i in range(4):\n GPIO.output(\"USR%d\" % i, GPIO.HIGH)\n time.sleep(1)\n for i in range(4):\n GPIO.output(\"USR%d\" % i, GPIO.LOW)\n time.sleep(1)\n \n### GPIO Input\n\nInputs work similarly to outputs.:\n\n import Adafruit_BBIO.GPIO as GPIO\n GPIO.setup(\"P8_14\", GPIO.IN)\n \nPolling inputs:\n \n if GPIO.input(\"P8_14\"):\n print(\"HIGH\")\n else:\n print(\"LOW\")\n\nWaiting for an edge (GPIO.RISING, GPIO.FALLING, or GPIO.BOTH:\n\n GPIO.wait_for_edge(channel, GPIO.RISING)\n\n or\n \n GPIO.wait_for_edge(channel, GPIO.RISING, timeout)\n\nDetecting events:\n\n GPIO.add_event_detect(\"P9_12\", GPIO.FALLING) \n #your amazing code here \n #detect wherever: \n if GPIO.event_detected(\"P9_12\"):\n print(\"event detected!\")\n\n### PWM\n**The PWM Duty Cycle range was reversed in 0.0.15 from 100(off)-0(on) to 0(off)-100(on). Please update your code accordingly.**\n\n import Adafruit_BBIO.PWM as PWM \n #PWM.start(channel, duty, freq=2000, polarity=0) \n #duty values are valid 0 (off) to 100 (on) \n PWM.start(\"P9_14\", 50)\n PWM.set_duty_cycle(\"P9_14\", 25.5) \n PWM.set_frequency(\"P9_14\", 10)\n\n PWM.stop(\"P9_14\")\n PWM.cleanup()\n \n #set polarity to 1 on start:\n PWM.start(\"P9_14\", 50, 2000, 1)\n\n### ADC\n\n import Adafruit_BBIO.ADC as ADC\n ADC.setup()\n\n #read returns values 0-1.0 \n value = ADC.read(\"P9_40\")\n\n #read_raw returns non-normalized value \n value = ADC.read_raw(\"P9_40\")\n\n### [UART](https://learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black/uart)\n* Use [`config-pin` to set pin mode](https://github.com/beagleboard/bb.org-overlays/tree/master/tools/beaglebone-universal-io) for [UART1 and UART2 pins](http://beagleboard.org/static/images/cape-headers-serial.png)\n```\nconfig-pin P9.21 uart # UART2_TXD\nconfig-pin P9.22 uart # UART2_RXD\nconfig-pin P9.24 uart # UART1_TXD\nconfig-pin P9.26 uart # UART1_RXD\n```\n* [Install pyserial](https://learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black/uart#using-uart-with-python)\n```\nsudo pip install pyserial\n```\n* [Test UART1](https://learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black/uart#using-uart-with-python)\n```\nimport Adafruit_BBIO.UART as UART\nimport serial\n\nUART.setup(\"UART1\")\n\nwith serial.Serial(port = \"/dev/ttyO1\", baudrate=9600) as ser:\n print(\"Serial is open!\")\n ser.write(b\"Hello World!\")\n\n```\n* Available UART names on BeagleBone\n * `UART1`: /dev/ttyO1, Rx: P9_26, Tx: P9_24\n * `UART2`: /dev/ttyO2, Rx: P9_22, Tx: P9_21\n * `UART4`: /dev/ttyO4, Rx: P9_11, Tx: P9_13\n * `UART5`: /dev/ttyO5, Rx: P8_38, Tx: P8_37\n * note: `UART5` requires `disable_uboot_overlay_video=1` in `/boot/uEnv.txt`\n* Available UART names on PocketBeagle\n * `PB-UART0`: /dev/ttyO0, Rx: P1_30, Tx: P1_32\n * `PB-UART1`: /dev/ttyO1, Rx: P2_11, Tx: P2_09\n * `PB-UART2`: /dev/ttyO2, Rx: P1_08, Tx: P1_10\n* [Loopback test with UART1 and UART2](https://learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black/uart#testing-and-using-the-uart)\n\n\n### [SPI](https://learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black/spi)\n* Use [`config-pin` to set pin mode](https://github.com/beagleboard/bb.org-overlays/tree/master/tools/beaglebone-universal-io) for [SPI pins](http://beagleboard.org/static/images/cape-headers-spi.png)\n * SPI0\n * SPI0_CS0: `config-pin p9.17 spi_cs`\n * SPI0_D0: `config-pin p9.21 spi`\n * SPI0_D1: `config-pin p9.18 spi`\n * SPI0_SCLK: `config-pin p9.22 spi_sclk`\n * SPI1\n * SPI1_CS0: `config-pin p9.20 spi_cs`\n * SPI1_CS0: `config-pin p9.28 spi_cs`\n * SPI1_CS1: `config-pin p9.19 spi_cs`\n * SPI1_CS1: `config-pin p9.42 spi_cs`\n * SPI1_D0: `config-pin p9.29 spi`\n * SPI1_D1: `config-pin p9.30 spi`\n * SPI1_SCLK: `config-pin p9.31 spi_sclk`\n* Example:\n```\nfrom Adafruit_BBIO.SPI import SPI\n#spi = SPI(bus, device) #/dev/spidev.\n\n# /dev/spidev0.0\nspi = SPI(1,0)\nprint(spi.xfer2([32, 11, 110, 22, 220]))\nspi.close() \n\n# /dev/spidev0.1\nspi = SPI(1,1)\nprint(spi.xfer2([32, 11, 110, 22, 220]))\nspi.close() \n\n# /dev/spidev1.0\nspi = SPI(2,0)\nprint(spi.xfer2([32, 11, 110, 22, 220]))\nspi.close() \n\n# /dev/spidev1.1\nspi = SPI(2,1)\nprint(spi.xfer2([32, 11, 110, 22, 220]))\nspi.close() \n```\n\n### eQEP\n\nTo use the enhanced Quadrature Encoder Pulse (eQEP) module, please refer to the [`Encoder` module's documentation](https://github.com/adafruit/adafruit-beaglebone-io-python/tree/master/Adafruit_BBIO#usage).\n\n## Running tests\n\nInstall py.test to run the tests. You'll also need the python compiler package for pytest:\n```\nsudo pip install pytest\n```\nExecute the following in the root of the project:\n```\nsudo pytest\n```\nNOTE: `sudo` should not be required when running [Debian 9.2 \"Stretch\" iot (2017-10-29)](https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#microSD.2FStandalone:_.28stretch-iot.29_.28All_BeagleBone_Variants_.26_PocketBeagle.29) with [Linux kernel](https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Kernel_Options) [4.14.x](https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Mainline_.284.14.x_lts.29) as udev configures group ownership and permission for [GPIO](https://github.com/rcn-ee/repos/blob/master/bb-customizations/suite/stretch/debian/80-gpio-noroot.rules) and [PWM](https://github.com/rcn-ee/repos/blob/master/bb-customizations/suite/stretch/debian/81-pwm-noroot.rules)\n\n## Credits\n\nThe BeagleBone IO Python library was originally forked from the excellent MIT Licensed [RPi.GPIO](https://code.google.com/p/raspberry-gpio-python) library written by Ben Croston.\n\n## License\n\nWritten by Justin Cooper, Adafruit Industries. BeagleBone IO Python library is released under the MIT License.\n1.1.1\n---\nAttempt upload to PyPI again to avoid\nerror reported in issue #293\n\n1.1.0\n---\nAaron Marburg (1):\n * Added usleep after successfully enabling PWM via udev.\n\nDrew Fustini (16):\n * Merge pull request #233 from zsserg/fixed_segfault_in_event_detection\n * Merge pull request #257 from zsserg/develop\n * Merge pull request #251 from amarburg/master\n * Merge pull request #271 from fcooper/documentation-updates\n * Update ADC.rst\n * Update Encoder.rst\n * Update ADC.rst\n * Add UART entries for the PocketBeagle (issue #242)\n * update install and test shell scripts\n * update UART section in README\n * Merge pull request #282 from erikwelsh/master\n * do not load overlays for the beaglebone blue #283\n * Merge pull request #284 from sam-bristow/py3-docs\n * Merge pull request #285 from sam-bristow/bugfix/uart-error-reporting\n * fix pwm on pocketbeagle and beaglebone blue #286\n * remove debug logging\n\nErik Welsh (1):\n * Fixed GPIO export problem; Leaves GPIO in bad state on latest BeagleBone image on PocketBeagle\n\nFranklin S Cooper Jr (3):\n * docs/SPI.rst: Fix bus numbering in examples\n * docs/GPIO.rst: Add information on blinking led\n * docs/GPIO.rst Make documentation a bit newbie friendly\n\nSam Bristow (3):\n * Use print() function in all code and docs\n * Use new python-serial API\n * Return error-code for failing interface\n\nzserg (5):\n * Fixed SEGFAULT when calling remove_event_detect() inside python callback function.\n * Fixed SEGFAULT when calling remove_event_detect() inside python callback function.\n * Fixed SEGFAULT in event_gpio,c run_callbacks() * Added more elaborate epoll() error logging\n * Minor style fixes\n\n1.0.10\n----\n**features**\n* automatically set pin modes for UART (PR #158)\n* Encoder: README.md: added note about eqep group change (PR #214)\n* deprecate out of date Adafruit_I2C.py (PR #215)\n* Add Encoder module info to main README.md (PR #217)\n* Add automatic API documentation generation (PR #219)\n* Separate API docs into modules (PR #221)\n\n**shortlog**\n* David Planella (46):\n * Encoder: README.md: added note about eqep group change\n * Add Encoder module info to main README.md\n * Added docstrings using Google syntax and Sphinx support to generate the API documentation for the Encoder and PWM modules for now.\n * Made kernel version check to happen only if running on a beaglebone. The readthedocs builders that import the Encoder module have an old 3.3 kernel and the autodoc build fails\n * Use the default readthedocs theme\n * Use readthedocs theme if building docs there, remove redundand search link\n * Readthedocs theme tweaks\n * Removed redundant TOC, added global description\n * Added UART documentation\n * Added documentation badge\n * Added ADC API docs, fixed UART module definition\n * API docs: added SPI module\n * Added SPI module attribute docs\n * Added Python badges to README file\n * Added SPI pins table and first shot at GPIO module. Functions still need to be documented\n * Merge branch 'readthedocs' of https://github.com/dplanella/adafruit-beaglebone-io-python into readthedocs\n * Documented the API docs build process\n * Added docstrings using Google syntax and Sphinx support to generate the API documentation for the Encoder and PWM modules for now.\n * Made kernel version check to happen only if running on a beaglebone. The readthedocs builders that import the Encoder module have an old 3.3 kernel and the autodoc build fails\n * Use the default readthedocs theme\n * Use readthedocs theme if building docs there, remove redundand search link\n * Readthedocs theme tweaks\n * Removed redundant TOC, added global description\n * Added UART documentation\n * Added documentation badge\n * Added ADC API docs, fixed UART module definition\n * API docs: added SPI module\n * Added SPI module attribute docs\n * Added Python badges to README file\n * Added SPI pins table and first shot at GPIO module. Functions still need to be documented\n * Documented the API docs build process\n * Merge branch 'readthedocs' of https://github.com/dplanella/adafruit-beaglebone-io-python into readthedocs\n * Update README.md\n * Added some more API doc content\n * Sync from upstream master\n * Minor documentation and configuration improvements\n * Finished documenting GPIO\n * rST fixes\n * Update README.md\n * Minor API doc improvements\n * Merge branch 'readthedocs' of https://github.com/dplanella/adafruit-beaglebone-io-python into readthedocs\n * Generate the API documentation from a master index and a separate file for each module\n * Sync from upstream master\n * Improvements to the API docs output config\n * Update docs generation description to reflect new separate modules\n * Updated ADC API docs\n\n* Drew Fustini (10):\n * use set_pin_mode() to set uart pinmux (#158)\n * Add SPI instructions to README (#158)\n * Update README.md\n * Fix spidev path mismatch (#216)\n * Merge pull request #217 from dplanella/patch-2\n * Merge pull request #214 from dplanella/patch-1\n * Deprecate Adafruit_BBIO.I2C in favor of Adafruit_GPIO.I2C (#215)\n * Merge pull request #219 from dplanella/readthedocs\n * relocate doc dir to avoid confusion (#218)\n * Merge pull request #221 from dplanella/readthedocs\n\n\n1.0.9\n----\n**Features:**\n* Issue #194: Encoder position cannot be set\n* PR #205: Encoder: add support for reading/writing sysfs attributes\n\n**Fixes:**\n* Issue #198: use https for DEFAULT_URL in distribute_setup.py\n* Issue #197: Fix leak of pwm enable file descriptor\n* Issue #189: Fix seg fault of PWM in Python 3.6\n* Issue #180: Clarify there is no 0 prefix for pin lables\n* PR #201: Encoder: do kernel check, PEP8 cleanup\n* PR #202: Encoder: corrected kernel check logic\n* PR #207: Encoder: improved usage documentation\n* PR #210: Encoder: fix sysfs import, make code Python 3 compatible\n* PR #212: Encoder: fix Python 3 compatibility\n* PR #213: Encoder: fix frequency calculation from period\n\n**shortlog:**\n* David Planella (18):\n * Encoder: initialize only the given channel\n * Sync from master\n * Encoder: do kernel check, PEP8 cleanup\n * Encoder: added sysfs module\n * Encoder: use sysfs to write QEP attributes\n * Encoder: corrected kernel check logic\n * Merge pull request #2 from adafruit/master\n * Encoder: convert get/set methods to properties, update apidoc strings\n * Encoder: updated README\n * Encoder: add README apt install clarification\n * Encoder: copyright assignment note, updated comments\n * Encoder: added usage notes\n * Encoder: improved usage documentation\n * Encoder: minor fix to usage example\n * Encoder: added a note about permissions\n * Encoder: switched sysfs to be a relative import compatible with Python 2 and 3\n * Encoder: use items() instead of iteritems() to be Python 3 compatible\n * Encoder: fix frequency getter\n\n* Drew Fustini (18):\n * use https for DEFAULT_URL in distribute_setup.py (#198)\n * fix except syntax for Python 3\n * use dict.items() instead of dict.iteritems() for Python 3\n * fix error in set_brightness()\n * close enable_fd when stopping PWM output (#197)\n * Merge pull request #199 from dplanella/patch-1\n * Fix leak of pwm enable file descriptor (#197)\n * Merge pull request #201 from dplanella/encoder-cleanup\n * remove test_rotary.py as not valid for pytest\n * Fix seg fault of PWM in Python 3.6 (#189)\n * Merge pull request #202 from dplanella/patch-2\n * Clarify there is no 0 prefix for pin lables (#180)\n * Merge pull request #205 from dplanella/encoder-sysfs\n * assign copyright for new file to Adafruit Industries\n * Add bash scripts to help install and test\n * Merge pull request #212 from dplanella/patch-4\n * Merge pull request #207 from dplanella/patch-3\n * Merge pull request #213 from dplanella/fix-encoder-frequency\n\n1.0.8\n----\n**Fixes:**\n* Issue #196: cache board type to avoid poor performance\n* Issue #192: fix PocketBeagle PWM pin typo\n* Issue #191: turn off RotaryEncoder's debug output by default\n* Issue #188: GPIO is extremely slow (20ms to toggle)\n* Issue #186: problems with UART\n\n**shortlog:**\n* David Planella (12):\n * Copy Encoder module comments to README.md\n * Formatted Encoder README in markdown\n * Fixed Encoder README formatting\n * Removed QEP instructions from Encoder module\n * Fixes to Encoder README\n * Updated Encoder README\n * Encoder README: added info on dedicated overlays\n * Encoder README: updated info on pre-requisites\n * Encoder README update\n * Encoder README update\n * Add logging support, turn off unconditional debug output\n * Encoder: remove unused logging code\n\n* Drew Fustini (3):\n * Merge pull request #195 from dplanella/master\n * Fix PocketBeagle PWM pin typo (#192)\n * cache board type to avoid poor performance (#196)\n\n1.0.7\n----\n**Fixes:**\n* Issue #188: GPIO is extremely slow (20ms to toggle)\n\n**shortlog:**\n* Drew Fustini (4):\n * Update README.md\n * add config-pin example to README\n * Filter DEBUG syslog to avoid poor performance #188\n * Change log level from INFO to DEBUG #188\n\n1.0.6\n----\n* Currently recommended image: [Debian 9.2 \"Stretch\" iot (2017-10-29)](https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#microSD.2FStandalone:_.28stretch-iot.29_.28All_BeagleBone_Variants_.26_PocketBeagle.29)\n * Install [Linux kernel](https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Kernel_Options) [4.14.x](https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Mainline_.284.14.x_lts.29) to enable [non-root control of GPIO](https://github.com/rcn-ee/repos/blob/master/bb-customizations/suite/stretch/debian/80-gpio-noroot.rules) and [PWM](https://github.com/rcn-ee/repos/blob/master/bb-customizations/suite/stretch/debian/81-pwm-noroot.rules) [_(commit)_](https://github.com/adafruit/adafruit-beaglebone-io-python/commit/b65cbf8e41b444bad7c4ef6cfd4f88a30210fd78)\n\n**Features:**\n* Add support for Linux 4.14 kernel including new \"udev\" style for PWM entries in /sys\n* Fix GPIO regression due to BeagleBone Blue LED support (issue #178)\n* Add support for the PocketBeagle (issue #172)\n\n**shortlog:**\n* Drew Fustini (39):\n * Add -Wno-unit_address_vs_reg to avoid dtc warning\n * check if board is BeagleBone Blue or PocketBeagle\n * check if BeagleBone Blue before accessing non-standard LEDs\n * Add test for GPIO regression #178\n * change syslog mask level to DEBUG\n * add \"Adafruit_BBIO\" to syslog()\n * update test for issue #178\n * remove polarity \"hack\" for PWM #170\n * move pwm_set_polarity() after period is set\n * add test for issue #170\n * only check kernel overlays if u-boot overlays are not being used\n * Attempt to use udev ecap path for pwm path\n * add test script for all BeagleBone PWM outputs\n * update PWM test for 4.14 kernel udev paths\n * minor change to pwm debug logging\n * sleep to avoid udev race condition #185\n \n* Mark A. Yoder (1):\n * Added BAT25, BAT50, BAT75, BAT100 and WIFI LEDs\n\n* Peter Lawler (1):\n * Missing CR/LF\n \n* Robert Nelson (10):\n * source/common.c: add initial PocketBeagle values\n * source/common.c: PocketBeagle, no slots file, everything built-in\n * source/common.c: PocketBeagle, no slots file disable here too\n * source/c_pwm.c: HACK: U-Boot pre-setup everything, dont search for specific overlay\n * source/c_pwm.c: HACK: PocketBeagle: v4.14.x\n * source/c_pwm.c: debug pwm_path/pwm_path_udev\n * source/c_pwm.c: pwm: add support for pwmchipX/pwm-X:Y syntax\n * source/c_pwm.c: disable pwm_set_polarity (broken in v4.9.x/v4.14.x)\n * source/common.c: Blue Fix GP0_3 id\n * source/common.c: PocketBeagle Fix P2.24\n\n1.0.5\n----\n* @pdp7 (5):\n * Merge pull request #153 from MarkAYoder/master\n * Fix print syntax to avoid python3 errors\n * Merge pull request #160 from MarkAYoder/master\n * document how to read QEP1\n * Update rotary-encoder-eqep-test.md\n\n* @MarkAYoder (20):\n * Have GP0_1 working\n * Removed --force to speed things up\n * Added GP0 1, 2 and 3\n * Flashes 4 LEDs\n * Works with button\n * Blinks red and gree LEDs\n * Blinks all 6 GPIOs\n * Added red and green LEDs\n * i2c works\n * PWD isn't working, yet\n * Added port setup\n * Switched to apt install\n * Added tmp101 to name\n * Added LED matrix example\n * Removed newline from print\n * Added fade\n * Adding GPIO defs for uart1\n * Testing UT1_0, not working yet\n * Switched GP0_0 to GP0_3, etc.\n * Added PAUSE and MODE buttons.\n\n1.0.4\n----\n* @djsutton (1):\n * fix TypeError: function takes exactly 3 arguments (2 given) from wait_for_edge\n\n* @pdp7 (29):\n * Instruct users to open GitHub issue instead email\n * add udev rules and script for non-root access to gpio\n * fix file descriptor leak in gpio_set_value()\n * document how to test read and write to all GPIO pins\n * reduce ADC reads in pytest from 10,000 to 1,000\n * close file descriptor to avoid leak\n * remove conditional logic for ctrl_dir and ocp_dir size\n * increase size of ctrl_dir and ocp_dir for future use\n * Document how to run config-pin at boot\n * Document how to test eQEP with Rotary Encoder\n * Add skeleton for Encoder module to read eQEP\n * Add code to Encoder.QEP from PyBBIO.RotaryEncoder\n * Adapt code from PyBBIO.RotaryEncoder\n * add test for rotary encoder\n * read from eqep position file\n * return position from getPosition()\n * document howo to enable all the eqep pins\n * Document how to test eqep pins with rotary encoder\n * run config-pin to set pin mux for qep\n * update QEP test\n * update QEP test for issue #122\n * Test if kernel booted wit u-boot overlays\n * check if kernel cmdline for uboot overlay\n * Add documentation about u-boot overlays\n * Return BBIO_OK when u-boot overlays ared enabled\n * remove debug printing\n * Skip check for device tree loaded if u-boot overlays enabled\n * Sleep after loading ADC overlay to allow driver load\n * Workaround test failure until TIMERn bug is fixed\n\n* @ltjax (3):\n * Use lookup table to prevent duplicate pin export\n * Handle already exported pins\n * Fix build_path memory leak\n\n* @Vadim-Stupakov (1):\n * Fixed issue #145 GPIO library doesn't free GPIO file descriptor. File descriptor leak. Made a little bit refactoring\n\n* @cocasema (8):\n * Declare PHONY targets in root Makefile\n * Extract BBIO_err into a separate header\n * Add syslog and debugging messages\n * Add libadafruit-bbio with C++ wrappers for PWM/GPIO\n * Add 2 versions of library with c++98 and c++11 abi\n * Install header files properly\n * Add default values to pwm::start() method.\n * Add PWM c++ tests\n\n* @zsserg (2):\n * Added error checking for setting pin direction in gpio.setup() (Python)\n * Added debug output to set_pin_mode()\n\n1.0.3\n----\n* Add -Wno-strict-aliasing to CFLAGS to ignore gcc warning\n * Resolves GitHub issue #133 by @archey\n\n1.0.2\n----\n* Merge pull request #130 from adafruit/issue129-usr-leds [1439133]\n * Add support for alternate USR LED labels\n* Merge pull request #131 from adafruit/fix-gcc-warnings [f0ee018]\n * Fix gcc warnings\n* Merge pull request #132 from buckket/setup_unicode_fix [4c67dfc]\n * Make use of io.open() with explicit file encoding in setup.py\n\n\n1.0.1\n----\n* Merge pull request #124 from jpbarraca/master [cf9771a]\n * Timeout support for wait_for_edge (replaces PR #62)\n* Merge pull request #123 from bubbapizza/master [8b4f7f2]\n * Added a delay parameter for GPIO.setup() for udev permissions\n* Merge pull request #121 from dengber/master [50e8883]\n * ADC.read() returns wrong value\n* Merge pull request #64 from olegantonyan/master [d1e8dc1]\n * Wait until GPIO file appears on the /sys filesystem (issue #36)\n* Merge pull request #106 from cocasema/master [12b79d7]\n * Treat warnings as errors\n* Merge pull request #119 from JesseMcL/pr [e7e987a]\n * Add GPIO pullup configurations and fix PWM Segfault on kernel 4.1+\n* Merge pull request #116 from kozga/master [1b04cdf]\n * Fix SPI: IOError: [Errno 22] Invalid argument in xfer and xfer2 funct\u2026\n\n1.0.0\n----\n* Merge pull request #108 from MatthewWest for PWM support in Linux kernel 4.1+\n* Merge pull request #96 from PeteLawler for ADC support in Linux kernel 4.1+\n* Finally publish new version to PyPi \n* Bump major version number to signify long duration since last release\n\n0.0.30\n-----\n* Merge Python 3 compatibility fixes from Github user westphahl.\n* Moved old Angstrom build fix for missing py_compile from setup.py to separate file.\n\n0.0.20\n----\n* Fix for SPI not loading spidevX.X correctly based on load order\n* Initialize ctrl_dir in unload_device_tree #63\n* Clean up unused/dead code\n\n0.0.19\n----\n* Fix for SPI.xfer crashes python after 3 calls\n* Added a retry to reading for the analog inputs to avoid a bug where reading back and forth between two analog inputs would cause the resource to be unavailable every 16 scans (zthorson)\n* Updated the build_path to be more selective over what paths it chooses (zthorson)\n* Update Debian installation instructions in README (justinledwards)\n* Increase the size of the buffer used for storing device tree names (SaintGimp)\n\n0.0.18\n----\n* UART - Include UART overlays, and compile upon installation\n* UART - Rename UART overlays\n* Adafruit_I2C - Remove readU16Rev and readS16Rev\n* Adafruit_I2C - Updated readU16/readS16 for correct 16-bit reads\n\n0.0.17\n----\n* Fix SPI memory leaks\n* Clean up of PWM code (bit-hacker, jwcooper)\n* Remove UART debug statements\n\n0.0.16\n----\n* Add polarity as optional fourth parameter to PWM.start(). Valid values are 0 and 1. Default is still 0.\n* Fix for actually setting the polarity in start.\n* Add new unit tests to check that the polarity is being set properly, and valid values passed in.\n\n0.0.15\n----\n* Fix PWM duty cycle so 0 is off and 100 is on. Set polarity to 0 by default.\n* Give extra buffer space in export, and unexport functions for gpio that are more than 2 digits (Chris Desjardins)\n* Add new test case for 3 digit gpio (Chris Desjardins)\n* Fix for test_direction_readback. gpio_get_direction wasn't properly null terminating the direction string (Chris Desjardins)\n\n0.0.14\n----\n* Fix GPIO.gpio_function to work with the IO name (zthorson)\n* Fix IOErrors not getting raised when fopen fails while loading overlays into device tree (bradfordboyle, jwcooper)\n* Add new UART tests\n\n0.0.13\n----\n* Remove the gpio parameter from callbacks (cdesjardins)\n\n0.0.12\n----\n* Bump version due to pypi issues\n\n0.0.11\n----\n* New UART module to export UART overlays\n* Alpha support for SPI\n* Add small delay after loading any device tree overlays\n\n0.0.10\n____\n* Fix direction for event detection code\n* Fix for segmentation faults on add_event_detect\n\n0.0.9\n____\n* Fix for ADC Segmentation Faults\n\n0.0.8\n____\n* Temp remove overlay compilation. Ubuntu failures.\n\n0.0.7\n____\n* Refactor and clean up adc and pwm\n* Fix tests for Adafruit_BBIO rename\n\n0.0.6\n____\n* Include Adafruit_I2C.py as top-level module\n\n0.0.5\n----\n* Rename from BBIO to Adafruit_BBIO to reduce library conflicts and confusion.\n\n0.0.4\n----\n* Support for pip and easy_install\n\n0.0.3\n____\n* ADC enabled\n\n0.0.2\n____\n* PWM enabled\n\n0.0.1\n____\n* Initial Commit\n* GPIO mostly working\n* Initial GPIO unit tests\n* PWM in progress", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/adafruit/adafruit-beaglebone-io-python/", "keywords": "Adafruit BeagleBone IO GPIO PWM ADC", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "Adafruit_BBIO", "package_url": "https://pypi.org/project/Adafruit_BBIO/", "platform": "", "project_url": "https://pypi.org/project/Adafruit_BBIO/", "project_urls": { "Homepage": "https://github.com/adafruit/adafruit-beaglebone-io-python/" }, "release_url": "https://pypi.org/project/Adafruit_BBIO/1.1.1/", "requires_dist": null, "requires_python": "", "summary": "A module to control BeagleBone IO channels", "version": "1.1.1" }, "last_serial": 4506325, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "c7fbf4aa643d89b44757b2ea3bc1779c", "sha256": "f556ba709c6c1f5c256465a4b392831b1babe61a0c8694dc4d16e958100b37e6" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.10.tar.gz", "has_sig": false, "md5_digest": "c7fbf4aa643d89b44757b2ea3bc1779c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30175, "upload_time": "2013-07-18T21:18:31", "url": "https://files.pythonhosted.org/packages/f2/41/93113ba2c3fb4b0ffa4675284e5172a35854d8e2cadb4f0354ca8a6be562/Adafruit_BBIO-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "3f8d0e3f3776b06be0f3678b9560fc85", "sha256": "dc09af957762062456219c97e3959ad122de0d167f4284aee9684719c6f71400" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.11.tar.gz", "has_sig": false, "md5_digest": "3f8d0e3f3776b06be0f3678b9560fc85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31425, "upload_time": "2013-07-25T15:34:32", "url": "https://files.pythonhosted.org/packages/c6/d6/003f14a5a52b035ed67222e7c15df0dbd856702b0c6d6cd2f7b463a22444/Adafruit_BBIO-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "3252fb7b1f4e454f9a9bbb8458df4d59", "sha256": "47aa61eafc43e804ca21d51a5a9793a612260fa93d8bcc4a16a29a56affd502e" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.12.tar.gz", "has_sig": false, "md5_digest": "3252fb7b1f4e454f9a9bbb8458df4d59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31473, "upload_time": "2013-07-25T15:36:41", "url": "https://files.pythonhosted.org/packages/37/8b/31798f6cb8df317cfffe2b272bfbe1da2210321d986a18f29abe1e4a096e/Adafruit_BBIO-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "cf1657d592712bc455160f61c615d090", "sha256": "a292ea01680ec9decd1697151f9340a1e1f41a079897b45d9b2a05fbffe8bd38" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.13.tar.gz", "has_sig": false, "md5_digest": "cf1657d592712bc455160f61c615d090", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31648, "upload_time": "2013-07-26T17:58:42", "url": "https://files.pythonhosted.org/packages/87/80/56da9e9b7595659a1fd1c2bc3a53b0f61019de52c96aeafdd47bf1646f95/Adafruit_BBIO-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "306a60ca1eeee77db75807744dcb020c", "sha256": "f4ff8a6ed7806535eecd3357e366f7635c25a1c38488d1979c33b233d271ab3d" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.14.tar.gz", "has_sig": false, "md5_digest": "306a60ca1eeee77db75807744dcb020c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32097, "upload_time": "2013-07-30T19:42:11", "url": "https://files.pythonhosted.org/packages/ad/79/77b14c2e092de857ce0072eaa06ef7995be2256f7136bfe7aefa2d26a368/Adafruit_BBIO-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "d064cfe187e43e68377d5cf16e3c15de", "sha256": "9c6942a15675f96a9a150da1486ae8806c91c37028cdb8a694f56dc49c86182c" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.15.tar.gz", "has_sig": false, "md5_digest": "d064cfe187e43e68377d5cf16e3c15de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32590, "upload_time": "2013-08-12T21:26:30", "url": "https://files.pythonhosted.org/packages/47/17/9b049f9544961e912433e5b0fc660058edd087048979b4dde60e61986b3c/Adafruit_BBIO-0.0.15.tar.gz" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "c74152ecc66b24c1c473cbbf82af8366", "sha256": "0a1f8efd99ca77d5e65981f4e9f85fc14d0832e4e0c8390228721096cbcda56f" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.16.tar.gz", "has_sig": false, "md5_digest": "c74152ecc66b24c1c473cbbf82af8366", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33414, "upload_time": "2013-08-15T03:54:35", "url": "https://files.pythonhosted.org/packages/1e/60/b1130718c03d3e9edf213ba1eb6db49b042872f374efb30dfb2f6ee06b96/Adafruit_BBIO-0.0.16.tar.gz" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "d96c8c59d7321513d477f5c0f9270dbb", "sha256": "d7e8e5717650a0d51bf64f7bfb3af9da26237ec85aa537cc25e3181ad7d0c82b" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.17.tar.gz", "has_sig": false, "md5_digest": "d96c8c59d7321513d477f5c0f9270dbb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33754, "upload_time": "2013-08-19T21:52:44", "url": "https://files.pythonhosted.org/packages/c6/94/5a8d351d144bb10f8440985658eed5f2867712c92ffcaa2a1616c3f0f011/Adafruit_BBIO-0.0.17.tar.gz" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "a685dae202f93f6d42e5e7cb628afa67", "sha256": "14e7efcd1a7fba40417272381cb0aaf83deb18eff966cd7259ea5b85017778cd" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.18.tar.gz", "has_sig": false, "md5_digest": "a685dae202f93f6d42e5e7cb628afa67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34824, "upload_time": "2013-09-12T02:13:55", "url": "https://files.pythonhosted.org/packages/c8/7a/39c1e55f84a3561a0bac7681ae16a8563f58472ec0a0e9c7434de1a7df89/Adafruit_BBIO-0.0.18.tar.gz" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "49bf7f7eefeb20aa95b1ffed95b89727", "sha256": "12a0f3c96cdf3edfbc345489ceb343c40c9e7a2f2fff9e4c04a42d5ae132ea24" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.19.tar.gz", "has_sig": false, "md5_digest": "49bf7f7eefeb20aa95b1ffed95b89727", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35944, "upload_time": "2013-11-25T18:14:26", "url": "https://files.pythonhosted.org/packages/85/6d/c54f43beb919cf75ebefc28dfd9809e8176f2906b9f95c1d5808430b78ac/Adafruit_BBIO-0.0.19.tar.gz" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "94cd218a15ca7c474bc53c1a94d905ae", "sha256": "c79ca2dd23bc0416bed3fc6f99d6d9afcf506f292baefdbcd4957d673faed6d2" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.20.tar.gz", "has_sig": false, "md5_digest": "94cd218a15ca7c474bc53c1a94d905ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38886, "upload_time": "2014-05-27T19:44:31", "url": "https://files.pythonhosted.org/packages/ac/49/8a1594ba68f7d84f851d64f71b6d8b1034d5b8040182d26f4273f8bd9879/Adafruit_BBIO-0.0.20.tar.gz" } ], "0.0.30": [ { "comment_text": "", "digests": { "md5": "5f99f0caf52047ab3c9f8236cddaf8f1", "sha256": "122364531029956d0f787e7d4f0fe4c14e701babd184f69869c20a24d3083149" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.30.tar.gz", "has_sig": false, "md5_digest": "5f99f0caf52047ab3c9f8236cddaf8f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38469, "upload_time": "2015-05-07T21:59:59", "url": "https://files.pythonhosted.org/packages/32/fb/19531f371adbf1cdc8b6459252d86f10f7c83b6e81f9aac37275df7b79ed/Adafruit_BBIO-0.0.30.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "b066d50d00ce4762fe0250bf640e3fe8", "sha256": "411b4b53c0a797eb72aef3c8235b016be6e8818306dcf814793203f399a693d3" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.4.tar.gz", "has_sig": false, "md5_digest": "b066d50d00ce4762fe0250bf640e3fe8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22496, "upload_time": "2013-06-26T15:12:31", "url": "https://files.pythonhosted.org/packages/1b/75/9a27e57dc3b44fbc697e9763128450335c0e3c053dd903ea7ca953465b31/Adafruit_BBIO-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "0cffdf5f41b1344a02c7e185ea48e2c1", "sha256": "16792958fc4d696a5f2ad99428ba76f99549a84026bb63d8df9a0b94ba04642b" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.5.tar.gz", "has_sig": false, "md5_digest": "0cffdf5f41b1344a02c7e185ea48e2c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23490, "upload_time": "2013-06-27T02:47:14", "url": "https://files.pythonhosted.org/packages/ff/7f/062004af6f1904f6c8293a921907b3a53a01c7d11f2a23653ee2b288fd8f/Adafruit_BBIO-0.0.5.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "fe6ca683d2ca25e8656cc9276a873512", "sha256": "6e9feefd47f767caedf0276108844649cd356927afb81d60525589848485e1e7" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.7.tar.gz", "has_sig": false, "md5_digest": "fe6ca683d2ca25e8656cc9276a873512", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30729, "upload_time": "2013-07-03T01:19:57", "url": "https://files.pythonhosted.org/packages/48/93/5cfc5ffcad86be8e00d4796bf70dec484cc576344cef371af457e3aecf22/Adafruit_BBIO-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "3bcc2c1a40e7f55d5264791173c80113", "sha256": "6b717b930c226108e0b8b90ea2dd017facfded2fe745c207627fb7b90dbd47e7" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.8.tar.gz", "has_sig": false, "md5_digest": "3bcc2c1a40e7f55d5264791173c80113", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30708, "upload_time": "2013-07-03T16:58:54", "url": "https://files.pythonhosted.org/packages/2a/d2/a34d7b2aef36c36f04954e976cdf52abfd6a38e8be8788d6e8c08979de2b/Adafruit_BBIO-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "674718d2b17ea7822047a1d80c11c9ce", "sha256": "d95c778c4314a42096bea9453c87a9cebca48fa30d3872093b13d199773864d5" }, "downloads": -1, "filename": "Adafruit_BBIO-0.0.9.tar.gz", "has_sig": false, "md5_digest": "674718d2b17ea7822047a1d80c11c9ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30870, "upload_time": "2013-07-09T20:14:36", "url": "https://files.pythonhosted.org/packages/25/65/9a8850fe5f2c232a321158971222747c62f6b841cf7d30abee98cb924002/Adafruit_BBIO-0.0.9.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "952e1c7cb003255749385eccb28d323a", "sha256": "0cb5a3477dd8faebdabbbe68f618ef9e93bc971379921c0aba8bf4ed9d21c326" }, "downloads": -1, "filename": "Adafruit_BBIO-1.0.0.tar.gz", "has_sig": false, "md5_digest": "952e1c7cb003255749385eccb28d323a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43743, "upload_time": "2016-09-29T06:39:48", "url": "https://files.pythonhosted.org/packages/47/9b/f1e66a99449f14ca312650a203bb8055381b74c3cea0cfcfe7c1a4a7375b/Adafruit_BBIO-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "c91021bef570261b26a967113c858c5e", "sha256": "8a354d8c4d7b07cf1efb90a1bc3db5672f6b73eae68be108ca3b9aff04d7d190" }, "downloads": -1, "filename": "Adafruit_BBIO-1.0.1.tar.gz", "has_sig": false, "md5_digest": "c91021bef570261b26a967113c858c5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45886, "upload_time": "2016-12-22T06:58:58", "url": "https://files.pythonhosted.org/packages/c4/11/aa490e029b7c3283cb7bf77113a8f6f31b1250dcb5fa91474493293770c2/Adafruit_BBIO-1.0.1.tar.gz" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "6a0c286bfb5cb613e25a2e0ffa7da9a7", "sha256": "6c3a11f9a84653537e09e2e70311b9d3a6f57d98838b2157b9a65ce0f52b4a85" }, "downloads": -1, "filename": "Adafruit_BBIO-1.0.10.tar.gz", "has_sig": false, "md5_digest": "6a0c286bfb5cb613e25a2e0ffa7da9a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68845, "upload_time": "2018-01-26T04:52:18", "url": "https://files.pythonhosted.org/packages/28/62/7ecabb522a78606f0d657760257fe8703eb91d580d5a1381e0cea796a5d7/Adafruit_BBIO-1.0.10.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "2915ba6f3ed8d062a29cc970aa41cd17", "sha256": "a53ab58e521597f13cbfc12d823748b35239adf25ed13a789a51992f3ef3b067" }, "downloads": -1, "filename": "Adafruit_BBIO-1.0.2.tar.gz", "has_sig": false, "md5_digest": "2915ba6f3ed8d062a29cc970aa41cd17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45912, "upload_time": "2017-02-01T05:30:33", "url": "https://files.pythonhosted.org/packages/73/72/4f1fc32dfa7add4d6caeb4433c2f9155a542af391c33eb70fcc529f77d1f/Adafruit_BBIO-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "8babec0c13828c251ea6907e113d5c26", "sha256": "4b9aef88de437aa08185172a7d09ee7ef62e448acb2d71f77c9c5e0f0f4b9b97" }, "downloads": -1, "filename": "Adafruit_BBIO-1.0.3.tar.gz", "has_sig": false, "md5_digest": "8babec0c13828c251ea6907e113d5c26", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46096, "upload_time": "2017-02-10T10:18:28", "url": "https://files.pythonhosted.org/packages/bd/ee/dfbf0521287fc4cd8870427618b5d41c6a292f6d640af7b4c407329d7031/Adafruit_BBIO-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "b4215dc0c9702ce80a4a28fe9210fb4e", "sha256": "980e79f19d48bf195c6db5a464d1d25320885bb518fe85f5d14988d18dcdcedd" }, "downloads": -1, "filename": "Adafruit_BBIO-1.0.4.tar.gz", "has_sig": false, "md5_digest": "b4215dc0c9702ce80a4a28fe9210fb4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50434, "upload_time": "2017-08-23T09:39:48", "url": "https://files.pythonhosted.org/packages/8e/7e/995e1b965e16b42a7e8d837f4401d85c2f3a756ffac0c57016517a1baca8/Adafruit_BBIO-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "3fcc5dd704e80dabc3e06fa5cd55ac67", "sha256": "1ae1bba5518e7ff01d4a9ec387204eb263aa4d2d186e9804e8b4d11be35c61b2" }, "downloads": -1, "filename": "Adafruit_BBIO-1.0.5.tar.gz", "has_sig": false, "md5_digest": "3fcc5dd704e80dabc3e06fa5cd55ac67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51450, "upload_time": "2017-09-01T04:07:52", "url": "https://files.pythonhosted.org/packages/70/c6/0718083d78040534ee9268bf588ad6720cf6fe62de8734cdcdc7786c5563/Adafruit_BBIO-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "993153e1b8a27025780bf071f7486048", "sha256": "d0c17f3fc44d888655e85bf20cc87acc0516ac4ef97c8dd9577adddb857ac8cf" }, "downloads": -1, "filename": "Adafruit_BBIO-1.0.6.tar.gz", "has_sig": false, "md5_digest": "993153e1b8a27025780bf071f7486048", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61184, "upload_time": "2017-11-03T01:58:10", "url": "https://files.pythonhosted.org/packages/a0/46/8719024bffe7dd0bf6854c56b515502fc384b33e8e71f56023eb08fd16cc/Adafruit_BBIO-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "f2ba87cf3c9cc02fdaace8b1f29d540b", "sha256": "31b43a93dc25c9ffed4cb95bcbdd139f2393c9c9712412150ef2a04152e6a13d" }, "downloads": -1, "filename": "Adafruit_BBIO-1.0.7.tar.gz", "has_sig": false, "md5_digest": "f2ba87cf3c9cc02fdaace8b1f29d540b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54591, "upload_time": "2017-11-08T09:42:43", "url": "https://files.pythonhosted.org/packages/4d/fd/8b3b4492f496b7901d5cacb97d9177f7036df3f3b0c18070706a9ebbbc9d/Adafruit_BBIO-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "6cbb07816dea303bef65c211a3ec30f7", "sha256": "e1f83136ca211e7b0c9c447dff60b03aabb87dd37dda13c84d6ac6d0c8697f53" }, "downloads": -1, "filename": "Adafruit_BBIO-1.0.8.tar.gz", "has_sig": false, "md5_digest": "6cbb07816dea303bef65c211a3ec30f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54930, "upload_time": "2017-11-19T23:41:15", "url": "https://files.pythonhosted.org/packages/e2/a5/f1464bfed60889eda54f54dc544a35e6e5d55f2c2a24686e95aeecfe818b/Adafruit_BBIO-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "c5c9a3fd3ff5c3e23a3523a6beeb0401", "sha256": "a9050deb90568f0b9c74f509565c1e4d43db2e94ac7ec1b41b1e6d0c1e963bcd" }, "downloads": -1, "filename": "Adafruit_BBIO-1.0.9.tar.gz", "has_sig": false, "md5_digest": "c5c9a3fd3ff5c3e23a3523a6beeb0401", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63623, "upload_time": "2017-12-01T03:29:03", "url": "https://files.pythonhosted.org/packages/b9/4c/43c4cb8e226aa03e30b17dfbf20ec07bae2e2e16024d3ca2ed8996f260cd/Adafruit_BBIO-1.0.9.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "6457afb1450fd831be1f345df95a7fb6", "sha256": "f4e78c3c93af52b90129fc01bd006d704e877bcbfaa0b473c6850e4cd09ff26a" }, "downloads": -1, "filename": "Adafruit_BBIO-1.1.0.tar.gz", "has_sig": false, "md5_digest": "6457afb1450fd831be1f345df95a7fb6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76190, "upload_time": "2018-10-18T07:43:38", "url": "https://files.pythonhosted.org/packages/3f/a8/f3128e98b25a670956b465595687284c49ea1e4aced2f6b4c8ae4d9a2c14/Adafruit_BBIO-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "75c676577216244b74958d02900480b5", "sha256": "9e8255aefb3470706ca2bb63432e4ceb697de2ab1b0be69904456840da0dafd8" }, "downloads": -1, "filename": "Adafruit_BBIO-1.1.1.tar.gz", "has_sig": false, "md5_digest": "75c676577216244b74958d02900480b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76685, "upload_time": "2018-11-20T08:29:25", "url": "https://files.pythonhosted.org/packages/53/2b/b0e3dce6113225aae9beb886b2addd4fd5c140ba93c9503d7e4a97021bcc/Adafruit_BBIO-1.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "75c676577216244b74958d02900480b5", "sha256": "9e8255aefb3470706ca2bb63432e4ceb697de2ab1b0be69904456840da0dafd8" }, "downloads": -1, "filename": "Adafruit_BBIO-1.1.1.tar.gz", "has_sig": false, "md5_digest": "75c676577216244b74958d02900480b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76685, "upload_time": "2018-11-20T08:29:25", "url": "https://files.pythonhosted.org/packages/53/2b/b0e3dce6113225aae9beb886b2addd4fd5c140ba93c9503d7e4a97021bcc/Adafruit_BBIO-1.1.1.tar.gz" } ] }