Overview of BouffaloSDK
masterbl_mcu_sdk and bl_iot_sdk.repository·master·Indexed 19 days ago
https://github.com/bouffalolab/bouffalo_sdkA comprehensive software development kit for Bouffalo Lab's IoT and MCU chips (including bl702, bl616, bl616cl, and bl618dg). The SDK provides support for DVP and SPI camera sensors, various LCD drivers (ili9341, ili9488, st7789v, gc9503v), and the NetHub host stack featuring the bflbwifictrl Wi-Fi control stack and virtual channel API for private data exchange via SDIO. It also includes the bl_crt_bundle for optimized X.509 Root CA certificate management.
bl_mcu_sdk and bl_iot_sdk.The bflbwifictrl subdirectory provides an optional AT-style host control stack for Wi-Fi. It is used when an application requires AT control capabilities rather than just the NetHub data-path.
Key components include:
bflbwifid: A daemon that manages runtime backend selection and request dispatch.bflbwifictrl: A CLI tool for interacting with the Wi-Fi control stack.libbflbwifi: A C library that manages Wi-Fi semantics and state management.Note: This stack is not required for NetHub data-path-only products.
The OpenThread Control Interface (OTCI) is a Python library that provides uniform interfaces to connect to and control various devices running OpenThread. It abstracts the underlying connection methods, allowing you to interact with different device types using a consistent API.
pyspinel).The NetHub module (components/net/nethub) is a device-side implementation responsible for bridging Wi-Fi traffic to a selected host interface.
Key Responsibilities:
STA or AP).nethub_ctrl_*.nethub_vchan_*.Architectural Boundaries:
ATModule; ATModule is an optional control path composition.xrecord module enables streaming data from a device to a WebSocket server via a persistent connection. It supports various data sources, including files and in-memory data (e.g., ring buffers), and can stream this data to remote destinations like WebSocket URLs.The sdio2_test example is a multi-channel data testing suite based on SDIO2/SDIO3. It is designed to test various functions including Ethernet devices, tty devices, and speedtest performance.
Key Components:
bsp/common/msg_router/device and is invoked within main.c.bsp/common/msg_router/linux_host/kernel which supports hot swapping, allowing for stability testing of the SDIO driver.bflb_fw_post_proc is a command-line firmware post-processing tool used to update bootloader information and perform firmware encryption or signing. It is essential for preparing firmware images for secure boot and OTA (Over-the-Air) updates.The lwip_emac example demonstrates a network interface using EMAC and the lwIP protocol stack. It provides several network services including TCP Loopback (Server/Client), UDP Echo, HTTP, and iperf throughput testing.
Key features:
httpd server that starts automatically upon network initialization and runs on TCP port 80.The audio_dac_adc example demonstrates a complete, built-in audio path on supported Bouffalo chips. It enables:
This example reuses the recorder shell commands found in the examples/peripherals/i2s/i2s_codec directory.
The bsp/board/bl616dk/builtin_imgs directory contains pre-built boot2 and mfg (manufacturing) files used for IOT functions.
Available image types:
boot2_bl616_isp_debug_<version>.bin: Normal boot2 image including debug logs.boot2_bl616_isp_release_<version>.bin: Normal boot2 image without debug logs.mfg_bl616_gu_<commit>_autoboot_<version>.bin: Autoboot manufacturing image.mfg_bl616_gu_<commit>_<version>.bin: Non-autoboot manufacturing image.The following demos are available to demonstrate LVGL capabilities:
LV_MEM_SIZE $\ge$ 38KB.libmetal provides common user APIs to access devices, handle device interrupts, and request memory across multiple operating environments. It is designed to abstract hardware access for: