Join MIPI
Join MIPI

3 min read

Q&A With the Developer of an 'Always On' MIPI I3C Machine Vision Demo

Featured Image

While at the embedded world Exhibition & Conference in Nuremberg earlier this year, a demo of an innovative new interface board caught my attention. The demo, featured at the STMicroelectronics (ST) booth, combined ST’s VD55G1 image sensor with a STM32 microcontroller to illustrate how developers can leverage the MIPI I3C® interface for low-power, always-on machine vision applications in simple, low-cost electronic systems.

After the event, I caught up with the developer of the demo, Giovanni Scozzola, CTO of Gilisymo, to find out more about the demo and use of the I3C interface.

 
Blog-I3C-Gilisymo-Demo1
Why did you create the I3C machine vision demo and what makes it interesting?

When I began my journey with Gilisymo, I was working with time-of-flight (ToF) sensors. To make these sensors more accessible to developers, I started designing small boards that allowed easy integration. These boards featured a simple I2C connection and included level shifters to interface with various platforms like Arduino, Raspberry Pi and Nucleo from ST. To further enhance connectivity options, I added UART and Bluetooth support to the list.

I have always enjoyed working with different types of sensors. However, projects that use camera sensors usually require a powerful CPU, and image decoding was, for me at least, a very complex task compared to working with ToF sensors. I prefer to keep things as simple as possible, but designing a circuit with a camera usually requires a platform that supports MIPI CSI-2® over a MIPI C-PHY™ or D-PHY™ interface, which in turn requires the use of multi-lane flexi-cables running at Gigabit speeds.

Blog-I3C-Gilisymo-Demo2

When I became aware of the VD55G1 camera sensor from ST that supports image output via I3C, it inspired me to take on the challenge of creating something new. My idea was to create an interface board that permits this sensor to be used with a simple MCU, with limited resources and doesn’t support a traditional multi-lane CSI-2 interface. To develop this idea, and make the most efficient use of MCU resources, I chose to create a bare-metal demo implementation with no real-time OS.

Today, the new interface board demo, with sample code, has been finalized, and I have named it LS-CAM-I3C. This board offers the same simplicity of use and form factor as our existing ToF sensor boards, making it an excellent addition to our product lineup.

 
Why did you use I3C for this project and what benefits does using I3C provide?

I used the I3C interface for two reasons. The first is because I3C is an enhancement of the I2C interface, and all our previous boards used I2C. So using I3C immediately felt familiar to me, and I had been looking to upgrade the interface on my boards from I2C to I3C. The second is because the new camera sensor from ST outputs images using I3C, and enabling an interesting new application was appealing for me to explore. In other words, it was a logical and natural choice to start using the I3C interface and work out how I could use the advanced features and benefits of I3C to create more efficient solutions.

 
What recommendations would you provide to other developers looking to use I3C for the first time?

MIPI I3C is a very valuable protocol as it offers higher data rates, dynamic addressing and in-band interrupts. When I tried to work with I3C a couple of years ago, it was not easy to find low-cost platforms that supported it. Today it is a completely different situation, as there are more and more sensors and MCU/CPUs coming to the market that support I3C.

To help first-time developers get up and running with I3C, I published the code that I created for the embedded world 2025 demo on Github. I hope this serves as a useful example on how to send image data over I3C, and it also includes an example that uses direct memory access (DMA).

 
Do you plan to use I3C for any of your future projects? Will you look to use any advanced I3C features?

I3C has at least two features that will enhance our core ToF products. The first is the fact that I3C can change the target device addresses dynamically – this will simplify the design of a system that requires multiple ToF sensors. Today, to change the address in a I2C-based, multi-ToF-sensor system, I need to use additional GPIOs of the MCU to select one-by-one the ToF sensor to change the address. Once ToF sensors support I3C, which I am sure they will do in the very near future, we will no longer need to use these extra GPIOs.

The second I3C feature I look forward to using is in-band-interrupts, where interrupts are sent over the I3C interface and do not require the use of separate GPIOs. This is very efficient and will allow me to further simplify the design of our solutions.

An additional point is the enhanced data speed of I3C, as this will be important for multizone ToF sensors that support a matrix of detection zones, where the quantity of the data output is much bigger compared with single-zone sensors.

 

 

To learn more about the I3C specification and access implementation resources, visit the MIPI I3C/I3C Basic page. More information about the Gilisymo I3C camera interface board can be found on the company website.