Skip to content

The X-CUBE-ISP is an image signal processing (ISP) tuning software. It targets STM32 microcontrollers embedding an ISP camera pipeline called DCMIPP. It offers advanced image quality tuning services, enabling developers to easily create ISP-based applications.

License

Notifications You must be signed in to change notification settings

STMicroelectronics/x-cube-isp

Repository files navigation

X-CUBE-ISP

latest tag

The X-CUBE-ISP package provides the functionnality to control and tune the DCMIPP ISP present in the STM32N6x products.
It contains:

  • An embedded ISP Library middleware (running on the target) hosting 2A algorithms (Auto Exposure and Auto White Blance) and mechanisms to control the ISP and load sensor tuning file.
    X-CUBE-ISP/Middlewares/ST/STM32_ISP_Library
  • A tuning application (running on the target) that allows to interact with the STM32 ISP IQTune desktop application executed on the host computer and connected through usb.
    X-CUBE-ISP/Projects/DCMIPP_ISP/ISP_IQTune_App

To take control of the DCMIPP ISP:

  • The host computer must execute the STM32 ISP IQTune desktop application and connect to the target thanks to an USB-C cable on the USB1 (CN18) connector of the board.
  • The ISP IQTune App must be loaded and launched on the target.

Getting started with X-CUBE-ISP Wiki article

How to use

This repository has been created using the git submodule command. Please check the instructions below for proper use. Please check also the notes at the end of this section for further information.

  1. To clone this repository along with the linked submodules, option --recursive has to be specified as shown below.
git clone --recursive https://github.com/STMicroelectronics/x-cube-isp.git
  1. To get the latest updates, in case this repository is already on your local machine, issue the following two commands (with this repository as the current working directory).
git pull
git submodule update --init --recursive

Table of Contents

README Content

Features demonstrated

  • Control of all ISP parameters via desktop application
  • Image analysis function for camera sensor tuning
  • Generation of sensor ISP tuning file
  • Embedded Auto Exposure algorithm (AE)
  • Embedded Auto White Balance algorithm (AWB)
  • STM32 ISP IQTune application

Hardware Support

  • MB1939 STM32N6570-DK board

    • The board should be connected to the onboard ST-LINK debug adapter CN6 with a USB-C to USB-C cable to ensure sufficient power
    • An additionnal USB-C cable to connect USB1 (CN18) to the host computer for the STM32 ISP IQTune desktop application connection
  • 2 camera modules are supported:

    • MB1854B IMX335 (Default camera provided with the MB1939 STM32N6570-DK board)
    • STEVAL-66GYMAI VD66GY camera module

Note:

  • The support of customer sensors is possible since customer respect the driver and integration format of the Camera Middleware.

Tools version

This package is compatible with the following tool version:

  • STM32CubeIDE (v1.17.0)
  • STM32CubeProgrammer (v2.18.0)

Boot modes

The STM32N6 does not have any internal flash. To retain your firmware after reboot, you must program it in the external flash. Alternatively, you can load your firmware directly from SRAM (dev mode).
In dev mode, if you turn off the board, your program will be lost.

Boot modes:

  • Dev mode: load firmware from debug session in RAM (BOOT1 switch to the right, BOOT0 switch position doesn't matter)
  • Boot from flash: Program firmware in external flash (BOOT0 and BOOT1 switch to the left)

Quickstart using prebuilt binaries

The X-CUBE-ISP/Projects/DCMIPP_ISP/Binary directory hosts the ISP IQTune prebuilt application which is the tuning application (running on the target) that allows to interact with the STM32 ISP IQTune application executed on the host computer and connected through usb.

Applications is available for MB1939 STM32N6570-DK board.

  1. Toggle BOOT1 switch to right position
  2. Program X-CUBE-ISP/Projects/DCMIPP_ISP/Bin/STM32N6_ISP_IQTune_App-v1.0.0-trusted.bin
  3. Toggle BOOT0 and BOOT1 switch to left position
  4. Reset board

Note:

Quickstart using source code

Make sure the boot switchs are in dev mode (BOOT1 is on the right side).

STM32CubeIDE

Double click on X-CUBE-ISP/Projects/DCMIPP_ISP/ISP_IQTune_App/STM32N6570-DK/STM32CubeIDE/.project to open project in STM32CubeIDE. Build and run with build and run buttons.

Change the camera module

The software is natively compatible with the MB1854B IMX335 and STEVAL-66GYMAI VD66GY camera modules. Simply change the camera module and restart the software. No software reconfiguration is needed.

Note:

  • For customer camera module, the sensor driver must be added in the Camera Middleware and a first tuning must be performed with the STM32 ISP IQTune desktop application to generate the final isp_param_conf.h that can be updated.

Create binary for boot from flash

Make sure the STM32CubeProgrammer bin folder is added to your path.

STM32MP_SigningTool_CLI -bin STM32CubeIDE/release/STM32N6_ISP_IQTune_App.bin -nk -t fsbl -hv 2.3 -o STM32N6_ISP_IQTune_App-trusted.bin

Program bin files using command line

Make sure the STM32CubeProgrammer bin folder is added to your path.

export DKEL="<STM32CubeProgrammer_N6 Install Folder>/bin/ExternalLoader/MX66UW1G45G_STM32N6570-DK.stldr"

STM32_Programmer_CLI -c port=SWD mode=HOTPLUG ap=1 -el $DKEL -hardRst -w X-CUBE-ISP/Projects/DCMIPP_ISP/Bin/STM32N6_ISP_IQTune_App-trusted.bin 0x70000000

Known Issues and Limitations

  • In rare situations, Auto White Balance (AWB) algorithm can flicker between 2 AWB profiles*

\* Fix is under preparation

Documentation

MCU ISP wiki article

About

The X-CUBE-ISP is an image signal processing (ISP) tuning software. It targets STM32 microcontrollers embedding an ISP camera pipeline called DCMIPP. It offers advanced image quality tuning services, enabling developers to easily create ISP-based applications.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages