Fabian Kung's Miniature Machine Vision Module Adds Low-Resolution Vision to Any Project

Compact 5V module provides QVGA or QQVGA machine vision on a Cortex-M7, complete with live image stream via UART.

Gareth Halfacree
3 months ago β€’ Machine Learning & AI / Sensors

Fabian Kung has begun selling the latest revision of his miniature machine vision module for embedded systems, a project which began back in 2013, as a fully-assembled ready-to-run device requiring only 5V power and "your favorite single-board computer" to begin capturing and analysing 20 frames per second video.

Kung first posted about his project to create a compact machine vision module (MVM) back in early 2016, having been inspired to create a custom design by the Pixy CMUcam5 image sensor. The first MVM prototype was developed in December 2015, based around a Microchip ATSAM4DSD16 Arm Cortex-M4 microcontroller and HC-05 Bluetooth module. Additional prototypes followed, transferring the design from stripboard to a custom PCB then upgrading it to the Microchip ATSAMS70J20 with its more powerful Arm Cortex-A7 processor and increased static RAM.

"This prototype is called V1.50 because I still retain the same camera as the previous prototypes, only the microcontroller is upgraded," Kung explains. "Thus in future if I upgrade the camera, it will be at least V2.0! One of the main challenge in migrating to Cortex-M7 is the chip uses data and instruction cache, much like most higher end micro-processor. So in developing the software one needs to be mindful of data synchronization between the cache memory and the on-chip RAM, for instance when a peripheral is updating the on-chip memory. So far I have gone through three iterations of the schematic design for this version, in part due to some subtle variations in the hardware characteristic of the ATSAMS70J20 REV A and REV B chips and to correct [some] minor errors."

The result was the MVM 1.50C, and it's this design Kung has placed up for sale. "The module contains a CMOS VGA camera, supporting QQVGA and QVGA resolutions. An Arm Cortex-M7 microcontroller (Microchip SAM S70 series) provides around 20 frames-per-second video capture and processing speed. Image processing algorithms such as color object detection, line detection, obstacle detection can be performed with this system. The module is fully assembled and comes pre-programmed with a standard executable file but we also share the sample source codes in C so that user can developed their own algorithm to run on the module."

The module include two UART ports, one of which is used for interfacing with an external controller and other other of which provides a real-time image stream; an SPI port is also included for use with an external LCD panel, but Kung warns this is not yet functional in the current firmware.

More information is available on Kung's Tindie page, where the module can be purchased for $54.90 β€” HC-05 Bluetooth add-on not included. The project's source code, meanwhile, can be found on GitHub under the MIT Licence.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Related articles
Sponsored articles
Related articles