From 69e72954ad4757f8e3faccef6333cb33842ce052 Mon Sep 17 00:00:00 2001 From: Matt Trentini <matt.trentini@gmail.com> Date: Tue, 22 Jan 2019 08:06:17 +1100 Subject: [PATCH] docs: Add initial docs for esp32 port, including quick-ref and general. With contributions from Oliver Robson (@HowManyOliversAreThere), Sean Lanigan (@seanlano) and @rprr. --- docs/esp32/general.rst | 63 +++++ docs/esp32/img/esp32.jpg | Bin 0 -> 86457 bytes docs/esp32/quickref.rst | 478 ++++++++++++++++++++++++++++++++++ docs/esp32/tutorial/intro.rst | 139 ++++++++++ docs/index.rst | 1 + docs/library/esp.rst | 26 +- docs/library/index.rst | 6 +- docs/templates/topindex.html | 4 + 8 files changed, 710 insertions(+), 7 deletions(-) create mode 100644 docs/esp32/general.rst create mode 100644 docs/esp32/img/esp32.jpg create mode 100644 docs/esp32/quickref.rst create mode 100644 docs/esp32/tutorial/intro.rst diff --git a/docs/esp32/general.rst b/docs/esp32/general.rst new file mode 100644 index 000000000..51918d4e1 --- /dev/null +++ b/docs/esp32/general.rst @@ -0,0 +1,63 @@ +.. _esp32_general: + +General information about the ESP32 port +======================================== + +The ESP32 is a popular WiFi and Bluetooth enabled System-on-Chip (SoC) by +Espressif Systems. + +Multitude of boards +------------------- + +There is a multitude of modules and boards from different sources which carry +the ESP32 chip. MicroPython tries to provide a generic port which would run on +as many boards/modules as possible, but there may be limitations. Espressif +development boards are taken as reference for the port (for example, testing is +performed on them). For any board you are using please make sure you have a +datasheet, schematics and other reference materials so you can look up any +board-specific functions. + +To make a generic ESP32 port and support as many boards as possible the +following design and implementation decision were made: + +* GPIO pin numbering is based on ESP32 chip numbering. Please have the manual/pin + diagram of your board at hand to find correspondence between your board pins and + actual ESP32 pins. +* All pins are supported by MicroPython but not all are usable on any given board. + For example pins that are connected to external SPI flash should not be used, + and a board may only expose a certain selection of pins. + + +Technical specifications and SoC datasheets +------------------------------------------- + +The datasheets and other reference material for ESP32 chip are available +from the vendor site: https://www.espressif.com/en/support/download/documents?keys=esp32 . +They are the primary reference for the chip technical specifications, capabilities, +operating modes, internal functioning, etc. + +For your convenience, some of technical specifications are provided below: + +* Architecture: Xtensa Dual-Core 32-bit LX6 +* CPU frequency: up to 240MHz +* Total RAM available: 528KB (part of it reserved for system) +* BootROM: 448KB +* Internal FlashROM: none +* External FlashROM: code and data, via SPI Flash; usual size 4MB +* GPIO: 34 (GPIOs are multiplexed with other functions, including + external FlashROM, UART, etc.) +* UART: 3 RX/TX UART (no hardware handshaking), one TX-only UART +* SPI: 4 SPI interfaces (one used for FlashROM) +* I2C: 2 I2C (bitbang implementation available on any pins) +* I2S: 2 +* ADC: 12-bit SAR ADC up to 18 channels +* DAC: 2 8-bit DACs +* Programming: using BootROM bootloader from UART - due to external FlashROM + and always-available BootROM bootloader, the ESP32 is not brickable + +For more information see the ESP32 datasheet: https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf + +MicroPython is implemented on top of the ESP-IDF, Espressif's development +framework for the ESP32. This is a FreeRTOS based system. See the +`ESP-IDF Programming Guide <https://docs.espressif.com/projects/esp-idf/en/latest/index.html>`_ +for details. diff --git a/docs/esp32/img/esp32.jpg b/docs/esp32/img/esp32.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a96ddcbe6a39a74bded948698db956998f9d6c5e GIT binary patch literal 86457 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%0AIp*7;m2Av!o_x<Zkd%sPq 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 T1UXZc9aEzxA9!|y|Nl(@;{(`I literal 0 HcmV?d00001 diff --git a/docs/esp32/quickref.rst b/docs/esp32/quickref.rst new file mode 100644 index 000000000..81b2a53b3 --- /dev/null +++ b/docs/esp32/quickref.rst @@ -0,0 +1,478 @@ +.. _esp32_quickref: + +Quick reference for the ESP32 +============================= + +.. image:: img/esp32.jpg + :alt: ESP32 board + :width: 640px + +The Espressif ESP32 Development Board (image attribution: Adafruit). + +Below is a quick reference for ESP32-based boards. If it is your first time +working with this board it may be useful to get an overview of the microcontroller: + +.. toctree:: + :maxdepth: 1 + + general.rst + tutorial/intro.rst + +Installing MicroPython +---------------------- + +See the corresponding section of tutorial: :ref:`esp32_intro`. It also includes +a troubleshooting subsection. + +General board control +--------------------- + +The MicroPython REPL is on UART0 (GPIO1=TX, GPIO3=RX) at baudrate 115200. +Tab-completion is useful to find out what methods an object has. +Paste mode (ctrl-E) is useful to paste a large slab of Python code into +the REPL. + +The :mod:`machine` module:: + + import machine + + machine.freq() # get the current frequency of the CPU + machine.freq(240000000) # set the CPU frequency to 240 MHz + +The :mod:`esp` module:: + + import esp + + esp.osdebug(None) # turn off vendor O/S debugging messages + esp.osdebug(0) # redirect vendor O/S debugging messages to UART(0) + + # low level methods to interact with flash storage + esp.flash_size() + esp.flash_user_start() + esp.flash_erase(sector_no) + esp.flash_write(byte_offset, buffer) + esp.flash_read(byte_offset, buffer) + +The :mod:`esp32` module:: + + import esp32 + + esp32.hall_sensor() # read the internal hall sensor + esp32.raw_temperature() # read the internal temperature of the MCU, in Farenheit + esp32.ULP() # access to the Ultra-Low-Power Co-processor + +Note that the temperature sensor in the ESP32 will typically read higher than +ambient due to the IC getting warm while it runs. This effect can be minimised +by reading the temperature sensor immediately after waking up from sleep. + +Networking +---------- + +The :mod:`network` module:: + + import network + + wlan = network.WLAN(network.STA_IF) # create station interface + wlan.active(True) # activate the interface + wlan.scan() # scan for access points + wlan.isconnected() # check if the station is connected to an AP + wlan.connect('essid', 'password') # connect to an AP + wlan.config('mac') # get the interface's MAC adddress + wlan.ifconfig() # get the interface's IP/netmask/gw/DNS addresses + + ap = network.WLAN(network.AP_IF) # create access-point interface + ap.config(essid='ESP-AP') # set the ESSID of the access point + ap.active(True) # activate the interface + +A useful function for connecting to your local WiFi network is:: + + def do_connect(): + import network + wlan = network.WLAN(network.STA_IF) + wlan.active(True) + if not wlan.isconnected(): + print('connecting to network...') + wlan.connect('essid', 'password') + while not wlan.isconnected(): + pass + print('network config:', wlan.ifconfig()) + +Once the network is established the :mod:`socket <usocket>` module can be used +to create and use TCP/UDP sockets as usual, and the ``urequests`` module for +convenient HTTP requests. + +Delay and timing +---------------- + +Use the :mod:`time <utime>` module:: + + import time + + time.sleep(1) # sleep for 1 second + time.sleep_ms(500) # sleep for 500 milliseconds + time.sleep_us(10) # sleep for 10 microseconds + start = time.ticks_ms() # get millisecond counter + delta = time.ticks_diff(time.ticks_ms(), start) # compute time difference + +Timers +------ + +Virtual (RTOS-based) timers are supported. Use the :ref:`machine.Timer <machine.Timer>` class +with timer ID of -1:: + + from machine import Timer + + tim = Timer(-1) + tim.init(period=5000, mode=Timer.ONE_SHOT, callback=lambda t:print(1)) + tim.init(period=2000, mode=Timer.PERIODIC, callback=lambda t:print(2)) + +The period is in milliseconds. + +Pins and GPIO +------------- + +Use the :ref:`machine.Pin <machine.Pin>` class:: + + from machine import Pin + + p0 = Pin(0, Pin.OUT) # create output pin on GPIO0 + p0.on() # set pin to "on" (high) level + p0.off() # set pin to "off" (low) level + p0.value(1) # set pin to on/high + + p2 = Pin(2, Pin.IN) # create input pin on GPIO2 + print(p2.value()) # get value, 0 or 1 + + p4 = Pin(4, Pin.IN, Pin.PULL_UP) # enable internal pull-up resistor + p5 = Pin(5, Pin.OUT, value=1) # set pin high on creation + +Available Pins are from the following ranges (inclusive): 0-19, 21-23, 25-27, 32-39. +These correspond to the actual GPIO pin numbers of ESP32 chip. Note that many +end-user boards use their own adhoc pin numbering (marked e.g. D0, D1, ...). +For mapping between board logical pins and physical chip pins consult your board +documentation. + +Notes: + +* Pins 1 and 3 are REPL UART TX and RX respectively + +* Pins 6, 7, 8, 11, 16, and 17 are used for connecting the embedded flash, + and are not recommended for other uses + +* Pins 34-39 are input only, and also do not have internal pull-up resistors + +PWM (pulse width modulation) +---------------------------- + +PWM can be enabled on all output-enabled pins. The base frequency can +range from 1Hz to 40MHz but there is a tradeoff; as the base frequency +*increases* the duty resolution *decreases*. See +`LED Control <https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/ledc.html>`_ +for more details. + +Use the ``machine.PWM`` class:: + + from machine import Pin, PWM + + pwm0 = PWM(Pin(0)) # create PWM object from a pin + pwm0.freq() # get current frequency + pwm0.freq(1000) # set frequency + pwm0.duty() # get current duty cycle + pwm0.duty(200) # set duty cycle + pwm0.deinit() # turn off PWM on the pin + + pwm2 = PWM(Pin(2), freq=20000, duty=512) # create and configure in one go + +ADC (analog to digital conversion) +---------------------------------- + +On the ESP32 ADC functionality is available on Pins 32-39. Note that, when +using the default configuration, input voltages on the ADC pin must be between +0.0v and 1.0v (anything above 1.0v will just read as 4095). Attenuation must +be applied in order to increase this usable voltage range. + +Use the :ref:`machine.ADC <machine.ADC>` class:: + + from machine import ADC + + adc = ADC(Pin(32)) # create ADC object on ADC pin + adc.read() # read value, 0-4095 across voltage range 0.0v - 1.0v + + adc.atten(ADC.ATTN_11DB) # set 11dB input attentuation (voltage range roughly 0.0v - 3.6v) + adc.width(ADC.WIDTH_9BIT) # set 9 bit return values (returned range 0-511) + adc.read() # read value using the newly configured attenuation and width + +ESP32 specific ADC class method reference: + +.. method:: ADC.atten(attenuation) + + This method allows for the setting of the amount of attenuation on the + input of the ADC. This allows for a wider possible input voltage range, + at the cost of accuracy (the same number of bits now represents a wider + range). The possible attenuation options are: + + - ``ADC.ATTN_0DB``: 0dB attenuation, gives a maximum input voltage + of 1.00v - this is the default configuration + - ``ADC.ATTN_2_5DB``: 2.5dB attenuation, gives a maximum input voltage + of approximately 1.34v + - ``ADC.ATTN_6DB``: 6dB attenuation, gives a maximum input voltage + of approximately 2.00v + - ``ADC.ATTN_11DB``: 11dB attenuation, gives a maximum input voltage + of approximately 3.6v + +.. Warning:: + Despite 11dB attenuation allowing for up to a 3.6v range, note that the + absolute maximum voltage rating for the input pins is 3.6v, and so going + near this boundary may be damaging to the IC! + +.. method:: ADC.width(width) + + This method allows for the setting of the number of bits to be utilised + and returned during ADC reads. Possible width options are: + + - ``ADC.WIDTH_9BIT``: 9 bit data + - ``ADC.WIDTH_10BIT``: 10 bit data + - ``ADC.WIDTH_11BIT``: 11 bit data + - ``ADC.WIDTH_12BIT``: 12 bit data - this is the default configuration + +Software SPI bus +---------------- + +There are two SPI drivers. One is implemented in software (bit-banging) +and works on all pins, and is accessed via the :ref:`machine.SPI <machine.SPI>` +class:: + + from machine import Pin, SPI + + # construct an SPI bus on the given pins + # polarity is the idle state of SCK + # phase=0 means sample on the first edge of SCK, phase=1 means the second + spi = SPI(baudrate=100000, polarity=1, phase=0, sck=Pin(0), mosi=Pin(2), miso=Pin(4)) + + spi.init(baudrate=200000) # set the baudrate + + spi.read(10) # read 10 bytes on MISO + spi.read(10, 0xff) # read 10 bytes while outputing 0xff on MOSI + + buf = bytearray(50) # create a buffer + spi.readinto(buf) # read into the given buffer (reads 50 bytes in this case) + spi.readinto(buf, 0xff) # read into the given buffer and output 0xff on MOSI + + spi.write(b'12345') # write 5 bytes on MOSI + + buf = bytearray(4) # create a buffer + spi.write_readinto(b'1234', buf) # write to MOSI and read from MISO into the buffer + spi.write_readinto(buf, buf) # write buf to MOSI and read MISO back into buf + +.. Warning:: + Currently *all* of ``sck``, ``mosi`` and ``miso`` *must* be specified when + initialising Software SPI. + +Hardware SPI bus +---------------- + +There are two hardware SPI channels that allow faster (up to 80Mhz) +transmission rates, but are only supported on a subset of pins. + +===== =========== ============ +\ HSPI (id=1) VSPI (id=2) +===== =========== ============ +sck 14 18 +mosi 13 23 +miso 12 19 +===== =========== ============ + +Hardware SPI has the same methods as Software SPI above:: + + from machine import Pin, SPI + + hspi = SPI(1, 10000000, sck=Pin(14), mosi=Pin(13), miso=Pin(12)) + vspi = SPI(2, baudrate=80000000, polarity=0, phase=0, bits=8, firstbit=0, sck=Pin(18), mosi=Pin(23), miso=Pin(19)) + + +I2C bus +------- + +The I2C driver is implemented in software and works on all pins, +and is accessed via the :ref:`machine.I2C <machine.I2C>` class:: + + from machine import Pin, I2C + + # construct an I2C bus + i2c = I2C(scl=Pin(5), sda=Pin(4), freq=100000) + + i2c.readfrom(0x3a, 4) # read 4 bytes from slave device with address 0x3a + i2c.writeto(0x3a, '12') # write '12' to slave device with address 0x3a + + buf = bytearray(10) # create a buffer with 10 bytes + i2c.writeto(0x3a, buf) # write the given buffer to the slave + +Real time clock (RTC) +--------------------- + +See :ref:`machine.RTC <machine.RTC>` :: + + from machine import RTC + + rtc = RTC() + rtc.datetime((2017, 8, 23, 1, 12, 48, 0, 0)) # set a specific date and time + rtc.datetime() # get date and time + +Deep-sleep mode +--------------- + +The following code can be used to sleep, wake and check the reset cause:: + + import machine + + # check if the device woke from a deep sleep + if machine.reset_cause() == machine.DEEPSLEEP_RESET: + print('woke from a deep sleep') + + # put the device to sleep for 10 seconds + machine.deepsleep(10000) + +Notes: + +* Calling ``deepsleep()`` without an argument will put the device to sleep + indefinitely +* A software reset does not change the reset cause + +OneWire driver +-------------- + +The OneWire driver is implemented in software and works on all pins:: + + from machine import Pin + import onewire + + ow = onewire.OneWire(Pin(12)) # create a OneWire bus on GPIO12 + ow.scan() # return a list of devices on the bus + ow.reset() # reset the bus + ow.readbyte() # read a byte + ow.writebyte(0x12) # write a byte on the bus + ow.write('123') # write bytes on the bus + ow.select_rom(b'12345678') # select a specific device by its ROM code + +There is a specific driver for DS18S20 and DS18B20 devices:: + + import time, ds18x20 + ds = ds18x20.DS18X20(ow) + roms = ds.scan() + ds.convert_temp() + time.sleep_ms(750) + for rom in roms: + print(ds.read_temp(rom)) + +Be sure to put a 4.7k pull-up resistor on the data line. Note that +the ``convert_temp()`` method must be called each time you want to +sample the temperature. + +NeoPixel driver +--------------- + +Use the ``neopixel`` module:: + + from machine import Pin + from neopixel import NeoPixel + + pin = Pin(0, Pin.OUT) # set GPIO0 to output to drive NeoPixels + np = NeoPixel(pin, 8) # create NeoPixel driver on GPIO0 for 8 pixels + np[0] = (255, 255, 255) # set the first pixel to white + np.write() # write data to all pixels + r, g, b = np[0] # get first pixel colour + +For low-level driving of a NeoPixel:: + + import esp + esp.neopixel_write(pin, grb_buf, is800khz) + +.. Warning:: + By default ``NeoPixel`` is configured to control the more popular *800kHz* + units. It is possible to use alternative timing to control other (typically + 400kHz) devices by passing ``timing=0`` when constructing the + ``NeoPixel`` object. + + +Capacitive Touch +---------------- + +Use the ``TouchPad`` class in the ``machine`` module:: + + from machine import TouchPad, Pin + + t = TouchPad(Pin(14)) + t.read() # Returns a smaller number when touched + +``TouchPad.read`` returns a value relative to the capacitive variation. Small numbers (typically in +the *tens*) are common when a pin is touched, larger numbers (above *one thousand*) when +no touch is present. However the values are *relative* and can vary depending on the board +and surrounding composition so some calibration may be required. + +There are ten capacitive touch-enabled pins that can be used on the ESP32: 0, 2, 4, 12, 13 +14, 15, 27, 32, 33. Trying to assign to any other pins will result in a ``ValueError``. + +Note that TouchPads can be used to wake an ESP32 from sleep:: + + import machine + from machine import TouchPad, Pin + import esp32 + + t = TouchPad(Pin(14)) + t.config(500) # configure the threshold at which the pin is considered touched + esp32.wake_on_touch(True) + machine.sleep() # put the MCU to sleep until a touchpad is touched + +For more details on touchpads refer to `Espressif Touch Sensor +<https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/touch_pad.html>`_. + + +DHT driver +---------- + +The DHT driver is implemented in software and works on all pins:: + + import dht + import machine + + d = dht.DHT11(machine.Pin(4)) + d.measure() + d.temperature() # eg. 23 (°C) + d.humidity() # eg. 41 (% RH) + + d = dht.DHT22(machine.Pin(4)) + d.measure() + d.temperature() # eg. 23.6 (°C) + d.humidity() # eg. 41.3 (% RH) + +WebREPL (web browser interactive prompt) +---------------------------------------- + +WebREPL (REPL over WebSockets, accessible via a web browser) is an +experimental feature available in ESP32 port. Download web client +from https://github.com/micropython/webrepl (hosted version available +at http://micropython.org/webrepl), and configure it by executing:: + + import webrepl_setup + +and following on-screen instructions. After reboot, it will be available +for connection. If you disabled automatic start-up on boot, you may +run configured daemon on demand using:: + + import webrepl + webrepl.start() + + # or, start with a specific password + webrepl.start(password='mypass') + +The WebREPL daemon listens on all active interfaces, which can be STA or +AP. This allows you to connect to the ESP32 via a router (the STA +interface) or directly when connected to its access point. + +In addition to terminal/command prompt access, WebREPL also has provision +for file transfer (both upload and download). The web client has buttons for +the corresponding functions, or you can use the command-line client +``webrepl_cli.py`` from the repository above. + +See the MicroPython forum for other community-supported alternatives +to transfer files to an ESP32 board. diff --git a/docs/esp32/tutorial/intro.rst b/docs/esp32/tutorial/intro.rst new file mode 100644 index 000000000..4c5673834 --- /dev/null +++ b/docs/esp32/tutorial/intro.rst @@ -0,0 +1,139 @@ +.. _esp32_intro: + +Getting started with MicroPython on the ESP32 +============================================= + +Using MicroPython is a great way to get the most of your ESP32 board. And +vice versa, the ESP32 chip is a great platform for using MicroPython. This +tutorial will guide you through setting up MicroPython, getting a prompt, using +WebREPL, connecting to the network and communicating with the Internet, using +the hardware peripherals, and controlling some external components. + +Let's get started! + +Requirements +------------ + +The first thing you need is a board with an ESP32 chip. The MicroPython +software supports the ESP32 chip itself and any board should work. The main +characteristic of a board is how the GPIO pins are connected to the outside +world, and whether it includes a built-in USB-serial convertor to make the +UART available to your PC. + +Names of pins will be given in this tutorial using the chip names (eg GPIO2) +and it should be straightforward to find which pin this corresponds to on your +particular board. + +Powering the board +------------------ + +If your board has a USB connector on it then most likely it is powered through +this when connected to your PC. Otherwise you will need to power it directly. +Please refer to the documentation for your board for further details. + +Getting the firmware +-------------------- + +The first thing you need to do is download the most recent MicroPython firmware +.bin file to load onto your ESP32 device. You can download it from the +`MicroPython downloads page <https://micropython.org/download#esp32>`_. +From here, you have 3 main choices: + +* Stable firmware builds +* Daily firmware builds +* Daily firmware builds with SPIRAM support + +If you are just starting with MicroPython, the best bet is to go for the Stable +firmware builds. If you are an advanced, experienced MicroPython ESP32 user +who would like to follow development closely and help with testing new +features, there are daily builds. If your board has SPIRAM support you can +use either the standard firmware or the firmware with SPIRAM support, and in +the latter case you will have access to more RAM for Python objects. + +Deploying the firmware +---------------------- + +Once you have the MicroPython firmware you need to load it onto your ESP32 device. +There are two main steps to do this: first you need to put your device in +bootloader mode, and second you need to copy across the firmware. The exact +procedure for these steps is highly dependent on the particular board and you will +need to refer to its documentation for details. + +Fortunately, most boards have a USB connector, a USB-serial convertor, and the DTR +and RTS pins wired in a special way then deploying the firmware should be easy as +all steps can be done automatically. Boards that have such features +include the Adafruit Feather HUZZAH32, M5Stack, Wemos LOLIN32, and TinyPICO +boards, along with the Espressif DevKitC, PICO-KIT, WROVER-KIT dev-kits. + +For best results it is recommended to first erase the entire flash of your +device before putting on new MicroPython firmware. + +Currently we only support esptool.py to copy across the firmware. You can find +this tool here: `<https://github.com/espressif/esptool/>`__, or install it +using pip:: + + pip install esptool + +Versions starting with 1.3 support both Python 2.7 and Python 3.4 (or newer). +An older version (at least 1.2.1 is needed) works fine but will require Python +2.7. + +Using esptool.py you can erase the flash with the command:: + + esptool.py --port /dev/ttyUSB0 erase_flash + +And then deploy the new firmware using:: + + esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 esp32-20180511-v1.9.4.bin + +Notes: + +* You might need to change the "port" setting to something else relevant for your + PC +* You may need to reduce the baudrate if you get errors when flashing + (eg down to 115200 by adding ``--baud 115200`` into the command) +* For some boards with a particular FlashROM configuration you may need to + change the flash mode (eg by adding ``-fm dio`` into the command) +* The filename of the firmware should match the file that you have + +If the above commands run without error then MicroPython should be installed on +your board! + +Serial prompt +------------- + +Once you have the firmware on the device you can access the REPL (Python prompt) +over UART0 (GPIO1=TX, GPIO3=RX), which might be connected to a USB-serial +convertor, depending on your board. The baudrate is 115200. + +From here you can now follow the ESP8266 tutorial, because these two Espressif chips +are very similar when it comes to using MicroPython on them. The ESP8266 tutorial +is found at :ref:`esp8266_tutorial` (but skip the Introduction section). + +Troubleshooting installation problems +------------------------------------- + +If you experience problems during flashing or with running firmware immediately +after it, here are troubleshooting recommendations: + +* Be aware of and try to exclude hardware problems. There are 2 common + problems: bad power source quality, and worn-out/defective FlashROM. + Speaking of power source, not just raw amperage is important, but also low + ripple and noise/EMI in general. The most reliable and convenient power + source is a USB port. + +* The flashing instructions above use flashing speed of 460800 baud, which is + good compromise between speed and stability. However, depending on your + module/board, USB-UART convertor, cables, host OS, etc., the above baud + rate may be too high and lead to errors. Try a more common 115200 baud + rate instead in such cases. + +* To catch incorrect flash content (e.g. from a defective sector on a chip), + add ``--verify`` switch to the commands above. + +* If you still experience problems with flashing the firmware please + refer to esptool.py project page, https://github.com/espressif/esptool + for additional documentation and a bug tracker where you can report problems. + +* If you are able to flash the firmware but the ``--verify`` option returns + errors even after multiple retries the you may have a defective FlashROM chip. diff --git a/docs/index.rst b/docs/index.rst index af5ffb885..235185b6c 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -9,4 +9,5 @@ MicroPython documentation and references license.rst pyboard/quickref.rst esp8266/quickref.rst + esp32/quickref.rst wipy/quickref.rst diff --git a/docs/library/esp.rst b/docs/library/esp.rst index 121a80d42..867182be9 100644 --- a/docs/library/esp.rst +++ b/docs/library/esp.rst @@ -1,10 +1,12 @@ -:mod:`esp` --- functions related to the ESP8266 -=============================================== +:mod:`esp` --- functions related to the ESP8266 and ESP32 +========================================================= .. module:: esp - :synopsis: functions related to the ESP8266 + :synopsis: functions related to the ESP8266 and ESP32 -The ``esp`` module contains specific functions related to the ESP8266 module. +The ``esp`` module contains specific functions related to both the ESP8266 and +ESP32 modules. Some functions are only available on one or the other of these +ports. Functions @@ -12,6 +14,8 @@ Functions .. function:: sleep_type([sleep_type]) + **Note**: ESP8266 only + Get or set the sleep type. If the *sleep_type* parameter is provided, sets the sleep type to its @@ -29,6 +33,8 @@ Functions .. function:: deepsleep(time=0) + **Note**: ESP8266 only - use `machine.deepsleep()` on ESP32 + Enter deep sleep. The whole module powers down, except for the RTC clock circuit, which can @@ -38,8 +44,18 @@ Functions .. function:: flash_id() + **Note**: ESP8266 only + Read the device ID of the flash memory. +.. function:: flash_size() + + Read the total size of the flash memory. + +.. function:: flash_user_start() + + Read the memory offset at which the user flash space begins. + .. function:: flash_read(byte_offset, length_or_buffer) .. function:: flash_write(byte_offset, bytes) @@ -48,6 +64,8 @@ Functions .. function:: set_native_code_location(start, length) + **Note**: ESP8266 only + Set the location that native code will be placed for execution after it is compiled. Native code is emitted when the ``@micropython.native``, ``@micropython.viper`` and ``@micropython.asm_xtensa`` decorators are applied diff --git a/docs/library/index.rst b/docs/library/index.rst index e37f1d625..290192fa0 100644 --- a/docs/library/index.rst +++ b/docs/library/index.rst @@ -139,10 +139,10 @@ The following libraries and classes are specific to the WiPy. machine.TimerWiPy.rst -Libraries specific to the ESP8266 ---------------------------------- +Libraries specific to the ESP8266 and ESP32 +------------------------------------------- -The following libraries are specific to the ESP8266. +The following libraries are specific to the ESP8266 and ESP32. .. toctree:: :maxdepth: 2 diff --git a/docs/templates/topindex.html b/docs/templates/topindex.html index 675fae29f..08bf4c73e 100644 --- a/docs/templates/topindex.html +++ b/docs/templates/topindex.html @@ -53,6 +53,10 @@ <a class="biglink" href="{{ pathto("esp8266/quickref") }}">Quick reference for the ESP8266</a><br/> <span class="linkdescr">pinout for ESP8266-based boards, snippets of useful code, and a tutorial</span> </p> + <p class="biglink"> + <a class="biglink" href="{{ pathto("esp32/quickref") }}">Quick reference for the ESP32</a><br/> + <span class="linkdescr">pinout for ESP32-based boards, snippets of useful code, and a tutorial</span> + </p> <p class="biglink"> <a class="biglink" href="{{ pathto("wipy/quickref") }}">Quick reference for the WiPy/CC3200</a><br/> <span class="linkdescr">pinout for the WiPy/CC3200, snippets of useful code, and a tutorial</span> -- GitLab