mirror of
https://github.com/openmv/openmv.git
synced 2025-09-26 23:09:13 +08:00
docs: Update docs.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
This commit is contained in:
parent
c828a1d439
commit
fe7277abda
@ -27,7 +27,7 @@ The first generation of OpenMV cameras is based on STM32 ARM Cortex-M Digital Si
|
|||||||
The OpenMV project was successfully funded via Kickstarter back in 2015 and has come a long way since then. For more information, please visit [https://openmv.io](https://openmv.io)
|
The OpenMV project was successfully funded via Kickstarter back in 2015 and has come a long way since then. For more information, please visit [https://openmv.io](https://openmv.io)
|
||||||
|
|
||||||
## TensorFlow support
|
## TensorFlow support
|
||||||
The OpenMV firmware supports loading quantized TensorFlow Lite models. The firmware supports loading external models that reside on the filesystem to memory (on boards with SDRAM), and internal models (embedded into the firmware) in place. To load an external TensorFlow model from the filesystem from Python use [`tf`](https://docs.openmv.io/library/omv.tf.html) Python module. For information on embedding TensorFlow models into the firmware, and loading them, please see [TensorFlow Support](https://github.com/openmv/openmv/blob/master/src/lib/libtf/README.md).
|
The OpenMV firmware supports loading quantized TensorFlow Lite models. The firmware supports loading external models that reside on the filesystem to memory (on boards with SDRAM), and internal models (embedded into the firmware) in place. To load an external TensorFlow model from the filesystem from Python use [`tf`](https://docs.openmv.io/library/omv.tf.html) Python module. For information on embedding TensorFlow models into the firmware, and loading them, please see [TensorFlow Support](https://github.com/openmv/openmv/blob/master/lib/tflm/README.md).
|
||||||
|
|
||||||
## Interface library
|
## Interface library
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ The above code works for Windows, Mac, or Linux. You just need to change the abo
|
|||||||
|
|
||||||
## Building the firmware from source
|
## Building the firmware from source
|
||||||
|
|
||||||
The easiest way to patch the firmware and rebuild it, is to fork this repository, enable Actions (from the Actions tab) in the forked repository, and pushing the changes. Our GitHub workflow rebuilds the firmware on pushes to the master branch and/or merging pull requests and generates a development release with attached separate firmware packages per supported board. For more complex changes, and building the OpenMV firmware from source locally, see [Building the Firmware From Source](https://github.com/openmv/openmv/blob/master/src/README.md).
|
The easiest way to patch the firmware and rebuild it, is to fork this repository, enable Actions (from the Actions tab) in the forked repository, and pushing the changes. Our GitHub workflow rebuilds the firmware on pushes to the master branch and/or merging pull requests and generates a development release with attached separate firmware packages per supported board. For more complex changes, and building the OpenMV firmware from source locally, see [Building the Firmware From Source](https://github.com/openmv/openmv/blob/master/docs/firmware.md).
|
||||||
|
|
||||||
## Contributing to the project
|
## Contributing to the project
|
||||||
|
|
||||||
@ -118,5 +118,5 @@ ports/stm32/main.c: Fix storage label.
|
|||||||
Most of the code in the repository is licensed under the MIT license, with the following exceptions:
|
Most of the code in the repository is licensed under the MIT license, with the following exceptions:
|
||||||
|
|
||||||
* Some image library code is licensed under the GPL. This includes AGAST, LSD, and ZBAR. GPL code can be completely disabled in a build by defining `OMV_NO_GPL` in the `imlib_config.h` files.
|
* Some image library code is licensed under the GPL. This includes AGAST, LSD, and ZBAR. GPL code can be completely disabled in a build by defining `OMV_NO_GPL` in the `imlib_config.h` files.
|
||||||
* Third-party libraries and drivers in `src/lib` and `src/drivers` are licensed under various permissive licenses. Please consult the LICENSE file in each driver/library subdirectory for more details.
|
* Third-party libraries and drivers in `lib` and `drivers` are licensed under various permissive licenses. Please consult the LICENSE file in each driver/library subdirectory for more details.
|
||||||
* Some drivers, modules, and libraries in OpenMV are proprietary and available for non-commercial use only. These proprietary components can be disabled during the build process. Official OpenMV hardware and licensed devices may use the proprietary code. For commercial licensing options, contact openmv@openmv.io.
|
* Some drivers, modules, and libraries in OpenMV are proprietary and available for non-commercial use only. These proprietary components can be disabled during the build process. Official OpenMV hardware and licensed devices may use the proprietary code. For commercial licensing options, contact openmv@openmv.io.
|
||||||
|
@ -28,7 +28,7 @@ make TARGET=<TARGET_NAME>
|
|||||||
```
|
```
|
||||||
|
|
||||||
When the firmware build is done, the build artifacts should be located in `docker/build/<TARGET_NAME>`.
|
When the firmware build is done, the build artifacts should be located in `docker/build/<TARGET_NAME>`.
|
||||||
> Note: `TARGET_NAME` is one of the [supported boards](https://github.com/openmv/openmv/tree/master/src/omv/boards).
|
> Note: `TARGET_NAME` is one of the [supported boards](https://github.com/openmv/openmv/tree/master/boards).
|
||||||
|
|
||||||
## Linux Build
|
## Linux Build
|
||||||
|
|
||||||
@ -61,21 +61,21 @@ The above command will clone this repository along with all of its submodules re
|
|||||||
git clone --depth=1 https://github.com/openmv/openmv.git
|
git clone --depth=1 https://github.com/openmv/openmv.git
|
||||||
cd openmv
|
cd openmv
|
||||||
git submodule update --init --depth=1 --no-single-branch
|
git submodule update --init --depth=1 --no-single-branch
|
||||||
git -C src/lib/micropython/ submodule update --init --depth=1
|
git -C lib/micropython/ submodule update --init --depth=1
|
||||||
```
|
```
|
||||||
|
|
||||||
### Build the firmware
|
### Build the firmware
|
||||||
To build the firmware, run the following commands inside the openmv repository:
|
To build the firmware, run the following commands inside the openmv repository:
|
||||||
```bash
|
```bash
|
||||||
cd openmv
|
cd openmv
|
||||||
make -j$(nproc) -C src/lib/micropython/mpy-cross # Builds Micropython mpy cross-compiler
|
make -j$(nproc) -C lib/micropython/mpy-cross # Builds Micropython mpy cross-compiler
|
||||||
make -j$(nproc) TARGET=<TRAGET_NAME> -C src # Builds the OpenMV firmware
|
make -j$(nproc) TARGET=<TRAGET_NAME> # Builds the OpenMV firmware
|
||||||
```
|
```
|
||||||
|
|
||||||
> Note: `TARGET_NAME` is one of the [supported boards](https://github.com/openmv/openmv/tree/master/src/omv/boards).
|
> Note: `TARGET_NAME` is one of the [supported boards](https://github.com/openmv/openmv/tree/master/boards).
|
||||||
|
|
||||||
### Build artifacts
|
### Build artifacts
|
||||||
When the firmware build is done, the build artifacts should be located in `src/build/bin`. Note the build artifacts depend on the target board, for example whether a bootloader or UVC binaries are generated or not depends on the target board's configuration. However, generally speaking the following files are generated:
|
When the firmware build is done, the build artifacts should be located in `build/bin`. Note the build artifacts depend on the target board, for example whether a bootloader is generated or not depends on the target board's configuration. However, generally speaking the following files are generated:
|
||||||
```
|
```
|
||||||
* bootloader.bin # Bootloader Binary Image (not directly used)
|
* bootloader.bin # Bootloader Binary Image (not directly used)
|
||||||
* bootloader.dfu # Bootloader DFU Image (not directly used)
|
* bootloader.dfu # Bootloader DFU Image (not directly used)
|
||||||
@ -85,13 +85,11 @@ When the firmware build is done, the build artifacts should be located in `src/b
|
|||||||
* firmware.elf # Firmware ELF Image (used to generate the BIN/DFU Files)
|
* firmware.elf # Firmware ELF Image (used to generate the BIN/DFU Files)
|
||||||
* openmv.bin # Combined Bootloader+Firmware Binary Image (not directly used)
|
* openmv.bin # Combined Bootloader+Firmware Binary Image (not directly used)
|
||||||
* openmv.dfu # Combined Bootloader+Firmware DFU Image (Used by `Tools->Run Bootloader` in OpenMV IDE)
|
* openmv.dfu # Combined Bootloader+Firmware DFU Image (Used by `Tools->Run Bootloader` in OpenMV IDE)
|
||||||
* uvc.bin # Alternative UVC Binary Image (not directly used)
|
* romfs<n>.img # ROM filesystem image
|
||||||
* uvc.dfu # Alternative UVC DFU Image (not directly used)
|
|
||||||
* uvc.elf # Alternative UVC ELF Image (used to generate the BIN/DFU Files)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Notes on building the firmware in a Virtual Machine
|
### Notes on building the firmware in a Virtual Machine
|
||||||
* When building the firmware inside of a Linux Virtual Machine, shared folders should be used to make the `src/build/bin` folder inside the VM available to the host OS. If using VMware, this can be done by going to `Player->Manage -> Virtual Machine Settings -> Options -> Shared Folders` and adding a shared folder named `shared` on the host OS. The shared folder will appear in Linux (for Ubuntu) under `/mnt/hgfs/shared/`. Any files copied to that path appear in the host OS inside of the shared folder. To copy firmware after the build into that folder run `mv build/bin/* /mnt/hgfs/shared/`.
|
* When building the firmware inside of a Linux Virtual Machine, shared folders should be used to make the `build/bin` folder inside the VM available to the host OS. If using VMware, this can be done by going to `Player->Manage -> Virtual Machine Settings -> Options -> Shared Folders` and adding a shared folder named `shared` on the host OS. The shared folder will appear in Linux (for Ubuntu) under `/mnt/hgfs/shared/`. Any files copied to that path appear in the host OS inside of the shared folder. To copy firmware after the build into that folder run `mv build/bin/* /mnt/hgfs/shared/`.
|
||||||
|
|
||||||
* OpenMV IDE's bootloader will have trouble connecting to your OpenMV Cam from inside of a virtual machine. You can download OpenMV IDE [here](https://openmv.io/pages/download). *To be clear, OpenMV IDE can connect to an OpenMV Cam from inside of a virtual machine, however OpenMV IDE's bootloader needs to connect to the OpenMV Cam using a timing critical handshake that generally fails when you introduce moving USB devices around between the Host OS and a Virtual Machine*.
|
* OpenMV IDE's bootloader will have trouble connecting to your OpenMV Cam from inside of a virtual machine. You can download OpenMV IDE [here](https://openmv.io/pages/download). *To be clear, OpenMV IDE can connect to an OpenMV Cam from inside of a virtual machine, however OpenMV IDE's bootloader needs to connect to the OpenMV Cam using a timing critical handshake that generally fails when you introduce moving USB devices around between the Host OS and a Virtual Machine*.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user