-
Notifications
You must be signed in to change notification settings - Fork 7.6k
boards: frdm_mcxn947: turn OV7670 into a shield #89131
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
boards: frdm_mcxn947: turn OV7670 into a shield #89131
Conversation
Tested with UVC (by cherry-picking commits): Before: After: It does not really look like correct data, but it is showing the same thing before and after, which shows the current PR does not break the sensor operation. :) [EDIT: no problem with other hardware on UVC (i.e. Arducam Nicla or virtual source), I'll try with other sensors to debug this, which this PR helps doing] |
a0d81be
to
e03e9da
Compare
e03e9da
to
283745b
Compare
cb237fc
to
b1d86c1
Compare
b1d86c1
to
29d6608
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces support for using the Olimex OV7670 camera with the FRDM-MCXN947 board by adding a new shield configuration and related GPIO nexus definitions. Key changes include:
- Adding a new board configuration entry in the sample YAML file for frdm_mcxn947 using the set shield parameters.
- Introducing a new header file (dvp-20pin-connector.h) defining pin mappings for the Arducam DVP 20-pin connector.
- Updating vendor prefixes and adding a device tree binding YAML for the new arducam,dvp-20pin-connector.
Reviewed Changes
Copilot reviewed 4 out of 11 changed files in this pull request and generated 2 comments.
File | Description |
---|---|
samples/drivers/video/capture/sample.yaml | Added new board configuration for frdm_mcxn947 shield. |
include/zephyr/dt-bindings/gpio/dvp-20pin-connector.h | Added definitions for the Arducam DVP 20-pin connector. |
dts/bindings/vendor-prefixes.txt | Included vendor prefix for Arducam. |
dts/bindings/gpio/arducam,dvp-20pin-connector.yaml | Added YAML binding for the Arducam DVP 20-pin connector nexus. |
Files not reviewed (7)
- boards/nxp/frdm_mcxn947/frdm_mcxn947.dtsi: Language not supported
- boards/shields/dvp_20pin_ov7670/Kconfig.shield: Language not supported
- boards/shields/dvp_20pin_ov7670/doc/index.rst: Language not supported
- boards/shields/dvp_20pin_ov7670/dvp_20pin_ov7670.overlay: Language not supported
- boards/shields/dvp_fpc24_mt9m114/Kconfig.shield: Language not supported
- samples/drivers/video/capture/README.rst: Language not supported
- samples/drivers/video/capture/boards/frdm_mcxn947_cpu0.overlay: Language not supported
58bba81
to
c4107f8
Compare
0e3dc17
to
d7b3565
Compare
Force-push:
Tested again using UVC temporarily cherry-picked on top. |
******** | ||
|
||
This series of shields supports the camera modules which use a 18-pin connector compatible with | ||
the ``arducam,dvp-20pin-connector`` to connect a devkit to an OV7670 image sensor via DVP |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the ``arducam,dvp-20pin-connector`` to connect a devkit to an OV7670 image sensor via DVP | |
the :dtcompatible:`arducam,dvp-20pin-connector` to connect a devkit to an OV7670 image sensor via DVP |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good to know!
Requirements | ||
************ | ||
|
||
This shield can be used with any board which provides a 18 or 20-pin header spread over two rows |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This shield can be used with any board which provides a 18 or 20-pin header spread over two rows | |
This shield can be used with any board that provides an 18 or 20-pin header spread over two rows |
GPIO pins exposed on ArduCam 20-pin header camera connector, | ||
originally designed to connect Arducam modules to Arduino Giga R1, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This makes sure there is a short "title" instead of the otherwise long sentence.
You may also used the new-ish title
property, actually.
GPIO pins exposed on ArduCam 20-pin header camera connector, | |
originally designed to connect Arducam modules to Arduino Giga R1, | |
GPIO pins exposed on ArduCam 20-pin header camera connector. | |
Originally designed to connect Arducam modules to Arduino Giga R1, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seemed a bit long for a title looking at #86533 so tried to balance it out.
#define DVP_20PIN_SCL 3 /**< I2C pin */ | ||
#define DVP_20PIN_SDA 4 /**< I2C pin */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: explicit better one is clock the other is data?
Add the 20-pin camera connector used by at least Arducam, Waveshare, Olimex, Arduino, NXP, ST, Adafruit that connects image sensor module boards and devkits. Signed-off-by: Josuah Demangeon <me@josuah.net>
The OV7670 was defined as part of the FRDM-MCXN947 board attached to the SmartDMA and I2C peripheral. Migrate the devicetree to a reusable shield that can be swapped with other image sensors. Signed-off-by: Josuah Demangeon <me@josuah.net>
Add FRDM-MCXN947 to the video capture sample documentation and twister YAML configuration, using the DVP OV7670 camera module newly introduced. Signed-off-by: Josuah Demangeon <me@josuah.net>
The script zephyr/scripts/kconfig/kconfigfunctions.py used by Kconfig's "shields_list_contains" searches shield names in lower-case, like they are passed through the SHIELD in CMake, --shield argument in west. Make the mt9m114 shield upper-case. This has no effect currently as this Kconfig entry is not used anywhere in Zephyr. Signed-off-by: Josuah Demangeon <me@josuah.net>
d7b3565
to
5aa807e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks !
Dependencies:
The FRDM-MCXN board is featuring an Arducam connector originally designed for the Arduino GIGA R1, and spread broadly since then for inexpensive OmniVision and low-power Himax image sensor modules.
Other modules than the Olimex OV7670 can be used.
This also proposes an
arducam,dvp-20pin-connector
GPIO nexus:https://github.com/zephyrproject-rtos/zephyr/pull/89131/files#diff-a39283efe7f5b76e206c8d2b9b65c4b45d130ceb1aa6bb8a0083486793172537