Skip to content

About

This toolkit aims to guide students and researchers with diverse technical backgrounds to develop and control, in real time, a low-cost, high-resolution haptic display for interacting with objects in virtual reality or receiving tactile feedback from robot teleoperation.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Latest commit

 

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Soft Haptic Display (SHD) Toolkit

License: MIT

A fingertip-sized, high-resolution pneumatic haptic display designed to provide realistic tactile feedback in virtual reality (VR) environments or during robot teleoperation. This repository includes all the hardware (CAD files, BOM) and software (Arduino, Raspberry Pi, GUI) needed to build and control the SHD.


Citation & References

@INPROCEEDINGS{11078133,
  author={Yu, Pijuan and Urquhart, Alexis and Kawazoe, Anzu and Ferris, Thomas K. and Hipwell, M. Cynthia and Friesen, Rebecca F.},
  booktitle={2025 22nd International Conference on Ubiquitous Robots (UR)}, 
  title={Soft Haptic Display Toolkit: A Low-Cost, Open-Source Approach to High Resolution Tactile Feedback}, 
  year={2025},
  volume={},
  number={},
  pages={59-66},
  keywords={Fabrication;Wireless communication;Somatosensory;Wireless sensor networks;Extended reality;Tactile sensors;Soft robotics;Rapid prototyping;Haptic interfaces;Spatial resolution},
  doi={10.1109/UR65550.2025.11078133}}


Table of Contents


Features

  • 4×4 Wearable Tactile Array – A low-cost silicone actuator array with 16 individually controlled chambers.
  • Desktop-Sized Control Box – Integrates an Arduino Due, a Raspberry Pi, and pneumatic valves.
  • Real-Time Control – Low-latency wireless communication between the SHD and a PC or VR platform.
  • Open-Source – All code, CAD files, and documentation are released under the MIT license.
  • Easy to Build – Minimal development time; accessible to students and researchers with diverse backgrounds.

Screenshots

The 4 × 4 tactile array haptic display (red) is connected to the control box (white) via transparent air tubes. The control box communicates with the laptop wirelessly using a socket communication method.

static animation 1

Selected Static Patterns

static animation 1 static 1 static 2 static 3 static 4 static 5 static 6

Selected Animation Patterns

Animation gif 1 Animation 1 Animation 2

Animation gif 2 Animation 3 Animation 4

Animation gif 3 Animation 5 Animation 6 Animation 7 Animation 8


Project Structure

Here’s an overview of how this repository is organized:

Soft-haptic-display/
├── hardware/
│   ├── CAD/           # 3D/2D design files (STLs, STEP, source CAD)
│   ├── schematics/    # Electronics circuit diagrams
│   ├── BOM/           # Bill of Materials (CSV or Markdown)
├── firmware/
│   ├── arduino/       # Arduino sketches for low-level control
│   └── raspberry_pi/  # Scripts running on the Pi
├── software/
│   └── gui/           # GUI code on the Computer for controlling the SHD
├── docs/
│   ├── manual/        # User manual, assembly guide
│   ├── images/        # Animation pictures, Gif, Static pictures
├── LICENSE
├── README.md
└── CONTRIBUTING.md


Installation

Hardware Assembly

Purchase all required items from:

Follow the instructions in Docs/Manual/Hardware_tutorial.md to:

  1. 3D-print the mold and control box.
  2. Fabricate the tactile array.
  3. Solder the control board.
  4. Assemble the entire control box and connect it to the tactile array.

Install Software on Your Windows PC

  1. Fork this repository in GitHub.
  2. Open GitHub Desktop and clone your fork to your local machine.
  3. Open the cloned repository in Visual Studio Code or any other Python IDE.
  4. Locate the main.py file in the soft-haptic-display-toolkit/Software directory:
    python main.py
    
  5. Install all required Python libraries until the GUI successfully appears on your computer.

Install Software on the Raspberry Pi

  1. Connect the Raspberry Pi to a monitor.
  2. Open a terminal on the Raspberry Pi:
git clone https://github.com/pijuanyu2022/Soft-Haptic-Display-Toolkit.git
cd Soft-Haptic-Display-Toolkit/Firmware/Raspberry_Pi/
  1. Create a virtual environment in the terminal window:
python -m venv SoftRobo
source SoftRobo/bin/activate
  1. Install all required Python libraries so that run_robot.py can be opened correctly:
python run_robot.py

Install Software on the Arduino Uno

  1. Connect the Arduino Uno to your PC.
  2. Navigate to the /Firmware/Arduino/ directory and open Pneumatic.ino in the Arduino IDE.
  3. Select Arduino Uno under Tools → Board in the Arduino IDE.
  4. Upload the code to the Arduino Uno.

Tips: You can also install the Arduino IDE on the Raspberry Pi and use the Pi to upload the code to the Arduino Uno.


Quick Start

Step 1. Connect your PC and Raspberry Pi to the same Wi-Fi network.

Step 2. Find the Raspberry Pi’s IP address:

  • On the Raspberry Pi’s Terminal, type:
ifconfig
  • Look for the wlan0 or eth0 section. The IP might look like 192.168.x.x.

Step 3. Open a Command Prompt on your Windows PC:

  • Press the Start Menu or Taskbar search, type "cmd", and press Enter.

Step 4. Click Command Prompt and put

ssh [username]@[IP address]
  • Example
ssh pi@192.168.1.100
  • Enter the Pi’s password when prompted.

Step 5. Once connected, you should see something like:

pi@raspberrypi: ~ $

This indicates that the Command Prompt is now logged into your Raspberry Pi.

Step 6. Start the control script on the Pi:

cd Soft-Haptic-Display-Toolkit/Firmware/Raspberry_Pi/
source SoftRobo/bin/activate
python run_robot.py
  • Keep this Command Prompt session open so the script keeps running.

Step 7. On your Windows PC, open Visual Studio Code (or another Python IDE):

  • Navigate to the cloned repository folder:
Soft-Haptic-Display-Toolkit/Software
  • Locate and run main.py.

Step 8. In the GUI that appears, click the Connect button (top-left corner) and enter the Raspberry Pi’s IP address (the same one used for SSH).

Step 9. Follow the GUI_tutorial.md for detailed steps on controlling the tactile display.

  • You should now be able to inflate and deflate the soft haptic array channels in real time!

Documentation

For any unresolved issues, please file a ticket under the Issues tab.


Contributing

We welcome all forms of contributions—bug reports, feature requests, code improvements, and documentation updates. To get started:

  1. Fork this repository.
  2. Create a new branch (e.g., feature/new-valve-driver).
  3. Commit and push your changes.
  4. Open a Pull Request describing your modifications.

License

This project is licensed under the terms of the MIT License.

You are free to use, modify, and distribute this work as long as you include the original license and attribution to the authors.


Acknowledgments

Special thanks to our collaborators and the open-source community:

About

This toolkit aims to guide students and researchers with diverse technical backgrounds to develop and control, in real time, a low-cost, high-resolution haptic display for interacting with objects in virtual reality or receiving tactile feedback from robot teleoperation.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages