Skip to main content

Creators

Mark A Yoder, Eric Morse, and Joshua Key

License

GPL

Executive Summary

Picture that summarizes the project BBIO are a group of library files for gpio that are written in C that is wrapped into Python. Our project is to rewrite the library fully in Python rather than using wrappers. What works: The GPIO, UART, and ADC capabilities will now run the same way they normally would, expect the Python does not use a Python wrapper. What isn't working: The programs have only been tested on the BeagleBone Black with kernel 4.19. The BBIO programs may not function correctly on other kernels or BeagleBones. Conclusion: The BBIO library no longer requires a Python wrapper as all of the functions interact with the BeagleBone directly from Python.

Packaging (N/A)

hardware information (we have only software)

Installation Instructions (N/A)

how to install the project

User Instructions

The programmer has to import the library into the code that they write and call the gpiod functions from that library.

Highlights

We created a full drop-in replacement of gpiod's pywrapper in C to a full python implementation of gpiod for python programmers. It has full gpiod functionality with gpio pin event detection and setting outputs on gpio pins. It supports setting directions during setup. It also supports setting up multiple gpio pins at the same time, which is how gpiod differs from regular gpio. It has full support for UART functionality as well as ADC conversions.

Theory of Operation

The library is a drop-in replacement of the py-wrapper version of BBIO gpiod. A programmer would import the library files into the code they write and call the functions.
.setup() to setup a gpio pin.
.output() to configure the output of a gpio pin that has been setup already.
.add_event_detect() to detect a change in the value of a gpio pin, and go to a callback function when it changes.
.cleanup() to close all memory allocations and remove all pins.

Work Breakdown

Joshua Key and Eric Morse did pair-programming.
We worked the entire project and all modules together.
We completed all GPIO functionality of GPIOD, including event detection.
We completed all UART functionality of GPIOD.
We also completed all Pinmux and ADC (Analog to Digital Conversion) of GPIOD.
Mark Yoder did initial work on GPIOmay.py and worked most of it, except event detection.

Future Work

The columns are being changed in an update to BBIO, which will mean that the columns of our table will need to be changed to reflact that. The code should work fine, but maintenance of the code will need to happen if it does not work under any new update.

Conclusions

In the near future, there will be a new image for the 4.19 Black kernel that will switch the Consumer and the Name for gpioinfo. This will remove an error that we had to work around, which will require an update to implement. Additional functionality will need to be implemented to both the C and the Python library.

Metadata

Release files for BBIOPY 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for BBIOPY 0.1.5
File Size Uploaded Provenance
BBIOPY-0.1.5.tar.gz 18.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for BBIOPY 0.1.5
File Interpreter ABI Platform
BBIOPY-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 41.7 kB

Release files / BBIOPY-0.1.5.tar.gz

Download URL BBIOPY-0.1.5.tar.gz
Size 18.5 kB
Tags Source
SHA-256 checksum
How to use checksums
bd00daefc5417b3de8ca15a8550ea9cd75a1432065a673f394e618e279e07526
BLAKE2b-256 checksum
How to use checksums
ab9b4ac404d22d8d34875ac606d39ddd9bd892720ecce6e2065a8d2c2514f5f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.3

Release files / BBIOPY-0.1.5-py3-none-any.whl

Download URL BBIOPY-0.1.5-py3-none-any.whl
Size 23.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8818996c1d82a2b31afe89d53285bf5d3e65df01ce515ecae74aed01fa8de525
BLAKE2b-256 checksum
How to use checksums
947b6292b5fc0448c3243b47766f4ccb04073d7343f29c247bf876e189c581c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.3

Security for BBIOPY 0.1.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page