TuyaOpen SDK

repository·master·Indexed 23 days ago

https://github.com/tuya/tuyaopen

An open-source framework and SDK for building AI-agent hardware. TuyaOpen bridges low-power IoT hardware, such as ESP32 and Tuya T-series MCUs, with Tuya Cloud services and multimodal AI capabilities. The SDK includes tooling for environment setup, LVGL v9 integration for graphics, and support for flashing programs via CLI (tos.py) or GUI (tyuTool).

Tokens
327.5K
Snippets
576
Records
1.9K
Agent score
81%

What's inside TuyaOpen

  1. Overview of Tuya T5 Pocket AI

    master
    The Tuya T5 Pocket is a portable hardware platform optimized for AI speech and vision Large Language Model (LLM) applications. It features a Tuya T5 Wi-Fi & Bluetooth module, a 2.9" monochrome low-power LCD, 4G CAT.1 connectivity, and a suite of sensors including a 6-axis IMU and a DVP camera. It is designed to support multimodal AI interactions involving voice, vision, and state-driven logic.
  2. Overview of available LVGL demos

    master

    LVGL provides several specialized demos for testing and showcasing capabilities:

    • Widgets: Displays built-in widgets with a material theme. Requires significant memory (LV_MEM_SIZE $\ge$ 38KB).
    • Music player: Demonstrates modern, smartphone-like UIs. Best viewed on displays with 480x272 or 272x480 resolution.
    • Keypad and encoder: Demonstrates how to control widgets (buttons, sliders, rollers, etc.) without a touchpad using input devices like keypads or encoders.
    • Benchmark: Used to measure system performance or compare different LVGL settings.
    • Stress: A stress test designed to detect memory corruption or leaks by performing heavy object creation, deletion, animations, and style usage.
  3. Overview of lv_binding_js

    master

    The lv_binding_js library allows you to develop LVGL user interfaces using JavaScript. It utilizes a React-like virtual DOM concept to manipulate LVGL UI components, providing a familiar development experience for web developers.

    Key features include:

    • Support for all built-in LVGL components.
    • Full support for LVGL flex and grid layouts.
    • Styling capabilities similar to HTML5/CSS.
    • Dynamic image loading.
    • Full support for LVGL animations.
  4. Overview of Everest Curve25519 Implementation

    master

    The Everest implementation provides a formally verified version of Curve25519-based handshakes. It is derived from the original F* implementation using the KreMLin compiler. Compared to the default Curve25519 implementation in mbedTLS, this version offers improved safety, security, and significantly higher performance on supported platforms.

    Note that performance gains may be reduced on platforms that lack a native 128-bit integer type, as KreMLin must use additional code to simulate them.

  5. Overview of your_serial_chat_bot

    master

    The your_serial_chat_bot application is an open-source large model intelligent chatbot powered by tuya.ai. It functions as a bridge between an external device (like a PC) and the Tuya Cloud AI service. The application receives text input via UART from the external device, uploads it to the cloud for AI processing, and transmits the resulting AI response back to the external device via UART.

    Key Features:

    • AI intelligent conversation via UART.
    • Text-based conversation mode (no voice processing required).
    • Real-time chat content transmission through the serial port.
    • Quick Bluetooth network connection to routers.
    • Real-time switching of AI entity roles via the mobile app.
  6. Overview of LVGL features and capabilities

    master

    LVGL (Light and Versatile Graphics Library) is an embedded GUI library designed for microcontrollers with a low memory footprint.

    Key Features:

    • Widgets: Built-in building blocks like buttons, charts, lists, and sliders.
    • Graphics Engine: Supports animations, anti-aliasing, opacity, smooth scrolling, and blending modes.
    • Input/Display: Supports various input devices (touchscreen, mouse, keyboard, encoder, buttons) and multiple displays.
    • Customization: Fully customizable elements using CSS-like styles and layouts inspired by Flexbox and Grid.
    • Hardware Independence: Works with any microcontroller and display; supports OS, external memory, and GPUs (e.g., STM32 DMA2D, NXP PXP).
    • Language Support: Multi-language support including UTF-8, CJK, Bidirectional, and Arabic script.
    • Bindings: Includes MicroPython bindings for high-level scripting.
  7. Overview of your_desk_emoji

    master

    The your_desk_emoji application is an intelligent desktop emoji robot based on tuya.ai. It integrates AI conversation, gesture recognition (via PAJ7620), servo motor control, expression displays, and real-time weather information to create an interactive desktop companion.

    Key Features:

    • AI Conversation: Supports multiple modes (button press, voice wakeup, free conversation) with real-time LCD chat display.
    • Gesture Recognition: Uses the PAJ7620 sensor to detect directional gestures (up, down, left, right, front, back) to trigger servo movements and expression changes.
    • Servo Control: Dual-servo control for vertical and horizontal movement with smooth animations.
    • Expression System: Real-time expression switching and blinking animations based on user interaction.
    • Weather & Clock: Displays real-time weather from Tuya Cloud and synchronized time on the LCD.
    • UI Styles: Supports WeChat-style, Chatbot-style, and OLED-optimized interfaces.
  8. Overview of LVGL Graphics Library

    master

    LVGL is a free, open-source, lightweight embedded graphics library designed for MCU and MPU displays. It is highly portable, written in C (compatible with C++), and has no external dependencies. It is suitable for various display types including monochrome, ePaper, OLED, and TFT.

    Hardware Requirements:

    • Minimum 32kB RAM
    • Minimum 128kB Flash
    • A C compiler
    • A frame buffer
    • At least 1/10th of the screen size for rendering

    Key Features:

    • Over 30 built-in widgets (buttons, labels, sliders, charts, etc.).
    • Flexible design system with 100+ style properties.
    • Responsive layout engines (Flexbox and Grid).
    • Multi-language support via UTF-8 (CJK, Arabic, etc.).
    • Support for various input devices (mouse, touchpad, keyboard, encoders).
  9. Overview of MimiClaw for Tuya T5AI

    master

    MimiClaw is a TuyaOpen port of the open-source MimiClaw project, designed to run on the Tuya T5AI development board or a Linux Runtime. It functions as a local-first AI assistant that can be interacted with via Feishu (飞书), Telegram, or Discord.

    Key features include:

    • Model Support: Flexible switching between DeepSeek, Claude, GPT, MiniMax, and other compatible interfaces.
    • Local Memory: Conversations and preferences are stored as plain text files on the chip, ensuring persistence across restarts.
    • Autonomous Execution: Includes a built-in task scheduler and heartbeat mechanism for scheduled reminders and automated tasks.
    • Hardware Integration: Leverages TuyaOpen drivers to interact with sensors, GPIO, and displays, enabling AI-driven hardware like smart lamps or robots.
  10. Overview of tdl_ir_device

    master

    The tdl_ir_device component provides an abstraction for infrared (IR) devices, supporting decoding for protocols like NEC and managing multiple IR devices. It is designed to handle two main use cases:

    1. Lighting IR: Requires immediate decoding of received IR codes to ensure timely response.
    2. Gateway IR: Encodes received IR codes and uploads them to the cloud after a complete sequence is received.

    Dependencies:

    • tdd_ir_driver

    Workflow: Hardware Registration $\rightarrow$ Device Lookup $\rightarrow$ Open Device $\rightarrow$ Device Operation (Send/Receive).