2fc1e64319
Pasting more or less sizable text into ESP8266 REPL leads to random chars missing in the received input. Apparent cause is that using RTOS messages to pass individual chars one by one is to slow and leads to UART FIFO overflow. So, instead of passing chars one by one, use RTOS msg to signal that input data is available in FIFO, and then let task handler to read data directly from FIFO. With this change, lost chars problem is gone, but the pasted text is truncated after some position. At least 500 chars can be pasted reliably (at 115200 baud), but 1K never pastes completely. |
||
---|---|---|
.. | ||
scripts | ||
eagle.rom.addr.v6.ld | ||
esp8266.ld | ||
esp_mphal.c | ||
esp_mphal.h | ||
etshal.h | ||
gccollect.c | ||
gccollect.h | ||
gchelper.s | ||
main.c | ||
Makefile | ||
makeimg.py | ||
modesp.c | ||
modpyb.c | ||
modpyb.h | ||
modpybadc.c | ||
modpybpin.c | ||
modpybrtc.c | ||
modpybrtc.h | ||
moduos.c | ||
modutime.c | ||
mpconfigport.h | ||
qstrdefsport.h | ||
README.md | ||
strtoll.c | ||
uart_register.h | ||
uart.c | ||
uart.h | ||
user_config.h | ||
utils.c | ||
utils.h |
Micro Python port to ESP8266
This is a port of Micro Python to the Espressif ESP8266 wifi module.
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.
- C long-long type used as bignum implementation (gives 64 signed ints).
Note that floating-point numbers are not supported.
On the TODO list:
- Wifi support.
- GPIO 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.
Then, to build Micro Python 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 0x00000firmware.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