← All work

TouchLens · Embedded robotics

A gripper you can control and inspect.

I'm building a tactile gripper around an ESP32 and a servo-driven mechanism. I've assembled and tested the actuator, debugged its I2C wiring, and tested an FSR402 sensor on a breadboard. BLE firmware and a browser controller are prepared for the next round of testing.

Type
Independent project
Timeline
Jun 2026–present
My role
Integration & firmware
Ray's physical 3D-printed gripper prototype, showing meshing gears, servo, bolted linkages, and jaws
My physical prototypeServo · gears · linkage
01 / Control

How the system connects

I used Nikodem Bartnik’s 3D Printable Modular Robot Gripper as the mechanical starting point. My contribution is the assembly, system integration, control firmware, and bench testing.

  1. CommandsBrowser BLE controller

    Prepared interface for position, hold, and PWM release; hardware connection test pending.

  2. ControlESP32

    Command handling and sensor readings.

  3. ActuationPCA9685 + servo

    I2C commands drive PWM output.

  4. SensingFSR402 + 10 kΩ divider

    Breadboard-tested sensor; firmware includes raw ADC telemetry.

02 / Build

What I built and tested

  • Assembled the gripper using an existing mechanical design and connected an ESP32, PCA9685 driver, and DS3225MG servo with a separate 5 V supply.
  • Diagnosed an initial no-motion fault with an I2C scan. Correcting the control wiring made the PCA9685 respond at address 0x40, then the servo moved successfully.
  • Tested the bare mechanism across PWM counts 120–350 and tested an FSR402 separately using a 10 kΩ divider on GPIO34.
  • Prepared BLE command handling and a browser controller for position, hold, PWM release, and raw sensor readings. End-to-end BLE testing remains pending.

Firmware decisions

The firmware starts the gripper in an open position, constrains commanded pulse values, and drives the servo through the PCA9685 over I2C. BLE write commands control the actuator, while notifications report FSR readings and commanded state.

The FSR uses a 10 kΩ voltage divider on GPIO34 and 12-bit ADC readings. The code averages ten samples and schedules telemetry every 200 ms. These are raw sensor readings, not calibrated force measurements; actual communication timing has not been measured.

Current development stage

Next, I'll mount the FSR with a foam contact layer, measure its no-contact baseline, and record first-contact and gentle-grip readings. Then I'll test the BLE controller and use the measurements to develop automatic contact stopping.

Calibration notes

Pulse 350 is the documented open position; 120 was tested only with the bare mechanism. The closing limit must be measured again after adding the sensor and foam. Pulse 250 is an initial test setting, not a validated force threshold.

The Days 1–2 notebook records wiring, debugging, servo tests, and breadboard sensing. Day 3 lists planned experiments. Source and test notes are available on request while the repository remains private.

03 / Electrical

Complete prototype wiring

USB powers the ESP32 logic, while a separate 5 V supply powers the servo through the PCA9685. I²C carries actuator commands. The FSR402 and 10 kΩ resistor form a voltage divider for GPIO34, with a shared ground across the system.

Complete TouchLens wiring: ESP32 USB power, PCA9685 I2C and separate servo supply, channel 0 servo, and FSR402 voltage divider
Fig. 1 — Module-level wiringPrototype wiring documented in the handoff. Click to view the full-size diagram. VCC is the driver's 3.3 V logic supply; V+ is the separate 5 V servo supply. This diagram describes the wired prototype, rather than the proposed interface PCB. The FSR was tested on a breadboard; mounting it on the fingertip, measuring its baseline, and recalibrating the closing limit remain the next steps.
04 / PCB

A proposed interface PCB Unbuilt

This new KiCad layout translates the prototype wiring into a small board connecting an external ESP32, PCA9685 module, and force sensor. The servo uses a separate power connection. It's a proposed revision prepared with coding assistance; fabrication and bench testing are still pending.

Actual KiCad top copper and silkscreen export of the proposed TouchLens interface PCB
Fig. 2 — KiCad 8 top layerLayout check: zero violations and zero unconnected items under default constraints. Electrical performance hasn't been tested. Native schematic and module pinout review remain required.
Download editable KiCad board, pin assignments, and review notes ZIP · 15 KB ↓

Want the source or test notes?

The repository is private for now—happy to share details on request.

Email me