summaryrefslogtreecommitdiffstatshomepage
path: root/docs/library/esp32.rst
Commit message (Collapse)AuthorAge
* esp32/modesp32: Implement esp32.idf_task_info().Daniël van de Giessen2025-05-16
| | | | | | | | | | This adds a new function, `esp32.idf_task_info()`, that can be used to retrieve task statistics which is useful for diagnosing issues where some tasks are using up a lot of CPU time. It's best used in conjunction with the `utop` module from micropython-lib. Signed-off-by: Daniël van de Giessen <daniel@dvdgiessen.nl>
* docs/library: Move vfs functions and classes from os to vfs module docs.Damien George2024-02-07
| | | | Signed-off-by: Damien George <damien@micropython.org>
* esp32/esp32_rmt: Add RMT.PULSE_MAX constant.Mark Blakeney2023-11-09
| | | | | | | | | If you have a variable frequency and pulse width, and you want to optimize pulse resolution, then you must do a calculation beforehand to ensure you normalize the array to keep all list values within bound. That calculation requires RMT.source_freq(), RMT.clock_div(), and this 32767 constant. Signed-off-by: Mark Blakeney <mark.blakeney@bullet-systems.net>
* esp32/esp32_rmt: Change RMT.source_freq() to class method.Mark Blakeney2023-11-09
| | | | | | | | | | | | | To create an esp32.RMT() instance with an optimum (i.e. highest resolution) clock_div is currently awkward because you need to know the source clock frequency to calculate the best clock_div, but unfortunately that is only currently available as an source_freq() method on the instance after you have already created it. So RMT.source_freq() should really be a class method, not an instance method. This change is backwards compatible for existing code because you can still reference that function from an instance, or now also, from the class. Signed-off-by: Mark Blakeney <mark.blakeney@bullet-systems.net>
* docs/library/esp32: Update ESP32 idf_heap_info docs to match behaviour.Angus Gratton2023-09-15
| | | | Signed-off-by: Angus Gratton <angus@redyak.com.au>
* esp32: Skip validation of image on boot from deepsleep.Glenn Moloney2023-09-05
| | | | | | | | | | | | sdkconfig.base: Add CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP=y. This reduces time to boot from deepsleep by at least 200ms and can provide significant power savings for deepsleep-based battery applications. docs/library/esp32.rst: Add note cautioning not to enter deepsleep after changing the boot partition, without first performing a hard reset. Signed-off-by: Glenn Moloney <glenn.moloney@gmail.com>
* esp32: Enable automatic Python heap growth.Angus Gratton2023-08-15
| | | | | | | | | | | Via MICROPY_GC_SPLIT_HEAP_AUTO feature flag added in previous commit. Tested on ESP32 GENERIC_SPIRAM and GENERIC_S3 configurations, with some worst-case allocation patterns and the standard test suite. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
* docs/esp32: Update esp32 docs based on IDF v5 changes.Damien George2023-06-23
| | | | Signed-off-by: Damien George <damien@micropython.org>
* esp32/esp32_ulp: Enable FSM ULP for S2 and S3 chips.patrick2023-05-19
| | | | | | | | This commit enables the ULP for the S2 and S3 chips. Note this is the FSM (Finite State Machine) ULP. Signed-off-by: Patrick Joy <patrick@joytech.com.au>
* all: Fix spelling mistakes based on codespell check.Damien George2023-04-27
| | | | Signed-off-by: Damien George <damien@micropython.org>
* esp32/modesp32: Add wake_on_ulp() so ULP can wake CPU from deepsleep.Christian Walther2022-06-23
| | | | | | Add esp32.wake_on_ulp() to give access to esp_sleep_enable_ulp_wakeup(), which is needed to allow the ULP co-processor to wake the main CPU from deep sleep.
* esp32/modesp32: Add new gpio_deep_sleep_hold function.Jonathan Hogg2022-03-21
| | | | | | | | Add a new function to control whether held pins will retain their function through deep-sleep. Also document this function and explain how to use this in quickref to retain pin configuration during deep-sleep.
* docs/library/esp32.rst: Mark esp32.Partition as not taking kw args.Damien George2022-03-07
| | | | | | Fixes issue #8380. Signed-off-by: Damien George <damien@micropython.org>
* esp32/esp32_partition: Add support for specifying block_size.Damien George2022-02-22
| | | | | | | To support filesystems that use a block size different from the native erase-page size. Signed-off-by: Damien George <damien@micropython.org>
* esp32/machine_bitstream: Reinstate bitstream bit-bang implementation.Damien George2022-01-14
| | | | | | | | | | | | | The bit-bang implementation was replaced with the RMT implementation in 599b61c08687ca077e3b0e115d5b76affcc673ca. This commit brings back that bit-bang code, and allows it to be selected via the new static method: esp32.RMT.bitstream_channel(None) The bit-bang implementation may be useful if the RMT needs to be used for something else, or if bit-banging is more stable in certain applications. Signed-off-by: Damien George <damien@micropython.org>
* docs: Replace ufoo with foo in all docs.Jim Mussared2021-08-13
| | | | | | | | | | | | | | | | | | | | | | Anywhere a module is mentioned, use its "non-u" name for consistency. The "import module" vs "import umodule" is something of a FAQ, and this commit intends to help clear that up. As a first approximation MicroPython is Python, and so imports should work the same as Python and use the same name, to a first approximation. The u-version of a module is a detail that can be learned later on, when the user wants to understand more and have finer control over importing. Existing Python code should just work, as much as it is possible to do that within the constraints of embedded systems, and the MicroPython documentation should match the idiomatic way to write Python code. With universal weak links for modules (via MICROPY_MODULE_WEAK_LINKS) users can consistently use "import foo" across all ports (with the exception of the minimal ports). And the ability to override/extend via "foo.py" continues to work well. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
* docs/library: Document new esp32.RMT features and fix wait_done.Jonathan Hogg2021-07-01
| | | | | | Add new API for specifying the idle level and TX carrier output level, and new write_pulses modes of operation. Also fix wait_done documentation which was inverted and wrong about timing.
* docs: Fix some spelling mistakes.Mike Causer2021-05-04
|
* esp32: Add basic support for Non-Volatile-Storage in esp32 module.Thorsten von Eicken2021-02-19
| | | | | | | | | | This commit implements basic NVS support for the esp32. It follows the pattern of the esp32.Partition class and exposes an NVS object per NVS namespace. The initial support provided is only for signed 32-bit integers and binary blobs. It's easy (albeit a bit tedious) to add support for more types. See discussions in: #4436, #4707, #6780
* docs: Change `\*` to `*` in argument lists.Zenix272020-08-21
| | | | | | | Latest versions of Sphinx (at least 3.1.0) do not need the `*` escaped and will render the `\` in the output if it is there, so remove it. Fixes issue #6209.
* docs/library: Update documentation of esp32's RMT.Jonathan Hogg2020-07-21
| | | | | This explains how looping now works, and removes the warning about calling wait_done().
* esp32/esp32_rmt: Extend RMT to support carrier feature.Jon Rob2020-06-17
| | | | | | | | The ESP32 RMT peripheral has hardware support for a carrier frequency, and this commit exposes it to Python with the keyword arguments carrier_freq and carrier_duty_percent in the constructor. Example usage: r = esp32.RMT(0, pin=Pin(2), clock_div=80, carrier_freq=38000, carrier_duty_percent=50)
* docs: Fix Sphinx 3.x warnings, and enable warnings-as-errors on build.David Lechner2020-06-05
| | | | | | | | | This enables warnings as errors and fixes all current errors, namely: - reference to terms in the glossary must now be explicit (:term:) - method overloads must not be declared as a separate method or must use :noindex: - 2 cases where `` should have been used instead of `
* esp32: Improve support for OTA updates.Thorsten von Eicken2020-05-03
| | | | | | | | | | | | | | | 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
* esp32/modesp32: Add idf_heap_info(capabilities) to esp32 module.Thorsten von Eicken2020-04-23
| | | | | | | This commit adds an idf_heap_info(capabilities) method to the esp32 module which returns info about the ESP-IDF heaps. It's useful to get a bit of a picture of what's going on when code fails because ESP-IDF can't allocate memory anymore. Includes documentation and a test.
* docs: More consistent capitalization and use of articles in headings.Jason Neal2020-01-06
| | | | See issue #3188.
* docs/esp32: Add quickref and full docs for esp32.RMT class.Matt Trentini2019-12-20
|
* docs: Add littlefs docs and a filesystem tutorial.Jim Mussared2019-12-04
|
* esp32: Add esp32.Partition class to expose partition and OTA funcs.Damien George2019-08-20
| | | | Partitions are exposed as a standard MicroPython block device.
* docs/library: Add documentation for esp32 module.Damien George2019-01-25