1
- Adafruit CircuitPython
2
- ======================
1
+ CircuitPython
2
+ =============
3
3
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
5
5
6
6
|Build Status | |Doc Status | |License | |Discord |
7
7
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 >`__
14
12
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.)
21
20
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 >`_.
24
24
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 .
28
28
29
- Supported Boards
30
- ----------------
29
+ Get CircuitPython
30
+ ------------------
31
31
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.
83
36
84
37
Documentation
85
38
-------------
86
39
87
40
Guides and videos are available through the `Adafruit Learning
88
41
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
42
+ category <https://learn.adafruit.com/category/circuitpython> `__. An API
92
43
reference is also available on `Read the Docs
93
44
<http://circuitpython.readthedocs.io/en/latest/?> `__. A collection of awesome
94
45
resources 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
113
64
by project admins. Please join the
114
65
`Discord <https://discord.gg/nBQh6qu >`__ too.
115
66
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
+
116
88
--------------
117
89
118
90
Differences from `MicroPython <https://github.com/micropython/micropython >`__
119
91
-----------------------------------------------------------------------------
120
92
121
93
CircuitPython:
122
94
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
124
96
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.
127
98
- 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.
132
101
133
102
Behavior
134
103
~~~~~~~~
@@ -153,12 +122,21 @@ Behavior
153
122
causes nasty crashes by making it available through mass storage
154
123
after the crash. A reset (the button) is needed after its fixed to
155
124
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 ``
156
133
157
134
API
158
135
~~~
159
136
160
137
- 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.
162
140
163
141
Modules
164
142
~~~~~~~
@@ -178,18 +156,6 @@ Modules
178
156
- tick count is available as
179
157
`time.monotonic() <https://circuitpython.readthedocs.io/en/latest/shared-bindings/time/__init__.html#time.monotonic >`__
180
158
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
-
193
159
--------------
194
160
195
161
Project Structure
@@ -231,38 +197,12 @@ Ports
231
197
Ports include the code unique to a microcontroller line and also
232
198
variations based on the board.
233
199
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.
266
206
267
207
`⬆ back to top <#adafruit-circuitpython >`__
268
208
@@ -272,5 +212,5 @@ project.
272
212
:target: http://circuitpython.readthedocs.io/
273
213
.. |Discord | image :: https://img.shields.io/discord/327254708534116352.svg
274
214
: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