summaryrefslogtreecommitdiff
path: root/docs
AgeCommit message (Collapse)Author
2024-09-06samd/mphalport: Simplify mp_hal_delay_ms().robert-hh
Do NOT use `mp_hal_delay_us()` for short delays. This was initially done to make short delays precise, but it does not allow for scheduling. Leave using `mp_hal_delay_us()` to user code if needed. Signed-off-by: robert-hh <robert@hammelrath.com>
2024-08-29docs/library: Document the network.PPP class.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2024-08-29docs/library/machine.UART: Extend the documentation for UART.irq.robert-hh
For more ports and trigger options, based on the current state of the code. Signed-off-by: robert-hh <robert@hammelrath.com>
2024-08-29docs/library/machine.UART: Fix UART.irq docs to match current code.Damien George
These docs now match the code in `extmod/machine_uart.c`. IRQ trigger support still need to be updated for each port (to be done in a follow-up commit). Signed-off-by: Damien George <damien@micropython.org>
2024-08-20rp2/modmachine: Set the peripheral frequency with machine.freq().robert-hh
By default, the peripheral clock for UART and SPI is set to 48 MHz and will not be affected by the MCU clock change. This can be changed by a second argument to `machine.freq(freq, peripheral_freq)`. The second argument must be either 48 MHz or identical with the first argument. Note that UART and SPI baud rates may have to be re-configured after changing the MCU clock. Signed-off-by: robert-hh <robert@hammelrath.com>
2024-08-20docs/mimxrt/quickref: Add a note about machine.RTC() subseconds.robert-hh
Telling that subseconds is not supported and returns always 0. This was changed in 913f9ad5ad9bb446c6e4310b6b5eda310098a1cf. Signed-off-by: robert-hh <robert@hammelrath.com>
2024-08-01docs/library/neopixel: Mention bitstream timing tuple.Tim Weber
Signed-off-by: Tim Weber <scy@scy.name>
2024-08-01py/py.mk: Add SRC_USERMOD_LIB_ASM to include assembly files.George Hopkins
Introduce SRC_USERMOD_LIB_ASM to allow users to include assembly files as part of their user modules. It could be used to include optimized functions or outputs of other programming languages. Signed-off-by: George Hopkins <george-hopkins@null.net>
2024-07-23docs: Specify that machine.idle() returns at least every 1ms.Angus Gratton
A lot of existing code (i.e. micropython-lib lps22h, lcd160cr sensor drivers, lora sync_modem driver, usb-device-hid) calls machine.idle() inside a tight loop that is polling some condition. This reduces the power usage compared to constantly looping, but can be faster than calling a sleep function. However on a tickless port there's not always an interrupt before the condition they are polling for, so it's difficult to restructure this code if machine.idle() doesn't have any upper limit on execution time. This commit specifies an upper limit of 1ms before machine.idle() resumes execution. This is already the case for all ports except rp2. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2024-07-05docs: Update docs to replace ifconfig with ipconfig.Felix Dörre
Follow up to 1c6012b0b5c62f18130217f30e73ad3ce4c8c9e6 Signed-off-by: Felix Dörre <felix@dogcraft.de>
2024-07-04docs/rp2/quickref: Document the use of channel numbers for ADC.robert-hh
Signed-off-by: robert-hh <robert@hammelrath.com>
2024-07-02extmod/machine_usb_device: Add USBDevice.remote_wakeup method.Felix Dörre
This simply exposes the TinyUSB function. Signed-off-by: Felix Dörre <felix@dogcraft.de>
2024-06-24py/objint: Fix int.to_bytes() buffer size checks.Angus Gratton
Fixes and improvements to `int.to_bytes()` are: - No longer overflows if byte size is 0 (closes #13041). - Raises OverflowError in any case where number won't fit into byte length (now matches CPython, previously MicroPython would return a truncated bytes object). - Document that `micropython int.to_bytes()` doesn't implement the optional signed kwarg, but will behave as if `signed=True` when the integer is negative (this is the current behaviour). Add tests for this also. Requires changes for small ints, MPZ large ints, and "long long" large ints. Adds a new set of unit tests for ints between 32 and 64 bits to increase coverage of "long long" large ints, which are otherwise untested. Tested on unix port (64 bit small ints, MPZ long ints) and Zephyr STM32WB board (32 bit small ints, long long large ints). This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2024-06-21mpy-cross: Add RISC-V RV32IMC support in MPY files.Alessandro Gatti
MPY files can now hold generated RV32IMC native code. This can be accomplished by passing the `-march=rv32imc` flag to mpy-cross. Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2024-05-27LICENSE,docs: Update copyright year range to include 2024.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2024-05-15docs/library/asyncio: Document that ThreadSafeFlag now works on unix.Damien George
ThreadSafeFlag works on the unix port since commit df08c38c286561c08d5ac354428074817eb0c163. Signed-off-by: Damien George <damien@micropython.org>
2024-05-15docs/reference: Document how to mip install packages from GitLab.Olivier Lenoir
Signed-off-by: Olivier Lenoir <olivier.len02@gmail.com>
2024-05-09docs/library/machine.USBDevice: Update note about packages in mp-lib.Angus Gratton
Also fix a small typo. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2024-05-07esp32/modesp32: Add mcu_temperature() function for C3/S2/S3 devices.Rick Sorensen
For ESP32C3/S2/S3 IDFv5 exposes new internal temperature API which is different to the base ESP32, IDFv4. Thanks to @robert-hh for cleaner code and testing sensor capability in these devices. See discussion #10443. Signed-off-by: Rick Sorensen <rick.sorensen@gmail.com>
2024-05-07docs/esp32/quickref: Add note about different ESP32 varieties.Rick Sorensen
Signed-off-by: Rick Sorensen <rick.sorensen@gmail.com>
2024-04-29docs/develop/optimizations: Fix typo identified in issue 14391.Matt Trentini
Signed-off-by: Matt Trentini <matt.trentini@gmail.com>
2024-04-17shared/tinyusb: Fix dynamic USB control callbacks for wLength==0.Angus Gratton
In the case where an OUT control transfer triggers with wLength==0 (i.e. all data sent in the SETUP phase, and no additional data phase) the callbacks were previously implemented to return b"" (i.e. an empty buffer for the data phase). However this didn't actually work as intended because b"" can't provide a RW buffer (needed for OUT transfers with a data phase to write data into), so actually the endpoint would stall. The symptom was often that the device process the request (if processing it in the SETUP phase when all information was already available), but the host sees the endpoint stall and eventually returns an error. This commit changes the behaviour so returning True from the SETUP phase of a control transfer queues a zero length status response. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2024-03-28docs/reference/mpyfiles: Document change in .mpy sub-version.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2024-03-26docs/library/machine.RTC: Add docs for RTC.memory() method.Amirreza Hamzavi
Co-Authored-By: glenn20 <glenn20@users.noreply.github.com> Signed-off-by: Amirreza Hamzavi <amirrezahamzavi2000@gmail.com>
2024-03-20py/binary: Support half-float 'e' format in struct pack/unpack.Matthias Urlichs
This commit implements the 'e' half-float format: 10-bit mantissa, 5-bit exponent. It uses native _Float16 if supported by the compiler, otherwise uses custom bitshifting encoding/decoding routines. Signed-off-by: Matthias Urlichs <matthias@urlichs.de> Signed-off-by: Damien George <damien@micropython.org>
2024-03-19docs/library/rp2.DMA: Add documentation for rp2 DMA support.Nicko van Someren
Signed-off-by: Nicko van Someren <nicko@nicko.org>
2024-03-19docs/library/collections: Update deque docs to describe new features.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2024-03-15docs/library/openamp: Document the new openamp module.iabdalkader
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2024-03-15extmod/machine_usb_device: Add support for Python USB devices.Angus Gratton
This new machine-module driver provides a "USBDevice" singleton object and a shim TinyUSB "runtime" driver that delegates the descriptors and all of the TinyUSB callbacks to Python functions. This allows writing arbitrary USB devices in pure Python. It's also possible to have a base built-in USB device implemented in C (eg CDC, or CDC+MSC) and a Python USB device added on top of that. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2024-03-08esp32/network_lan: Add a separate argument to set PHY power pin.robert-hh
Prior to this commit, the pin defined for power would be used by the esp_idf driver to reset the PHY. That worked, but sometimes the MDIO configuration started before the power was fully settled, leading to an error. With the change in this commit, the power for the PHY is independently enabled in network_lan.c with a 100ms delay to allow the power to settle. A separate define for a reset pin is provided, even if the PHY reset pin is rarely connected. Fixes issue #14013. Signed-off-by: robert-hh <robert@hammelrath.com>
2024-03-07all: Prune trailing whitespace.Phil Howard
Prune trailing whitespace across the whole project (almost), done automatically with: grep -IUrl --color "[[:blank:]]$" --exclude-dir=.git --exclude=*.exp |\ xargs sed -i 's/[[:space:]]*$//' Exceptions: - Skip third-party code in lib/ and drivers/cc3100/ - Skip generated code in bluetooth_init_cc2564C_1.5.c - Preserve command output whitespace in docs, eg: docs/esp8266/tutorial/repl.rst Signed-off-by: Phil Howard <phil@gadgetoid.com>
2024-03-07all: Remove the "STATIC" macro and just use "static" instead.Angus Gratton
The STATIC macro was introduced a very long time ago in commit d5df6cd44a433d6253a61cb0f987835fbc06b2de. The original reason for this was to have the option to define it to nothing so that all static functions become global functions and therefore visible to certain debug tools, so one could do function size comparison and other things. This STATIC feature is rarely (if ever) used. And with the use of LTO and heavy inline optimisation, analysing the size of individual functions when they are not static is not a good representation of the size of code when fully optimised. So the macro does not have much use and it's simpler to just remove it. Then you know exactly what it's doing. For example, newcomers don't have to learn what the STATIC macro is and why it exists. Reading the code is also less "loud" with a lowercase static. One other minor point in favour of removing it, is that it stops bugs with `STATIC inline`, which should always be `static inline`. Methodology for this commit was: 1) git ls-files | egrep '\.[ch]$' | \ xargs sed -Ei "s/(^| )STATIC($| )/\1static\2/" 2) Do some manual cleanup in the diff by searching for the word STATIC in comments and changing those back. 3) "git-grep STATIC docs/", manually fixed those cases. 4) "rg -t python STATIC", manually fixed codegen lines that used STATIC. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2024-02-29docs/library/bluetooth: Add note that ESP32 supports pairing/bonding.Daniël van de Giessen
Pairing and bonding was fixed for the ESP32 in the two previous commits. Signed-off-by: Daniël van de Giessen <daniel@dvdgiessen.nl>
2024-02-16py/emitglue: Introduce mp_proto_fun_t as a more general mp_raw_code_t.Damien George
Allows bytecode itself to be used instead of an mp_raw_code_t in the simple and common cases of a bytecode function without any children. This can be used to further reduce frozen code size, and has the potential to optimise other areas like importing. Signed-off-by: Damien George <damien@micropython.org>
2024-02-08tools/manifestfile.py: Change library search to use a list of paths.Damien George
This commit changes how library packages are searched for when a manifest file is loaded: there is now simply a list of library paths that is searched in order for the given package. This list defaults to the main directories in micropython-lib, but can be added to -- either appended or prepended -- by using `add_library()`. In particular the way unix-ffi library packages are searched has changed, because the `unix_ffi` argument to `require()` is now removed. Instead, if a build wants to include packages from micropython-lib/unix-ffi, then it must explicitly add this to the list of paths to search using: add_library("unix-ffi", "$(MPY_LIB_DIR)/unix-ffi") Work done in collaboration with Jim Mussared. Signed-off-by: Damien George <damien@micropython.org>
2024-02-07docs/library/sys.rst: Document implementation.version.releaselevel.Jos Verlinde
Signed-off-by: Jos Verlinde <jos_verlinde@hotmail.com>
2024-02-07docs: Use vfs module instead of os.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2024-02-07docs/reference/micropython2_migration.rst: Add info about os and vfs.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2024-02-07docs/library: Move vfs functions and classes from os to vfs module docs.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2024-02-05docs/library/ssl: Change wrap_socket args keyfile/certfile to key/cert.Damien George
So they match the code in extmod/modssl_*.c. Signed-off-by: Damien George <damien@micropython.org>
2024-01-25docs: Add note about position-only arguments in CPython vs MicroPython.Angus Gratton
Required modifying the gen-cpydiff.py code to allow a "preamble" section to be inserted at the top of any of the generated files. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2024-01-16docs/develop/porting: Fix argument type of mp_lexer_new_from_file().Damien George
Follow up to 5015779a6f4a180233a78ec8b5fd1ea095057a91. Signed-off-by: Damien George <damien@micropython.org>
2024-01-05all: Fix "reuse" and "overridden" spelling mistakes.Damien George
Codespell doesn't pick up "re-used" or "re-uses", and ignores the tests/ directory, so fix these manually. Signed-off-by: Damien George <damien@micropython.org>
2024-01-02docs/samd/pinout: Update pinout docs with fixed pin assignment.robert-hh
Fixes a wrong assignment for Sparkfun SAMD51 Thing Plus, and updates the sample script for printing the pin info table. Signed-off-by: robert-hh <robert@hammelrath.com>
2023-12-14docs/library: Document SSLContext cert methods and asyncio support.Carlosgg
Add `load_cert_chain`, `load_verify_locations`, `get_ciphers` and `set_ciphers` SSLContext methods in ssl library, and update asyncio `open_connection` and `start_server` methods with ssl support. Signed-off-by: Carlos Gil <carlosgilglez@gmail.com>
2023-12-11docs/esp32/quickref: Add DAC example.Ihor Nehrutsa
Signed-off-by: IhorNehrutsa <Ihor.Nehrutsa@gmail.com>
2023-11-22docs/library/esp: Correct the description of esp.osdebug().Angus Gratton
The behaviour described in the docs was not correct for either port. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2023-11-09esp32/esp32_rmt: Add RMT.PULSE_MAX constant.Mark Blakeney
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>
2023-11-09esp32/esp32_rmt: Change RMT.source_freq() to class method.Mark Blakeney
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>
2023-11-09mimxrt/boards/OLIMEX_RT1010: Adjust the UART pin assignment.robert-hh
Olimex asked for that, getting a UART at the UEXT1 connector as well. Signed-off-by: robert-hh <robert@hammelrath.com>