tuya/tuyaopen-ide-manifests/tuyaopen-embedded-add-board

Claude Code and agent skill by tuya/tuyaopen-ide-manifests

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Add new board (BSP) support to TuyaOpen, including board directory structure, Kconfig, drivers, and

Install

npx vskill@latest install tuya/tuyaopen-ide-manifests/tuyaopen-embedded-add-board

SKILL.md

TuyaOpen: Adding a New Board

No tuyaopen-cli CLI coverage — this is a tos.py/manual-only flow

Verified against tuyaopen-cli schema list --json (18 groups, none named board/bsp): creating a new board BSP in the SDK's boards/<platform>/ tree has no tuyaopen-cli CLI command. Everything below is tos.py new board (interactive) or the manual copy-and-edit steps.

⚠ `tuyaopen-cli boards list`/`boards detail` is a different, unrelated catalog — it will never show a board you add here. That CLI command reads the published manifest catalog used by tuyaopen-cli project create --board <id> (a curated onboarding list), not the SDK's own boards/ source tree. Adding a board via this skill does not register it there, and it doesn't need to — tos.py config choice -c <BOARD_NAME> picks it straight from the SDK checkout regardless of manifest state.

SDK root: All paths and commands in this skill are relative to the TuyaOpen SDK root. After activating the environment, the SDK root is available as $OPEN_SDK_ROOT (Linux/macOS/PowerShell) or %OPEN_SDK_ROOT% (Windows CMD). Navigate there with cd $OPEN_SDK_ROOT before running any commands below. See the tuyaopen-start routing table if not yet activated.

Reference: $OPEN_SDK_ROOT/boards/add_new_board.md

Supported Platforms

PlatformChips
T5AIT5AI series
ESP32ESP32, ESP32-S3, ESP32-C3, ESP32-C6
LINUXUbuntu, Raspberry Pi, DshanPi
T2T2-U
T3T3 LCD Devkit
LN882HLN882H, EWT103-W15
BK7231XBK7231X

Board Directory Structure

Create boards/<PLATFORM>/<BOARD_NAME>/ with these files:

boards/<PLATFORM>/<BOARD_NAME>/
├── CMakeLists.txt # Build config (usually no modification needed)
├── Kconfig # Board selection and feature toggles
├── board_com_api.h # Board-level API declarations
├── board_config.h # Hardware pin/peripheral configuration
└── <board_name>.c # Board init implementation

Step-by-Step

1. Copy from an existing board

Pick a board on the same platform as a starting point:

bash
cp -r boards/ESP32/DNESP32S3 boards/ESP32/MY_NEW_BOARD
2. Edit Kconfig

Set the chip and board identifiers. The BOARD_CHOICE value must match the directory name exactly (case-sensitive):

kconfig
config CHIP_CHOICE
string
default "esp32s3"
config BOARD_CHOICE
string
default "MY_NEW_BOARD"
config BOARD_CONFIG
bool
default y
select ENABLE_AUDIO
select ENABLE_ESP_DISPLAY
3. Register in platform Kconfig

Add your board as an option in boards/<PLATFORM>/Kconfig so it appears in config choice. Skip this step if you used tos.py new board — it does this automatically.

4. Edit board_config.h

Define hardware-specific constants (display type, I/O expander, pin mappings, etc.):

c
#define BOARD_DISPLAY_TYPE DISPLAY_TYPE_LCD_SH8601
#define BOARD_IO_EXPANDER_TYPE IO_EXPANDER_TYPE_TCA9554
5. Implement board driver

Implement the board-specific init functions in <board_name>.c. For the list of required driver functions per platform and the standard CMakeLists.txt template, see references/BOARD_LAYERS.md.

6. Create a project config (optional)

For app-specific projects, create a config file in the project's config/ directory:

bash
cp apps/tuya.ai/your_chat_bot/config/TUYA_T5AI_EVB.config \
apps/tuya.ai/your_chat_bot/config/MY_NEW_BOARD.config
7. Build and verify
bash
cd apps/tuya.ai/your_chat_bot # or your target project
tos.py config choice -c MY_NEW_BOARD # non-interactive (Agent/CI)
# or: tos.py config choice # interactive selection
tos.py build

Code Layer Rules & Shared Drivers

For the dependency layer diagram (platform → src → boards/common → boards/BOARD → apps), existing ESP32 shared drivers (audio, LCD, touch, IO expander, LED), and the board CMakeLists.txt template, see references/BOARD_LAYERS.md.

Not in scope

Peripheral/pin code generation on an already-adapted board, and Kconfig option semantics beyond selecting the new board — not in scope here, see skill tuyaopen-start's routing table (references/ROUTING.md).

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/tuya/tuyaopen-ide-manifests/tuyaopen-embedded-add-board/badge)](https://verified-skill.com/skills/tuya/tuyaopen-ide-manifests/tuyaopen-embedded-add-board)

Something wrong with this skill or its page? Tell us.