MicroPython version 1.10 released

Announcements and news related to MicroPython.
Damien
Site Admin
Posts: 647
Joined: Mon Dec 09, 2013 5:02 pm

MicroPython version 1.10 released

Post by Damien » Fri Jan 25, 2019 3:17 pm

I'm happy to announce the (long awaited) next release of MicroPython, v1.10!

Source code and firmware can be downloaded from https://micropython.org/download/

The full change log can be found at http://micropython.org/resources/microp ... ngeLog.txt

A summary of the changes follows. Be sure to read the note at the end about Python API changes which are not backwards compatible with previous versions.

v1.10: Vast improvements to native emitter, new nrf port, unified documentation

In this release there are a wide range of improvements and additions to both the core and the ports. In the core the main improvement was to the native emitter to have much more comprehensive support for general Python features, such as generators and complex exception handling, and the generated machine code is smaller and retains its efficiency. Elsewhere, fuzzy testing was used to find and eliminate some corner-case bugs, user classes were optimised when they don't use special accessors, underscores in numeric literals are now supported (PEP515), and the uio.IOBase class was added to allow user defined streams.

For the extended modules there is now a VfsPosix filesystem component, a new ucryptolib module with AES support, addition of ure.sub() and of uhashlib.md5, and the lwIP socket implementation now has working TCP listen/accept backlog.

Compared to the last release the minimal baseline core code size is reduced by about 2.2%, down by roughly 1500 bytes for bare-arm port and 3500 bytes for minimal x86 port. Most other ports have increased in size due to the addition of new features (eg ucryptolib, ure.sub).

The stm32 port sees the introduction of a new bootloader -- mboot -- which supports DFU upload via USB FS, USB HS, as well as a custom I2C protocol, and also support to program external SPI flash. There is significant refactoring of the USB device driver, improved VCP throughput, and support for 2x VCP interfaces on the one USB device. lwIP has been integrated, and support added for SDRAM. Cortex-M0 CPUs are now supported along with STM32F0 MCUs.

For the esp8266 port the heap is increased by 2kbytes, the radio is automatically put to sleep if no WLAN interfaces are active, and the UART can now be disconnected from the REPL and its RX buffer length configured. Upon soft-reset sockets are now cleaned up.

The esp32 port has added support for external SPI RAM, PPPoS functionality, improved performance and stability when using threads, and other general bug fixes.

There is a new nrf port for Nordic MCUs, currently supporting nRF51x and nRF52x chips.

The docs have now been unified so there is just one set of documentation covering all ports. And initial documentation for the esp32 port is added.

There are two changes at the Python API level that are not backwards with previous versions:
- uos.dupterm now requires that a stream passed to it is derived from uio.IOBase (or is a native stream object).
- The esp32 neopixel driver has had its default timing changed from 400kHz to 800kHz; existing code that didn't explicitly specify the "timing" parameter in the NeoPixel constructor may need to be updated to specify this as "timing=0" to get 400kHz timing.

kevinkk525
Posts: 969
Joined: Sat Feb 03, 2018 7:02 pm

Re: MicroPython version 1.10 released

Post by kevinkk525 » Fri Jan 25, 2019 5:31 pm

That is awesome! Glad we finally get 1.10!
Kevin Köck
Micropython Smarthome Firmware (with Home-Assistant integration): https://github.com/kevinkk525/pysmartnode

danielm
Posts: 167
Joined: Mon Oct 05, 2015 12:24 pm

Re: MicroPython version 1.10 released

Post by danielm » Fri Jan 25, 2019 5:46 pm

Good work!

Could you please elaborate on how PPPoS functionality of ESP32 port can be used to add support for a specific cellular modem?

OutoftheBOTS_
Posts: 847
Joined: Mon Nov 20, 2017 10:18 am

Re: MicroPython version 1.10 released

Post by OutoftheBOTS_ » Fri Jan 25, 2019 9:55 pm

Many thanks to all the contributors on the continual progression of the platform we all enjoy using :)

seonr
Posts: 43
Joined: Mon Sep 10, 2018 6:54 am

Re: MicroPython version 1.10 released

Post by seonr » Fri Jan 25, 2019 11:34 pm

w00p! Awesome news... thanks to everyone that contributed to making this happen.

Seon
unexpectedmaker.com

Damien
Site Admin
Posts: 647
Joined: Mon Dec 09, 2013 5:02 pm

Re: MicroPython version 1.10 released

Post by Damien » Sat Jan 26, 2019 12:04 am

danielm wrote:
Fri Jan 25, 2019 5:46 pm
Could you please elaborate on how PPPoS functionality of ESP32 port can be used to add support for a specific cellular modem?
I haven't used it myself, but I guess you need to hook up the modem to the ESP32 over a UART, send specific AT commands to it to start the data connection, then do:

Code: Select all

if = network.PPP(uart)
if.active(1)
See https://github.com/micropython/micropython/pull/3787 and https://github.com/micropython/micropython/issues/3740 for the original discussion adding this support.

seonr
Posts: 43
Joined: Mon Sep 10, 2018 6:54 am

Re: MicroPython version 1.10 released

Post by seonr » Sat Jan 26, 2019 1:55 am

Just for clarity, the external SPI RAM support on the ESP port in 1.10 ONLY works on WROVER and will go into a crash/reboot cycle on a WROOM32 or PICO-D4 board if you flash it.

Support for WROOM32 and PICO-D4 will come in MP when it moves to the latest IDF.

So if you are wanting to play with the SPIRAM version on ESP32, make sure you only do it on a WROVER board.

Seon
unexpectedmaker.com

fluffymcpuffin
Posts: 3
Joined: Sat Jan 26, 2019 9:44 am

Re: MicroPython version 1.10 released

Post by fluffymcpuffin » Sat Jan 26, 2019 10:51 am

Hello Damien,
Ver. 1.10 on a 8266 shows a 20% performance hit!
doing a sensor fusion with a lot of math.
had to go back to v1.94-792

any clue why?

also using an esp32 i had Wifi reconnection issues
so i reverted back to the 8266 and all was fine.

thanks for the great port
so long
juergen

kevinkk525
Posts: 969
Joined: Sat Feb 03, 2018 7:02 pm

Re: MicroPython version 1.10 released

Post by kevinkk525 » Sat Jan 26, 2019 11:22 am

I also noticed the performance hit on the esp8266 when using

Code: Select all

"{}{}".format(a,b)
Kevin Köck
Micropython Smarthome Firmware (with Home-Assistant integration): https://github.com/kevinkk525/pysmartnode

Damien
Site Admin
Posts: 647
Joined: Mon Dec 09, 2013 5:02 pm

Re: MicroPython version 1.10 released

Post by Damien » Sat Jan 26, 2019 9:46 pm

fluffymcpuffin wrote:
Sat Jan 26, 2019 10:51 am
Ver. 1.10 on a 8266 shows a 20% performance hit!
doing a sensor fusion with a lot of math.
had to go back to v1.94-792

any clue why?

also using an esp32 i had Wifi reconnection issues
so i reverted back to the 8266 and all was fine.
I ran the pystone benchmark on esp8266 at v1.10 and v1.9.4-792 (commit hash 6d480f50accb475a67ce53a6cbbaccea603e59ed) and I didn't see any difference, they both had the same performance. But pystone doesn't test floating point. Can you provide a (minimal) test script that shows the performance hit?

Re esp32: if there are issues with wifi we should try and fix them. Again, if you have a minimal test script that shows the problem with wifi then please post it to github as an issue.

Post Reply