Open Source RoboticsRobots, software & field notes

BiDexHand

Based on published sources · Not tested by us ·

Overview

BiDexHand V4 is a 16-DoF tendon-driven hand with printed parts, a Servo2040 PWM route and ROS 2 control packages. [S001]

BiDexHand V4 provides a 16-DoF hand mechanism, STEP and STL assets, a bill of materials and ROS 2 packages. Fifteen joints use a cable-and-pulley arrangement, with a four-bar mechanism for the remaining joint. The fingers couple distal motion to the proximal interphalangeal joint; visible joint motion should not be counted as an extra independently driven degree of freedom. [S001] [S013]

This profile selects the V4 PWM build using Servo2040. The alternative SCS bus-servo BOM is a different configuration, and the README sends that route to a V3 fork that was not matched and reviewed here. Neither route was physically assembled or tested for this entry. [S001] [S005]

Specifications

DetailDescription
TypeTendon-driven dexterous robotic hand
Reported by source [S001] · Checked 2026-10-01
Intended usersRobotics builders able to assemble tendon mechanisms and debug ROS 2 integration
Editorial assessment [S001] · Checked 2026-10-01
AssemblyNot known
CalibrationCalibration code uses AprilTag measurements and configurable motor/tag mappings; complete whole-hand procedure not validated.
Reported by source [S011] [S012] · Checked 2026-10-01
Operating systemNot known
Computer neededComputer with ROS 2 Jazzy environment and USB connection
Reported by source [S001] [S007] · Checked 2026-10-01

3D preview

Preview not available yet. A model has not yet been prepared and approved for display on this page. This does not mean the project lacks CAD files; see Source files and licenses for the reviewed source availability.

Assembly and use

Budget for the mechanism and its integration

The PWM BOM lists 16 FeeTech FT90M servos, one Servo2040 and a 6 V 5 A supply. It also calls for printed components, precision shoulder screws, bushings, springs, inserts, tendon line and PTFE tubing. Those are part of the mechanism, not incidental extras. The BOM also includes a wrist camera; this review has not established that camera as mandatory for basic direct servo commands. No complete current delivered cost was verified. [S005] [S007]

STEP and STL files establish available design artifacts, not dimensional fit or fabrication success. The README links an external Onshape design and demonstrations; those external models and videos were not inspected as an assembly qualification. Tendon routing, tension and individual joint limits still need a builder-specific check. [S001] [S013]

The quickstart and the preserved launch file differ

The README says ROS 2 Jazzy is the primary tested environment and gives rosdep/colcon build steps. Its direct-control quickstart names multi_servo_control.launch.xml, but the archived package supplies multi_servo.launch.xml and installs that filename in setup.py. This is a source-level mismatch, not a launch command verified by this publication. [S001] [S008] [S009] [S013]

The supplied launch file starts the serial-control node unconditionally and starts it again in streaming mode, using the same USB argument. That needs reconciliation before treating the launch as a ready-to-run recipe. The control node opens its port at 115200 and requires exactly 16 streamed positions, mapped to channels 0–15. A successful serial write is what its service reports; it is not measured joint feedback. [S007] [S008]

Controller capacity does not establish joint travel

The firmware initializes and enables all 18 Servo2040 outputs at startup, while the hand and streaming interface use 16. Its position labels span minus to plus 140, but the implementation maps those values linearly to 1000–2000 microsecond pulses. Those labels do not independently establish the travel of the installed servos or the assembled tendon mechanism. Startup centering is a real commanded behavior in the source and needs consideration before attaching a tensioned mechanism. [S006] [S007]

The ROS node formats positions to three decimal places, while the firmware uses integer parsing before the pulse calculation. Fractional command precision is therefore discarded on this inspected path. This finding comes from reading the two implementations; no board communication or physical positioning accuracy was measured. [S006] [S007]

Calibration and licensing are separate checks

The calibration node uses AprilTag measurement services, with configurable motor and tag mappings. The supplied configuration identifies specific MCP and PIP calibration mappings; it is not evidence that every joint in a newly built hand has already been calibrated. Camera setup, tag geometry, tendon adjustment and a complete whole-hand sequence remain unverified here. [S011] [S012]

The root repository provides MIT terms, while hand_servo_control includes an Apache-2.0 license. Package-level notices must remain part of the software assessment rather than being replaced with the root label. Purchased electronics, the alternative bus-servo route, external VR tracking and Franka integration have separate requirements. This entry covers available sources and concrete setup gaps, not a reproduced dexterity or teleoperation result. [S001] [S003] [S005] [S010]

Cost

No current, complete configuration-specific build cost has been established for this profile.

Source files and licenses

Available project sources support research coverage; complete build and commercial qualification remain separate.

LayerAvailability / license
mechanical designavailable · MIT
Repository root MIT terms; purchased components and external resources retain separate scope. Source availability is not build validation. [S001] [S003] [S013]
electronicsnot found · License not fully assessed
BOM uses purchased Servo2040 and servos; no complete custom electronics design established in this reviewed archive. [S005] [S013]
firmwareavailable · MIT
Repository root MIT terms; purchased components and external resources retain separate scope. Source availability is not build validation. [S001] [S003] [S013]
softwareavailable · License not fully assessed
Mixed package licensing: root MIT and package-level Apache-2.0, including hand_servo_control. Do not treat root MIT as the sole license for every package. [S003] [S010] [S013]
documentationavailable · MIT
Repository root MIT terms; purchased components and external resources retain separate scope. Source availability is not build validation. [S001] [S003] [S013]

Selected direct PWM servo-control route requires no learned model or dataset; external VR integration is outside this assessment.

References

Links identify the documentation and revisions used in this profile. Access dates record when each source was retrieved.

  1. S001 · wengmister / project contributors
    Upstream project overview
    Accessed 2026-10-01 · README.md
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  2. S002 · wengmister / project contributors
    Repository revision and release metadata
    Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  3. S003 · wengmister / project contributors
    Repository license
    Accessed 2026-10-01 · LICENSE
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  4. S004 · wengmister / project contributors
    Pinned repository artifact inventory
    Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e archive file inventory
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  5. S005 · wengmister / project contributors
    BOM.md
    Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e BOM.md
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  6. S006 · wengmister / project contributors
    scripts/Servo2040/servo2040_controller.cpp
    Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e scripts/Servo2040/servo2040_controller.cpp
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  7. S007 · wengmister / project contributors
    src/hand_servo_control/hand_servo_control/servo_control_node.py
    Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e src/hand_servo_control/hand_servo_control/servo_control_node.py
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  8. S008 · wengmister / project contributors
    src/hand_servo_control/launch/multi_servo.launch.xml
    Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e src/hand_servo_control/launch/multi_servo.launch.xml
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  9. S009 · wengmister / project contributors
    src/hand_servo_control/setup.py
    Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e src/hand_servo_control/setup.py
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  10. S010 · wengmister / project contributors
    src/hand_servo_control/LICENSE
    Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e src/hand_servo_control/LICENSE
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  11. S011 · wengmister / project contributors
    src/hand_calibration/config/calibration_params.yaml
    Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e src/hand_calibration/config/calibration_params.yaml
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  12. S012 · wengmister / project contributors
    src/hand_calibration/hand_calibration/motor_calibrator.py
    Accessed 2026-10-01 · 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e src/hand_calibration/hand_calibration/motor_calibrator.py lines 1–140
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  13. S013 · wengmister / project contributors
    Complete archive filenames
    Accessed 2026-10-01 · Complete archive file inventory; no geometry validation
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

Research and review details

Source research only; no installation, physical build or performance test performed. No affiliate links added.

Profile edited 2026-10-01 · Sources checked 2026-10-01 · Next review target 2026-10-31

Revision: 0f50498626e5f02cdc10c44cb2c18d4e7b3bb45e (release v4.0). Combined hardware and software repository activity recorded 2025-10-09 [S002]

Correction guidance · Discussion is not enabled · Profile format 0.6.0-draft.1

Change history