Today is MicroPython's Birthday! Six years ago on this date, the 29th of April, the initial goals and first line of code for what is now MicroPython were written.
Here is an excerpt from the initial notes. The title is "Python board" and the date is 29 April 2013:
The idea was to get Python 3 running on the simplest hardware possible, so that it was easy for anyone to make their own board to run the software. This meant it should run on a single chip (including filesystem) that can be easily soldered by hand. I was almost going to pick an Atmel SAM4S for the original pyboard but in the end went with the STM32F405 due to it's large RAM and 5V tolerant I/O pins.Python board 29/4/2013
The smallest, cheapest python.
A piece of hardware that is small and cheap, runs python
scripts, and has good low-level access to hardware. If we
can do it with a single chip, that would keep it small and
cheap. Need then something with a large amount of flash and
a decent amount of RAM, that also is cheap enough. Atmel
SAM's have order 1MiB flash and 128KiB SRAM, for around $10
one-off.
Main features:
--> Implements Python 3 core language.
--> Flash presents as a flash drive with vfat filesystem.
--> Put python scripts on flash and it runs them (maybe have
a (multicolour?) led that flashes on error and writes a
"core" dump to the flash). This led can also double as a
user output led.
--> Can run multiple scripts on once.
Our strength would be small, cheap, simple, easy to replicate.
Can have a range of boards with different features. But all
must be basically compatible and capable of running the same
scripts.
In the beginning it was not intended to have bytecode or a virtual machine, but rather use the underlying CPU to execute natively compiled Python code directly. The reasoning was that native code would be faster than bytecode, and native code didn't need a separate virtual machine taking up precious room in the microcontroller. Eventually a virtual machine was added and by 20th September 2013 a very early version of the pyboard could run a script to flash an LED and respond to a button press, in both bytecode and native machine code form.
If you would like to hear more about The Early Days of MicroPython, see this video: https://www.youtube.com/watch?v=NBAqOYYW6vM
As for the new pyboard D-series: there was a great response to this and our initial stock sold out very quickly. We immediately set into production the next set of manufacturing runs and the pyboards and their accessories should be available in the store again next week. A separate newsletter will be sent out when they become available.
From Damien and the MicroPython team.
(If you're not already subscribed, you can receive this newsletter via email by signing up at: https://micropython.org/newsletter/)