This module was designed for use in education; particularly for young children. It is intended to provide a simple interface to everyday components.

If a proposed change added an advanced feature but made basic usage more complex, it is unlikely to be added.


Please make suggestions for additional components or enhancements to the codebase by opening an issue explaining your reasoning clearly.


Please submit bug reports by opening an issue explaining the problem clearly using code examples.


The documentation source lives in the docs folder. Contributions to the documentation are welcome but should be easy to read and understand.

Commit messages and pull requests

Commit messages should be concise but descriptive, and in the form of a patch description, i.e. instructional not past tense (“Add LED example” not “Added LED example”). Commits that close (or intend to close) an issue should use the phrase “fix #123” where #123 is the issue number.

Backwards compatibility

Since this library reached v1.0 we aim to maintain backwards-compatibility thereafter. Changes which break backwards-compatibility will not be accepted.


  • Python 2/3 compatibility
  • PEP8-compliance (with exceptions)