Skip to content

Commit b8cba1c

Browse files
kwagyemanclaude
andcommitted
docs: library reference scrub, changelog index redesign, dash consistency
Changelog: foldable per-major index (v5..v1 pages) with grouped sidebar, corrected ordering and shared grid CSS; fixed broken nested inline markup (**``x``**) and converted resolvable backticks to roles across the v1.0.0-v4.7.0 release pages. Library reference: documented missing class methods from the MicroPython C sources (builtins str/bytes/bytearray/list/tuple/dict/set/frozenset, io stream classes + IOBase, collections namedtuple._asdict, all errno codes, hashlib per-algorithm methods); split shared-doc directives for clean .pyi generation (io StringIO/BytesIO, socket/ssl/sys constants, hashlib); backtick->reference conversions; heading/section and capitalization fixes; em-dash and module-title separator consistency across all library pages; pyb->machine in the asyncio example. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 24d25b5 commit b8cba1c

124 files changed

Lines changed: 2477 additions & 1091 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/changelog/index.rst

Lines changed: 125 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -6,119 +6,137 @@ OpenMV Firmware Changelog
66
Every OpenMV firmware release brings new features and improvements. Here's
77
what's new in each one — plus any breaking API changes and exactly how to
88
migrate your code. Releases are grouped by major version, newest first.
9+
Click a version to expand its releases.
910

1011
.. toctree::
11-
:maxdepth: 1
12-
:caption: v5.x
12+
:maxdepth: 2
13+
:hidden:
1314

14-
v5.0.0.rst
15+
v5.rst
16+
v4.rst
17+
v3.rst
18+
v2.rst
19+
v1.rst
1520

16-
.. toctree::
17-
:maxdepth: 1
18-
:caption: v4.x
19-
20-
v4.8.1.rst
21-
v4.8.0.rst
22-
v4.7.0.rst
23-
v4.6.20.rst
24-
v4.6.0.rst
25-
v4.5.9.rst
26-
v4.5.8.rst
27-
v4.5.7.rst
28-
v4.5.6.rst
29-
v4.5.5.rst
30-
v4.5.4.rst
31-
v4.5.3.rst
32-
v4.5.2.rst
33-
v4.5.1.rst
34-
v4.5.0.rst
35-
v4.4.3.rst
36-
v4.4.2.rst
37-
v4.4.1.rst
38-
v4.4.0.rst
39-
v4.3.3.rst
40-
v4.3.1.rst
41-
v4.3.0.rst
42-
v4.2.3.rst
43-
v4.2.2.rst
44-
v4.2.1.rst
45-
v4.2.0.rst
46-
v4.1.4.rst
47-
v4.1.3.rst
48-
v4.1.2.rst
49-
v4.1.1.rst
50-
v4.1.0.rst
51-
v4.0.2.rst
52-
v4.0.1.rst
53-
v4.0.0.rst
54-
55-
.. toctree::
56-
:maxdepth: 1
57-
:caption: v3.x
21+
.. raw:: html
5822

59-
v3.9.4.rst
60-
v3.9.3.rst
61-
v3.9.2.rst
62-
v3.9.1.rst
63-
v3.9.0.rst
64-
v3.8.0.rst
65-
v3.7.0.rst
66-
v3.6.9.rst
67-
v3.6.8.rst
68-
v3.6.7.rst
69-
v3.6.6.rst
70-
v3.6.5.rst
71-
v3.6.4.rst
72-
v3.6.3.rst
73-
v3.6.2.rst
74-
v3.6.1.rst
75-
v3.6.0.rst
76-
v3.5.2.rst
77-
v3.5.1.rst
78-
v3.5.0.rst
79-
v3.5.0-beta.3.rst
80-
v3.5.0-beta.2.rst
81-
v3.5.0-beta.1.rst
82-
v3.4.3.rst
83-
v3.4.2.rst
84-
v3.4.1.rst
85-
v3.4.0.rst
86-
v3.3.1.rst
87-
v3.3.0.rst
88-
v3.2.0.rst
89-
v3.1.0.rst
90-
v3.0.0.rst
23+
<details class="changelog-major" open>
24+
<summary>v5 <span class="count">(1 release)</span></summary>
25+
<ul class="changelog-versions">
26+
<li><a href="v5.0.0.html">v5.0.0</a></li>
27+
</ul>
28+
</details>
9129

92-
.. toctree::
93-
:maxdepth: 1
94-
:caption: v2.x
30+
<details class="changelog-major">
31+
<summary>v4 <span class="count">(34 releases)</span></summary>
32+
<ul class="changelog-versions">
33+
<li><a href="v4.8.1.html">v4.8.1</a></li>
34+
<li><a href="v4.8.0.html">v4.8.0</a></li>
35+
<li><a href="v4.7.0.html">v4.7.0</a></li>
36+
<li><a href="v4.6.20.html">v4.6.20</a></li>
37+
<li><a href="v4.6.0.html">v4.6.0</a></li>
38+
<li><a href="v4.5.9.html">v4.5.9</a></li>
39+
<li><a href="v4.5.8.html">v4.5.8</a></li>
40+
<li><a href="v4.5.7.html">v4.5.7</a></li>
41+
<li><a href="v4.5.6.html">v4.5.6</a></li>
42+
<li><a href="v4.5.5.html">v4.5.5</a></li>
43+
<li><a href="v4.5.4.html">v4.5.4</a></li>
44+
<li><a href="v4.5.3.html">v4.5.3</a></li>
45+
<li><a href="v4.5.2.html">v4.5.2</a></li>
46+
<li><a href="v4.5.1.html">v4.5.1</a></li>
47+
<li><a href="v4.5.0.html">v4.5.0</a></li>
48+
<li><a href="v4.4.3.html">v4.4.3</a></li>
49+
<li><a href="v4.4.2.html">v4.4.2</a></li>
50+
<li><a href="v4.4.1.html">v4.4.1</a></li>
51+
<li><a href="v4.4.0.html">v4.4.0</a></li>
52+
<li><a href="v4.3.3.html">v4.3.3</a></li>
53+
<li><a href="v4.3.1.html">v4.3.1</a></li>
54+
<li><a href="v4.3.0.html">v4.3.0</a></li>
55+
<li><a href="v4.2.3.html">v4.2.3</a></li>
56+
<li><a href="v4.2.2.html">v4.2.2</a></li>
57+
<li><a href="v4.2.1.html">v4.2.1</a></li>
58+
<li><a href="v4.2.0.html">v4.2.0</a></li>
59+
<li><a href="v4.1.4.html">v4.1.4</a></li>
60+
<li><a href="v4.1.3.html">v4.1.3</a></li>
61+
<li><a href="v4.1.2.html">v4.1.2</a></li>
62+
<li><a href="v4.1.1.html">v4.1.1</a></li>
63+
<li><a href="v4.1.0.html">v4.1.0</a></li>
64+
<li><a href="v4.0.2.html">v4.0.2</a></li>
65+
<li><a href="v4.0.1.html">v4.0.1</a></li>
66+
<li><a href="v4.0.0.html">v4.0.0</a></li>
67+
</ul>
68+
</details>
9569

96-
v2.9.0.rst
97-
v2.8.0.rst
98-
v2.7.0.rst
99-
v2.6.0.rst
100-
v2.5.0.rst
101-
v2.4.1.rst
102-
v2.4.0.rst
103-
v2.3.0.rst
104-
v2.2.0.rst
105-
v2.1.0.rst
106-
v2.0.0.rst
70+
<details class="changelog-major">
71+
<summary>v3 <span class="count">(32 releases)</span></summary>
72+
<ul class="changelog-versions">
73+
<li><a href="v3.9.4.html">v3.9.4</a></li>
74+
<li><a href="v3.9.3.html">v3.9.3</a></li>
75+
<li><a href="v3.9.2.html">v3.9.2</a></li>
76+
<li><a href="v3.9.1.html">v3.9.1</a></li>
77+
<li><a href="v3.9.0.html">v3.9.0</a></li>
78+
<li><a href="v3.8.0.html">v3.8.0</a></li>
79+
<li><a href="v3.7.0.html">v3.7.0</a></li>
80+
<li><a href="v3.6.9.html">v3.6.9</a></li>
81+
<li><a href="v3.6.8.html">v3.6.8</a></li>
82+
<li><a href="v3.6.7.html">v3.6.7</a></li>
83+
<li><a href="v3.6.6.html">v3.6.6</a></li>
84+
<li><a href="v3.6.5.html">v3.6.5</a></li>
85+
<li><a href="v3.6.4.html">v3.6.4</a></li>
86+
<li><a href="v3.6.3.html">v3.6.3</a></li>
87+
<li><a href="v3.6.2.html">v3.6.2</a></li>
88+
<li><a href="v3.6.1.html">v3.6.1</a></li>
89+
<li><a href="v3.6.0.html">v3.6.0</a></li>
90+
<li><a href="v3.5.2.html">v3.5.2</a></li>
91+
<li><a href="v3.5.1.html">v3.5.1</a></li>
92+
<li><a href="v3.5.0.html">v3.5.0</a></li>
93+
<li><a href="v3.5.0-beta.3.html">v3.5.0-beta.3</a></li>
94+
<li><a href="v3.5.0-beta.2.html">v3.5.0-beta.2</a></li>
95+
<li><a href="v3.5.0-beta.1.html">v3.5.0-beta.1</a></li>
96+
<li><a href="v3.4.3.html">v3.4.3</a></li>
97+
<li><a href="v3.4.2.html">v3.4.2</a></li>
98+
<li><a href="v3.4.1.html">v3.4.1</a></li>
99+
<li><a href="v3.4.0.html">v3.4.0</a></li>
100+
<li><a href="v3.3.1.html">v3.3.1</a></li>
101+
<li><a href="v3.3.0.html">v3.3.0</a></li>
102+
<li><a href="v3.2.0.html">v3.2.0</a></li>
103+
<li><a href="v3.1.0.html">v3.1.0</a></li>
104+
<li><a href="v3.0.0.html">v3.0.0</a></li>
105+
</ul>
106+
</details>
107107

108-
.. toctree::
109-
:maxdepth: 1
110-
:caption: v1.x
108+
<details class="changelog-major">
109+
<summary>v2 <span class="count">(11 releases)</span></summary>
110+
<ul class="changelog-versions">
111+
<li><a href="v2.9.0.html">v2.9.0</a></li>
112+
<li><a href="v2.8.0.html">v2.8.0</a></li>
113+
<li><a href="v2.7.0.html">v2.7.0</a></li>
114+
<li><a href="v2.6.0.html">v2.6.0</a></li>
115+
<li><a href="v2.5.0.html">v2.5.0</a></li>
116+
<li><a href="v2.4.1.html">v2.4.1</a></li>
117+
<li><a href="v2.4.0.html">v2.4.0</a></li>
118+
<li><a href="v2.3.0.html">v2.3.0</a></li>
119+
<li><a href="v2.2.0.html">v2.2.0</a></li>
120+
<li><a href="v2.1.0.html">v2.1.0</a></li>
121+
<li><a href="v2.0.0.html">v2.0.0</a></li>
122+
</ul>
123+
</details>
111124

112-
v1.9.0.rst
113-
v1.8.0.rst
114-
v1.7.0.rst
115-
v1.6.0.rst
116-
v1.5.0.rst
117-
v1.4.0.rst
118-
v1.3.0.rst
119-
v1.2.0.rst
120-
v1.1.0.rst
121-
v1.0.3.rst
122-
v1.0.2.rst
123-
v1.0.1.rst
124-
v1.0.0.rst
125+
<details class="changelog-major">
126+
<summary>v1 <span class="count">(13 releases)</span></summary>
127+
<ul class="changelog-versions">
128+
<li><a href="v1.9.0.html">v1.9.0</a></li>
129+
<li><a href="v1.8.0.html">v1.8.0</a></li>
130+
<li><a href="v1.7.0.html">v1.7.0</a></li>
131+
<li><a href="v1.6.0.html">v1.6.0</a></li>
132+
<li><a href="v1.5.0.html">v1.5.0</a></li>
133+
<li><a href="v1.4.0.html">v1.4.0</a></li>
134+
<li><a href="v1.3.0.html">v1.3.0</a></li>
135+
<li><a href="v1.2.0.html">v1.2.0</a></li>
136+
<li><a href="v1.1.0.html">v1.1.0</a></li>
137+
<li><a href="v1.0.3.html">v1.0.3</a></li>
138+
<li><a href="v1.0.2.html">v1.0.2</a></li>
139+
<li><a href="v1.0.1.html">v1.0.1</a></li>
140+
<li><a href="v1.0.0.html">v1.0.0</a></li>
141+
</ul>
142+
</details>

docs/changelog/v1.0.0.rst

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ v1.0.0-beta
66
v1.0.0-beta is the **initial (beta) release of the OpenMV firmware** — the
77
first public build of the OpenMV Cam. It establishes the foundation everything
88
since builds on: a **MicroPython** scripting runtime on the STM32F4 OpenMV
9-
Cam, a camera ``sensor`` API, an ``image`` machine-vision library, and the
9+
Cam, a camera :mod:`sensor` API, an :mod:`image` machine-vision library, and the
1010
OpenMV IDE for live development. As the first release there is nothing to
1111
migrate from — this entry summarizes what the initial firmware shipped with.
1212

@@ -19,9 +19,9 @@ Highlights
1919

2020
- **MicroPython on the OpenMV Cam** — run Python scripts on the camera over
2121
USB with an interactive REPL and IDE debug interface.
22-
- **Camera capture** — the ``sensor`` module: configure pixel format /
22+
- **Camera capture** — the :mod:`sensor` module: configure pixel format /
2323
resolution / frame rate and grab frames with ``snapshot()``.
24-
- **Machine vision** — the ``image`` library: color blob detection, drawing,
24+
- **Machine vision** — the :mod:`image` library: color blob detection, drawing,
2525
filters, template matching, Haar-cascade face detection, and keypoints.
2626
- **OpenMV IDE** — a desktop IDE with a live framebuffer viewer, code editor,
2727
and in-IDE firmware update.
@@ -35,17 +35,17 @@ Scripting and modules:
3535

3636
- A MicroPython runtime as the firmware base, with on-camera script execution
3737
over a USB debug interface and an interactive REPL.
38-
- A ``sensor`` module — ``set_pixformat()`` / ``set_framesize()`` /
38+
- A :mod:`sensor` module — ``set_pixformat()`` / ``set_framesize()`` /
3939
``set_framerate()``, gain ceiling / brightness / contrast / gain controls,
4040
``reset()``, ``snapshot()``, and horizontal-mirror / vertical-flip — plus
4141
sensor and resolution constants.
42-
- An ``image`` machine-vision module (imlib) exposing image objects (with the
42+
- An :mod:`image` machine-vision module (imlib) exposing image objects (with the
4343
Python buffer protocol) and the image-processing surface below.
44-
- A ``time`` / ``clock`` module for timing and FPS measurement.
44+
- A :mod:`time` / ``clock`` module for timing and FPS measurement.
4545
- Early peripheral modules — ``led`` (RGB LED), ``spi``, ``gpio`` (pin I/O
4646
with external-interrupt registration), ``uart``, hardware ``rng``, a
47-
systick timer, and ``file`` / ``select`` for the filesystem.
48-
- Networking via ``socket`` / ``wlan`` (CC3000 WiFi), an ``lcd`` display
47+
systick timer, and ``file`` / :mod:`select` for the filesystem.
48+
- Networking via :mod:`socket` / ``wlan`` (CC3000 WiFi), an ``lcd`` display
4949
driver, an ``mlx90620`` thermal-sensor module, and AVI/MJPEG video
5050
recording.
5151

docs/changelog/v1.1.0.rst

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ v1.1.0
55

66
v1.1.0 is the foundational architecture release: it drops the early custom
77
peripheral modules in favor of standard **MicroPython built-ins**, moves the
8-
imaging API into the **``image``** module and the frame-rate clock into
9-
**``time``**, and adds built-in Haar cascades, ``get_pixel()`` / ``set_pixel()``,
8+
imaging API into the :mod:`image` module and the frame-rate clock into
9+
:mod:`time`, and adds built-in Haar cascades, ``get_pixel()`` / ``set_pixel()``,
1010
OpenMV 2 board support, and USB-CDC debugging. It is a heavily breaking,
1111
API-defining release — read the breaking changes below.
1212

@@ -18,11 +18,11 @@ Highlights
1818
----------
1919

2020
- **MicroPython built-ins** — the custom ``gpio`` / ``led`` / ``spi`` /
21-
``socket`` / ``wlan`` / ``uart`` / ``file`` / ``select`` modules were
22-
removed in favor of MicroPython's ``pyb`` / ``machine``.
23-
- **``image`` module** — ``Image()`` / ``HaarCascade()`` / descriptors are
24-
now in the ``image`` module.
25-
- **``time.clock()``** — the frame-rate clock moved into the ``time`` module.
21+
:mod:`socket` / ``wlan`` / ``uart`` / ``file`` / :mod:`select` modules were
22+
removed in favor of MicroPython's :mod:`pyb` / :mod:`machine`.
23+
- :mod:`image` module — ``Image()`` / ``HaarCascade()`` / descriptors are
24+
now in the :mod:`image` module.
25+
- :class:`time.clock` — the frame-rate clock moved into the :mod:`time` module.
2626
- **Built-in Haar cascades** — ``HaarCascade("frontalface")`` /
2727
``HaarCascade("eye")`` (no file needed).
2828
- **OpenMV 2** board support and USB-CDC debugging.
@@ -37,9 +37,9 @@ New features
3737
(``HaarCascade("frontalface")`` / ``HaarCascade("eye")``) and a ``stages=``
3838
keyword to limit cascade stages; ``draw_string()`` works on grayscale
3939
images.
40-
- **Sensor** — added ``sensor.set_colorbar()``, ``sensor.set_saturation()``,
40+
- **Sensor** — added :func:`sensor.set_colorbar`, :func:`sensor.set_saturation`,
4141
and the ``QQVGA2`` framesize.
42-
- **``mlx``** — ``mlx.read(type)`` with ``mlx.RAINBOW`` / ``mlx.GRAYSCALE``
42+
- ``mlx`` — ``mlx.read(type)`` with ``mlx.RAINBOW`` / ``mlx.GRAYSCALE``
4343
output.
4444
- **Debugging** — implemented debugging over USB CDC, a firmware
4545
``fw_version()`` query, per-board firmware (OpenMV 1 / OpenMV 2), and
@@ -52,7 +52,7 @@ Other changes and improvements
5252
run with exception re-raise so errors print instead of crashing; the serial
5353
baud rate is configurable (default 921600); a larger flash filesystem; the
5454
sensor pixel clock was lowered to 54 MHz for capture stability;
55-
``sensor.reset()`` relies on a sensor soft reset only.
55+
:func:`sensor.reset` relies on a sensor soft reset only.
5656

5757
Bug fixes
5858
---------
@@ -89,32 +89,32 @@ Each commit hash links to its diff on GitHub.
8989
Custom peripheral modules removed *(major)*
9090
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9191

92-
The early custom ``clock`` / ``file`` / ``gpio`` / ``led`` / ``select`` /
93-
``socket`` / ``spi`` / ``wlan`` / ``uart`` modules were removed in favor of
94-
MicroPython's built-in ``pyb`` / ``machine`` peripherals. Port scripts to the
95-
standard MicroPython equivalents (e.g. ``pyb.Pin`` / ``pyb.LED`` / ``pyb.SPI``
96-
/ ``pyb.UART``).
92+
The early custom ``clock`` / ``file`` / ``gpio`` / ``led`` / :mod:`select` /
93+
:mod:`socket` / ``spi`` / ``wlan`` / ``uart`` modules were removed in favor of
94+
MicroPython's built-in :mod:`pyb` / :mod:`machine` peripherals. Port scripts to the
95+
standard MicroPython equivalents (e.g. :class:`pyb.Pin` / :class:`pyb.LED` / :class:`pyb.SPI`
96+
/ :class:`pyb.UART`).
9797

9898
*Commits:* `6d2fafa94 <https://github.com/openmv/openmv/commit/6d2fafa94>`__
9999

100100
.. _v1_1_0_image:
101101

102-
Imaging API moved into the ``image`` module *(major)*
102+
Imaging API moved into the :mod:`image` module *(major)*
103103
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
104104

105105
``Image()``, ``HaarCascade()``, and the descriptor save/load functions are no
106-
longer bare builtins — they live in the new ``image`` module. Scripts must
107-
``import image`` and use ``image.Image()`` / ``image.HaarCascade()``.
106+
longer bare builtins — they live in the new :mod:`image` module. Scripts must
107+
``import image`` and use :class:`image.Image` / :func:`image.HaarCascade`.
108108

109109
*Commits:* `54288c535 <https://github.com/openmv/openmv/commit/54288c535>`__
110110

111111
.. _v1_1_0_clock:
112112

113-
Frame-rate clock moved into ``time`` *(major)*
113+
Frame-rate clock moved into :mod:`time` *(major)*
114114
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
115115

116116
The standalone ``clock`` module was removed; the frame-rate clock now lives
117-
in ``time``. Use ``import time`` and ``clock = time.clock()`` — the returned
117+
in :mod:`time`. Use ``import time`` and ``clock = time.clock()`` — the returned
118118
object still provides ``.tick()`` / ``.fps()`` / ``.avg()`` / ``.reset()``.
119119

120120
*Commits:* `a8928ca3b <https://github.com/openmv/openmv/commit/a8928ca3b>`__
@@ -138,9 +138,9 @@ Migration checklist
138138

139139
For a clean port to v1.1.0 the typical work is:
140140

141-
#. Replace the custom ``gpio`` / ``led`` / ``spi`` / ``uart`` / ``socket`` /
142-
``wlan`` / ``file`` / ``select`` modules with MicroPython ``pyb`` /
143-
``machine`` (:ref:`the custom-module removal <v1_1_0_custommodules>`).
141+
#. Replace the custom ``gpio`` / ``led`` / ``spi`` / ``uart`` / :mod:`socket` /
142+
``wlan`` / ``file`` / :mod:`select` modules with MicroPython :mod:`pyb` /
143+
:mod:`machine` (:ref:`the custom-module removal <v1_1_0_custommodules>`).
144144
#. ``import image`` and prefix ``Image()`` / ``HaarCascade()`` with
145145
``image.`` (:ref:`the image module move <v1_1_0_image>`).
146146
#. Use ``import time`` and ``clock = time.clock()``

0 commit comments

Comments
 (0)