Skip to content

Get SDK

SDK Overview

The Dexterous Hand SDK (Software Development Kit) is a comprehensive software toolkit designed for BrainCo RevoHand device development, providing complete programming interfaces and control functions. The SDK supports Revo 1, Revo 2, and Revo3 full-range devices, targeting developers in robotics, prosthetics, and industrial automation with both Python and C++ programming languages.

System Requirements

  • Python: 3.8 ~ 3.12
  • Linux: Ubuntu 20.04/22.04 LTS (x86_64/aarch64), glibc ≥ 2.31
  • macOS: 10.15+
  • Windows: 10/11

Supported Communication Protocols

DeviceRS-485ProtobufCANCANFDEtherCAT
Revo 1
Revo 2
Revo3

Download & Installation

SDK Repository

GitHub - brainco-hand-sdk

Python SDK Installation

bash
# Install from PyPI
pip3 install bc-stark-sdk

# China mirror (Alibaba Cloud OSS)
bash install_whl.sh 1.4.2

Example Code

Release Notes

v1.4.2 (2026/04/17)

🚀 Revo3 Device Support

  • Full support for Revo3 series devices (Ultra / Pro / Basic)
  • 21-DOF motor control with position, velocity, current, MIT impedance, and damping modes
  • MIT impedance debug tools: tracking, plotting, trajectory generation
  • New Revo3-specific examples: revo3_motor.py (basic control), revo3_teaching.py (teaching mode), revo3_benchmark.py (high-frequency latency profiling)

🚀 New Tactile Device Types

  • Added ArrayPressure Touch (Revo2TouchArrayPressure) — 3D force & torque data collection (Fx, Fy, Fz, Mx, My) via ArrayPressureTouchDataBuffer
  • C++ demos: hand_demo and hand_monitor with array_pressure mode
  • Python GUI: 2D vector compass visualization for force/torque data
  • Touch type detection APIs:
    • is_capacitive_touch() — Capacitive touch (Revo1/Revo2 Touch)
    • is_pressure_touch() — Piezoresistive pressure touch
    • is_force3d_touch() — 3-axis force touch
    • is_array_pressure_touch() — Array piezoresistive touch

🎨 Python GUI

  • Revo3 motor control, config, and teaching mode panels
  • Touch panels: heatmap visualization with capacitive/piezoresistive/Force3D/ArrayPressure/VisionTouch support
  • Timing test with Revo2/Revo3 workers and dynamic frequency switching
  • i18n support (EN/ZH)

🔧 SDK & API Changes

  • New hardware types: Revo2TouchForce3D, Revo2TouchArrayPressure, Revo3Ultra / Revo3Pro / Revo3Basic (hw_type 10-27)
  • New APIs: uses_revo3_motor_api(), uses_revo3_touch_api(), uses_array_pressure_touch_api()

🐛 Bug Fixes

  • Fixed CAN error frame handling and auto-detect protocol dispatch
  • Added CAN_ERR_FLAG check in SocketCAN recv_can/recv_canfd

📚 Documentation & Project Structure

  • Archived deprecated linux/ and windows/ folders to archive/
  • Added comprehensive Revo3 Python API documentation and joint mapping
  • Added install_whl.sh script for Python wheel installation

v1.1.9 (2026/03/03)

🔧 Improvements

  • Added 150ms warm-up delay after port open to improve Modbus auto-detection reliability on first attempt

📚 New Examples

  • c/demo/debug_detect.cpp — C++ debug tool for Modbus register inspection and raw Protobuf auto-detection

v1.1.6 (2026/02/28)

🚀 New Features

  • Auto-detection now supports BrainCo USBCANFD adapter

v1.1.5 (2026/02/09)

🐛 Bug Fixes

  • Fixed CANFD boundary check issue
  • SocketCAN scan now iterates all interfaces

🚀 New Features

  • SocketCAN Python bindings (init_socketcan_canfd, close_socketcan, socketcan_scan_devices)
  • Device context query APIs: stark_get_protocol_type, stark_get_port_name, stark_get_baudrate, etc.
  • CAN device initialization: init_device_handler_can() / init_device_handler_can_with_hw_type()
  • StarkProtocolType::Auto = 0 enum value for auto-detecting all protocols

🔧 Example Improvements

  • Runtime CAN backend selection, new communication frequency test utilities

v1.1.3 (2026/02/06)

🚀 New Features

  • Built-in SocketCAN Support (Linux) - No external code required
  • Protobuf Protocol Support - Revo 1 serial protocol, baud rate 115200, Slave ID 10-254

v1.1.0 (2025/02/05)

🚀 New Features

  • Built-in ZQWL CAN adapter support (Linux / macOS / Windows, no extra DLL needed)
  • Unified device auto-detection API: auto_detect()init_from_detected()close_device_handler()
  • Stark 1.8 tactile support (RS-485 / CAN protocols)
  • Cross-platform C++ examples (c/demo/)
  • Python GUI debugging tools (motor control, tactile data, waveform monitoring)

⚠️ Breaking Changes

  • Hardware type enum refactored, added Revo1Advanced / Revo1AdvancedTouch
  • API renamed: is_revo1()uses_revo1_motor_api(), is_revo2()uses_revo2_motor_api()
  • Initialization split: init_config()init_logging() + init_device_handler()
  • C structs prefixed with C (e.g., MotorStatusDataCMotorStatusData)
  • linux/ and windows/ example directories deprecated, migrate to c/

📚 Migration Guide

See CHANGELOG.md


v1.0.0 (2025/12/08)

🎉 Official Release

  • Detail optimizations and official upgrade to version 1.0

v0.9.9 (2025/11/19)

🚀 New Features

  • Support for Revo 1 Advanced version devices
  • Unified control parameter ranges: 0~1000 for position, -1000~+1000 for speed/current/PWM
  • Applicable to all Modbus, CANFD, and CAN2.0 communication protocols

⚠️ Important Notice

  • Revo 1 Advanced version requires SDK v0.9.9 or higher
  • Revo 1 Basic and Touch versions can use any SDK version

v0.9.8 (2025/11/04)

🚀 New Features

  • CAN/CANFD Protocol: Complete Revo 2 CAN2.0/CANFD communication stack
  • ZLG CAN Support: Python interface (Windows/Linux) with driver library
  • CANFD Chunked R/W: Support for large data transfer (>29 registers)
  • EtherCAT Tactile: Tactile sensor data collection (PDO/SDO)
  • Pressure Tactile: EtherCAT/CANFD/RS-485 multi-protocol support
  • Protected Current: ProtectedCurrent R/W for CAN/EtherCAT
  • Action Sequence: run_action_sequence for CAN 2.0
  • Device Type Detection: Serial number based (get_hardware_by_sn)
  • Multi-Device Support: Revo1/Revo2 mixed usage

⚡ High-Frequency Communication Optimization

  • C/C++ Async Calls: set commands now async, non-blocking
  • High-Freq No Retry: get/set_finger_*, tactile reads - prevents command queue buildup
  • Low-Freq Retry Reduced: Device info reads reduced to 2 retries

🐛 Bug Fixes

  • Fixed TurboConfig byte order, Modbus C API async calls, OTA package size handling

v0.9.0 (2025/09/20)

🐛 Bug Fixes

  • Fixed known issues and improved stability

v0.8.6 (2025/08/20)

🚀 New Features

  • Added CAN2.0 protocol support for first-generation dexterous hand

🔧 API Improvements

  • Function naming optimization:
    • modbus_stark_ (more universal prefix for CANFD and EtherCAT)
    • create_device_handler() updated naming to avoid ambiguity
    • canfd_init(uint8_t master_id) updated naming to avoid ambiguity
    • init_cfg no longer requires firmware type, automatically obtained via get_device_info interface

📚 Example Code

  • ROS 2 examples added CAN/CANFD support
  • New CAN/CANFD C++ examples

v0.7.0 (2025/07/18)

🚀 New Features

  • Auto-detection of Modbus slave baud rate and device ID
  • Second-generation dexterous hand tactile version interface support

🐛 Bug Fixes

  • Fixed DFU firmware upgrade issues

v0.6.2 (2025/07/14)

🚀 New Features

  • EtherCAT Protocol Support: Second-generation dexterous hand supports EtherCAT high-speed communication
  • Extended RS485 Baud Rates: Added 1M, 2M, and 5M baud rate options for high-performance applications
  • Linux Serial Port Optimization: LOW_LATENCY mode enabled by default, 400% communication frequency improvement at 460800 baud

🔧 API Improvements

  • Refactored device context naming:
    • ModbusContextDeviceContext (more universal device context)
    • ModbusHandlerDeviceHandler (unified device operation interface)

🛠 Development Tools

  • Integrated python-stub-gen toolchain for automatic type stub file (.pyi) generation, enhancing IDE intellisense and type checking

⚠️ Compatibility Notice

  • Please note API naming changes when migrating from older versions

v0.5.3 (2025/06/12)

🚀 New Features

  • Custom Modbus read/write interfaces
  • Action sequence control
  • LED, buzzer, vibration motor control

🐛 Bug Fixes

  • Fixed real-time position/speed/current return value errors

v0.4.5 (2025/05/14)

🚀 New Features

  • Added get_single_touch_status for single-finger touch detection

🔧 Improvements

  • Simplified modbus_open function, removed redundant parameters

v0.4.4 (2025/05/06)

🚀 New Features

  • Added CANFD protocol support

� Bug Fiixes

  • Fixed multiple known issues, improved stability

v0.3.6 (2025/04/16)

� Milestone

  • First support for Gen 2 dexterous hand
  • Established basic communication framework

v0.1.9 (2025/03/17)

📌 Initial Release

  • Modbus communication protocol
  • Python / C code integration
  • SDK architecture