Skip to content

Parkinson's Disease Buzz Board (vibrotactile therapy)

License

Notifications You must be signed in to change notification settings

mchusma/vCR-reproduction

 
 

Repository files navigation

Disclaimer

This product is not a medical device and is not intended to diagnose, treat, cure, or prevent any disease or medical condition. It should not be used as a substitute for professional medical advice, diagnosis, or treatment. Always consult with a qualified healthcare professional before making any decisions related to your health or using this product in conjunction with a medical treatment plan.

Introduction

This was originally a fork of the pdbuzzboard project, we love his work! However, as I have added a lot more of my own flavor to this, I'm maintaining a separate repo just in case. I do intend to merge in changes as he will accept, to consilidate notes. My main goal with this repo is to consolidate everything possible to help users recreate the results of Dr. Peter Tass's Vibrotactile Therapy studies. It is open and free to copy, PRs are welcome!

At a high level, I will include:

Summary of Peter Tass Stanford Study

The main study we are looking at was done by Dr. Tass, where attempted to use gloves vibrating in a pattern to help the brain move towards more healthy patterns.

image

Here is the study: https://www.frontiersin.org/articles/10.3389/fphys.2021.624317/full

The Stimulation Pattern

At a high level he has attempted 2 different approaches:

  • Regular Vibrotactile Coordinated Reset (vCR): where a semi random pattern is applied
  • Noisy Vibrotactile Coordinated Reset (vCR): where additional random delays are added into the pattern to further increase randomness, and hopefully increasing the effect.

Right now, there is no data on which approach is better. But it appears all 8 Parkinson's patients receiving either approach saw improvements in motor performance and MDS-UPDRS III scores. The theory is that noisy vCR could improve results, but there is just no data to support it yet.

Here is how the paper describs the characteristics listed in the paper of the vibration sequence to use to reproduce the results.

  • Vibration frequency: 250 Hz (1 Hz is equal to 60 rpm, which is why we have purchased 15,000 rpm motors).
  • Vibration duration: 100 ms. Some people have observed that some charts seem to have 167ms duration, but the papers do clearly state 100ms duration.
  • Stimulation rate: 1.5 Hz (corresponding to a 667 ms cycle)
  • Fingertips stimulated: Fingers 2-5 of both hands (excluding thumbs).
  • For each loop of the sequence, each motor is triggered exactly once.
  • Sequence order: Randomly varied
  • Mirrored: For Noisy vCR, the stimulation was mirrored in both hands. For regular vCR, it was NOT mirrored, rather each hand recieved the same sequence at slightly different/independent times.
  • Inter-stimulus intervals: Constant for regular vCR, or subject to moderate jitter (± 23.5%) for noisy vCR
  • Vibration amplitude: Perceptually weak vibration peak amplitudes (0.06-0.10 mm). This seems important, as the paper states:

The first-in-human study using 0.35-mm vibration amplitude found no significant differences in the UPDRS III during the 3-day treatment phase ...Nevertheless, our finding of strong acute decreases in the MDS-UPDRS III observed during study 1’s first visit and in study 2 in patient 1’s first 3-day visit, and patient 3’s first day visit may indicate that smaller peak vibration amplitudes (0.1 mm/0.06 mm) are more beneficial toward treating patients’ motor symptoms.

  • On-Off Pattern of 3:2. Meaning 3 seconds of the stimulation in the above pattern, with 2 seconds of break.

The paper shows a diagram of the stimulation pattern: image

And describes it:

Stimulation patterns used throughout the paper. (A) Regular 3:2 ON-OFF coordinated reset with rapidly varying sequence (CR RVS) pattern. (B) Noisy 3:2 ON-OFF CR RVS pattern and 23.5% jitter. (C) Purely periodic multichannel stimulation. Gray lines indicate multiples of the vibrotactile coordinated reset (vCR) period TCR, and dotted lines indicate multiples of TCR/4 during individual CR periods.

https://www.frontiersin.org/articles/10.3389/fphys.2021.624317/full

So it is unclear if the Stanford study uses the pattern shown, or if this is just a sample pattern and it is randomly generated. We are running anecdotal tests now.

Gloves

And here is how the paper describes the gloves:

  • The hand array comprised of 8 vibrating motors from Engineering Acoustics called "C-MF tactors". I cannot find these online, but I see the similar C2 available: https://www.eaiinfo.com/product/c2/. Each tactor was located against the fingertip of the second (index), third, fourth and fifth (pinky) finger using individual finger pods that are attached to a glove. The pod consisted of the motor, and essentially a velcro/fabric pod to hold it together.

Here is the glove:

image

And here is the housing for the motor:

image

Different Hardware and Software Options

I'm aware of several different hardware and software options that are going on. Some of which I have implemented myself:

PDBuzzBoard Project

I have spent the most time with this project, and have the most knowledge of it. The PDBuzzboard Project has several hardware variations.

  • The "PD Buzzboard" itself, which is a board which sits in your lap, and has vibrating motors on each finger. Users can put this in their lap, place their fingers on the motors, and get vibration on their fingers. This is easiest to build, but users must stay stationary while using.
  • The "PD Buzzboard Gloves with One Controller". This variation has a central controllers running the vibration program, typically used in a fanny pack, and wires running from the fanny pack to the gloves. This is more mobile than the buzzboard, as users can walk and move around, but there are some central cables which can get caught on things.
  • The "PD Buzzboard Gloves with Separate Controllers". This variation has separate controllers on each hand. This is the hardest to build, but has the most mobility.

And it also has a few software variations, including:

  • VibroTherapy 3V.ino - it looks like a regular vCR approach originally created by pdbuzzboard
  • VibroTherapyMotorShield.ino - regular vCR attempting to recreate the pattern shown in the paper with 100ms duration vibrations
  • VibroTherapyMotorShield_167.ino - regular vCR attempting to recreate the pattern shown in the paper with 167ms duration vibrations
  • VibroTherapyMotorShield_167_with_jitter.ino - noisy vCR attempting to recreate the pattern shown in the paper with 167ms duration vibrations with 23.5% jitter added to the pattern
  • VibroTherapyMotorShieldv3.ino - This was an attempt to recreate how the paper described the pattern, without recreating the diagram. It has much more randomness than the other projects.

Other Projects

There are other project options listed here: https://bb.f2heal.com/viewforum.php?f=13 https://github.com/HackyDev/vibrotactile-stimulator

PD Buzzboard

This project will typically take a few hours to build the first time, if you have all the parts and supplies

image

Parts & Equipment

Equipment

This is equipment you must have:

Parts

Working with parts like these, note that they will fail much more often than you would expect of normal consumer products. If you have the budget, I'd recommend getting extras of every part.

Instructions

For instructions on assembly, look here: https://www.youtube.com/watch?v=1PfsVjnPAuQ&t=1456s

Prepare Central Board

  • Take your Arduino Uno and attach the Motor Shield to the top of the Arduino. Line up the motor shield to the end of the board.
  • Put your Arduino and Motor Shield into a case.
  • Remove the jumper from the Motor Shield.
  • Connect USB power source to Motor Shield.
  • Connect USB power source to Arduino.

image

Prepare Vibrating Motors

  • Cut 16 wires total to length. 8 black wires and 8 red wires.
  • Strip the ends of the wires.
  • Solder the wires to the vibrating motors. Match the red wire from the motor to the red wire, and match the black wire from the motor to the black wire.

Cover Vibrating Motors With Protective Covers

  • Take 4 1/8 heat shrink tubes and cut them in half, so you have 8.
  • Take 4 1/4 heat shrink tubes and cut them in half, so you have 8.
  • Take 4 3/8 heat shrink tubes and cut them in half, so you have 8.
  • Insert a 1/8 heat shink tubing over the black wire, push all the way to the end.
  • Insert a 1/4" heat shrink tube and push it over the red and black wires, pushing it all the way to the end.
  • Use the heat gun to shrink it.
  • Slide 3/8 heat shrink tube over the 1/4" head shield and the motor.
  • Use the head gun on this.
  • Repeat for all fingers.

Install Arduino Software

  • Install Arduino IDE
  • Plug in Arduino
  • Install Adafruit Motor Shield Library
  • Upload the sketch

Attach Vibrating Motors to Arduino Motor Shield

  • Attach 2 motors into each "slot" in the Arduino Motor Shield. This is because "Motor 1" slot in the motor shield is sending a pattern for "finger 1 on each hand". So 2 blacks and 2 reds in motor 1 and 2 blacks and 2 reds in motor 2, and same for motor 3 and motor 4.
  • Tighten the motor shield screws to ensure the motors are held firmly in place.

Assemble Lapboard

  • Place laboard on table, and put wrist guard on end.
  • Have the user place their fingers on the board, and mark each spot.
  • Label the fingers as 1, 2, 3, 4, with 1 being the index finger and 4 being the pinky finger.
  • Place decorating stickers on each spot.
  • Add the central controller (Arduino) to the top-center of the board, securing it with 2 sided velcro.
  • Put the correct vibrating motor to each number. For example, the 2 motors coming from the M1 slot on the Arduino Motor Board go to the 1 finger slot.
  • Add cable tie to secure the motor in place.

Final Power Assembly

  • Put the motor shield and arduino power cables into a Y-splitter, so they have 1 usb powering both.
  • Put that usb power into a switch.
  • Plug the switch into your battery pack.

Turn It On and Check It

  • Turn it on, and check to see if the light inside is flashing.
  • It should work in a pattern, with each finger vibrating. This video shows how it should work and sound: https://www.youtube.com/shorts/loSCJDZAPkg

PD Buzzboard Gloves with One Controller

Parts List

Buy all the parts for the PD Buzzboard except you will also need the following: xxxx

Instructions

Many of these instructions are similar to the PD Buzz Board itself, but the main difference is that you will be putting the main control board in a central fanny pack, and the user will have the vibrating motors in gloves on their hands. This is more comfortable for them.

Here is a video of some parts of this build: https://www.youtube.com/watch?v=dvRL9_7ok0E

Prepare Central Board

  • Take your Arduino Uno and attach the Motor Shield to the top of the Arduino. Line up the motor shield to the end of the board.
  • Put your Arduino and Motor Shield into a case.
  • Remove the jumper from the Motor Shield.
  • Connect USB power source to Motor Shield.
  • Connect USB power source to Arduino.

Prepare Vibrating Motors

These motors will connect to the wrist station.

  • Cut 16 wires total to length. 8 black wires and 8 red wires.
  • Strip the ends of the wires.
  • Solder the wires to the vibrating motors. Match the red wire from the motor to the red wire, and match the black wire from the motor to the black wire.

Cover Vibrating Motors With Protective Covers

  • Take 4 1/8 heat shrink tubes and cut them in half, so you have 8.
  • Take 4 1/4 heat shrink tubes and cut them in half, so you have 8.
  • Take 4 3/8 heat shrink tubes and cut them in half, so you have 8.
  • Insert a 1/8 heat shink tubing over the black wire, push all the way to the end.
  • Insert a 1/4" heat shrink tube and push it over the red and black wires, pushing it all the way to the end.
  • Use the heat gun to shrink it.
  • Slide 3/8 heat shrink tube over the 1/4" head shield and the motor.
  • Use the head gun on this.
  • Repeat for all fingers.

Build wrist station

The "wrist station" is basically where the individual motors connect from the ends of the fingers to a central part of the wrist. Then, they will connect with a larger cable to a fanny pack, where the central board is.

  • Strip both ends of a CAT 5 cable. There should be 4 pairs of wires. In mine, there was orange, green, blue, and brown. While you can set up the colors in any order you like, I set it up assuming 1 (orange), 2 (green), 3 (blue), 4(brown), with 1 (orange) being the index finger and 4 (brown) being the pinky finger.

image

  • Use the same colors to represent the same fingers on both sets of gloves.

Each

Install Arduino Software

  • Install Arduino IDE
  • Plug in Arduino
  • Install Adafruit Motor Shield Library
  • Upload the sketch

Attach Vibrating Motors to Arduino Motor Shield

  • Split your CAT5 cable into 8 separate wires, the 4 colors and the 4 grounds.

    image
  • Attach 2 motors into each "slot" in the Arduino Motor Shield. The color corresponding with finger 1 (the index finger) should be in the "Motor 1" slot, and so on. Add the grounds next to the Motor as well.

  • Tighten the motor shield screws to ensure the motors are held firmly in place.

    image

Fanny Pack

  • Add the central controller (Arduino) to the top-center of the board.
  • Put the correct vibrating motor to each number. For example, the 2 motors coming from the M1 slot on the Arduino Motor Board go to the 1 finger slot.
  • Add cable tie to secure the motor in place.

Glove Assembly

Final Power Assembly

  • Put the motor shield and arduino power cables into a Y-splitter, so they have 1 usb powering both.
  • Put that usb power into a switch.
  • Plug the switch into your battery pack.

Turn It On and Check It

For assembly of the electrical compontents, look here: https://www.youtube.com/watch?v=dvRL9_7ok0E&t=57s

PD Buzzboard Gloves with Separate Controllers

Parts List

Coming soon...

Instructions

More instructions coming soon...

Vibration Sensor

To know if your PD Buzzboard is working correctly, you will need a vibration sensor.

Parts List

Instructions

This video gives you the instructions to build it: https://www.youtube.com/watch?v=qlr-2mkvalQ

  • Assemble the sensor unit. Connect the black sensor wire to the GND (ground) and the red sensor wire to the INPUT and tighten. I have seen many of these not work, so you may have to solder them in.

image

  • Assemble the sensor unit. Connect the black sensor wire to the GND (ground) and the red sensor wire to the INPUT and tighten. I have seen many of these not work, so you may have to solder them in.
  • Connect the arduino cable from the sensor to the board.

Troubleshooting

My motors are not firing in sequence?

The first thing I would check would be that all things are firmly attached. For example, the motor board easily comes off the Arduino Uno, and must be set fully to work.

About

Parkinson's Disease Buzz Board (vibrotactile therapy)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 100.0%