MicroPython is a FOSS implementation of Python 3 optimised to run on amicrocontroller with MHz and tens or hundreds of Kbytes of RAM. I will presentMicroPython in terms of hardware and software, including some boards withnetwork access, like WiFi, Bluetooth and LoRa. But even with these hardwareconstraints, scientific MicroPython is already available and practical, to beshown from the perspective of users and developers. MicroPython is a implementation of Python 3 optimised to run on amicrocontroller, created in 2013 by the Physicist Damien P. George. TheMicroPython boards runs MicroPython on the bare metal and gives a low-levelPython operating system running interactive prompt or scripts. The MicroPython boards currently use 32 bit microcontrollers clocked at MHzand with RAM limited to tens or hundreds of Kbytes. These are themicrocontroller boards with official MicroPython support currently in thebeginning 2017 : Pyboard, Pyboard Lite, WiPy 1/2, ESP8266, BBC Micro:bit,LoPy, SiPy, FiPy. They cost between USD3-40, are very small and light, aboutsome to tens of mm in each dimension and about 5-10 g, have low powerconsumption, so MicroPython boards are affordable and can be embedded inalmost anything, almost anywhere. MicroPython boards have many electronic interfaces : digital input/output(GPIO) ports, analog inputs (via Analog Digital Converter), analog outputs(via Digital to Analog Converter), wireless (WiFi, Bluetooth, LoRa), etc. SoMicroPython on these boards can be used to control all kinds of electronicprojects. In terms of hardware, 2016 was the year of MicroPython, as new boardscompatible with MicroPython arrived : ESP8266 boards (there are more than 10types, with WiFi), BBC Micro:bit (with Bluetooth LE, free distributed to 1million British students of 11-12 year-old), LoPy (with LoRa, WiFi, BluetoothLE), SiPy (with Sigfox, WiFi, Bluetooth LE). Even a 5 network board wasannounced for April 2017 delivery, FiPy with LoRa, Sigfox, cellular LTE-CATM1/M2(NBIoT), WiFi, Bluetooth LE. In terms of software, MicroPython allows microcontroller programming directlywith Python 3, which is easier and more productive than programming withArduino IDE, C/C++, etc. And MicroPython is well suited for Internetprogramming, so MicroPython boards are a natural choice for IoT (Internet ofThings), for example running a simple web server to show a sensor output (textand graphics), sending sensor data to IoT cloud, etc. This fact is veryimportant as today there are some billions of IoT devices worldwide, and in2020 some tens of billions are expected. Even with RAM constraints (tens to hundreds of Kbytes), scientific MicroPythonis not only possible, but already available and practical to use, withMicroPython modules capable of numerical calculations, FFT (Fast FourierTransform), calculations with uncertainties, etc. I will list the scientificMicroPython modules which are available, as well as show how to port Python 3modules to MicroPython, squeezing the source code in tens of Kbytes. Some hints will be given to the FOSS community to be open minded aboutMicroPython : be aware that MicroPython exists, MicroPython is a betterprogramming option than Arduino in many ways, MicroPython boards are availableand affordable, porting more Python 3 scientific modules to MicroPython,MicroPython combines well with IoT. |