- Notifications
You must be signed in to change notification settings - Fork1
CircuitPython - a Python implementation for teaching coding with microcontrollers
License
MIT, Unknown licenses found
Licenses found
python-ugame/circuitpython
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Status |Supported Boards|Download |Documentation |Contributing |Differences fromMicropython |ProjectStructure
CircuitPython is aneducation friendly open source derivative ofMicroPython. CircuitPython supports useon educational development boards designed and sold byAdafruit. Adafruit CircuitPython featuresunified Python core APIs and a growing list of Adafruit libraries anddrivers of that work with it.
This project is stable. Most APIs should be stable going forward. Thosethat change will change on major version numbers such as 2.0.0 and3.0.0.
- Adafruit CircuitPlaygroundExpress
- Adafruit Feather M0Express
- Adafruit Metro M0 Express
- Adafruit Gemma M0
- Adafruit Feather HUZZAH
- Adafruit Feather M0Basic
- Adafruit Feather M0 BluefruitLE (uses M0 Basicbinaries)
- Adafruit Feather M0Adalogger (MicroSD cardsupported using theAdafruit CircuitPython SDlibrary)
- Arduino Zero
Official binaries are available through thelatest GitHubreleases.Continuous (one per commit) builds are availablehereand includes experimental hardware support.
Guides and videos are available through theAdafruit LearningSystem under theCircuitPythoncategory andMicroPythoncategory. An APIreference is also available onRead theDocs.
SeeCONTRIBUTING.mdfor full guidelines but please be aware that by contributing to thisproject you are agreeing to theCode ofConduct.Contributors who follow theCode ofConductare welcome to submit pull requests and they will be promptly reviewedby project admins. Please join theGitterchat orDiscord too.
Differences fromMicroPython
CircuitPython:
- includes a port for Atmel SAMD21 (Commonly known as M0 in Adafruitproduct names.)
- supports only Atmel SAMD21 and ESP8266 ports.
- tracks MicroPython's releases (not master).
- The order that files are run and the state that is shared betweenthem. CircuitPython's goal is to clarify the role of each file andmake each file independent from each other.
boot.py(orsettings.py) runs only once on start up beforeUSB is initialized. This lays the ground work for configuring USB atstartup rather than it being fixed. Since serial is not available,output is written toboot_out.txt.code.py(ormain.py) is run after every reload until itfinishes or is interrupted. After it is done running, the vm andhardware is reinitialized.This means you cannot read state from``code.py`` in the REPL anymore. CircuitPython's goal for thischange includes reduce confusion about pins and memory being used.- After
code.pythe REPL can be entered by pressing any key. It nolonger shares state withcode.pyso it is a fresh vm. - Autoreload state will be maintained across reload.
- Adds a safe mode that does not run user code after a hard crash orbrown out. The hope is that this will make it easier to fix code thatcauses nasty crashes by making it available through mass storageafter the crash. A reset (the button) is needed after its fixed toget back into normal mode.
- Unified hardware APIs:audioio,analogio,busio,digitalio,pulseio,touchio,microcontroller,board,bitbangio
- No
machineAPI on Atmel SAMD21 port.
- No module aliasing. (
uosandutimeare not available asosandtimerespectively.) Insteados,time, andrandomare CPython compatible. - New
storagemodule which manages file system mounts.(Functionality fromuosin MicroPython.) - Modules with a CPython counterpart, such as
time,osandrandom, are strictsubsetsof theirCPythonversion.Therefore, code from CircuitPython is runnable on CPython but notnecessarily the reverse. - tick count is available astime.monotonic()
- RGB status LED
- Auto-reload after file write over mass storage. (Disable with
samd.disable_autoreload()) - Wait state after boot and main run, before REPL.
- Main is one of these:
code.txt,code.py,main.py,main.txt - Boot is one of these:
settings.txt,settings.py,boot.py,boot.txt
Here is an overview of the top-level source code directories.
The core code ofMicroPython is sharedamongst ports including CircuitPython:
docsHigh level user documentation in Sphinx reStructuredTextformat.driversExternal device drivers written in Python.examplesA few example Python scripts.extmodShared C code used in multiple ports' modules.libShared core C code including externally developed librariessuch as FATFS.logoThe MicroPython logo.mpy-crossA cross compiler that converts Python files to bytecode prior to being run in MicroPython. Useful for reducing librarysize.pyCore Python implementation, including compiler, runtime, andcore library.shared-bindingsShared definition of Python modules, their docsand backing C APIs. Ports must implement the C API to support thecorresponding module.shared-moduleShared implementation of Python modules that may bebased oncommon-hal.testsTest framework and test scripts.toolsVarious tools, including the pyboard.py module.
Ports include the code unique to a microcontroller line and alsovariations based on the board.
atmel-samdSupport for SAMD21 based boards such asArduinoZero,AdafruitFeather M0 Basic, andAdafruit Feather M0 BluefruitLE.bare-armA bare minimum version of MicroPython for ARM MCUs.cc3200Support for boards basedCC3200 from TI such as theWiPy 1.0.esp8266Support for boards based on ESP8266 WiFi modules such astheAdafruit FeatherHUZZAH.minimalA minimal MicroPython port. Start with this if you wantto port MicroPython to another microcontroller.pic16bitSupport for 16-bit PIC microcontrollers.qemu-armSupport for ARM emulation throughQEMU.stmhalSupport for boards based on STM32 microcontrollersincluding the MicroPython flagshipPyBoard.teensySupport for the Teensy line of boards such as theTeensy3.1.unixSupport for UNIX.windowsSupport forWindows.zephyrSupport forZephyr, areal-time operating system by the Linux Foundation.
CircuitPython only maintains theatmel-samd andesp8266 ports.The rest are here to maintain compatibility with theMicroPython parentproject.
About
CircuitPython - a Python implementation for teaching coding with microcontrollers
Resources
License
MIT, Unknown licenses found
Licenses found
Code of conduct
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Languages
- C88.6%
- Python6.0%
- C++3.4%
- Makefile1.1%
- Assembly0.7%
- Shell0.1%
- Other0.1%