Auto-generated PDF datasheets for all OpenMV products — cameras, shields, sensors, lenses, and accessories.
pip install -r requirements.txt
python build.py # Build all datasheets
python build.py openmv-cam-h7 # Build a specific product
python build.py --list # List available productsOutput PDFs are written to output/ organized by category:
output/
cameras/ # OpenMV Cam boards
shields/ # Expansion shields
sensors/ # Camera modules
lenses/ # M8 and M12 lenses
accessories/ # Cases, cables, filters, breakouts
Built datasheets are also deployed to the datasheets-build branch on every push to main.
Product cover images can be generated as cartoon-style illustrations using OpenAI's image generation API. Generated images are stored in generated/<category>/ and are automatically used by the build system when available, falling back to the original product photos in the media/ submodule.
export OPENAI_API_KEY=sk-...
python generate_images.py # Generate missing images for all products
python generate_images.py m8-fish-eye-lens # Generate for a specific product
python generate_images.py --force # Regenerate all images
python generate_images.py --list # See which images exist/missingTo revert any product to its original photo, simply delete its file from generated/.
| Category | Count | Description |
|---|---|---|
| Cameras | 10 | OpenMV Cam boards (M4, M7, H7, RT1062, AE3, N6, Pure Thermal) |
| Shields | 22 | Expansion shields (servo, motor, PoE, CAN, relay, LCD, WiFi, etc.) |
| Sensors | 8 | Camera modules (OV5640, FLIR, GENX320, global shutter, etc.) |
| Lenses | 8 | M8 and M12 lenses (wide angle, telephoto, fish eye, IR) |
| Accessories | 7 | Cases, cables, filters, lens mounts, breakouts |
products/ # YAML product data files (one per product)
cameras/
shields/
sensors/
lenses/
accessories/
src/
engine.py # PDF generation engine (ReportLab)
styles.py # Shared styles, colors, fonts
media/ # Product photos (git submodule)
generated/ # AI-generated cartoon images (by category)
output/ # Built PDF datasheets
build.py # Build system
generate_images.py # Image generation script
Contributions are most welcome. If you are interested in contributing to the project, start by creating a fork of the following repository:
Clone the forked repository, and add a remote to the main repository:
git clone --recursive https://github.com/<username>/openmv-datasheets.git
git -C openmv-datasheets remote add upstream https://github.com/openmv/openmv-datasheets.gitNow the repository is ready for pull requests. To send a pull request, create a new feature branch and push it to origin, and use GitHub to create the pull request from the forked repository to the upstream openmv/openmv-datasheets repository. For example:
git checkout -b <some_branch_name>
<commit changes>
git push origin -u <some_branch_name>Please follow the best practices when sending pull requests upstream. In general, the pull request should:
- Fix one problem. Don't try to tackle multiple issues at once.
- Split the changes into logical groups using git commits.
- Pull request title should be less than 78 characters, and match this pattern:
<scope>:<1 space><description><.>
- Commit subject line should be less than 78 characters, and match this pattern:
<scope>:<1 space><description><.>
