]> Repositories - Adafruit_Blinka-hackapet.git/blob - README.rst
Merge pull request #377 from scottamain/mini
[Adafruit_Blinka-hackapet.git] / README.rst
1 Introduction
2 ============
3
4 .. image:: https://readthedocs.org/projects/adafruit-micropython-blinka/badge/?version=latest
5     :target: https://circuitpython.readthedocs.io/projects/blinka/en/latest/
6     :alt: Documentation Status
7
8 .. image:: https://img.shields.io/discord/327254708534116352.svg
9     :target: https://adafru.it/discord
10     :alt: Discord
11
12 .. image:: https://travis-ci.com/adafruit/Adafruit_Blinka.svg?branch=master
13     :target: https://travis-ci.com/adafruit/Adafruit_Blinka
14     :alt: Build Status
15
16 .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
17     :target: https://github.com/psf/black
18     :alt: Code Style: Black
19
20 This repository contains a selection of packages mirroring the CircuitPython API
21 on hosts running micropython. Working code exists to emulate the CircuitPython packages;
22
23 * **board** - breakout-specific pin identities
24 * **microcontroller** - chip-specific pin identities
25 * **analogio** - analog input/output pins, using pin identities from board+microcontroller packages
26 * **digitalio** - digital input/output pins, using pin identities from board+microcontroller packages
27 * **bitbangio** - software-driven interfaces for I2C, SPI
28 * **busio** - hardware-driven interfaces for I2C, SPI, UART
29 * **pulseio** - contains classes that provide access to basic pulse IO (PWM)
30
31 For details, see the `Blinka API reference
32 <https://circuitpython.readthedocs.io/projects/blinka/en/latest/index.html>`_.
33
34 Dependencies
35 =============
36
37 The Micropython compatibility layers described above are intended to provide a CircuitPython-like API for devices which
38 are running CPython or Micropython. Since corresponding packages should be built-in to any standard
39 CircuitPython image, they have no value on a device already running CircuitPython and would likely conflict in unhappy ways.
40
41 The test suites in the test/src folder under **testing.universal** are by design
42 intended to run on *either* CircuitPython *or* Micropython+compatibility layer to prove conformance.
43
44 Installing from PyPI
45 =====================
46
47 On supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from
48 PyPI <https://pypi.org/project/Adafruit-Blinka/>`_. To install for current user:
49
50 .. code-block:: shell
51
52     pip3 install Adafruit-Blinka
53
54 To install system-wide (this may be required in some cases):
55
56 .. code-block:: shell
57
58     sudo pip3 install Adafruit-Blinka
59
60 To install in a virtual environment in your current project:
61
62 .. code-block:: shell
63
64     mkdir project-name && cd project-name
65     python3 -m venv .env
66     source .env/bin/activate
67     pip3 install Adafruit-Blinka
68
69 Usage Example
70 =============
71
72 At the time of writing (`git:7fc1f8ab <https://github.com/cefn/Adafruit_Micropython_Blinka/tree/7fc1f8ab477124628a5afebbf6826005955805f9>`_),
73 the following sequence runs through some basic testing of the digitalio compatibility layer...
74
75 .. code-block:: python
76
77     from testing import test_module_name
78     test_module_name("testing.universal.digitalio")
79
80 An example log from running the suites is `here <https://github.com/cefn/Adafruit_Micropython_Blinka/issues/2#issuecomment-366713394>`_ .
81
82 Contributing
83 ============
84
85 Contributions are welcome! Please read our `Code of Conduct
86 <https://github.com/adafruit/Adafruit_Blinka/blob/master/CODE_OF_CONDUCT.md>`_
87 before contributing to help this project stay welcoming.
88
89 Building locally
90 ================
91
92 Sphinx documentation
93 -----------------------
94
95 Sphinx is used to build the documentation based on rST files and comments in the code. First,
96 install dependencies (feel free to reuse the virtual environment from above):
97
98 .. code-block:: shell
99
100     python3 -m venv .env
101     source .env/bin/activate
102     pip install Sphinx sphinx-rtd-theme Adafruit-PlatformDetect
103
104 Now, once you have the virtual environment activated:
105
106 .. code-block:: shell
107
108     cd docs
109     sphinx-build -E -W -b html . _build/html
110
111 This will output the documentation to ``docs/_build/html``. Open the index.html in your browser to
112 view them. It will also (due to -W) error out on any warning like Travis will. This is a good way to
113 locally verify it will pass.