Last edited 2 weeks ago

STM32 ISP IQTune: application for sensor image quality tuning

Applicable for STM32MP21x lines, STM32MP25x lines


1. What is the STM32 ISP IQTune desktop application?[edit | edit source]

STM32 ISP IQTune is a comprehensive STM32 ISP tuning software application offering a wide range of features and services to help professional and nonprofessional STM32 users tune an embedded ISP.

It consists of two components:

  • A desktop application, running on a host computer (Linux Ubuntu, Windows or MacOS)
  • An embedded application, running on the STM32 device to be tuned.

These two components communicate through a USB link connecting the host computer to the STM32 board to be tuned.

STM32 ISP IQTune provides all the services to allow users to tune the STM32 ISP for an RGB RAW Bayer sensor and its associated lens:

  • It gives access to the STM32 ISP parameters that can be tuned.
  • It provides image quality analyzing capabilities to easily tune the STM32 ISP for any light conditions. For a white-balance profile, the image quality analyzing services provide:
    • The possibility to define the white-balance ISP gain.
    • The possibility to define the color correction matrix.
    • Information and metrics about the color accuracy according to the ISP configuration defined by the user.

2. How to install STM32 ISP IQTune[edit | edit source]

Go to st.com to download the STM32 ISP IQTune software for your OS:

  • Windows : STM32-IQTune-Win
  • MacOS : STM32-IQTune-Mac
  • Ubuntu : STM32-IQTune-Lin


Run the installer, which automates the installation process and ensures that all necessary files, settings, and dependencies are properly configured for your system.

Information
On Ubuntu, .AppImage is a self-contained application, so there is no need to install it.
Warning
On Ubuntu 24.04 you may have the following error while launching the STM32 ISP IQTune:
 $ ./STM32_ISP_IQTune-2.1.0-linux-x86_64.AppImage 
 dlopen(): error loading libfuse.so.2
 
 AppImages require FUSE to run. 
 You might still be able to extract the contents of this AppImage 
 if you run it with the --appimage-extract option. 
 See https://github.com/AppImage/AppImageKit/wiki/FUSE 
 for more information

The solution is to install libfuse2. To install libfuse2, enter the following command:

 apt-get install libfuse2

3. How to use STM32 ISP IQTune[edit | edit source]

3.1. Connect the board[edit | edit source]

Connect the host computer running the STM32 ISP IQtune desktop application to the target USB Type-C (OTG) port with a USB cable.

ISP_board_connection

3.2. Launch the board application[edit | edit source]

Make sure that the STM32 ISP IQTune app is installed on the platform.

Warning
The software package is provided AS IS, and by downloading it, you agree to be bound to the terms of the software license agreement (SLA0048). The detailed content licenses can be found here.

After configuring the OpenSTLinux ISP package, you can install the X-LINUX-ISP package, containing the STM32 ISP IQTune application:

  • To install this application, use the following command:
  x-linux-isp -i packagegroup-x-linux-isp-iqtune
  • Then, restart the demo launcher with this command:
 systemctl restart weston-graphical-session

The STM32 ISP IQTune app is now available from the demo launcher.

IQTune_from_weston
  • Run the application to:
    • Start the camera preview.
    • Prepare the USB connection with the remote desktop application.
IQTune_target
Important
When the STM32 IQTune App is started on STM32MP25xx, the native OpenSTLinux USB Ethernet gadget is disabled (meaning that Ethernet over USB is no longer possible). Instead, an ACM gadget and a UVC gadget are deployed to allow serial communication and UVC streaming between the host and the target through the USB link.
On STM32MP21xx, only the ACM gadget is available for serial communication.
When the application is closed, the ACM and UVC (if any) gadgets remain enabled. To restore the USB Ethernet gadget, you need to disable the ACM/UVC gadgets and enable the USB Ethernet gadget again:
 stm32_usbotg_acm_uvc_config.sh stop
 stm32_usbotg_eth_config.sh start

3.3. Launch the desktop application[edit | edit source]

When the application is launched, it first checks for the USB connection with the remote embedded application. Documentation links are also available on the left panel.

IQTune_start_wait_device

As soon as the remote embedded application has started, the connection port is detected. Click on Connect.

IQTune_start_connect_device

When the app starts, you’ll see:

  • A live preview on the right using the UVC feature, where you can adjust the ISP settings and watch the changes happen in real time. At the bottom of this preview, there are real time estimation metrics of the current scene, but they might not be accurate if the sensor hasn’t been tuned yet.
    • On STM32MP25xx, Live Feedback displays ISP output in real time using UVC camera.
    • On STM32MP21xx, Live Feedback shows a single frame that updates either when changes occur or when you click on the Refresh button.
  • Useful sensor details show up in the bottom left panel.
  • You can Start tuning from scratch by clicking the button in the top left panel.
IQTune_start_tuning

4. Documentation[edit | edit source]

Click the Documentation icon on the left-hand side of the application for more detailed documentation.

IQTune_documentation