Skip to content

SiFli-SDK

SiFli-SDK is SiFli's official, RT-Thread-based software package and the reference development path for SF32 firmware. It is the best-supported route for Bluetooth, graphics, audio, power management, storage, board bring-up, and production firmware work.

SiFli-Solution

SiFli-Solution is a separate SiFli software package and is not currently covered by μForge.io. This page and the linked Develop material document SiFli-SDK only. For a more complete display-device solution, see the official SiFli Solution Documentation and contact SiFli directly. A complex product using this route may need deep, direct SiFli involvement.

Use the SiFli-SDK Getting Started page for first installation and hello_world. This page explains how to think about the SDK once the toolchain already works.

Primary references:

When to Use SiFli-SDK

Choose SiFli-SDK when you need:

  • The broadest SF32 feature coverage.
  • Vendor examples for Bluetooth, display, audio, power, storage, USB, and OTA.
  • RT-Thread integration and shell tooling.
  • Board-level configuration through SDK board names such as sf32lb52-lcd_n16r8.
  • Access to SiFli-specific middleware, tools, partition layouts, and production flows.

Development Model

The SiFli-SDK Getting Started page establishes the toolchain and a hello_world baseline. After that, treat the SDK environment, selected board, example/project directory, configuration, generated output, and download artifact as one versioned unit. A build creates a board-specific output directory, typically build_<board_name>_hcpu/; use the generated download artifact for that exact build rather than reusing one from a different board or configuration.

For repeatable development, pin an SDK branch, record the board name, keep local board changes separate from vendor files, and make configuration changes in small, reviewable steps. The detailed build, download, and monitoring workflow is in Build, Flash, Monitor.

Board Names

SiFli-SDK board names are SDK-specific and may not match Zephyr board names, Arduino FQBNs, or marketing board names. Always copy the board name from the SDK supported-boards list or from the example documentation.

For the SF32LB52 DevKit LCD class, the common SDK board name used in first-run examples is:

sf32lb52-lcd_n16r8

Project Structure

Most SDK examples follow the pattern:

example/<domain>/<example_name>/<rtos_or_mode>/project

For example:

example/get-started/hello_world/rtt/project

When building product firmware, start from the closest working SDK example and change one subsystem at a time. That keeps board configuration, middleware dependencies, partition assumptions, and driver setup intact.

Configuration

Use menuconfig when an example or board needs feature changes:

scons --board=<board_name> --menuconfig

Common reasons to enter configuration:

  • Enable or disable middleware.
  • Change Bluetooth roles or profiles.
  • Adjust display, filesystem, or audio support.
  • Tune power management.
  • Select logging or shell options.

Production Readiness Questions

Before committing to SiFli-SDK for a product branch, answer:

  • Which SDK release branch is frozen for the product?
  • Which board support files are product-owned vs. vendor-owned?
  • Which examples prove the critical features?
  • Which partition table is used for manufacturing and OTA?
  • Which tools are approved for factory flashing?
  • Which logs are enabled in release builds?
  • Which recovery image is kept for lab use?

Practical Next Pages

Auto-generated content

This page was compiled/drafted without an existing source document. Verify technical claims against SiFli's official documentation before relying on them.