MicroPython Newsletter Issue 8

Archive and discussion of the MicroPython Newsletter
Post Reply
Damien
Site Admin
Posts: 647
Joined: Mon Dec 09, 2013 5:02 pm

MicroPython Newsletter Issue 8

Post by Damien » Mon Apr 29, 2019 1:09 pm

Dear community,

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:
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.
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.

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/)

ckuehnel
Posts: 8
Joined: Sat Feb 02, 2019 3:09 pm
Location: Altendorf, Schweiz
Contact:

Re: MicroPython Newsletter Issue 8

Post by ckuehnel » Mon Apr 29, 2019 3:18 pm

Damien wrote:
Mon Apr 29, 2019 1:09 pm
Dear community,

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:
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.
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.

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/)
Great work.
Congratulation Damien & Team

User avatar
Roberthh
Posts: 3667
Joined: Sat May 09, 2015 4:13 pm
Location: Rhineland, Europe

Re: MicroPython Newsletter Issue 8

Post by Roberthh » Mon Apr 29, 2019 4:09 pm

Happy birthday, MicroPython. live long and prosper.

barbudor
Posts: 6
Joined: Fri Feb 08, 2019 6:35 pm

Re: MicroPython Newsletter Issue 8

Post by barbudor » Tue Apr 30, 2019 6:43 pm

Happy Birthday MicroPython
Congrats to all the team

Did you completely gave up the native code compiler ?

User avatar
jimmo
Posts: 2754
Joined: Tue Aug 08, 2017 1:57 am
Location: Sydney, Australia
Contact:

Re: MicroPython Newsletter Issue 8

Post by jimmo » Wed May 01, 2019 1:01 am

barbudor: The bytecode VM is in addition to the native code emitter, which works for x86/64, arm/thumb, and extensa (ESP).

User avatar
marfis
Posts: 215
Joined: Fri Oct 31, 2014 10:29 am
Location: Zurich / Switzerland

Re: MicroPython Newsletter Issue 8

Post by marfis » Wed May 01, 2019 3:38 pm

Awesome work, thanks a lot to the upy team and all contributors!

And best wishes for the next 6 years.

jasontallen
Posts: 1
Joined: Tue Nov 05, 2019 8:37 am

Re: MicroPython Newsletter Issue 8

Post by jasontallen » Tue Nov 05, 2019 9:06 am

Damien wrote:
Mon Apr 29, 2019 1:09 pm

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.
(If you're not already subscribed, you can receive this papers via email by signing up at: https://micropython.org/newsletter/)

Brilliant implementation is what turns this simple idea into a great project! Keep it up!

SummerGift
Posts: 4
Joined: Sat Apr 13, 2019 3:46 am
Contact:

Re: MicroPython Newsletter Issue 8

Post by SummerGift » Tue Nov 19, 2019 3:36 am

Great work!!! It brings me a lots of fun.

Post Reply