Port of MicroPython to the mbed platform. See micropython-repl for an interactive program.

Dependents:   micropython-repl

This a port of MicroPython to the mbed Classic platform.

This provides an interpreter running on the board's USB serial connection.

Getting Started

Import the micropython-repl program into your IDE workspace on developer.mbed.org. Compile and download to your board. Connect to the USB serial port in your usual manner. You should get a startup message similar to the following:

  MicroPython v1.7-155-gdddcdd8 on 2016-04-23; K64F with ARM
  Type "help()" for more information.
  >>>

Then you can start using micropython. For example:

  >>> from mbed import DigitalOut
  >>> from pins import LED1
  >>> led = DigitalOut(LED1)
  >>> led.write(1)

Requirements

You need approximately 100K of flash memory, so this will be no good for boards with smaller amounts of storage.

Caveats

This can be considered an alpha release of the port; things may not work; APIs may change in later releases. It is NOT an official part part the micropython project, so if anything doesn't work, blame me. If it does work, most of the credit is due to micropython.

  • Only a few of the mbed classes are available in micropython so far, and not all methods of those that are.
  • Only a few boards have their full range of pin names available; for others, only a few standard ones (USBTX, USBRX, LED1) are implemented.
  • The garbage collector is not yet implemented. The interpreter will gradually consume memory and then fail.
  • Exceptions from the mbed classes are not yet handled.
  • Asynchronous processing (e.g. events on inputs) is not supported.

Credits

  • Damien P. George and other contributors who created micropython.
  • Colin Hogben, author of this port.
Download repository: zip gz

Files at revision 10:33521d742af1

Name Size Actions
[up]
argcheck.c 6117 Revisions Annotate
asmarm.c 14192 Revisions Annotate
asmarm.h 5250 Revisions Annotate
asmthumb.c 16573 Revisions Annotate
asmthumb.h 11577 Revisions Annotate
asmx64.c 25989 Revisions Annotate
asmx64.h 5837 Revisions Annotate
asmx86.c 21397 Revisions Annotate
asmx86.h 5809 Revisions Annotate
bc.c 14880 Revisions Annotate
bc.h 4546 Revisions Annotate
bc0.h 5450 Revisions Annotate
binary.c 12621 Revisions Annotate
binary.h 2199 Revisions Annotate
builtin.h 5187 Revisions Annotate
builtinevex.c 5936 Revisions Annotate
builtinimport.c 18998 Revisions Annotate
compile.c 142557 Revisions Annotate
compile.h 2208 Revisions Annotate
emit.h 14256 Revisions Annotate
emitbc.c 36896 Revisions Annotate
emitcommon.c 3309 Revisions Annotate
emitglue.c 20214 Revisions Annotate
emitglue.h 3520 Revisions Annotate
emitinlinethumb.c 33442 Revisions Annotate
emitnative.c 113542 Revisions Annotate
formatfloat.c 12944 Revisions Annotate
formatfloat.h 1530 Revisions Annotate
frozenmod.c 3276 Revisions Annotate
frozenmod.h 1365 Revisions Annotate
gc.c 29275 Revisions Annotate
gc.h 2290 Revisions Annotate
grammar.h 23227 Revisions Annotate
lexer.c 27758 Revisions Annotate
lexer.h 6681 Revisions Annotate
lexerstr.c 2479 Revisions Annotate
lexerunix.c 2934 Revisions Annotate
makeqstrdata.py 4179 Revisions Annotate
makeversionhdr.py 3545 Revisions Annotate
malloc.c 6687 Revisions Annotate
map.c 15423 Revisions Annotate
misc.h 8902 Revisions Annotate
mkenv.mk 1492 Revisions Annotate
mkrules.mk 3407 Revisions Annotate
modarray.c 1738 Revisions Annotate
modbuiltins.c 29108 Revisions Annotate
modcmath.c 7609 Revisions Annotate
modcollections.c 1953 Revisions Annotate
modgc.c 3614 Revisions Annotate
modio.c 5468 Revisions Annotate
modmath.c 10720 Revisions Annotate
modmicropython.c 5973 Revisions Annotate
modstruct.c 9244 Revisions Annotate
modsys.c 7462 Revisions Annotate
mpconfig.h 32760 Revisions Annotate
mphal.h 1953 Revisions Annotate
mpprint.c 16690 Revisions Annotate
mpprint.h 2746 Revisions Annotate
mpstate.c 1367 Revisions Annotate
mpstate.h 6682 Revisions Annotate
mpz.c 48646 Revisions Annotate
mpz.h 5643 Revisions Annotate
nativeglue.c 4857 Revisions Annotate
nlr.h 3770 Revisions Annotate
nlrsetjmp.c 1456 Revisions Annotate
obj.c 17648 Revisions Annotate
obj.h 37272 Revisions Annotate
objarray.c 24330 Revisions Annotate
objattrtuple.c 3358 Revisions Annotate
objbool.c 3470 Revisions Annotate
objboundmeth.c 3717 Revisions Annotate
objcell.c 2443 Revisions Annotate
objclosure.c 3762 Revisions Annotate
objcomplex.c 9084 Revisions Annotate
objdict.c 22412 Revisions Annotate
objenumerate.c 3160 Revisions Annotate
objexcept.c 18550 Revisions Annotate
objexcept.h 1649 Revisions Annotate
objfilter.c 2501 Revisions Annotate
objfloat.c 8666 Revisions Annotate
objfun.c 19556 Revisions Annotate
objfun.h 2011 Revisions Annotate
objgenerator.c 9721 Revisions Annotate
objgenerator.h 1537 Revisions Annotate
objgetitemiter.c 2814 Revisions Annotate
objint.c 15167 Revisions Annotate
objint.h 2855 Revisions Annotate
objint_longlong.c 10092 Revisions Annotate
objint_mpz.c 15326 Revisions Annotate
objlist.c 19903 Revisions Annotate
objlist.h 1517 Revisions Annotate
objmap.c 2638 Revisions Annotate
objmodule.c 8925 Revisions Annotate
objmodule.h 1540 Revisions Annotate
objnamedtuple.c 6952 Revisions Annotate
objnone.c 2158 Revisions Annotate
objobject.c 3047 Revisions Annotate
objpolyiter.c 2123 Revisions Annotate
objproperty.c 4203 Revisions Annotate
objrange.c 6442 Revisions Annotate
objreversed.c 2932 Revisions Annotate
objset.c 20395 Revisions Annotate
objsingleton.c 2172 Revisions Annotate
objslice.c 3446 Revisions Annotate
objstr.c 75168 Revisions Annotate
objstr.h 4968 Revisions Annotate
objstringio.c 6601 Revisions Annotate
objstrunicode.c 11641 Revisions Annotate
objtuple.c 10642 Revisions Annotate
objtuple.h 2503 Revisions Annotate
objtype.c 42925 Revisions Annotate
objtype.h 2397 Revisions Annotate
objzip.c 2677 Revisions Annotate
opmethods.c 2237 Revisions Annotate
parse.c 42383 Revisions Annotate
parse.h 4312 Revisions Annotate
parsenum.c 9581 Revisions Annotate
parsenum.h 1714 Revisions Annotate
parsenumbase.c 2404 Revisions Annotate
parsenumbase.h 1469 Revisions Annotate
py.mk 5770 Revisions Annotate
qstr.c 11415 Revisions Annotate
qstr.h 2779 Revisions Annotate
qstrdefs.h 1952 Revisions Annotate
repl.c 9740 Revisions Annotate
repl.h 1621 Revisions Annotate
ringbuf.h 2238 Revisions Annotate
runtime.c 53465 Revisions Annotate
runtime.h 6337 Revisions Annotate
runtime0.h 4518 Revisions Annotate
scope.c 5546 Revisions Annotate
scope.h 3369 Revisions Annotate
sequence.c 7862 Revisions Annotate
showbc.c 17360 Revisions Annotate
smallint.c 2690 Revisions Annotate
smallint.h 2914 Revisions Annotate
stackctrl.c 2138 Revisions Annotate
stackctrl.h 1696 Revisions Annotate
stream.c 16644 Revisions Annotate
stream.h 3401 Revisions Annotate
unicode.c 5158 Revisions Annotate
unicode.h 1464 Revisions Annotate
vm.c 59563 Revisions Annotate
vmentrytable.h 5962 Revisions Annotate
vstr.c 9067 Revisions Annotate
warning.c 1716 Revisions Annotate