Skip to content

Commit cd622f8

Browse files
committed
docs/openmvcam: Polish Arduino board quickref pages.
Reworked the Nicla Vision, Portenta H7, and Giga R1 WiFi quickref pages to a consistent direct/reference style: comprehensive pin reference tables, separated power / battery / power-path sections, full PWM/UART/I²C/SPI/CAN bus tables, M4 core (open-amp) sections, and documented Vision-Shield- and Display-Shield-specific peripherals (camera, LoRa, Ethernet, microSD, GT911 touch, BMI270 IMU, IS31FL3197 RGB LED, audio jack DAC line-out and analog mic on A7). Also tightened the boot/runtime info on every STM32 board: matched 'Arduino bootloader' wording, added the USB MSC block-device caching note and the red-LED activity note where applicable, and split the SD-card override / SKIPSD paragraphs to mirror the RT1062 layout.
1 parent c29a66e commit cd622f8

14 files changed

Lines changed: 1327 additions & 433 deletions
-294 KB
Loading

docs/openmvcam/quickref/arduino-giga-r1-wifi.rst

Lines changed: 539 additions & 235 deletions
Large diffs are not rendered by default.

docs/openmvcam/quickref/arduino-nano-33-ble-sense.rst

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,9 @@ The on‑board MP34DT05 PDM microphone is captured through
274274
audio.init(channels=1, frequency=16000, gain_db=24)
275275
audio.start_streaming(loudness)
276276

277+
while True:
278+
pass
279+
277280
Bluetooth LE
278281
~~~~~~~~~~~~
279282

@@ -510,6 +513,16 @@ drive on the host, letting you edit ``boot.py``, ``main.py``, and any
510513
other files directly. **Eject the drive before resetting the board**
511514
so the host flushes its cached writes.
512515

516+
Storage sizes
517+
~~~~~~~~~~~~~
518+
519+
The Nano 33 BLE Sense ships with:
520+
521+
* ``/flash`` — **64 KB** FAT filesystem, read/write.
522+
523+
The Nano 33 BLE Sense build does not include a ROMFS; ship Python
524+
modules on ``/flash`` directly.
525+
513526
Software libraries
514527
------------------
515528

docs/openmvcam/quickref/arduino-nano-rp2040-connect.rst

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ The Arduino Nano RP2040 Connect is a 45 × 18 mm Arduino‑Nano‑form‑factor
1313
board built around the Raspberry Pi RP2040 — a dual ARM Cortex‑M0+
1414
running at 133 MHz with 264 KB of internal SRAM. Wireless and BLE
1515
come from a U‑blox NINA‑W102 module, and the board carries an LSM6DSOX
16-
6‑axis IMU, an MP34DT06 PDM microphone, and an ATECC608A secure
17-
element. Compared with the OpenMV camera boards, the Nano RP2040
16+
6‑axis IMU and an MP34DT06 PDM microphone. Compared with the
17+
OpenMV camera boards, the Nano RP2040
1818
Connect has **no on‑board image sensor** — the OpenMV firmware here
1919
is mostly used for sensor fusion, audio capture, and wireless work.
2020

@@ -39,7 +39,6 @@ Highlights
3939
the frozen :class:`lsm6dsox.LSM6DSOX` driver.
4040
* **MP34DT06** PDM microphone captured through PIO using
4141
:doc:`/library/omv.audio`.
42-
* **ATECC608A** secure element on the same I²C bus as the IMU.
4342
* **20 user I/O pins** on the standard Nano headers — D2–D13
4443
(digital) plus A0–A7 (analog). Four of the analog pins (A4–A7)
4544
route through the NINA module's I/O extender.
@@ -175,7 +174,7 @@ IMU
175174
~~~
176175

177176
The on‑board LSM6DSOX 6‑axis accelerometer + gyroscope sits on
178-
``I2C0`` (the same bus as the secure element). The rp2 port's
177+
``I2C0``. The rp2 port's
179178
``machine.I2C(0)`` defaults to a different pin set, so pass the
180179
silkscreened ``SDA``/``SCL`` pads explicitly. Use the frozen
181180
:class:`lsm6dsox.LSM6DSOX` driver::
@@ -210,6 +209,9 @@ The on‑board MP34DT06 PDM microphone is captured through
210209
audio.init(channels=1, frequency=16000, gain_db=24)
211210
audio.start_streaming(loudness)
212211

212+
while True:
213+
pass
214+
213215
Wi‑Fi
214216
~~~~~
215217

@@ -315,9 +317,8 @@ works without explicit pins — using ``A0``/``A1`` as I²C consumes
315317
those pins for the bus, so you can't simultaneously use them as ADC
316318
inputs.
317319

318-
The on‑board IMU and secure element share **bus 0**; user I²C devices
319-
on the same bus must avoid the LSM6DSOX address (``0x6A``) and the
320-
ATECC608A address (``0x60``).
320+
The on‑board IMU sits on **bus 0**; user I²C devices on the same
321+
bus must avoid the LSM6DSOX address (``0x6A``).
321322

322323
SPI
323324
~~~
@@ -480,6 +481,16 @@ drive on the host, letting you edit ``boot.py``, ``main.py``, and any
480481
other files directly. **Eject the drive before resetting the board**
481482
so the host flushes its cached writes.
482483

484+
Storage sizes
485+
~~~~~~~~~~~~~
486+
487+
The Nano RP2040 Connect ships with:
488+
489+
* ``/flash`` — **14 MB** FAT filesystem, read/write.
490+
491+
The Nano RP2040 build does not include a ROMFS; ship Python
492+
modules and ML models on ``/flash`` directly.
493+
483494
Software libraries
484495
------------------
485496

docs/openmvcam/quickref/arduino-nicla-vision.rst

Lines changed: 74 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ Highlights
3131
microphone** (MP34DT06JTR), and **VL53L1CB** time‑of‑flight ranger
3232
(up to ~4 m).
3333
* **Wi‑Fi b/g/n** (2.4 GHz) + **Bluetooth LE 5.1** via the Murata
34-
1DX (CYW4343W) module — uses the supplied **U.FL antenna**.
34+
1DX (CYW4343W) module — connects to the supplied antenna via an
35+
on‑board **U.FL connector**.
3536
* **High‑speed USB** (480 Mb/s) over **Micro USB** through an
3637
external ULPI PHY (USB3320C).
3738
* **13 user I/O pins** on the Arduino edge headers — four digital
@@ -174,7 +175,7 @@ Recovery and debug pins
174175
reset.
175176

176177
The Nicla Vision uses Arduino's standard **double‑tap reset** to
177-
enter the STM32H747 ROM bootloader — quickly press the reset button
178+
enter Arduino's bootloader — quickly press the reset button
178179
twice and the board enumerates as a DFU device. OpenMV IDE uses this
179180
mode to reflash the firmware.
180181

@@ -185,7 +186,7 @@ adapter:
185186

186187
* **P1 / P2** — internal **PMIC** I²C bus on PF0 (SDA) and PF1
187188
(SCL). This is ``machine.I2C(2)`` on the Nicla Vision and carries
188-
the PMIC, fuel gauge, ToF, and crypto element traffic.
189+
the PMIC, fuel gauge, and ToF traffic.
189190
* **P3** — TMS / SWDIO (PA13)
190191
* **P4** — TCK / SWCLK (PA14)
191192
* **P5** — NRST
@@ -234,8 +235,52 @@ The GC2145 is driven through the :doc:`/library/omv.csi` module::
234235
while True:
235236
img = cam.snapshot()
236237

237-
The sensor is connected by a small flex cable to a connector on the
238-
back of the board.
238+
When you ask for a small framesize the GC2145 driver crops a
239+
proportionally small readout window from the sensor — by default
240+
the readout-to-output downscale ratio is capped at 3x to keep the
241+
frame rate up. `csi.IOCTL_SET_FOV_WIDE` raises that cap to 5x,
242+
which means the driver pulls from a wider area of the sensor when
243+
streaming small resolutions. The result is a noticeably wider field
244+
of view at small framesizes, at the cost of some throughput::
245+
246+
cam.ioctl(csi.IOCTL_SET_FOV_WIDE, True)
247+
cam.ioctl(csi.IOCTL_GET_FOV_WIDE) # returns the current setting
248+
249+
M4 core
250+
~~~~~~~
251+
252+
The Cortex‑M4 core is exposed through :doc:`openamp </library/openamp>`
253+
for inter‑processor communication. The OpenMV firmware runs on the
254+
M7 only; the M4 has no MicroPython runtime of its own, so using it
255+
means building a separate C firmware image and loading it from the
256+
filesystem via :class:`openamp.RemoteProc`.
257+
Pre‑built example firmware that implements a virtual UART endpoint
258+
is available in the
259+
`openamp_vuart <https://github.com/iabdalkader/openamp_vuart>`_
260+
repository — follow its README to build ``vuart.elf``::
261+
262+
import openamp
263+
import time
264+
265+
def ept_recv_callback(src_addr, data):
266+
print("Received:", data.decode())
267+
268+
ept = openamp.Endpoint("vuart-channel", callback=ept_recv_callback)
269+
270+
rproc = openamp.RemoteProc("vuart.elf")
271+
rproc.start()
272+
273+
count = 0
274+
while True:
275+
if ept.is_ready():
276+
ept.send("Hello World %d!" % count, timeout=1000)
277+
count += 1
278+
time.sleep_ms(1000)
279+
280+
In practice this support is best treated as a demonstration of the
281+
openamp interface rather than a working dual‑core platform — the
282+
M4 cannot be reset independently of the M7, so stopping the M4
283+
forces a full system reboot.
239284

240285
Microphone
241286
~~~~~~~~~~
@@ -258,6 +303,9 @@ example, a simple loudness detector::
258303
audio.init(channels=1, frequency=16000, gain_db=24)
259304
audio.start_streaming(loudness)
260305

306+
while True:
307+
pass
308+
261309
IMU
262310
~~~
263311

@@ -438,7 +486,7 @@ Wi‑Fi
438486

439487
The on‑board Murata 1DX (CYW4343W) is exposed via
440488
:doc:`/library/network` as a station interface. Connect the supplied
441-
**U.FL antenna** to the ``J6`` connector before bringing up the
489+
antenna to the on‑board **U.FL connector** before bringing up the
442490
radio::
443491

444492
import network, time
@@ -716,7 +764,7 @@ Firmware update (DFU)
716764
~~~~~~~~~~~~~~~~~~~~~
717765

718766
The Nicla Vision uses Arduino's standard **double‑tap reset** to
719-
enter the STM32H747 ROM bootloader. Quickly press the reset button
767+
enter Arduino's bootloader. Quickly press the reset button
720768
twice — the board re‑enumerates over USB as a DFU device and OpenMV
721769
IDE can flash a new firmware image.
722770

@@ -768,7 +816,25 @@ resetting the camera** so the host flushes its cached writes.
768816
created or modified by code running on the camera will not show
769817
up until the host re‑mounts the drive. If both the OS and the
770818
camera write the same filesystem at the same time, the OS will
771-
win and overwrite changes made by the camera.
819+
win and overwrite changes made by the camera. Use the SD card for
820+
any data the script writes back, and remount before reading those
821+
files from the host.
822+
823+
.. note::
824+
825+
The user RGB LED's **red** channel may briefly light up while the
826+
host is reading from or writing to the USB mass‑storage drive —
827+
this is a firmware‑driven activity indicator, not a fault.
828+
829+
Storage sizes
830+
~~~~~~~~~~~~~
831+
832+
The Nicla Vision ships with:
833+
834+
* ``/flash`` — **11 MB** FAT filesystem, read/write.
835+
* ``/rom`` — **4 MB** read-only memory-mapped ROMFS, used to
836+
ship scripts and ML models that benefit from zero-copy mmap
837+
access.
772838

773839
Hard‑fault indicator
774840
~~~~~~~~~~~~~~~~~~~~

0 commit comments

Comments
 (0)