Skip to content

Commit 49c4c1e

Browse files
authored
Merge pull request adafruit#1805 from tannewt/readme_updates
Doc updates for 4.0.0
2 parents bfbe932 + 45b26ec commit 49c4c1e

File tree

5 files changed

+91
-136
lines changed

5 files changed

+91
-136
lines changed

.travis.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ before_script:
7272
- sudo apt-get install -y python3-pip
7373
- pip3 install --user sh click
7474
- ([[ -z "$TRAVIS_TESTS" ]] || sudo pip install --upgrade cpp-coveralls)
75-
- (! var_search "${TRAVIS_TESTS-}" docs || pip install --user Sphinx sphinx-rtd-theme recommonmark)
75+
- (! var_search "${TRAVIS_TESTS-}" docs || sudo apt-get install -y librsvg2-bin)
76+
- (! var_search "${TRAVIS_TESTS-}" docs || pip install --user Sphinx sphinx-rtd-theme recommonmark sphinxcontrib-svg2pdfconverter)
7677
- (! var_search "${TRAVIS_TESTS-}" translations || pip3 install --user polib)
7778

7879
# report some good version numbers to the build

CONTRIBUTING.md

+9-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,15 @@ If you have an employment contract with your employer please make sure that they
1414
don't automatically own your work product. Make sure to get any necessary approvals
1515
before contributing. Another term for this contribution off-hours is moonlighting.
1616

17-
## Getting started
17+
## Ways to contribute
18+
As CircuitPython grows, there are more and more ways to contribute. Here are some ideas:
19+
20+
* Build a project with CircuitPython and share how to do it online.
21+
* Test the latest libraries and CircuitPython versions with your projects and file issues for any bugs you find.
22+
* Contribute Python code to CircuitPython libraries that support new devices or features of an existing device.
23+
* Contribute C code to CircuitPython which fixes an open issue or adds a new feature.
24+
25+
## Getting started with C
1826
CircuitPython developer Dan Halbert (@dhalbert) has written up build instructions using native build
1927
tools [here](https://learn.adafruit.com/building-circuitpython).
2028

README.rst

+79-133
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,46 @@
1-
Adafruit CircuitPython
2-
======================
1+
CircuitPython
2+
=============
33

4-
.. image:: https://github.com/adafruit/circuitpython/blob/master/logo/CircuitPython_Repo_header_logo.png
4+
.. image:: https://s3.amazonaws.com/adafruit-circuit-python/CircuitPython_Repo_header_logo.png
55

66
|Build Status| |Doc Status| |License| |Discord|
77

8-
`Status <#status>`__ \| `Supported Boards <#supported-boards>`__
9-
\| `Download <#download>`__ \|
10-
`Documentation <#documentation>`__ \|
11-
`Contributing <#contributing>`__ \| `Differences from
12-
Micropython <#differences-from-micropython>`__ \| `Project
13-
Structure <#project-structure>`__
8+
`circuitpython.org <https:/circuitpython.org>`__ \| `Get CircuitPython <#get-circuitpython>`__ \|
9+
`Documentation <#documentation>`__ \| `Contributing <#contributing>`__ \|
10+
`Branding <#branding>`__ \| `Differences from Micropython <#differences-from-micropython>`__ \|
11+
`Project Structure <#project-structure>`__
1412

15-
**CircuitPython** is an *education friendly* open source derivative of
16-
`MicroPython <https://micropython.org>`_. CircuitPython supports use
17-
on educational development boards designed and sold by
18-
`Adafruit <https://adafruit.com>`_. Adafruit CircuitPython features
19-
unified Python core APIs and a growing list of Adafruit libraries and
20-
drivers of that work with it.
13+
**CircuitPython** is a *beginner friendly*, open source version of Python for tiny, inexpensive
14+
computers called microcontrollers. Microcontrollers are the brains of many electronics including a
15+
wide variety of development boards used to build hobby projects and prototypes. CircuitPython in
16+
electronics is one of the best ways to learn to code because it connects code to reality. Simply
17+
install CircuitPython on a supported board via drag and drop and then edit a ``code.py`` file on
18+
the CIRCUITPY drive. The code will automatically reload. No software installs are needed besides a
19+
text editor (we recommend `Mu <https://codewith.mu/>`_ for beginners.)
2120

22-
Status
23-
------
21+
CircuitPython features unified Python core APIs and a growing list of 150+ device libraries and
22+
drivers that work with it. These libraries also work on single board computers with regular
23+
Python via the `Adafruit Blinka Library <https://github.com/adafruit/Adafruit_Blinka>`_.
2424

25-
This project is stable. Most APIs should be stable going forward. Those
26-
that change will change on major version numbers such as 2.0.0 and
27-
3.0.0.
25+
CircuitPython is based on `MicroPython <https://micropython.org>`_. See
26+
`below <#differences-from-micropython>`_ for differences. CircuitPython development is sponsored by
27+
`Adafruit <https://adafruit.com>`_ and is available on their educational development boards. Please
28+
support both MicroPython and Adafruit.
2829

29-
Supported Boards
30-
----------------
30+
Get CircuitPython
31+
------------------
3132

32-
Designed for CircuitPython
33-
~~~~~~~~~~~~~~~~~~~~~~~~~~
34-
35-
**M0 Boards**
36-
37-
- `Adafruit CircuitPlayground Express <https://www.adafruit.com/product/3333>`__ (`CircuitPython Guide <https://learn.adafruit.com/adafruit-circuit-playground-express/circuitpython-quickstart>`__)
38-
- `Adafruit Feather M0 Express <https://www.adafruit.com/product/3403>`__ (`CircuitPython Guide <https://learn.adafruit.com/adafruit-feather-m0-express-designed-for-circuit-python-circuitpython/kattni-circuitpython>`__)
39-
- `Adafruit Gemma M0 <https://www.adafruit.com/product/3501>`__ (`CircuitPython Guide <https://learn.adafruit.com/adafruit-gemma-m0/circuitpython>`__)
40-
- `Adafruit Hallowing M0 Express <https://www.adafruit.com/product/3900>`__ (`CircuitPython Guide <https://learn.adafruit.com/adafruit-hallowing/circuitpython>`__)
41-
- `Adafruit ItsyBitsy M0 Express <https://www.adafruit.com/product/3727>`_ (`CircuitPython Guide <https://learn.adafruit.com/introducing-itsy-bitsy-m0/circuitpython>`__)
42-
- `Adafruit Metro M0 Express <https://www.adafruit.com/product/3505>`_ (`CircuitPython Guide <https://learn.adafruit.com/adafruit-metro-m0-express-designed-for-circuitpython/circuitpython>`__)
43-
- `Adafruit Trinket M0 <https://www.adafruit.com/product/3500>`__ (`CircuitPython Guide <https://learn.adafruit.com/adafruit-trinket-m0-circuitpython-arduino/circuitpython>`__)
44-
45-
**M4 Boards**
46-
47-
- `Adafruit Feather M4 Express <https://www.adafruit.com/product/3857>`__ (`CircuitPython Guide <https://learn.adafruit.com/adafruit-feather-m4-express-atsamd51/circuitpython>`__)
48-
- `Adafruit ItsyBitsy M4 Express <https://www.adafruit.com/product/3800>`__ (`CircuitPython Guide <https://learn.adafruit.com/introducing-adafruit-itsybitsy-m4/circuitpython>`__)
49-
- `Adafruit Metro M4 Express <https://www.adafruit.com/product/3382>`__ (`CircuitPython Guide <https://learn.adafruit.com/adafruit-metro-m4-express-featuring-atsamd51/circuitpython>`__)
50-
51-
Other
52-
~~~~~
53-
54-
- `Adafruit Feather HUZZAH <https://www.adafruit.com/products/2821>`__
55-
- `Adafruit Feather M0
56-
Basic <https://www.adafruit.com/products/2772>`__
57-
- `Adafruit Feather M0 Bluefruit
58-
LE <https://www.adafruit.com/products/2995>`__ (uses M0 Basic
59-
binaries)
60-
- `Adafruit Feather M0
61-
Adalogger <https://www.adafruit.com/product/2796>`__ (MicroSD card
62-
supported using the `Adafruit CircuitPython SD
63-
library <https://github.com/adafruit/Adafruit_CircuitPython_SD>`__)
64-
- `Arduino Zero <https://www.arduino.cc/en/Main/ArduinoBoardZero>`__
65-
- `Arduino MKR Zero <https://store.arduino.cc/arduino-mkrzero>`__ (MicroSD card
66-
supported using the `Adafruit CircuitPython SD
67-
library <https://github.com/adafruit/Adafruit_CircuitPython_SD>`__)
68-
69-
"Third-party" or "non-Adafruit" boards
70-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71-
72-
- `Electronic Cats Meow Meow <https://electroniccats.com/gomeow/>`__
73-
- `Electronic Cats CatWAN USB Stick <https://electroniccats.com/producto/catwan_usb_stick/>`__
74-
75-
Download
76-
--------
77-
78-
Official binaries are available through the `latest GitHub
79-
releases <https://github.com/adafruit/circuitpython/releases>`__.
80-
Continuous (one per commit) builds are available
81-
`here <https://adafruit-circuit-python.s3.amazonaws.com/index.html?prefix=bin>`__
82-
and includes experimental hardware support.
33+
Official binaries for all supported boards are available through
34+
`circuitpython.org/downloads <https://circuitpython.org/downloads>`_. The site includes stable, unstable and
35+
continuous builds. Full release notes and assets are available through
36+
`GitHub releases <https://github.com/adafruit/circuitpython/releases>`_ as well.
8337

8438
Documentation
8539
-------------
8640

8741
Guides and videos are available through the `Adafruit Learning
8842
System <https://learn.adafruit.com/>`__ under the `CircuitPython
89-
category <https://learn.adafruit.com/category/circuitpython>`__ and
90-
`MicroPython
91-
category <https://learn.adafruit.com/category/micropython>`__. An API
43+
category <https://learn.adafruit.com/category/circuitpython>`__. An API
9244
reference is also available on `Read the Docs
9345
<http://circuitpython.readthedocs.io/en/latest/?>`__. A collection of awesome
9446
resources can be found at `Awesome CircuitPython <https://github.com/adafruit/awesome-circuitpython>`__.
@@ -113,22 +65,43 @@ are welcome to submit pull requests and they will be promptly reviewed
11365
by project admins. Please join the
11466
`Discord <https://discord.gg/nBQh6qu>`__ too.
11567

68+
Branding
69+
------------
70+
71+
While we are happy to see CircuitPython forked and modified, we'd appreciate it if forked releases
72+
not use the name "CircuitPython" or the Blinka logo. "CircuitPython" means something special to
73+
us and those who learn about it. As a result, we'd like to make sure products referring to it meet a
74+
common set of requirements.
75+
76+
If you'd like to use the term "CircuitPython" and Blinka for your product here is what we ask:
77+
78+
* Your product is supported by the primary
79+
`"adafruit/circuitpython" <https://github.com/adafruit/circuitpython>`_ repo. This way we can
80+
update any custom code as we update the CircuitPython internals.
81+
* Your product is listed on `circuitpython.org <https:/circuitpython.org>`__ (source
82+
`here <https://github.com/adafruit/circuitpython-org/>`_). This is to ensure that a user of your
83+
product can always download the latest version of CircuitPython from the standard place.
84+
* Your product has a user accessible USB plug which appears as a CIRCUITPY drive when plugged in.
85+
86+
If you choose not to meet these requirements, then we ask you call your version of CircuitPython
87+
something else (for example, SuperDuperPython) and not use the Blinka logo. You can say it is
88+
"CircuitPython-compatible" if most CircuitPython drivers will work with it.
89+
11690
--------------
11791

11892
Differences from `MicroPython <https://github.com/micropython/micropython>`__
11993
-----------------------------------------------------------------------------
12094

12195
CircuitPython:
12296

123-
- includes a ports for MicroChip SAMD21 (Commonly known as M0 in Adafruit
97+
- includes ports for MicroChip SAMD21 (Commonly known as M0 in Adafruit
12498
product names) and SAMD51 (M4).
125-
- supports only SAMD21, SAMD51, and ESP8266 ports. An nRF port is under
126-
development.
99+
- supports only SAMD21, SAMD51, and nRF52840 ports.
127100
- tracks MicroPython's releases (not master).
128-
- Longints (arbitrary-length integers) are enabled for most M0
129-
Express boards (those boards with SPI flash chips external
130-
to the microcontroller), and for all M4 builds.
131-
Longints are disabled on other boards due to lack of flash space.
101+
- floats (aka decimals) are enabled for all builds.
102+
- error messages are translated into 10+ languages.
103+
- does not support concurrency within Python (including interrupts and threading). Some concurrency
104+
is achieved with native modules for tasks that require it such as audio file playback.
132105

133106
Behavior
134107
~~~~~~~~
@@ -153,12 +126,23 @@ Behavior
153126
causes nasty crashes by making it available through mass storage
154127
after the crash. A reset (the button) is needed after its fixed to
155128
get back into normal mode.
129+
- RGB status LED indicating CircuitPython state, and errors through a sequence of colored flashes.
130+
- Re-runs ``code.py`` or other main file after file system writes over USB mass storage. (Disable with
131+
``samd.disable_autoreload()``)
132+
- Entering the REPL after the main code is finished requires a key press which enters the REPL and
133+
disables autoreload.
134+
- Main is one of these: ``code.txt``, **``code.py``**, ``main.py``,
135+
``main.txt``
136+
- Boot is one of these: ``settings.txt``, ``settings.py``, **``boot.py``**,
137+
``boot.txt``
156138

157139
API
158140
~~~
159141

160-
- Unified hardware APIs: `audioio <https://circuitpython.readthedocs.io/en/latest/shared-bindings/audioio/__init__.html>`_, `analogio <https://circuitpython.readthedocs.io/en/latest/shared-bindings/analogio/__init__.html>`_, `bleio <https://circuitpython.readthedocs.io/en/latest/shared-bindings/bleio/__init__.html>`_, `busio <https://circuitpython.readthedocs.io/en/latest/shared-bindings/busio/__init__.html>`_, `digitalio <https://circuitpython.readthedocs.io/en/latest/shared-bindings/digitalio/__init__.html>`_, `pulseio <https://circuitpython.readthedocs.io/en/latest/shared-bindings/pulseio/__init__.html>`_, `touchio <https://circuitpython.readthedocs.io/en/latest/shared-bindings/touchio/__init__.html>`_, `microcontroller <https://circuitpython.readthedocs.io/en/latest/shared-bindings/microcontroller/__init__.html>`_, `board <https://circuitpython.readthedocs.io/en/latest/shared-bindings/board/__init__.html>`_, `bitbangio <https://circuitpython.readthedocs.io/en/latest/shared-bindings/bitbangio/__init__.html>`_
161-
- No ``machine`` API on Atmel SAMD21 port.
142+
- Unified hardware APIs. Documented
143+
`on ReadTheDocs <https://circuitpython.readthedocs.io/en/latest/shared-bindings/index.html>`_.
144+
- API docs are rST within the C files in ``shared-bindings``.
145+
- No ``machine`` API.
162146

163147
Modules
164148
~~~~~~~
@@ -178,18 +162,6 @@ Modules
178162
- tick count is available as
179163
`time.monotonic() <https://circuitpython.readthedocs.io/en/latest/shared-bindings/time/__init__.html#time.monotonic>`__
180164

181-
atmel-samd21 features
182-
~~~~~~~~~~~~~~~~~~~~~
183-
184-
- RGB status LED
185-
- Auto-reload after file write over mass storage. (Disable with
186-
``samd.disable_autoreload()``)
187-
- Wait state after boot and main run, before REPL.
188-
- Main is one of these: ``code.txt``, ``code.py``, ``main.py``,
189-
``main.txt``
190-
- Boot is one of these: ``settings.txt``, ``settings.py``, ``boot.py``,
191-
``boot.txt``
192-
193165
--------------
194166

195167
Project Structure
@@ -231,46 +203,20 @@ Ports
231203
Ports include the code unique to a microcontroller line and also
232204
variations based on the board.
233205

234-
- ``atmel-samd`` Support for SAMD21 based boards such as `Arduino
235-
Zero <https://www.arduino.cc/en/Main/ArduinoBoardZero>`__, `Adafruit
236-
Feather M0 Basic <https://www.adafruit.com/products/2772>`__, and
237-
`Adafruit Feather M0 Bluefruit
238-
LE <https://www.adafruit.com/products/2995>`__.
239-
- ``bare-arm`` A bare minimum version of MicroPython for ARM MCUs.
240-
- ``cc3200`` Support for boards based
241-
`CC3200 <http://www.ti.com/product/CC3200>`__ from TI such as the
242-
`WiPy 1.0 <https://www.pycom.io/solutions/py-boards/wipy1/>`__.
243-
- ``esp8266`` Support for boards based on ESP8266 WiFi modules such as
244-
the `Adafruit Feather
245-
HUZZAH <https://www.adafruit.com/products/2821>`__.
246-
- ``minimal`` A minimal MicroPython port. Start with this if you want
247-
to port MicroPython to another microcontroller.
248-
- ``pic16bit`` Support for 16-bit PIC microcontrollers.
249-
- ``qemu-arm`` Support for ARM emulation through
250-
`QEMU <https://qemu.org>`__.
251-
- ``stmhal`` Support for boards based on STM32 microcontrollers
252-
including the MicroPython flagship
253-
`PyBoard <https://store.micropython.org/store/#/products/PYBv1_1>`__.
254-
- ``teensy`` Support for the Teensy line of boards such as the `Teensy
255-
3.1 <https://www.pjrc.com/teensy/teensy31.html>`__.
256-
- ``unix`` Support for UNIX.
257-
- ``windows`` Support for
258-
`Windows <https://www.microsoft.com/en-us/windows/>`__.
259-
- ``zephyr`` Support for `Zephyr <https://www.zephyrproject.org/>`__, a
260-
real-time operating system by the Linux Foundation.
261-
262-
CircuitPython only maintains the ``atmel-samd`` and ``esp8266`` ports.
263-
The rest are here to maintain compatibility with the
264-
`MicroPython <https://github.com/micropython/micropython>`__ parent
265-
project.
266-
267-
`⬆ back to top <#adafruit-circuitpython>`__
206+
- ``atmel-samd`` Support for SAMD21 and SAMD51 based boards.
207+
- ``nrf`` Support for the nRF52840 based boards.
208+
- ``unix`` Support for UNIX. Only used for automated testing.
209+
210+
The remaining port directories not listed above are in the repo to maintain compatibility with the
211+
`MicroPython <https://github.com/micropython/micropython>`__ parent project.
212+
213+
`back to top <#circuitpython>`__
268214

269215
.. |Build Status| image:: https://travis-ci.com/adafruit/circuitpython.svg?branch=master
270216
:target: https://travis-ci.org/adafruit/circuitpython
271217
.. |Doc Status| image:: https://readthedocs.org/projects/circuitpython/badge/?version=latest
272218
:target: http://circuitpython.readthedocs.io/
273219
.. |Discord| image:: https://img.shields.io/discord/327254708534116352.svg
274220
:target: https://adafru.it/discord
275-
.. |License| image:: https://github.com/adafruit/circuitpython/blob/master/logo/license-MIT-brightgreen.svg
276-
:target: https://opensource.org/licenses/MIT
221+
.. |License| image:: https://img.shields.io/badge/License-MIT-brightgreen.svg
222+
:target: https://choosealicense.com/licenses/mit/

conf.py

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
extensions = [
3838
'sphinx.ext.autodoc',
3939
'sphinx.ext.doctest',
40+
'sphinxcontrib.rsvgconverter',
4041
'sphinx.ext.intersphinx',
4142
'sphinx.ext.todo',
4243
'sphinx.ext.coverage'

logo/license-MIT-brightgreen.svg

-1
This file was deleted.

0 commit comments

Comments
 (0)