You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Paul Sokolovsky 624ed5d563 mp_lexer_free(): Free lex->indent_level array. 11 years ago
examples socket-client, socket-server examples now run on both Micro- and C-Python. 11 years ago
logo Make GitHub logo/image a JPEG so it's smaller. 11 years ago
py mp_lexer_free(): Free lex->indent_level array. 11 years ago
stm Merge branch 'master' of github.com:iabdalkader/micropython into iabdalkader-master 11 years ago
teensy Add source file name and line number to error messages. 11 years ago
tests mp_obj_is_callable(): Only object types can be callable. 11 years ago
tools Change dfu.py to be Python 2/3 compatible 11 years ago
unix Second stage of qstr revamp: uPy str object can be qstr or not. 11 years ago
unix-cpy Second stage of qstr revamp: uPy str object can be qstr or not. 11 years ago
.gitignore Added memzip filesystem support for teensy 11 years ago
CODECONVENTIONS.md Add CODECONVENTIONS, and modify i2c module to conform. 11 years ago
LICENSE Add LICENSE and README. 11 years ago
README.md Small changes to README. 11 years ago

README.md

The Micro Python project

MicroPython Logo

This is the Micro Python project, which aims to put an implementation of Python 3.x on a microcontroller.

WARNING: this project is in its early stages and is subject to large changes of the code-base, including project-wide name changes and API changes. The software will not start to mature until March 2014 at the earliest.

See the repository www.github.com/micropython/pyboard for the Micro Python board. At the moment, finalising the design of the board is the top priority.

Major components in this repository:

  • py/ -- the core Python implementation, including compiler and runtime.
  • unix/ -- a version of Micro Python that runs on Unix.
  • stm/ -- a version of Micro Python that runs on the Micro Python board with an STM32F405RG.
  • teensy/ -- a version of Micro Python that runs on the Teensy 3.1 (preliminary but functional).

Additional components:

  • unix-cpy/ -- a version of Micro Python that outputs bytecode (for testing).
  • tests/ -- test framework and test scripts.
  • tools/ -- various tools.
  • examples/ -- a few example Python scripts.

"make" is used to build the components, or "gmake" on BSD-based systems. You will also need bash and python (2.7 or 3.3) for the stm port.

The Unix version

The "unix" part requires a standard Unix environment with gcc and GNU make. It works only for 64-bit machines due to a small piece of x86-64 assembler for the exception handling.

To build:

$ cd unix
$ make

Then to test it:

$ ./py
>>> list(5 * x + y for x in range(10) for y in [4, 2, 1])

Ubuntu and Mint derivatives will require build-essentials and libreadline-dev packages installed.

The STM version

The "stm" part requires an ARM compiler, arm-none-eabi-gcc, and associated bin-utils. For those using Arch Linux, you need arm-none-eabi-binutils and arm-none-eabi-gcc packages from the AUR. Otherwise, try here: https://launchpad.net/gcc-arm-embedded

To build:

$ cd stm
$ make

Then to flash it via USB DFU to your device:

$ dfu-util -a 0 -D build/flash.dfu

You will need the dfu-util program, on Arch Linux it's dfu-util-git in the AUR.