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 an *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 a beginner focused derivative of ` MicroPython < https://micropython.org >`_.
26+ CircuitPython development is sponsored by ` Adafruit < https://adafruit.com >`_ and is available on
27+ their educational development boards. Please support both MicroPython and Adafruit .
2828
29- Supported Boards
30- ----------------
29+ Get CircuitPython
30+ ------------------
3131
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.
32+ Official binaries for all supported boards are available through
33+ `circuitpython.org <https://circuitpython.org/downloads >`_. The site includes both stable, unstable
34+ and continuous builds. Full release notes and assets are available through
35+ `GitHub releases <https://github.com/adafruit/circuitpython/releases >`_ as well.
8336
8437Documentation
8538-------------
8639
8740Guides and videos are available through the `Adafruit Learning
8841System <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
42+ category <https://learn.adafruit.com/category/circuitpython> `__. An API
9243reference is also available on `Read the Docs
9344<http://circuitpython.readthedocs.io/en/latest/?> `__. A collection of awesome
9445resources can be found at `Awesome CircuitPython <https://github.com/adafruit/awesome-circuitpython >`__.
@@ -113,22 +64,40 @@ are welcome to submit pull requests and they will be promptly reviewed
11364by project admins. Please join the
11465`Discord <https://discord.gg/nBQh6qu >`__ too.
11566
67+ Branding
68+ ------------
69+
70+ While we are happy to see CircuitPython forked and modified, we'd appreciate it if forked releases
71+ not use the name "CircuitPython" or the Blinka logo. "CircuitPython" means something special to
72+ us and those who learn about it. As a result, we'd like to make sure products referring to it meet a
73+ common set of requirements.
74+
75+ If you'd like to use the term "CircuitPython" and Blinka for your product here is what we ask:
76+
77+ * Your product is supported by the primary
78+ `"adafruit/circuitpython" <https://github.com/adafruit/circuitpython >`_ repo. This way we can
79+ update any custom code as we update the CircuitPython internals.
80+ * Your product is listed on circuitpython.org. This is to ensure that a user of your product can
81+ always download the latest version of CircuitPython from the standard place.
82+ * Your product has a user accessible USB plug which appears as a CIRCUITPY drive when plugged in.
83+
84+ If you choose not to meet these requirements, then we ask you call your version of CircuitPython
85+ something else (for example, SuperDuperPython) and not use the Blinka logo. You can say it is
86+ "CircuitPython-compatible" if most CircuitPython drivers will work with it.
87+
11688--------------
11789
11890Differences from `MicroPython <https://github.com/micropython/micropython >`__
11991-----------------------------------------------------------------------------
12092
12193CircuitPython:
12294
123- - includes a ports for MicroChip SAMD21 (Commonly known as M0 in Adafruit
95+ - includes ports for MicroChip SAMD21 (Commonly known as M0 in Adafruit
12496 product names) and SAMD51 (M4).
125- - supports only SAMD21, SAMD51, and ESP8266 ports. An nRF port is under
126- development.
97+ - supports only SAMD21, SAMD51, and nRF52840 ports.
12798- 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.
99+ - floats (aka decimals) are enabled for all builds.
100+ - error messages are translated into 10+ languages.
132101
133102Behavior
134103~~~~~~~~
@@ -153,12 +122,21 @@ Behavior
153122 causes nasty crashes by making it available through mass storage
154123 after the crash. A reset (the button) is needed after its fixed to
155124 get back into normal mode.
125+ - RGB status LED
126+ - Auto-reload after file write over mass storage. (Disable with
127+ ``samd.disable_autoreload() ``)
128+ - Wait state after boot and main run, before REPL.
129+ - Main is one of these: ``code.txt ``, ``code.py ``, ``main.py ``,
130+ ``main.txt ``
131+ - Boot is one of these: ``settings.txt ``, ``settings.py ``, ``boot.py ``,
132+ ``boot.txt ``
156133
157134API
158135~~~
159136
160137- 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.
138+ - API docs are rST within the C files in ``shared-bindings ``.
139+ - No ``machine `` API.
162140
163141Modules
164142~~~~~~~
@@ -178,18 +156,6 @@ Modules
178156- tick count is available as
179157 `time.monotonic() <https://circuitpython.readthedocs.io/en/latest/shared-bindings/time/__init__.html#time.monotonic >`__
180158
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-
193159--------------
194160
195161Project Structure
@@ -231,38 +197,12 @@ Ports
231197Ports include the code unique to a microcontroller line and also
232198variations based on the board.
233199
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.
200+ - ``atmel-samd `` Support for SAMD21 and SAMD51 based boards.
201+ - ``nrf `` Support for the nRF52840 based boards.
202+ - ``unix `` Support for UNIX. Only used for automated testing.
203+
204+ The remaining, unlisted directories are in the repo to maintain compatibility with the
205+ `MicroPython <https://github.com/micropython/micropython >`__ parent project.
266206
267207`⬆ back to top <#adafruit-circuitpython >`__
268208
@@ -272,5 +212,5 @@ project.
272212 :target: http://circuitpython.readthedocs.io/
273213.. |Discord | image :: https://img.shields.io/discord/327254708534116352.svg
274214 :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
215+ .. |License | image :: https://img.shields.io/badge/License -MIT-brightgreen.svg
216+ :target: https://choosealicense.com /licenses/mit/
0 commit comments