aboutsummaryrefslogtreecommitdiff
path: root/ports/esp32/boards
AgeCommit message (Collapse)Author
2021-04-15esp32/boards: Add GENERIC_S2 board definition.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2021-04-15esp32: Add support for USB with CDC ACM.Damien George
The REPL will be available on the USB serial port. Signed-off-by: Damien George <damien@micropython.org>
2021-04-15esp32: Add initial support for ESP32S2 SoCs.Damien George
Builds against IDF v4.3-beta2. Signed-off-by: Damien George <damien@micropython.org>
2021-02-19esp32/boards: Enable size optimisation for builds.Damien George
This enables -Os for compilation, but still keeps full assertion messages. With IDF v4.2, -Os changes the GENERIC firmware size from 1512176 down to 1384640, and the GENERIC_SPIRAM firmware is now 1452320 which fits in the allocated partition. Signed-off-by: Damien George <damien@micropython.org>
2021-02-15esp32/boards: Enable BLE on all boards.Damien George
BLE was enabled by default on all boards in the existing make build. Signed-off-by: Damien George <damien@micropython.org>
2021-02-15esp32/boards: Remove old IDF v3 sdkconfig values.Damien George
IDF v3 is no longer supported with the move to cmake. Signed-off-by: Damien George <damien@micropython.org>
2021-02-15esp32: Remove traditional "make" capability.Damien George
It's now replaced by cmake/idf.py. But a convenience Makefile is still provided with traditional targets like "all" and "deploy". Signed-off-by: Damien George <damien@micropython.org>
2021-02-15esp32: Add support to build using IDF with cmake.Damien George
This commit adds support for building the esp32 port with cmake, and in particular it builds MicroPython as a component within the ESP-IDF. Using cmake and the ESP-IDF build infrastructure makes it much easier to maintain the port, especially with the various new ESP32 MCUs and their required toolchains. Signed-off-by: Damien George <damien@micropython.org>
2020-09-18esp32/boards/sdkconfig.base: Set default IDF log level to ERROR.Jim Mussared
This commit changes the default logging level on all esp32 boards to ERROR. The esp32 port is now stable enough that it makes sense to remove the info logs to make the output cleaner, and to match other ports. More verbose logging can always be reenabled via esp.osdebug(). This also fixes issue #6354, error messages from NimBLE: the problem is that ble.active(True) will cause the IDF's NimBLE port to reset the "NimBLE" tag back to the default level (which was INFO prior to this commit). Even if the user had previously called esp.osdebug(None), because the IDF is setting the "NimBLE" tag back to the default (INFO), the messages will continue to be shown. The one quirk is that if the user does want to see the additional logging, then they must call esp.osdebug(0, 3) after ble.active(True) to undo the IDF setting the level back to the default (now ERROR). This means that it's impossible (via Python/esp.osdebug) to see stack-startup logging, you'd have to recompile with the default level changed back to INFO.
2020-09-08esp32: Pin MicroPython and NimBLE tasks to core 0.Jim Mussared
MicroPython and NimBLE must be on the same core, for synchronisation of the BLE ringbuf and the MicroPython scheduler. However, in the current IDF versions (3.3 and 4.0) there are issues (see e.g. #5489) with running NimBLE on core 1. This change - pinning both tasks to core 0 - makes it possible to reliably run the BLE multitests on esp32 boards.
2020-05-03esp32: Improve support for OTA updates.Thorsten von Eicken
This commit adds several small items to improve the support for OTA updates on an esp32: - a partition table for 4MB flash modules that has two OTA partitions ready to go to do updates - a GENERIC_OTA board that uses that partition table and that enables automatic roll-back in the bootloader - a new esp32.Partition.mark_app_valid_cancel_rollback() class-method to signal that the boot is successful and should not be rolled back at the next reset - an automated test for doing an OTA update - documentation updates
2020-03-26esp32: Enable and freeze uasyncio.Damien George
2020-02-28all: Reformat C and Python source code with tools/codeformat.py.Damien George
This is run with uncrustify 0.70.1, and black 19.10b0.
2020-01-15esp32: Enable NimBLE support on all builds (IDF 3.3 and 4.0).Jim Mussared
This commit updates the IDFv3 version to v3.3.1, and enables the "ubluetooth" module by default on IDFv3 builds.
2019-12-20extmod/webrepl: Move webrepl scripts to common place and use manifest.Jim Mussared
Move webrepl support code from ports/esp8266/modules into extmod/webrepl (to be alongside extmod/modwebrepl.c), and use frozen manifests to include it in the build on esp8266 and esp32. A small modification is made to webrepl.py to make it work on non-ESP ports, i.e. don't call dupterm_notify if not available.
2019-12-19esp32/boards/TINYPICO: Add tinypico.py, dotstar.py with custom manifest.Seon Rozenblum
2019-12-05esp32/boards: Enable ULP in base sdk configuration.Andrew Leech
Fixes issue #5159.
2019-11-11esp32/boards/sdkconfig.base: Resize SSL output buffer from 16 to 4kiB.Jim Mussared
The IDF heap is more fragmented with IDF 4 and mbedtls cannot allocate enough RAM with 16+16kiB for both in and out buffers, so reduce output buffer size. Fixes issue #5303.
2019-10-21esp32: Add missing and necessary newline at EOF for sdkconfig.240mhz.Jim Mussared
When these files get concatenated the newline-at-EOF is necessary so that the start of the next file doesn't join with the end of the previous.
2019-10-21tools/makemanifest.py: Eval relative paths w.r.t. current manifest file.Jim Mussared
When loading a manifest file, e.g. by include(), it will chdir first to the directory of that manifest. This means that all file operations within a manifest are relative to that manifest's location. As a consequence of this, additional environment variables are needed to find absolute paths, so the following are added: $(MPY_LIB_DIR), $(PORT_DIR), $(BOARD_DIR). And rename $(MPY) to $(MPY_DIR) to be consistent. Existing manifests are updated to match.
2019-10-18esp32/boards: Split out CPU frequency config, make 160MHz the default.Josh Lloyd
Remove the 240MHz CPU config option from sdkconfig.base and create a new sdkconfig.240mhz file for those boards that want to use 240MHz on boot. The default CPU frequency is now 160MHz (was 240MHz), to align with the ESP IDF and support more boards (eg those with D2WD chips). Fixes issue #5169.
2019-10-15esp32: Convert to use FROZEN_MANIFEST to specify frozen code.Damien George
All symlinks are removed. boards/manifest.py is used as a default, and can optionally use boards/manifest_release.py for more scripts.
2019-10-15esp32: Run NimBLE on the app core.Jim Mussared
This prevents issues with concurrent access to the ringbuf. MICROPY_BEGIN_ATOMIC_SECTION is only atomic to the same core. We could address this with a mutex, but it's also not safe to call mp_sched_schedule across cores.
2019-10-15extmod/modbluetooth: Increase maximum connections from 1 to 4.Jim Mussared
This avoids a confusing ENOMEM raised from gap_advertise if there is currently an active connection. This refers to the static connection buffer pre-allocated by Nimble (nothing to do with MicroPython heap memory).
2019-10-11esp32: Add 4.x version of IDLE WDT config.Jim Mussared
2019-10-08esp32: Implement BLE using Nimble from IDF 4.x.Jim Mussared
2019-09-17esp32: Support building with ESP IDF 4.0-beta1.Jim Mussared
This commit adds support for a second supported hash (currently set to the 4.0-beta1 tag). When this hash is detected, the relevant changes are applied. This allows to start using v4 features (e.g. BLE with Nimble), and also start doing testing, while still supporting the original, stable, v3.3 IDF. Note: this feature is experimental, not well tested, and network.LAN and network.PPP are currently unsupported.
2019-09-10esp32: Add support for ESP32-D2WD with 2MiB internal flash.Alex Albino
This patch adds a partitions file for the D2WD and a new board GENERIC_D2WD which runs on these chip variants. Resolves issue #4986.
2019-09-10esp32/boards/TINYPICO: Switch to use QIO and 80MHz for SPI interface.Damien George
2019-08-16esp32: Add per-board configs, following other ports.Jim Mussared
Replaces the `SDKCONFIG` makefile variable with `BOARD`. Defaults to BOARD=GENERIC. spiram can be enabled with `BOARD=GENERIC_SPIRAM` Add example definition for TINYPICO, currently identical to GENERIC_SPIRAM but with custom board/SoC names for the uPy banner.
2019-04-05esp32/boards/sdkconfig: Disable WDT check of idle task on CPU1.Damien George
With dual-core enabled it's possible that the uPy task has full utilisation of CPU1. Fixes issue #4673.
2019-03-27esp32/boards: Enable dual core support by default.Damien George
Single core is still supported, just by adding CONFIG_FREERTOS_UNICORE=y to a custom sdkconfig file.
2019-02-07esp32/modmachine: Add support for changing the CPU frequency.Damien George
2019-02-06esp32: Use SPIRAM in mem-map mode so all of it can be used for uPy heap.Damien George
Also enable CONFIG_SPIRAM_IGNORE_NOTFOUND to allow boards with faulty or missing SPIRAM to still boot.
2019-01-28esp32/boards: Use auto xtal freq config instead of default 40MHz.Damien George
Auto-detection of the crystal frequency is convenient and allows for a single binary for many different boards. But it can be unreliable in certain situations so in production, for a given board, it's recommended to configure the correct fixed frequency.
2019-01-28esp32: Update to latest ESP IDF using sdkconfig and new ldgen procedure.Damien George
Configuration for the build is now specified using sdkconfig rather than sdkconfig.h, which allows for much easier configuration with defaults from the ESP IDF automatically applied. sdkconfig.h is generated using the new ESP IDF kconfig_new tool written in Python. Custom configuration for a particular ESP32 board can be specified via the make variable SDKCONFIG. The esp32.common.ld file is also now generated using the standard ESP IDF ldgen.py tool.