MicroPython
![]() | |
Original author(s) | Damien George |
---|---|
Initial release | 3 May 2014 |
Stable release | 1.11
/ 29 May 2019 |
Repository | |
Written in | C |
Platform | Micro Bit, Arduino, ESP8266, ESP32,STM32 |
Type | Python implementation |
License | MIT license[1] |
Website | micropython |
MicroPython[2] is a software implementation of a programming language largely compatible with Python 3, written in C, that is optimized to run on a microcontroller.[3][4]
MicroPython is a full Python compiler and runtime that runs on the micro-controller hardware. The user is presented with an interactive prompt (the REPL) to execute supported commands immediately. Included are a selection of core Python libraries; MicroPython includes modules which give the programmer access to low-level hardware.[2]
The source code for the project is available on GitHub under the MIT License.[5]
History
MicroPython was originally created by the Australian programmer and physicist Damien George, after a successful Kickstarter backed campaign in 2013.[6] While the original Kickstarter campaign released MicroPython with an STM32F4-powered development board "pyboard", MicroPython supports a number of ARM based architectures.[7] MicroPython has since been run on Arduino platform based products,[8][9] ESP8266,[10] ESP32,[11] and Internet of things[12][13][14][15] hardware.
In 2016 a version of MicroPython for the BBC Micro Bit was created as part of the Python Software Foundation's contribution to the Micro Bit partnership with the BBC.[16]
In July 2017, MicroPython was forked to create CircuitPython, a version of MicroPython with emphasis on education and ease of use. MicroPython and CircuitPython support somewhat different sets of hardware (e.g. CircuitPython supports Atmel SAM D21 and D51 boards, but dropped support for ESP8266). As of version 4.0, CircuitPython is based on MicroPython version 1.9.4.[17]
In 2017, Microsemi made a MicroPython port for RISC-V (RV32 and RV64) architecture.[18]
Bytecode
MicroPython includes a cross compiler which generates MicroPython bytecode (file extension .mpy). The Python code can be compiled into the bytecode either directly on a microcontroller or it can be precompiled elsewhere.
MicroPython firmware can be built without the compiler, leaving only the virtual machine which can run the precompiled mpy programs.
References
- ^ George, Damien P. (4 May 2014). "micropython/LICENSE at master · micropython/micropython". GitHub. Retrieved 11 February 2017.
- ^ a b "MicroPython - Python for microcontrollers". micropython.org. Retrieved 12 August 2017.
- ^ Venkataramanan, Madhumita (6 December 2013). "Micro Python: more powerful than Arduino, simpler than the Raspberry Pi". Wired. Retrieved 15 December 2016.
- ^ Yegulalp, Serdar (5 July 2014). "Micro Python's tiny circuits: Python variant targets microcontrollers". InfoWorld. Retrieved 15 December 2016.
- ^ "MicroPython on GitHub".
- ^ "Micro Python: Python for microcontrollers". Kickstarter. Kickstarter. Retrieved 15 December 2016.
- ^ Beningo, Jacob (11 July 2016). "Prototype to production: MicroPython under the hood". EDN Network. Retrieved 15 December 2016.
- ^ Horsey, Julian (12 October 2016). "Pyduino Arduino Based Development Board That Supports MicroPython (video)". Geeky Gadgets. Retrieved 15 December 2016.
- ^ Beningo, Jacob (6 April 2016). "Getting Started with Micro Python". EDN Network. Retrieved 15 December 2016.
- ^ Williams, Elliot (21 July 2016). "MicroPython on the ESP8266: Kicking the Tires". Hackaday. Retrieved 15 December 2016.
- ^ "MicroPython ported to the ESP32". GitHub. Retrieved 8 March 2017.
- ^ "MicroPython on the ESP8266: beautifully easy IoT". Kickstarter. Kickstarter. Retrieved 6 December 2017.
- ^ "MICROPYTHON BRINGING PYTHON TO THE INTERNET OF THINGS". MICROPYTHON BRINGING PYTHON TO THE INTERNET OF THINGS. github.io. Retrieved 6 December 2017.
- ^ "FiPy – The world's first 5-network IoT dev board". Kickstarter. Retrieved 15 December 2016.
- ^ "Pycom Incorporating Sequans LTE-M Technology in New 5-Network IoT Development Board". Business Wire. 22 November 2016. Retrieved 15 December 2016.
- ^ Williams, Alun. "Hands on with the BBC Micro-Bit user interface". ElectronicsWeekly.com. Retrieved 8 July 2015.
- ^ Shawcroft, Scott. "CircuitPython 4.0.1 released!". Adafruit Blog. Adafruit Industries. Retrieved 11 Jun 2019.
- ^ "RISC-V Poster Preview — 7th RISC-V Workshop" (PDF). 28 November 2017. Retrieved 17 December 2018.
External links
- Official website
- micropython on GitHub
- GOTO 2016 • MicroPython & the Internet of Things • Damien George on YouTube
- MicroPython playlist on YouTube • Tutorials by Tony DiCola / Adafruit