You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Damien George cdad2b6f4d esp8266: Implement Pin.__call__() and Pin.OPEN_DRAIN mode. 9 years ago
..
scripts esp8266: Add support for frozen modules 10 years ago
Makefile esp8266: Enable modmachine. 9 years ago
README.md esp8266/README: Add hint about adding toolchain to PATH. 9 years ago
eagle.rom.addr.v6.ld eagle.rom.addr.v6.ld: More symbols from SDK 1.5.0. 9 years ago
esp8266.ld esp8266/esp8266.ld: Link in SDK version section. 9 years ago
esp_mphal.c esp8266: Add custom _assert() function. 9 years ago
esp_mphal.h esp8266: Reset "virtual RTC" on power on. 9 years ago
etshal.h esp8266/etshal.h: Add timer functions prototypes. 9 years ago
gccollect.c esp8266: Fix garbage collector by hard-coding stack end address. 10 years ago
gccollect.h esp8266: Fix garbage collector by hard-coding stack end address. 10 years ago
gchelper.s esp8266: New port of Micro Python to ESP8266 wifi module. 10 years ago
main.c esp8266: Change "soft reboot" message to work with pyboard.py. 9 years ago
makeimg.py esp8266: New port of Micro Python to ESP8266 wifi module. 10 years ago
modesp.c esp8266/modesp: Implement flash_write(), flash_erase(). 9 years ago
modmachine.c esp8266/modmachine: Timer: Add ONE_SHOT and PERIODIC symbolic constants. 9 years ago
modnetwork.c esp8266: Add network.ifconfig(). 9 years ago
modpyb.c lib/pyexec: Move header pyexec.h from stmhal directory. 9 years ago
modpyb.h esp8266: Make pyb.RTC a type, and pyb.RTC() constructs an RTC object. 10 years ago
modpybadc.c py: Change first arg of type.make_new from mp_obj_t to mp_obj_type_t*. 9 years ago
modpybpin.c esp8266: Implement Pin.__call__() and Pin.OPEN_DRAIN mode. 9 years ago
modpybrtc.c esp8266: Reset "virtual RTC" on power on. 9 years ago
modpybrtc.h esp8266: Add utime and pyb.RTC 10 years ago
moduos.c esp8266: Add uos module 10 years ago
modutime.c esp8266/modutime: Support float argument to time.sleep(). 9 years ago
mpconfigport.h esp8266: Add custom _assert() function. 9 years ago
qstrdefsport.h esp8266: Implement Pin.__call__() and Pin.OPEN_DRAIN mode. 9 years ago
strtoll.c esp8266: Change bignum from mpz to longlong; move some rodata to iram. 10 years ago
uart.c lib/pyexec: Move header pyexec.h from stmhal directory. 9 years ago
uart.h esp8266: New port of Micro Python to ESP8266 wifi module. 10 years ago
uart_register.h esp8266: New port of Micro Python to ESP8266 wifi module. 10 years ago
user_config.h esp8266: New port of Micro Python to ESP8266 wifi module. 10 years ago
utils.c esp8266: Add esp.socket class, with ESP-style socket functionality. 10 years ago
utils.h esp8266: Add esp.socket class, with ESP-style socket functionality. 10 years ago

README.md

MicroPython port to ESP8266

This is a highly experimental port of MicroPython for the WiFi modules based on Espressif ESP8266 chip.

WARNING: The port is highly experimental and any APIs are subject to change.

Currently implemented features include:

  • REPL (Python prompt) over UART0.
  • 24k heap RAM available for Python code.
  • Garbage collector, exceptions.
  • Unicode support.
  • Builtin modules: gc, array, collections, io, struct, sys, esp, network.
  • C long-long type used as bignum implementation (gives 64 bit signed ints).
  • Rudimentary WiFi support in station mode.
  • Sockets with callbacks.
  • Basic GPIO support.

Note that floating-point numbers are not supported.

On the TODO list:

  • Full wifi support.
  • Internal filesystem using the flash.
  • ...

Build instructions

The tool chain required for the build is the OpenSource ESP SDK, which can be found at https://github.com/pfalcon/esp-open-sdk. Clone this repository and run make in its directory to build and install the SDK locally. Make sure to add toolchain bin directory to your PATH.

Then, to build MicroPython for the ESP8266, just run:

$ make

This should produce binary images in the build/ subdirectory. To flash them to your ESP8266, use:

$ make deploy

This will use the esptool.py script to download the images. You must have your ESP module in the bootloader, and connected to a serial port on your PC. The default serial port is /dev/ttyACM0. To specify another, use, eg:

$ make PORT=/dev/ttyUSB0 deploy

The images that are built are:

  • firmware.elf-0x00000.bin: to be flashed at 0x00000
  • firmware.elf-0x10000.bin: to be flashed at 0x10000

There is also a combined image, made up of the above 2 binary files with the appropriate padding:

  • firmware-combined.bin: to be flashed at 0x00000