Skip to content

Tags: warner83/micropython

Tags

v1.4.1

Toggle v1.4.1's commit message
Stackless support, new 16-bit PIC port.

py core:
- builtin round() accepts second arg
- add more special methods: __pos__, __neg__, __invert__
- support for stackless Python calls in VM, strict and non-strict
- support for object representation that suits 16-bit archs
- implement closures in native code emitter
- implement str.splitlines() method

lib:
- fatfs library upgraded to R0.11 (fixes bugs with unlink)

pic16bit port:
- new port to 16-bit PIC (reference MCU is dsPIC33J256GP506)
- heap is 4600 bytes
- implement basic pyb module with delay
- implement basic LED and Switch classes

docs:
- initial docs for micropython module
- additional example for Timer callback usage
- document instantiating struct objects in uctypes

v1.4

Toggle v1.4's commit message
More Python features, reduced code size, coverage testing at 91%.

py core:
- add builtin setattr function
- optimise exceptions for out-of-memory scenario
- add some special methods: __mul__, __floordiv__, __truediv__
- implement array slice assignment
- add support for start/stop/step attrs in range object
- make builtin abs work with bools and bignums
- add basic implementation of collections.OrderedDict
- add support for a function's __name__
- refactor compiler code to reduce code size by up to 2k
- support for descriptors __get__ and __set__

inline Thumb2 assembler:
- more robust syntax checking
- general bug fixes
- better error messages
- add "it" instructions
- add bl, bx instructions
- add bcc_n, bcc_w instructions

extmod:
- modure: bug fixes for groups
- modure: add named classes

lib:
- libm: add erf, erfc, lgamma, tgamma

drivers:
- add onewire driver in pure Python
- add ds18x20 temp sensor driver, using onewire
- cc3100 driver upgraded to v1.1.0

tests:
- lots of new tests, including many for SyntaxError
- automated covage testing using coveralls, at 91% coverage

unix port:
- support for readline history saving to file

stmhal port:
- usbdev code cleanup
- add Python-configurable USB HID mode
- add CDC only USB option
- improve USB descriptors (untested on Windows and Mac)
- add UART.sendbreak() method to send break condition
- add support for CAN rx callbacks
- raise error if UART can't do requested baudrate within 5%
- fix timing init when callback is passed as argument to init
- add support for quadrature encoder mode in TimerChannel
- fix ADC.read_timed so buffer store respects element size
- add RTC.wakeup method to set wakeup timer (preliminary)
- add compile-time config option for RTC to use LSE or LSI
- bug fix related to unhandled channel interrupts
- improved support for stop and standby mode
- expose all PYBv1.0 pins, including SD and USB pins
- optimise ADC.read_timed so it can sample at up to 750kHz
- make pybstdio code usable by other ports

cc3200 port:
- add I2C module
- add ADC module
- add SD module
- support for connecting to WEP secured networks
- add WDT support
- add low power support
- add SPi module

esp8266 port:
- add basic pyb.Pin class

miscellaneous:
- add list of Kickstarter backers in ACKNOWLEDGEMENTS file

size difference in bytes to previous version (a negative value means
binary is smaller in this version):
- bare-arm: -2448
- minimal: -3028
- unix: +574
- stmhal: +7996
- cc3200: -2984
- teensy: -10560
- esp8266: -936
- qemu-arm: -844

v1.3.10

Toggle v1.3.10's commit message
Bug fixes, CC3200 port, improved inline assembler

py core:
- big-int bug fixes
- support for floats in struct module
- vstr no longer null-terminates buff by default
- properly handle CR/LF in triple-quoted string
- list.sort now has O(log(N)) stack usage
- parse big-int/float constants directly in parser
- allow to subclass native buffer objects
- reduce stack size of VM by 8 bytes on stmhal, 16 on x86
- add ldrex, strex, push, pop, sdiv, udiv, clz, rbit to inline assembler
- make inline assembler report line numbers on error

extmod:
- uzlib: raw deflate decoding support

unix port:
- add "coverage" makefile target for coverage testing

stmhal port:
- bug fixes in ADCAll object
- bug fix in timer.deinit

esp8266 port:
- add esp module
- add connect, disconnect, status functions

cc3200 port:
- new port to the CC3200 launchxl board

v1.3.9

Toggle v1.3.9's commit message
Internal changes, RAM and ROM reductions, new minimal port

py core:
- lots of small optimisations, cleanups and code size reduction
- move away from Plan 9 headers to traditional guarded ones
- improved and optimised float to int conversion
- fix right-shifting edge cases in mpz
- namedtuple: use sequence of strings for init
- namedtuple: allow keyword arguments in constructor
- ability to issue compile/runtime warnings
- str.format now has kwargs support
- put all global state togther in a state structure
- optimisation to cache map lookup results in bytecode
- fix handling of "0" in some mpz functions
- implement equality check for all types
- add qstr cfg capability
- can now configure qstr len storage; defaults to using 1 byte
- allow code to compile with lots more warnings enabled
- add LOAD_CONST_OBJ bytecode, to directly load Python objects
- never intern data of large str/bytes objects
- fix handling of default except in compiler
- add extra pass to bytecode compiler to compute stack size
- implement very simple frozen modules support
- implement __reversed__ slot
- implement proper re-raising in native codegen's finally handler

lib:
- move readline code from stmhal to lib/mp-readline/
- readline refactored to support event-driven usage
- add frexp and modf to libm

minimal port:
- new port, intended to represent minimal working code

stmhal port:
- collect root pointers together; improves GC speed
- add MICROPY_HW_USB_VBUS_DETECT_PIN option
- add MICROPY_HW_USB_OTG_ID_PIN option
- add support for FEZ Cerb40 II board
- bug fixes in network module and usocket.accept, setsockopt

qemu-arm port:
- enable GC and native code-gen
- add working tests
- get tests running under Travis CI

esp8266 port:
- use dedicated heap allocated as static array
- implement task-based, event-driven interface with UART
- implement pyb.hard_reset()

v1.3.8

Toggle v1.3.8's commit message
Feature additions to core, unix and stmhal; general improvements.

py core:
- implement +, +=, .extend for bytarray and array objs
- add mem_info, qstr_info to micropython module
- bytes/bytearray/array can be init'd by buffer protocol objs
- optimised lexer by exposing lexer type; gives ROM savings
- add sys.print_exception
- allow builtins to be overridden
- fixed all semantic issues with range optimisation
- compiler gives proper SyntaxError exceptions for bad global/nonlocal
- reduce VM exception stack size by 1 machine word per exception
- make bytes objs work with more str methods
- refactor and make mp_bytecode_print and friends more useful
- start transition to guarded includes
- lots of code cleanup
- some ROM savings

extmod:
- add ubinascii module, with hexlify

unix port:
- add _os.unlink, _os.system functions
- 64-bit clean in ffi module
- time module renamed to utime

stmhal port:
- add USB_VCP.setinterrupt method, to disable CTRL-C
- make pyb.[u]delay work when irqs are disabled
- overhaul of internal network driver interface
- bug fixes to CC3K and WIZNET5K network drivers
- use DMA for SPI transfers (only if irqs enabled)
- allow SPI.init to specify prescaler directly
- enhance pyb.freq to configure bus frequencies
- add more math functions (acosh, asinh, atanh, tan)
- add execfile function
- upgrade to latest FatFs driver (now in lib/)
- add ability to mount custom block device

esp8266 port:
- put more rodata in irom section
- add README.md

docs:
- basic docs for uhashlib, ubinascii, ure, uzlib
- links to LCD and AMP skin schematics
- general improvements

v1.3.7

Toggle v1.3.7's commit message
Port to ESP8266, add uhashlib, improved CAN driver.

py core:
- support more ops for bytes/bytarray
- support __hash__ for user-defined types
- support for float/double arrays in array module
- shorter error messages for TERSE message option
- add seek via ioctl to stream protocol

extmod:
- add uhashlib with sha256

unix port:
- heapsize can take w specifier for word adjustment

stmhal port:
- CAN init now takes sjw, bs1, bs2 args
- add CAN filter management
- fix HAL error raising bug

esp8266 port:
- new port to ESP8266 wifi chip

docs:
- minor additions

v1.3.6

Toggle v1.3.6's commit message
Improved documentation, and other small changes.

py core:
- add builtin round function
- gc.enable/disable still allows manual GC (as per CPython)
- fix builtin callable for user-defined types
- fix bug for right shift of small int by large amount

unix port:
- add "fast" version
- improve uctypes, including sizeof function

stmhal port:
- support for extended CAN frames
- USB_VCP works with select
- experimental support for RTS/CTS in UART
- make UART bits count number of data bits, not incl parity
- pyb.freq now allows 8MHz and 16MHz

docs:
- revamp and merge all inline docs into Sphinx framework
- add a few more tutorials

v1.3.5

Toggle v1.3.5's commit message
RAM savings, memoryview, quick-ref and more.

Improvements to core:
- make better use of bytecode coding space
- about 10% RAM savings in bytecode
- add uheapq module
- add memoryview builtin
- add compile builtin
- support in VM for KeyboardInterrupt
- fix integer modulo with negative arguments
- small GC fixes
- add 2nd arg to readinto

New features in unix port:
- CTRL-C raises KeyboardInterrupt
- heapsize option takes K and M
- -m option to execute library module

stmhal improvements:
- make MMA_INT/PB2 pin available
- add pyb.hard_reset()
- cc3k recv improments
- all HAL errors now raise OSError with POSIX error code
- USB config improved for windows (CDC on Windows 10 without driver)
- use different USB PID when in CDC+HID mode (so HID works in Windows)
- boot.py and main.py use \r\n for newlines
- change SPI phase from 1,2 to 0,1 to match industry conventions
- allow DAC object to be init'd from pin
- improved raw REPL control codes
- improved pyboard.py script

docs:
- add quick reference page with pinout

v1.3.4

Toggle v1.3.4's commit message
Add regex and CAN, improve UART, and more.

py core:
- add basic regex support using re1.5 library
- replace zlibd with uzlib
- compiler returns proper exception on SyntaxError
- proper context saving for eval/exec
- use mp_[u]int_t in most places instead of [u]int
- better ARM support in native emitter
- autodetect machine endianness
- better big endian support
- memory errors from locked gc can be reported
- more robust lexer when out of memory
- rename modules to begin with u-, and add module weak links
- more native binops in viper emitter
- native pointers with load+store in viper
- fix GC realloc so that chunks are shrunk correctly
- compiler optimisations for constant if/while conds
- add kwargs for builtin open() and FileIO
- enable unicode on windows

stmhal port:
- add basic CAN bus support
- overhaul UART class to use read/write
- add NRF24L01 driver (in pure Python)
- pyb.freq can change SYSCLK
- add pyb.stop and pyb.standby
- can set Timer freq using float
- Timer supports complementary channel and deadtime
- add retry for SD card init

v1.3.3

Toggle v1.3.3's commit message
Network support in stmhal, and improved viper compiler.

Changes in core:
- tidy up native emitter and assemblers
- viper can compiler more binary ops
- viper supports casting (int, ptr8, ptr16)
- viper can compile native stores (eg p[1] = 42)
- remove IOError (use OSError instead)

stmhal port:
- fix OSX mass storage issue, so pyboard can be left plugged in
- add network and usocket modules with CC3000 and WIZnet5k support
  (disabled by default)
- improved percent option in timer PWM
- add pyb.elapsed_millis, pyb.elapsed_micros
- internal flash is labelled as "pybflash" on creation
- don't init NSS pin when initialising SPI bus with NSS_SOFT mode