Skip to the content
2 layers48 × 121.5 mmBionicHand, the printed circuit board in 3D

our project in CEDD source code in bionic hand using esp32s3 micro controller

Size
48 × 121.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
13
Nets
47
Pads
74
Tracks, vias
135, 0
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
2 Jun 2026
Updated
3 Jun 2026

Overview

BionicHand is an open-source printed circuit board by Minecrapft, from the Minecrapft/BionicHand repository on GitHub. It is a 2-layer board of 48 × 121.5 mm with 13 parts on 47 nets, routed with 135 tracks and 0 vias.

Its parts include 4 resistors, 1 capacitor and 1 switch.

README

README.md

Robohand

A simple Arduino sketch to control a robotic hand (servo-based) — provided as Robohand.ino.

Summary

This project contains an Arduino sketch that reads inputs (sensors/buttons/potentiometers) and drives servos to move a robotic hand. Use this README to set up the hardware, upload the sketch, and customize pin mappings or servo ranges.

Files

  • Robohand.ino — main Arduino sketch (open in Arduino IDE).

Required Hardware

  • Arduino board (Uno, Nano, Mega, etc.)
  • 3–5 x hobby servos (depending on hand design)
  • Power supply for servos (separate 5–6V recommended)
  • Jumper wires, breadboard
  • Optional: potentiometers, push buttons, flex sensors for control

Wiring (example)

  • Connect servo signal wires to Arduino digital pins (example):
    • Thumb: D3
    • Index: D5
    • Middle: D6
    • Ring: D9
    • Pinky: D10
  • Connect servo power (V+) and ground to the servo power supply. Connect servo ground to Arduino GND.
  • Connect control inputs (potentiometers or buttons) to analog pins A0–A2 as needed.

Adjust pin numbers in Robohand.ino to match your wiring.

Software & Upload

  1. Install the Arduino IDE from https://arduino.cc.
  2. Open Robohand.ino in the Arduino IDE.
  3. Select the correct board and port under Tools → Board / Port.
  4. Connect the Arduino via USB and click Upload.

If using external servo power, ensure the external supply is connected and common-grounded with the Arduino before powering servos.

Usage

  • Once uploaded, control the hand using the configured inputs (potentiometers/buttons). The sketch maps inputs to servo positions; modify the mapping in the code if needed.

Customization

  • Open Robohand.ino and edit pin definitions and servo limits to match your hardware.
  • Calibrate servo min/max values to prevent mechanical binding.

Troubleshooting

  • Servos jittering: provide a stable external power supply and common ground.
  • Servo not moving: check signal pin, correct power, and that the sketch references the correct pin.

Contact

If you want help customizing the sketch or wiring, open an issue or reply here.

ESP32-S3 (connection & run)

This sketch can run on an ESP32-S3-based board with a few small changes. Follow these steps to connect and upload:

  1. Install ESP32 board support in the Arduino IDE:
  • Open Tools → Board → Boards Manager and install the "esp32" package by Espressif.
  1. Power and wiring:
  • Servos typically need 5V. Use a separate 5–6V servo power supply and connect all grounds together (ESP32 GND ↔ servo power GND).
  • Connect each servo signal wire to a free ESP32-S3 GPIO. Example (change pins in the sketch to match):
    • Thumb: GPIO 18
    • Index: GPIO 19
    • Middle: GPIO 21
    • Ring: GPIO 22
    • Pinky: GPIO 23
  • Avoid pins reserved for flash/SPI (commonly GPIO6–GPIO11) and consult your board's pinout for S3-specific restrictions.
  1. Library and code changes:
  • If Robohand.ino uses the AVR Servo.h, switch to an ESP32-compatible servo library such as ESP32Servo (install via Library Manager) or use a PWM/i2c driver (PCA9685) for many servos.
  • Update the pin definitions at the top of Robohand.ino to the GPIOs you wired.
  • Ensure servo pulse limits are appropriate for your servos (calibrate min/max values to avoid binding).
  1. Uploading the sketch:
  • In Arduino IDE select Tools → Board → ESP32S3 Dev Module (or the specific board name) and the correct Port.
  • Click Upload. If required, press the boot/enable buttons as prompted by the IDE.
  1. Troubleshooting & tips:
  • If servos twitch or reset the board, power them from a dedicated supply and keep a common ground.
  • For many servos, using a dedicated PWM driver (PCA9685) reduces load on the ESP32 and simplifies timing.
  • Use the Serial Monitor to view debug messages; set the baud rate in the sketch to match (commonly 115200).

These steps should get Robohand.ino running on an ESP32-S3 board. If you want, I can update Robohand.ino to include ESP32Servo examples and default ESP32 pin definitions.

Control via Phone (Web Interface)

To control the robot hand from your phone using a web browser on the local network:

Setup

  1. Connect ESP32-S3 to WiFi:

    • Add WiFi credentials to Robohand.ino:
      cpp
      const char* ssid = "YOUR_WIFI_SSID";
      const char* password = "YOUR_WIFI_PASSWORD";
    • Initialize WiFi in setup():
      cpp
      WiFi.begin(ssid, password);
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
      }
      Serial.println(WiFi.localIP());
    • Note the IP address printed to the Serial Monitor (e.g., 192.168.1.100).
  2. Create a simple web server:

    • Add these includes at the top of Robohand.ino:
      cpp
      #include <WiFi.h>
      #include <WebServer.h>
    • Create a WebServer instance:
      cpp
      WebServer server(80);  // Listen on port 80 (HTTP)
    • In setup(), define a handler that serves an HTML control panel:
      cpp
      server.on("/", HTTP_GET, []() {
        String html = "<html><body style='font-family:Arial'>"
          "<h1>Robohand Control</h1>"
          "<button onclick=\"fetch('/servo?pin=18&pos=90')\">Thumb Open</button>"
          "<button onclick=\"fetch('/servo?pin=18&pos=0')\">Thumb Close</button><br>"
          "<button onclick=\"fetch('/servo?pin=19&pos=90')\">Index Open</button>"
          "<button onclick=\"fetch('/servo?pin=19&pos=0')\">Index Close</button><br>"
          "</body></html>";
        server.send(200, "text/html", html);
      });
    • Add a servo control endpoint:
      cpp
      server.on("/servo", HTTP_GET, []() {
        int pin = server.arg("pin").toInt();
        int pos = server.arg("pos").toInt();
        // Attach servo and move to position
      
        // (details depend on your Servo library)
      
        server.send(200, "text/plain", "OK");
      });
    • Start the server in setup():
      cpp
      server.begin();
    • In loop(), handle incoming requests:
      cpp
      server.handleClient();
  3. Access from your phone:

    • Connect your device to the RoboHand-S3 WiFi network (password: 12345678).
    • Open a web browser and navigate to: http://192.168.4.1
    • No port number needed — it runs on port 80 (standard HTTP), so the browser uses it automatically.
    • You should see the Robohand control panel with buttons to open/close fingers.
  4. Customize the web interface:

    • Add sliders for smooth servo control:
      html
      <input type="range" min="0" max="180" value="90" 
        onchange="fetch('/servo?pin=18&pos=' + this.value)">
    • Add visual feedback (color change, status display) using JavaScript.

Troubleshooting

  • Phone can't find the ESP32: Ensure both phone and ESP32-S3 are on the same WiFi network.
  • Web page doesn't load: Check the IP address from the Serial Monitor (e.g., 192.168.1.), and make sure no firewall is blocking port 80.
  • Servos don't respond: Verify the /servo endpoint is correctly wired to your servo control code.

Parts

13
QtyValueFootprintReferences
310kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1, R2, R3
3Screw_Terminal_01x02TerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type073_RT02602HBLU_1x02_P5.08mm_HorizontalBATTERY_INPUT1, BUCK_TB1, PCA9685_TB1
2Conn_01x06Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalEMG_SENSOR1, PCA9685
2Conn_01x22Connector_PinSocket_2.54mm:PinSocket_1x22_P2.54mm_VerticalESP32_LEFT1, ESP32_RIGHT1
120kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR4
1470uCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC1
1SW_DPST_x2Button_Switch_THT:SW_PUSH_1P1T_6x3.5mm_H4.3_APEM_MJTP1243SW1

Similar boards

  • 2 layers40 × 20 mmUsb uart, the printed circuit board in 3D

    Usb uart

    earthtojake/text-to-cad

    Design physical products with AI

    13 parts26kMIT
  • 2 layers35 × 29 mmMagSpoofTC, the printed circuit board in 3D

    MagSpoofTC

    samyk/magspoof

    A portable device that can spoof/emulate any magnetic stripe, credit card or hotel card "wirelessly", even on standard magstripe (non-NFC/RFID) readers.

    13 parts4.2k
  • 2 layers20.6 × 23.6 mmAO-03 signal amplifier, the printed circuit board in 3D

    AO-03 signal amplifier

    fossasia/pslab-scripts

    Pocket Science Lab - Scripts for Sensor Experiments

    13 parts1.6kApache-2.0
  • 2 layers47 × 35.6 mmMX7-C-35PL C11, the printed circuit board in 3D

    MX7-C-35PL C11

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    13 parts1.2k
  • 2 layers95 × 95 mmCube batteryboard, the printed circuit board in 3D

    Cube batteryboard

    willem-pennings/balancing-cube

    A cube that balances itself in a corner or edge using reaction wheels

    13 parts1.1kGPL-3.0
  • 2 layers15.2 × 20.3 mmPt100stick, the printed circuit board in 3D

    Pt100stick

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    13 parts1.1kGPL-3.0
  • 2 layers53.9 × 23.2 mmBuffer, the printed circuit board in 3D

    Buffer

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    13 parts1kGPL-3.0

Questions

How big is the BionicHand PCB?

It measures 48 × 121.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the BionicHand use?

13 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the BionicHand KiCad files?

From the Minecrapft/BionicHand repository on GitHub, at the commit this page was made from: the board is all-project-files/bionic_hand_pcb/bionic_hand.kicad_pcb and its schematic all-project-files/bionic_hand_pcb/bionic_hand.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the BionicHand design in my own project?

Its repository states no licence, so its author keeps all rights: ask Minecrapft before reusing the design.