micropython

esptools / ampy

pip install esptool
pip install adafruit-ampy

identify

esptool.py chip_id

esp32

Download firmware from http://www.micropython.org/download

erase flash (before any micropython deploy)

export PORT=/dev/ttyUSB1
esptool.py --chip esp32 --port $PORT erase_flash

write firmware

esptool.py --chip esp32 --port $PORT write_flash -z 0x1000 esp32-20181103-v1.9.4-683-gd94aa577a.bin

old

Based on loboris fork of micropython

sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial

git clone --depth 1 https://github.com/loboris/MicroPython_ESP32_psRAM_LoBo
cd MicroPython_ESP32_psRAM_LoBo
cd MicroPython_BUILD
./BUILD.sh menuconfig
./BUILD.sh
./BUILD.sh flash
# reboot board disconnecting power

download micropython from http://micropython.org/download#esp32

If you are putting MicroPython on for the first time then you should first erase the entire flash

esptool.py --port /dev/ttyUSB0 erase_flash

esp8266

download micropython from http://micropython.org/download#esp8266

wget http://micropython.org/resources/firmware/esp8266-20180511-v1.9.4.bin

erase (optional ?) and upload

#esptool --port /dev/ttyUSB0 erase_flash
esptool --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-20180511-v1.9.4.bin
# oppure
esptool --port /dev/ttyUSB0 --baud 115200 write_flash --flash_mode dout --verify --flash_size=detect -fm dio 0 esp8266-20180511-v1.9.4.bin

after press buttons !!!!

access from serial over USB

sudo apt install picocom
picocom /dev/ttyUSB0 -b115200

network wifi STA

import network
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect('<your ESSID>', '<your password>')
sta_if.ifconfig()
('192.168.2.32', '255.255.255.0', '192.168.2.1', '192.168.2.1')

enable webrepl

import webrepl_setup

reboot and connect to webrepl using http://micropython.org/webrepl/

main

ampy -p /dev/ttyUSB0 put blink.py /main.py

led

from machine import Pin
from time import sleep
# GPIO16 (D0) is the internal LED for NodeMCU
led = Pin(16, Pin.OUT)
# The internal LED turn on when the pin is LOW
while True:
led.value(not led.value())
#led.on()
sleep(1)
#led.off()
#sleep(1)