The MI (MStar Innovation) API is the core differentiator.
| Module | Function | Stability | Note |
|--------|----------|-----------|------|
| MI_SYS | Memory pool, module binding | Good | Must pre-allocate contiguous memory. |
| MI_VENC | H.264/H.265 encode (up to 1080p60) | Good | Low latency, supports CBR/VBR. |
| MI_VDEC | Decode + display | Fair | Occasional sync issues with audio. |
| MI_ISP | 3A (AWB/AE/AF), lens correction | Good | Requires tuning via isp_tool (Windows GUI). |
| MI_RTSP | Wrapper over live555 | Poor | Better to replace with custom GStreamer + rtsp-server. |
Example pipeline (encode + rtsp):
MI_SYS_Init();
MI_VENC_CreateChn(0, ...);
MI_RTSP_CreateSession("live", 8554);
| Feature | Sigmastar | HiSilicon (old) | Rockchip | Allwinner | |------------------------|-------------------|--------------------|---------------------|-----------| | SDK access | NDA + contract | NDA + contract | Public-ish (github) | Public | | Kernel version | Old (3.x/4.x) | Old (3.x) | Recent (5.10/6.1) | Recent | | ISP binary or source | Binary | Binary | Binary/Rockchip | Mostly source | | Documentation quality | Low | Medium | Medium-high | Medium | | Developer community | Almost none | Dying | Growing | Moderate |
The Sigmastar SDK is a utilitarian tool for a utilitarian chip. It is not "developer-friendly" in the modern sense, but it is highly effective for its purpose: enabling cheap, reliable video capture and encoding.
Score: 7/10 (Deducting points for documentation and build system complexity; gaining points for cost-to-performance ratio and hardware stability).
Review prepared based on analysis of SSD201/SSD202 and MSC316 SDK iterations.
Mastering the SigmaStar SDK: A Comprehensive Guide for Embedded Developers
If you’re working on IP cameras, smart displays, or automotive electronics, you’ve likely encountered SigmaStar. As a spinoff from MStar (now part of MediaTek), SigmaStar has become a dominant force in the SoC (System on Chip) market. However, their power is unlocked primarily through the SigmaStar SDK.
Getting started with a proprietary SDK can be daunting. This guide breaks down the architecture, setup, and development workflow of the SigmaStar SDK to help you move from unboxing to "Hello World" on your target hardware. 1. What is the SigmaStar SDK?
The SigmaStar SDK is a comprehensive software development kit that provides the drivers, middleware, and sample code necessary to build applications on SigmaStar processors (like the MSC313E, SSC335, or SSD202). sigmastar sdk
Unlike generic Linux distributions, the SDK is tightly coupled with the hardware’s IPU (Image Processing Unit) and VPU (Video Processing Unit), allowing for high-efficiency video encoding (H.265/H.264) and AI acceleration. 2. Core Components of the SDK
Understanding the directory structure is half the battle. While versions vary, most SigmaStar SDKs follow this logic:
Bootloader (U-Boot): Custom versions optimized for fast booting (often sub-2 seconds for camera applications).
Kernel: A patched Linux kernel (commonly 4.9.x or 5.10.x) containing the specific hardware abstraction layers (HAL).
Project/Board Config: This folder contains the config files for specific hardware reference designs.
Middleware/MI (Media Interface): This is the "secret sauce." It’s a layer of libraries (SSTARDRV) that controls the ISP, audio, and video encoders.
Customer/App: Where you’ll find sample code for common tasks like RTSP streaming or OSD (On-Screen Display) overlays. 3. Setting Up Your Development Environment
SigmaStar development is strictly a Linux affair. Most developers use Ubuntu 16.04 or 18.04 LTS. Newer versions may require manual library patching for the toolchain. Step 1: Install Dependencies
sudo apt-get install make libc6-i386 lib32z1 lib32ncurses5 libuuid1:i386 cmake Use code with caution. Step 2: The Toolchain
SigmaStar typically uses the arm-linux-gnueabihf- cross-compiler. You must export the path to your .bashrc: The MI (MStar Innovation) API is the core differentiator
export PATH=$PATH:/path/to/arm-sigmastar-gnueabihf-9.1.0/bin Use code with caution. 4. The Compilation Workflow
The SDK usually employs a "one-click" build script, often named setup_config.sh or build.sh.
Select your Config: Run the config script and choose your specific chip and demo board model.
Make All: Running make all will compile the bootloader, kernel, and the sdk libraries.
Image Generation: The build process concludes by generating a flash_image.bin or a set of partition images (IPL, UBOOT, KERNEL, ROOTFS) to be burned via TFTP or USB. 5. Key Programming Concepts: The MI Layer
To write code for SigmaStar, you won’t be talking to the hardware registers. Instead, you use the MI (Media Interface) API.
SYS Module: Initializes the system and handles memory management (MMA).
VI (Video Input): Manages the MIPI-CSI interface from the camera sensor. VENC (Video Encoder): Handles the hardware compression.
VPE (Video Process Engine): Used for scaling, rotating, and pixel format conversion.
Pro Tip: Always check the mi_demo folder. SigmaStar provides robust examples for "Bind" operations—linking the VI to the VPE, then to the VENC—which is the standard pipeline for video streaming. 6. Debugging and Common Pitfalls | Feature | Sigmastar | HiSilicon (old) |
Memory Allocation (MMA): If your app crashes immediately, check your bootargs. SigmaStar chips rely on reserved memory chunks (MMA). If your app requests more than what’s reserved in the bootloader, it will fail.
Console Access: Most boards default to a baud rate of 115200. Use a USB-to-TTL adapter connected to the UART pins to see the boot logs.
Documentation: SigmaStar documentation is often provided as Excel sheets and Chinese PDFs. Tools like DeepL or Google Lens are essential for non-native speakers. Final Thoughts
The SigmaStar SDK is powerful but has a steep learning curve due to its proprietary nature and complex media pipeline. However, once you master the MI API and understand the Project Config structure, you can build incredibly efficient, low-cost smart devices. Proactive Follow-up:
The Sigmastar SDK is a comprehensive software package provided by SigmaStar to enable developers to build, optimize, and deploy applications on their ARM-based SoCs (such as the SSC33x, SSC30x, and Infinity families). Unlike a simple library, the SDK is a full-fledged Linux-based build system, firmware generator, and middleware collection.
At its core, the SDK is designed to solve three major problems:
SigmaStar heavily utilizes Buildroot. The SDK is not a standard Yocto distribution; it is a heavily modified Buildroot environment. This means:
#include <sigma_display.h>
int main()
// Initialize the display device
sigma_display_init();
// Set the display mode to 1024x768 @ 60Hz
sigma_display_set_mode(1024, 768, 60);
// Get the current display mode
int width, height, refresh_rate;
sigma_display_get_mode(&width, &height, &refresh_rate);
printf("Display mode: %dx%d @ %dHz\n", width, height, refresh_rate);
return 0;
make menuconfig
Navigate to:
Device Drivers -> Mstar drivers -> Custom GPIO Support
Press Y to include it in the kernel image, or M to build it as a loadable module (.ko).
Save and Exit.