esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
MicroPython port to the ESP32
|
|
|
|
=============================
|
|
|
|
|
2021-02-14 01:51:31 -05:00
|
|
|
This is a port of MicroPython to the Espressif ESP32 series of
|
|
|
|
microcontrollers. It uses the ESP-IDF framework and MicroPython runs as
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
a task under FreeRTOS.
|
|
|
|
|
|
|
|
Supported features include:
|
|
|
|
- REPL (Python prompt) over UART0.
|
2021-02-14 01:51:31 -05:00
|
|
|
- 16k stack for the MicroPython task and approximately 100k Python heap.
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
- Many of MicroPython's features are enabled: unicode, arbitrary-precision
|
|
|
|
integers, single-precision floats, complex numbers, frozen bytecode, as
|
|
|
|
well as many of the internal modules.
|
2017-10-15 03:14:37 -04:00
|
|
|
- Internal filesystem using the flash (currently 2M in size).
|
|
|
|
- The machine module with GPIO, UART, SPI, software I2C, ADC, DAC, PWM,
|
|
|
|
TouchPad, WDT and Timer.
|
|
|
|
- The network module with WLAN (WiFi) support.
|
2021-02-14 01:51:31 -05:00
|
|
|
- Bluetooth low-energy (BLE) support via the bluetooth module.
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
|
2021-02-14 01:51:31 -05:00
|
|
|
Initial development of this ESP32 port was sponsored in part by Microbric Pty Ltd.
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
|
2021-02-14 01:51:31 -05:00
|
|
|
Setting up ESP-IDF and the build environment
|
|
|
|
--------------------------------------------
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
|
2023-05-08 19:52:54 -04:00
|
|
|
MicroPython on ESP32 requires the Espressif IDF version 5 (IoT development
|
2021-02-14 01:51:31 -05:00
|
|
|
framework, aka SDK). The ESP-IDF includes the libraries and RTOS needed to
|
|
|
|
manage the ESP32 microcontroller, as well as a way to manage the required
|
|
|
|
build environment and toolchains needed to build the firmware.
|
|
|
|
|
|
|
|
The ESP-IDF changes quickly and MicroPython only supports certain versions.
|
2023-07-24 22:59:02 -04:00
|
|
|
Currently MicroPython supports only v5.0.2.
|
2021-02-14 01:51:31 -05:00
|
|
|
|
|
|
|
To install the ESP-IDF the full instructions can be found at the
|
2022-01-14 17:28:29 -05:00
|
|
|
[Espressif Getting Started guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html#installation-step-by-step).
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
|
2020-03-01 20:06:11 -05:00
|
|
|
If you are on a Windows machine then the [Windows Subsystem for
|
|
|
|
Linux](https://msdn.microsoft.com/en-au/commandline/wsl/install_guide) is the
|
|
|
|
most efficient way to install the ESP32 toolchain and build the project. If
|
|
|
|
you use WSL then follow the Linux instructions rather than the Windows
|
|
|
|
instructions.
|
|
|
|
|
2021-02-14 01:51:31 -05:00
|
|
|
The Espressif instructions will guide you through using the `install.sh`
|
|
|
|
(or `install.bat`) script to download the toolchain and set up your environment.
|
|
|
|
The steps to take are summarised below.
|
2020-03-01 20:06:11 -05:00
|
|
|
|
2021-02-14 01:51:31 -05:00
|
|
|
To check out a copy of the IDF use git clone:
|
2020-03-01 20:06:11 -05:00
|
|
|
|
|
|
|
```bash
|
2023-05-08 19:52:54 -04:00
|
|
|
$ git clone -b v5.0.2 --recursive https://github.com/espressif/esp-idf.git
|
2020-03-01 20:06:11 -05:00
|
|
|
```
|
|
|
|
|
2023-05-08 19:52:54 -04:00
|
|
|
You can replace `v5.0.2` with any other supported version.
|
2021-02-14 01:51:31 -05:00
|
|
|
(You don't need a full recursive clone; see the `ci_esp32_setup` function in
|
|
|
|
`tools/ci.sh` in this repository for more detailed set-up commands.)
|
2020-03-01 20:06:11 -05:00
|
|
|
|
2021-06-10 19:20:22 -04:00
|
|
|
If you already have a copy of the IDF then checkout a version compatible with
|
|
|
|
MicroPython and update the submodules using:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ cd esp-idf
|
2023-05-08 19:52:54 -04:00
|
|
|
$ git checkout v5.0.2
|
2021-06-10 19:20:22 -04:00
|
|
|
$ git submodule update --init --recursive
|
|
|
|
```
|
|
|
|
|
2021-02-14 01:51:31 -05:00
|
|
|
After you've cloned and checked out the IDF to the correct version, run the
|
|
|
|
`install.sh` script:
|
2020-03-01 20:06:11 -05:00
|
|
|
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
```bash
|
2021-02-14 01:51:31 -05:00
|
|
|
$ cd esp-idf
|
|
|
|
$ ./install.sh # (or install.bat on Windows)
|
|
|
|
$ source export.sh # (or export.bat on Windows)
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
```
|
|
|
|
|
2020-03-01 20:06:11 -05:00
|
|
|
The `install.sh` step only needs to be done once. You will need to source
|
|
|
|
`export.sh` for every new session.
|
|
|
|
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
Building the firmware
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
The MicroPython cross-compiler must be built to pre-compile some of the
|
|
|
|
built-in scripts to bytecode. This can be done by (from the root of
|
|
|
|
this repository):
|
2020-03-01 20:06:11 -05:00
|
|
|
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
```bash
|
2021-02-14 01:51:31 -05:00
|
|
|
$ make -C mpy-cross
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
```
|
|
|
|
|
|
|
|
Then to build MicroPython for the ESP32 run:
|
2020-03-01 20:06:11 -05:00
|
|
|
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
```bash
|
|
|
|
$ cd ports/esp32
|
2019-10-13 21:09:06 -04:00
|
|
|
$ make submodules
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
$ make
|
|
|
|
```
|
2020-03-01 20:06:11 -05:00
|
|
|
|
2023-08-15 09:49:35 -04:00
|
|
|
This will produce a combined `firmware.bin` image in the `build-ESP32_GENERIC/`
|
2021-02-14 01:51:31 -05:00
|
|
|
subdirectory (this firmware image is made up of: bootloader.bin, partitions.bin
|
|
|
|
and micropython.bin).
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
|
|
|
|
To flash the firmware you must have your ESP32 module in the bootloader
|
|
|
|
mode and connected to a serial port on your PC. Refer to the documentation
|
2021-02-14 01:51:31 -05:00
|
|
|
for your particular ESP32 module for how to do this.
|
|
|
|
You will also need to have user permissions to access the `/dev/ttyUSB0` device.
|
2020-03-01 20:06:11 -05:00
|
|
|
On Linux, you can enable this by adding your user to the `dialout` group, and
|
|
|
|
rebooting or logging out and in again. (Note: on some distributions this may
|
|
|
|
be the `uucp` group, run `ls -la /dev/ttyUSB0` to check.)
|
|
|
|
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
```bash
|
|
|
|
$ sudo adduser <username> dialout
|
|
|
|
```
|
|
|
|
|
|
|
|
If you are installing MicroPython to your module for the first time, or
|
|
|
|
after installing any other firmware, you should first erase the flash
|
|
|
|
completely:
|
2020-03-01 20:06:11 -05:00
|
|
|
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
```bash
|
|
|
|
$ make erase
|
|
|
|
```
|
|
|
|
|
|
|
|
To flash the MicroPython firmware to your ESP32 use:
|
2020-03-01 20:06:11 -05:00
|
|
|
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
```bash
|
|
|
|
$ make deploy
|
|
|
|
```
|
|
|
|
|
2023-08-15 09:49:35 -04:00
|
|
|
The default ESP32 board build by the above commands is the `ESP32_GENERIC`
|
|
|
|
one, which should work on most ESP32 modules. You can specify a different
|
|
|
|
board by passing `BOARD=<board>` to the make commands, for example:
|
2021-02-14 01:51:31 -05:00
|
|
|
|
|
|
|
```bash
|
2023-08-15 09:49:35 -04:00
|
|
|
$ make BOARD=ESP32_GENERIC_S3
|
2021-02-14 01:51:31 -05:00
|
|
|
```
|
|
|
|
|
|
|
|
Note: the above "make" commands are thin wrappers for the underlying `idf.py`
|
|
|
|
build tool that is part of the ESP-IDF. You can instead use `idf.py` directly,
|
|
|
|
for example:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ idf.py build
|
2023-08-15 09:49:35 -04:00
|
|
|
$ idf.py -D MICROPY_BOARD=ESP32_GENERIC build
|
2021-02-14 01:51:31 -05:00
|
|
|
$ idf.py flash
|
|
|
|
```
|
2020-03-01 20:06:11 -05:00
|
|
|
|
2023-08-15 09:49:35 -04:00
|
|
|
Some boards also support "variants", which are allow for small variations of
|
|
|
|
an otherwise similar board. For example different flash sizes or features. For
|
|
|
|
example to build the `OTA` variant of `ESP32_GENERIC`.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ make BOARD=ESP32_GENERIC BOARD_VARIANT=OTA
|
|
|
|
```
|
|
|
|
|
|
|
|
or to enable octal-SPIRAM support for the `ESP32_GENERIC_S3` board:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ make BOARD=ESP32_GENERIC BOARD_VARIANT=SPIRAM_OCT
|
|
|
|
```
|
|
|
|
|
|
|
|
|
2020-03-01 20:06:11 -05:00
|
|
|
Getting a Python prompt on the device
|
|
|
|
-------------------------------------
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
|
|
|
|
You can get a prompt via the serial port, via UART0, which is the same UART
|
|
|
|
that is used for programming the firmware. The baudrate for the REPL is
|
|
|
|
115200 and you can use a command such as:
|
2020-03-01 20:06:11 -05:00
|
|
|
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
```bash
|
|
|
|
$ picocom -b 115200 /dev/ttyUSB0
|
|
|
|
```
|
|
|
|
|
2020-03-01 20:06:11 -05:00
|
|
|
or
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ miniterm.py /dev/ttyUSB0 115200
|
|
|
|
```
|
|
|
|
|
2021-02-14 01:51:31 -05:00
|
|
|
You can also use `idf.py monitor`.
|
|
|
|
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
Configuring the WiFi and using the board
|
|
|
|
----------------------------------------
|
|
|
|
|
|
|
|
The ESP32 port is designed to be (almost) equivalent to the ESP8266 in
|
|
|
|
terms of the modules and user-facing API. There are some small differences,
|
|
|
|
notably that the ESP32 does not automatically connect to the last access
|
|
|
|
point when booting up. But for the most part the documentation and tutorials
|
|
|
|
for the ESP8266 should apply to the ESP32 (at least for the components that
|
|
|
|
are implemented).
|
|
|
|
|
|
|
|
See http://docs.micropython.org/en/latest/esp8266/esp8266/quickref.html for
|
|
|
|
a quick reference, and http://docs.micropython.org/en/latest/esp8266/esp8266/tutorial/intro.html
|
|
|
|
for a tutorial.
|
|
|
|
|
|
|
|
The following function can be used to connect to a WiFi access point (you can
|
|
|
|
either pass in your own SSID and password, or change the defaults so you can
|
|
|
|
quickly call `wlan_connect()` and it just works):
|
|
|
|
```python
|
|
|
|
def wlan_connect(ssid='MYSSID', password='MYPASS'):
|
|
|
|
import network
|
|
|
|
wlan = network.WLAN(network.STA_IF)
|
|
|
|
if not wlan.active() or not wlan.isconnected():
|
|
|
|
wlan.active(True)
|
|
|
|
print('connecting to:', ssid)
|
|
|
|
wlan.connect(ssid, password)
|
|
|
|
while not wlan.isconnected():
|
|
|
|
pass
|
|
|
|
print('network config:', wlan.ifconfig())
|
|
|
|
```
|
|
|
|
|
|
|
|
Note that some boards require you to configure the WiFi antenna before using
|
|
|
|
the WiFi. On Pycom boards like the LoPy and WiPy 2.0 you need to execute the
|
|
|
|
following code to select the internal antenna (best to put this line in your
|
|
|
|
boot.py file):
|
|
|
|
```python
|
|
|
|
import machine
|
|
|
|
antenna = machine.Pin(16, machine.Pin.OUT, value=0)
|
|
|
|
```
|
|
|
|
|
2021-02-14 01:51:31 -05:00
|
|
|
Defining a custom ESP32 board
|
|
|
|
-----------------------------
|
|
|
|
|
2023-08-15 09:49:35 -04:00
|
|
|
The default ESP-IDF configuration settings are provided by the `ESP32_GENERIC`
|
|
|
|
board definition in the directory `boards/ESP32_GENERIC`. For a custom configuration
|
2021-02-14 01:51:31 -05:00
|
|
|
you can define your own board directory. Start a new board configuration by
|
2023-08-15 09:49:35 -04:00
|
|
|
copying an existing one (like `ESP32_GENERIC`) and modifying it to suit your board.
|
2021-02-14 01:51:31 -05:00
|
|
|
|
|
|
|
MicroPython specific configuration values are defined in the board-specific
|
|
|
|
`mpconfigboard.h` file, which is included by `mpconfigport.h`. Additional
|
|
|
|
settings are put in `mpconfigboard.cmake`, including a list of `sdkconfig`
|
|
|
|
files that configure ESP-IDF settings. Some standard `sdkconfig` files are
|
|
|
|
provided in the `boards/` directory, like `boards/sdkconfig.ble`. You can
|
|
|
|
also define custom ones in your board directory.
|
|
|
|
|
|
|
|
See existing board definitions for further examples of configuration.
|
|
|
|
|
|
|
|
Configuration
|
esp32: Add new port to Espressif ESP32 SoC.
This commit is a combination of 216 commits from the initial stages of
development of this port, up to and including the point where the code was
moved to the ports/esp32 directory. These commits were mostly concerned
with setting up the build system and getting a reliable port working with
basic features. The following is a digest of the original commits in their
original order (most recent listed first), grouped where possible per
author. The list is here to give credit for the work and provide some
level of traceability and accountability. For the full history of
development please consult the original repository.
All code is MIT licensed and the relevant copyright holders are listed in
the comment-header of each file.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32: Update module symlinks now that code lives under the ports dir.
esp32: Update to compile with new ports/esp32 directory structure.
esp32: Move it to the ports/ directory.
esp32/machine_uart: Don't save baudrate but compute it instead.
esp32/modsocket: Add socket.readinto() method.
esp32/modesp: Add esp.gpio_matrix_in and esp.gpio_matrix_out functions.
esp32/machine_uart: Wait for all data to be tx'd before changing config.
NyxCode <moritz.bischof1@gmail.com>
esp32: Add note to README.md about updating the submodules of ESP IDF.
Anthony Briggs <anthony.briggs@gmail.com>
esp32: Update README.md installation and flashing instructions.
Javier Candeira <javier@candeira.com>
esp32: Raise error when setting input-only pin to output.
With help from Adrian Smith (fon@thefon.net)
Javier Candeira <javier@candeira.com>
esp32: Replace exception raising with corresponding mp_raise_XXX funcs.
Tisham Dhar <whatnickd@gmail.com>
esp32: Add some specific notes about building on Windows using WSL.
Ben Gamari <ben@smart-cactus.org>
esp32: Provide machine.Signal class.
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement AP version of network.isconnected().
Eric Poulsen <eric@zyxod.com>
esp32/README.md: Add note about btree submodule initialization.
Damien George <damien.p.george@gmail.com>
esp32: Make firmware.bin start at 0x1000 to allow flash size autodetect.
esp32: Changes to follow latest version of upstream uPy.
esp32/Makefile: Separate ESP-specific inc dirs to avoid header clashes.
esp32: Enable "btree" database module.
esp32: Update to latest ESP IDF.
Roosted7 <thomasroos@live.nl>
esp32: Update to latest ESP-IDF.
Alex King <alex_w_king@yahoo.com>
esp32/machine_timer: Add support for esp32 hardware timer.
Code lineage:
Timer() is based loosely on the version in esp8266, although the
implementation is differs significantly because of the change in
the underlying platform.
Damien George <damien.p.george@gmail.com>
esp32/machine_uart: Increase UART TX buffer size to 64.
esp32/modules: Update dht symlink.
esp32/mpconfigport.h: Enable utimeq module, needed for uasyncio.
esp32: Changes to follow latest version of upstream uPy.
esp32: Update to latest ESP-IDF.
esp32/machine_uart: Add uart.any() method.
esp32/machine_uart: Uninstall the UART driver before installing it.
Thomas Roos <mail@thomasroos.nl>
esp32: Update to latest ESP-IDF.
Eric Poulsen <eric@zyxod.com>
esp32/modsocket: Make read/write return None when in non-blocking mode.
esp32/modsocket.c: Fix send/sendto/write for non-blocking sockets.
Odd Stråbø <oddstr13@openshell.no>
esp32: Initial working implementation of machine.UART.
Code lineage (as seen by previous commits): I copied the ESP8266 code,
renamed pyb -> machine, and used esp-idf as a reference while implementing
minimal functionality. I provide all of my changes under the MIT license.
Odd Stråbø <oddstr13@openshell.no>
esp32/machine_uart: Rename pyb to machine.
esp32: Copy machine_uart.c from esp8266 port.
Damien George <damien.p.george@gmail.com>
esp32/moduos: Add uos.ilistdir() function.
esp32: Mount filesystem at the root of the VFS, following esp8266.
Andy Valencia <vandyswa@gmail.com>
esp32: Add hardware SHA1/SHA256 support via mbedtls API.
Code lineage: a copy of extmod/moduhashlib with the API invocation details
edited. Total derivative work.
Andy Valencia <vandyswa@gmail.com>
esp32: Add PWM support via machine.PWM class.
Code lineage:
I started by copying the esp8266 machine_pwm.c. I used information from the
ESP32 Technical Reference Manual, the esp-idf documentation, and the SDK's
sample ledc example code (but I did not copy that code, just studied it to
understand the SDK's API for PWM). So aside from the code copied from the
esp8266 PWM support, everything else you see is just new code I wrote.
I wasn't an employee of anybody when I wrote it, and I wrote it with the
understanding and intention that it's simply a derivative work of the
existing micropython code. I freely and willingly contribute it to the
project and intend that it not change the legal status of the micropython
code base in any way, even if it is included in that base in whole or part.
Damien George <damien.p.george@gmail.com>
esp32/modules: Add symlinks for upysh and upip.
Eric Poulsen <eric@zyxod.com>
esp32/modmachine: Add unique_id() function to machine module.
Damien George <damien.p.george@gmail.com>
esp32: Change dac_out_voltage to dac_output_voltage for new IDF API.
esp32: Update esp32.custom_common.ld to align with changes in ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32: Update to latest ESP IDF.
Damien George <damien.p.george@gmail.com>
esp32/modsocket: When resolving IP addr handle the case of host=''.
esp32: Update to latest ESP IDF.
Eric Poulsen <eric@zyxod.com>
esp32/Makefile: Change default FLASH_MODE to dio for WROOM-32 module.
esp32: Move FAT FS to start at 0x200000 and increase size to 2MiB.
Damien George <damien.p.george@gmail.com>
esp32: Remove enable_irq/disable_irq and use ATOMIC_SECTION instead.
esp32/mpconfigport.h: Provide ATOMIC_SECTION macros.
esp32/main: Restart the MCU if there is a failed NLR jump.
Daniel Campora <daniel@pycom.io>
esp32: Enable threading; be sure to exit GIL when a thread will block.
esp32: Trace the registers when doing a gc collect. Also make it thread ready.
esp32: Add threading implementation, disabled for the time being.
Damien George <damien.p.george@gmail.com>
esp32: Update to latest ESP IDF.
esp32/uart: Use high-level function to install UART0 RX ISR handler.
esp32/Makefile: Make FreeRTOS private include dir really private.
Eric Poulsen <eric@zyxod.com>
esp32: Add support for hardware SPI peripheral (block 1 and 2).
Sergio Conde Gómez <skgsergio@gmail.com>
esp32/modules/inisetup.py: Mount filesystem at /flash like ESP8266
Damien George <damien.p.george@gmail.com>
esp32: Convert to use core-provided KeyboardInterrupt exception.
esp32: Pump the event loop while waiting for rx-chr or delay_ms.
esp32: Implement Pin.irq() using "soft" scheduled interrupts.
esp32: Update to latest ESP IDF version.
Eric Poulsen <eric@zyxod.com>
esp32/README: Add troubleshooting section to the end.
tyggerjai <tyggerjai@gmail.com>
esp32: Add support for WS2812 and APA106 RGB LEDs.
Damien George <damien.p.george@gmail.com>
esp32: Add makeimg.py script to build full firmware; use it in Makefile.
esp32/modsocket: Make socket.read return when socket closes.
esp32/modsocket: Initialise the timeout on an accepted socket.
esp32/mphalport: Provide proper implementations of disable_/enable_irq.
esp32/modmachine: Add disable_irq/enable_irq functions.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add comment explaining timeout behaviour
esp32/modsocket.c: clean up send methods for retries too
esp32/modsocket.c: sockets always nonblocking, accept timeout in modsocket
esp32: Update to latest ESP IDF version.
esp32/modsocket.c: remove MSG_PEEK workaround on select ioctl.
esp32/modsocket.c: Initialize tcp when modsocket loads.
Damien George <damien.p.george@gmail.com>
esp32/main: Bump heap size from 64k to 96k.
esp32/modutime: Add time.time() function.
esp32/modsocket: Convert lwip errnos to uPy ones.
esp32/modules: Provide symlink to ds18x20 module.
esp32: Add support for onewire protocol via OneWire module.
esp32: Add support for DHT11 and DHT22 sensors.
esp32/mphalport: Improve delay and ticks functions.
esp32: Update to latest ESP IDF.
esp32/modules: Provide symlink to urequests from micropython-lib.
esp32: Populate sys.path.
Nick Moore <nick@zoic.org>
esp32/machine_dac.c: implement DAC pins as well
esp32/machine_adc.c: also machine.ADC
esp32/machine_touchpad.c: add support for touchpad
Damien George <damien.p.george@gmail.com>
esp32/README: Add hint about using GNUmakefile on case-insensitive FS.
esp32/mpconfigport.h: Enable maximum speed software SPI.
esp32: Provide improved version of mp_hal_delay_us_fast.
esp32/mpconfigport.h: Enable MICROPY_PY_BUILTINS_POW3 option.
esp32: Update to latest ESP IDF.
esp32: Convert to use new oofatfs library and generic VFS sub-system.
esp32: Enable help('modules') to list builtin modules.
esp32: Convert to use new builtin help function.
Aaron Kelly <AaronKelly@email.com>
esp32/README: Add comment about ESP-IDF version
Damien George <damien.p.george@gmail.com>
esp32: Consistently use size_t instead of mp_uint_t.
esp32: Change "Micro Python" to "MicroPython" in license comments.
esp32/Makefile: Use -C argument to git instead of cd'ing.
esp32/help: Add section to help about using the network module.
esp32/README: Add section about configuring and using an ESP32 board.
esp32/README: Remove paragraph about buggy toolchain, it's now fixed.
esp32/modnetwork: Change network init logging from info to debug.
esp32/modnetwork: Don't start AP automatically when init'ing wifi.
esp32/modsocket: Implement socket.setsockopt, to support SO_REUSEADDR.
esp32: Update to latest ESP IDF.
esp32/sdkconfig.h: Remove unused CONFIG_ESPTOOLPY_xxx config settings.
esp32/modsocket: Add support for DGRAM and RAW, and sendto/recvfrom.
esp32/modsocket: Fix return value of "port" in socket.accept.
esp32/modsocket: Make socket.recv take exactly 2 args.
esp32: Enable ussl module, using mbedtls component from ESP IDF.
esp32/modsocket: Rename "socket" module to "usocket".
esp32/sdkconfig: Increase max number of open sockets from 4 to 8.
esp32/modsocket: Add error checking for creating and closing sockets.
esp32/modsocket: Use _r (re-entrant) versions of LWIP socket API funcs.
esp32/modsocket: Raise an exception if socket.connect did not succeed.
esp32/modsocket: Make socket.accept return a tuple: (client, addr).
esp32/modsocket: Use m_new_obj_with_finaliser instead of calloc.
esp32/Makefile: Add check for IDF version, and warn if not supported.
esp32/esp32.custom_common.ld: Update to follow changes in IDF.
esp32: Update to latest ESP IDF.
nubcore <x@nubcore.com>
esp32: add #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25
Nick Moore <nick@zoic.org>
esp32/modsocket.c: add in sendall and makefile methods #10
esp32/modsocket.c: fixups for #10
esp32/modsocket.c: fix copyright, socket_recv gets param and exception
esp32/modnetwork.c: fix copyright, network.active param to bool
Damien George <damien.p.george@gmail.com>
esp32/modnetwork: Implement wlan.isconnected() method.
esp32/modnetwork: Add initial implementation of wlan.config().
esp32/modnetwork: Simplify event_handler messages.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: support for ioctl, settimeout, setblocking, getaddrinfo
Damien George <damien.p.george@gmail.com>
esp32/README: Add comment about FLASH_MODE being dio.
esp32: Update to latest ESP IDF.
esp32/modnetwork: Remove unnecessary indirection variable for scan list.
esp32/modnetwork: Check that STA is active before trying to scan.
esp32/mphalport: Replace portTICK_RATE_MS with portTICK_PERIOD_MS.
esp32/README: Add comment about using $(HOME) in makefile.
esp32/modnetwork: Use memset instead of bzero, the latter is deprecated.
esp32/modnetwork: Improve error handling when STA is connecting to AP.
esp32/Makefile: Use tab instead of spaces, and use shorter variable.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: AF_*, SOCK_* and IPPROTO_* constants
esp32/modsocket.c: socket.settimeout implementation
Damien George <damien.p.george@gmail.com>
esp32/Makefile: Update to latest ESP IDF.
Nick Moore <nick@zoic.org>
esp32/modsocket.c: use mp streams for sockets
esp32: network.WLAN.ifconfig based on esp8266 version
esp32: Fix up exception handling
esp32: sketchy modsocket ... revisit this once modnetwork is sorted
esp32: First cut at modnetwork, manually rebased from prev. version
Damien George <damien.p.george@gmail.com>
esp32/help: Update help text.
esp32: Add info about Microbric Pty Ltd being the sponsor of this port.
esp32: Add README.md file.
esp32/mpconfigport.h: Add weak links to many of the builtin modules.
esp32: Enable soft implementation of machine.SPI class.
esp32/Makefile: Simplify APP_LD_ARGS by using OBJ variable.
esp32/Makefile: Reorganise Makefile and add some comments.
esp32/Makefile: Clean up CFLAGS for ESP IDF components.
esp32/Makefile: Tidy up names of ESP IDF components, to match dir name.
esp32/Makefile: Define and use ESPCOMP variable.
esp32: Update to latest ESP IDF.
esp32/main: Enable filesystem support.
esp32: Use custom ld script to ensure correct code get placed in iram.
esp32: Update to latest ESP IDF.
esp32/main: Pin the uPy task to core 0.
esp32: Update to use latest ESP IDF.
esp32: Disable boot-up scripts, spi_flash_erase_sector no longer works.
esp32: Add scripts to init and mount filesystem.
esp32: Enable frozen bytecode, with scripts stored in "modules/" dir.
esp32/modesp: Increase flash_user_start position to 1Mbyte.
esp32/Makefile: Add "erase" target for convenient erasure.
esp32/sdkconfig: Reorder config settings to put common things together.
esp32/sdkconfig: Change to use single core only.
esp32: Add esp module.
esp32/uart.c: Make sure uart ISR handler is all in iram.
esp32/main.c: Use ESP_TASK_PRIO_MIN + 1 for mp_task's priority.
esp32/Makefile: Use only bare-minimum flags when compiling .S files.
esp32/Makefile: Rename "firmware" to "application".
esp32: Update ESP IDF version.
esp32/Makefile: Add declarations to build bootloader and partitions.
esp32/Makefile: When deploying, write the application last.
esp32/Makefile: Use $(INC) variable instead of listing include dirs.
esp32/Makefile: Use locally built versions of freertos and newlib libs.
esp32: Add low-level uart handler with ISR and ringbuf for stdin.
esp32: Add machine.idle() function.
esp32: Add machine.I2C class.
esp32: Enable machine.time_pulse_us.
esp32: Add initial implementation of machine.Pin class.
esp32: Prepare main.c for using xTaskCreateStatic.
esp32: Clean up mphalport.h.
esp32: Add initial uos module.
esp32: Clean up mpconfigport.h, enable more features.
esp32: Use new reset function.
esp32: Update to latest ESP IDF.
esp32: Add idf-version target to Makefile, to track IDF commit.
esp32: Initial port to ESP32.
2016-12-05 20:20:10 -05:00
|
|
|
Troubleshooting
|
|
|
|
---------------
|
|
|
|
|
2021-02-14 01:51:31 -05:00
|
|
|
* Continuous reboots after programming: Ensure `CONFIG_ESPTOOLPY_FLASHMODE` is
|
|
|
|
correct for your board (e.g. ESP-WROOM-32 should be DIO). Then perform a
|
|
|
|
`make clean`, rebuild, redeploy.
|