It's Cyber Monday all week long! Use promo code BFCM2023 at checkout for 15% off SparkFun Original Products under $200. Some exceptions apply. Shop SparkFun Originals.

OpenMV M7 Camera

The OpenMV M7 Camera is a small, low-power microcontroller board that allows you to easily implement applications using machine vision in the real world. The best part about the OpenMV is that it is not only capable of image capture, but also face detection, color tracking, QR code reading and plenty more. If you are looking for an economical camera module boasting multiple high-end features, look no further than the OpenMV M7!

The OpenMV can be programmed in high-level Python scripts (courtesy of the MicroPython Operating System) instead of C/C++. This makes it easier to deal with the complex outputs of machine vision algorithms and working with high-level data structures. You still have total control over your OpenMV M7 and its I/O pins in Python. You can easily trigger taking pictures and video on external events or execute machine vision algorithms to figure out how to control your I/O pins.

This version of the OpenMV M7 Camera has a few new changes for you! Each version of the OpenMV now comes equipped with a handy protective acrylic case and has also removed the pre-soldered headers from the board. Instead, you now have the option between normal male headers (like the ones found on the previous version) or female stackable headers, allowing you to decide how you use your own OpenMV!

  • 1x OpenMV M7 Camera
  • 1x Transparent Protective Enclosure
  • 2x 8-pin Male Header
  • 2x 8-pin Female Stackable Header
  • The STM32F765VI ARM Cortex M7 processor running at 216MHz with 512KB of RAM and 2MB of flash. All I/O pins output 3.3V and are 5V tolerant.
  • A full-speed USB (12Mbs) interface to your computer; your OpenMV Cam will appear as a virtual COM port and a USB flash drive when plugged in.
  • A μSD card socket capable of 100Mbs reads/writes, which allows your OpenMV Cam to record video and easily pull machine vision assets off of the μSD card.
  • A SPI Bus that can run up to 54Mbs, allowing you to easily stream image data off the system to either the LCD shield, the WiFi shield or another microcontroller.
  • An I2C Bus, CAN Bus and Asynchronous Serial Bus (TX/RX) for interfacing with other microcontrollers and sensors.
  • A 12-bit ADC and a 12-bit DAC.
  • Three I/O pins for servo control.
  • Interrupts and PWM on all I/O pins (there are 10 I/O pins on the board).
  • RGB LED and two high-power 850nm IR LEDs.
  • The OV7725 image sensor is capable of taking 640x480 8-bit grayscale images or 320x240 16-bit RGB565 images at 30 FPS. Your OpenMV Cam comes with a 2.8mm lens on a standard M12 lens mount. If you want to use more specialized lenses with your OpenMV Cam, you can easily buy and attach them yourself.

OpenMV M7 Camera Product Help and Resources

How to Load MicroPython on a Microcontroller Board

September 4, 2018

This tutorial will show you how to load the MicroPython interpreter onto a variety of development boards.

Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

1 Soldering

Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

2 Programming

Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Kye / about 5 years ago * / 1

    To user Member #744409:

    I've determined why OpenMV IDE causes issues with the pyboard. It seems the default CDC INF driver provided by MicroPython which we digitally sign for you so that you can use your pyboard on a windows machine causes issues. To fix your problem you need to go to the device manager and uninstall the drivers for the two pybcdc serial ports along with deleting the device files for these driver (on uninstall windows will ask you if you'd like to do this). Once you do this your pyboard will work fine (click the rescan hardware button to cause a rescan after deleting drivers). One of the updates to windows 10 caused this issue. Previously the driver software was needed but this seems to be no longer the case. We will not install our driver anymore with windows 10 for the pyboard in new OpenMV IDE releases.

  • Submariner pro / about 6 years ago / 1

    When it says that you can change out the lenses, does that mean that the original 2.8mm lens is adjustable?

    • Kye / about 6 years ago / 1

      The lenses are standard M12 lenses. So, you can buy different types which change how the camera sees the world. Here's an example: https://openmv.io/products/super-telephoto-lens

Customer Reviews

5 out of 5

Based on 5 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

Good camera to make other micro controllers see

The OpenMV camera is great if you want to make a micro controller see. I've used it with Arduino and it works quite well (it has an issue using an NXT as it tends to hold the clock line down for 4 seconds... still debugging this). The camera can be either an I2C master or slave or it can talk SPI if you need it to.

The IDE and the sample code is really great. The M7 runs micropython and you edit and upload the code from the IDE. The IDE also has a video pane to show what you are seeing and if it is properly executing your code. It's quite well thought out. For sample code there is face detection, line tracking, and even a Pixycam emulator (over i2c). It really is a good product.

That said there are some caveats.

First... this isn't OpenCV. Codewise it looks similar but there are a lot of features just not there. Say you want to do OCR training using KNN. Pretty simple thing to do in OpenCV but it doesn't appear to be possible with the OpenMV.

Second... performance can be slow depending on what you are doing. A Raspberry Pi 3 running OpenCV will run faster face detection. You get much better throughput. Now the maker of OpenMV comes right out and tells you this on the Youtube videos but I wanted to make it a point here as well... don't expect extremely fast performance.

Third... upgrading firmware... the upgrade is fast but the self-test after is extremely slow. It doesn't happen often but when it does it is terribly slow.

That said... this is a great way to make something like an Arduino see.

Excellent product

Very easy to get familiar to the CAM and the IDE. It comes with the software reach of examples. Excellent support on the manufacturer website forum.

Great but...

Great but needs some more libraries and algorithms!

Useful and easy

Works great out-of-the-box and easy to program. Let’s you get going quickly with a useful subset of OpenCV on a low-power, low-cost, embedded platform. Well done! I just wish SparkFun also carried other types of lenses and wi-fi shield.