Before explaining how to make your own OpenMV, let's first understand what OpenMV is?
OpenMV is a foreign open source project and a small development board designed for embedded machine vision applications. Its core advantage lies in the integration of powerful image processing capabilities, programmability and ease of use, and is particularly suitable for computer vision, image processing, artificial intelligence, machine learning and other fields. The OpenMV development board supports programming using Python, combined with an easy-to-use IDE and rich library support, it can achieve tasks from basic image recognition to complex machine vision.
In short: OpenMV is a programmable camera, and through the MicroPython language (ie Python), you can implement the logic you want the camera to run. The camera itself has some built-in image processing algorithms and is very easy to use. You can refer to the following pictures for the appearance:

What can OpenMV do? :
1. Embedded machine vision: Through OpenMV, you can make some innovative projects, learn the interest of computer vision, and understand how algorithms such as Fourier transform, wavelet transform, and filtering can be applied to real life.
2. Embedded industrial solutions with high cost requirements, such as sorting of assembly line items, etc.
What abilities are required to learn OpenMV? :
1. Have experience in learning Python programming language, understand logical statements such as if else, and know concepts such as variable assignment.
2. Have object-oriented concepts, understand concepts such as classes, objects, and methods.
3. Have basic concepts of microcontrollers, understand concepts such as IO ports, voltages, and serial ports.
Why DIY an OpenMV instead of buying it directly on the official website? :
Make OpenMV by yourself: Disadvantages: You need to purchase or design corresponding hardware components, such as camera modules, main control boards (usually microcontrollers based on chips such as STM32), storage modules, etc. You need to do welding, wiring, and assembly by yourself, which may be difficult for beginners and requires certain hardware knowledge. Homemade OpenMV may not be as stable as official products. Advantages: You may need to customize certain hardware features according to your needs (such as additional sensor interfaces, specific processing capabilities, etc.). It is cost-effective and low-cost, and can improve your welding machine technology, PCB layout and wiring capabilities, and Python programming capabilities. Moreover, the burning program of OpenMV is completely open source and free. You only need to download it from the official OpenMV website on the external network. You can also search for the OpenMV keyword on GitHub. There will be many open source projects to choose from and download, and the burning tutorial is also very detailed.
Buying OpenMV: Advantages: The OpenMV board is already designed and assembled, and users can buy and use it directly. This method is simpler, saves time, and there is no need to worry about hardware problems. The official OpenMV camera board usually undergoes strict quality control to ensure hardware stability and compatibility. The purchased OpenMV board has integrated relevant camera modules, interfaces, processors, etc., which basically meet the needs of most image processing applications. Disadvantages: The purchase cost is very high. For example, it costs more than 400 to buy an OpenMV4 H7 R2 Cam camera, but it only costs more than 100 to DIY it yourself. The purchased OpenMV board usually has a fixed hardware configuration, and users cannot easily modify or customize the hardware.
How to DIY an OpenMV:
First: draw a schematic diagram. The following is a reference for the open source OpenMV hardware schematic diagram.

Next, prepare the hardware materials according to the schematic diagram: STM32H7 microcontroller: STM32H743IIK6. Camera module: OV5640 or similar CMOS camera sensor. Storage and memory: SD card for storing image data and code. Power module: The chip requires a 5V or 3.3V power input. You need to prepare a DC-DC converter or LDO regulator to provide a stable voltage for the STM32H7 and other peripherals. JTAG/SWD programmer: used to debug and burn the firmware of the STM32H7 microcontroller. Sensors and other external modules (optional): Ultrasonic sensor: for distance measurement. Accelerometer: for motion detection. Gyroscope: for posture monitoring. Infrared sensor: for simple object detection. Other additional materials: Button: used to restart or reset the development board. LED indicator: for power indication or status display. Jumper and connector: used to connect external sensors and power supply. Housing and heat dissipation: Housing (optional): To protect your homemade OpenMV, you can design a 3D printed housing or buy a ready-made housing for protection. Heat sink (optional): If the system workload is high, you may need to add a heat sink to reduce the temperature of the processor.
Finally, PCB design and production: To make a custom PCB, you need to use PCB design tools (such as KiCad, Jiali Chuang, AD) to design the circuit board. You can make a secondary design based on the schematic diagram of the OpenMV open source project. With Jiali Chuang, there are two free board-making opportunities per month, and the cost of the PCB board is directly reduced to 0. After receiving the PCB board, you only need to use the burner to burn the firmware in the open source project. After completing the PCB soldering and firmware burning, you can start writing, debugging and running Python code by simply using the official OpenMV IDE.