micropython/docs
Angus Gratton 81daba31c5 docs: Specify that machine.idle() returns at least every 1ms.
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-23 16:42:42 +10:00
..
develop docs/develop/optimizations: Fix typo identified in issue 14391. 2024-04-29 09:20:28 +10:00
differences all: Prune trailing whitespace. 2024-03-07 16:25:17 +11:00
esp32 docs: Update docs to replace ifconfig with ipconfig. 2024-07-05 16:06:04 +10:00
esp8266 docs: Update docs to replace ifconfig with ipconfig. 2024-07-05 16:06:04 +10:00
library docs: Specify that machine.idle() returns at least every 1ms. 2024-07-23 16:42:42 +10:00
mimxrt docs: Update docs to replace ifconfig with ipconfig. 2024-07-05 16:06:04 +10:00
pyboard docs: Use vfs module instead of os. 2024-02-07 13:25:10 +11:00
readthedocs/settings all: Update Python formatting to ruff-format. 2023-11-03 13:30:41 +11:00
reference docs: Update docs to replace ifconfig with ipconfig. 2024-07-05 16:06:04 +10:00
renesas-ra docs: Use vfs module instead of os. 2024-02-07 13:25:10 +11:00
rp2 docs/rp2/quickref: Document the use of channel numbers for ADC. 2024-07-04 11:50:47 +10:00
samd all: Prune trailing whitespace. 2024-03-07 16:25:17 +11:00
static docs: Update CPython differences and improve the look of table layouts. 2022-08-26 15:09:06 +10:00
templates all: Switch to new preview build versioning scheme. 2023-10-06 12:10:14 +11:00
unix unix: Implement -X realtime command-line option on macOS. 2022-05-24 00:51:47 +10:00
wipy docs: Update docs to replace ifconfig with ipconfig. 2024-07-05 16:06:04 +10:00
zephyr docs: Use vfs module instead of os. 2024-02-07 13:25:10 +11:00
conf.py LICENSE,docs: Update copyright year range to include 2024. 2024-05-27 23:39:16 +10:00
index.rst docs/samd: Add documentation for the samd port. 2022-10-26 23:39:35 +11:00
license.rst
make.bat docs/make.bat: Change Windows output dir from '_build' to 'build'. 2021-09-13 18:15:38 +10:00
Makefile docs/Makefile: Enable parallel compilation for Sphinx. 2022-09-29 23:51:29 +10:00
README.md docs: Set LaTeX engine to XeLaTeX for PDF generation. 2022-06-21 14:49:13 +10:00
requirements.txt docs: Add requirements.txt file with dependencies for Sphinx. 2023-10-02 12:35:12 +11:00

MicroPython Documentation

The MicroPython documentation can be found at: http://docs.micropython.org/en/latest/

The documentation you see there is generated from the files in the docs tree: https://github.com/micropython/micropython/tree/master/docs

Building the documentation locally

If you're making changes to the documentation, you may want to build the documentation locally so that you can preview your changes.

Install Sphinx, and optionally (for the RTD-styling), sphinx_rtd_theme, preferably in a virtualenv:

 pip install sphinx
 pip install sphinx_rtd_theme

In micropython/docs, build the docs:

make html

You'll find the index page at micropython/docs/build/html/index.html.

Having readthedocs.org build the documentation

If you would like to have docs for forks/branches hosted on GitHub, GitLab or BitBucket an alternative to building the docs locally is to sign up for a free https://readthedocs.org account. The rough steps to follow are:

  1. sign-up for an account, unless you already have one
  2. in your account settings: add GitHub as a connected service (assuming you have forked this repo on github)
  3. in your account projects: import your forked/cloned micropython repository into readthedocs
  4. in the project's versions: add the branches you are developing on or for which you'd like readthedocs to auto-generate docs whenever you push a change

PDF manual generation

This can be achieved with:

make latexpdf

but requires a rather complete install of LaTeX with various extensions. On Debian/Ubuntu, try (1GB+ download):

apt install texlive-latex-recommended texlive-latex-extra texlive-xetex texlive-fonts-extra cm-super xindy