Create a vibration notification wearable for timing your meditation sessions and so much more! The haptic motor controller can execute waveforms, taps, clicks, fuzzes, hums, and bumps-- different patterns of vibrating that you can recognize. Build it into a bandana or headband for a meditation timer that gently signals you without the need for your phone's alarm.

Before you begin, make sure you've read the following prerequisite guides:

For this project you will need:

For a similar circuit without haptic gestures (but with slightly smaller components), check out the Gemma Mindfulness Bracelet!

Solder four wire connections as follows:

  • motor controller VIN -> Flora 3.3V
  • motor controller GND -> Flora GND
  • motor controller SCL -> Flora SCL
  • motor controller SDA -> Flora SDA

Solder the vibtration motor to the + (red) and - (blue) on the motor controller.

Use a piece of double sided foam tape (or velcro tape) to affix the moto controller to the back of Flora, and plug in your battery.

Upload the following code to your Flora using the Arduino IDE. Change the 'interval' variable to your desired timer. Requires the DRV2605 library.

This basic code creates a variable delay between pulses-- adjust the 'interval' value to your liking.

For a more complex, power saving example, check out the Gemma Mindfulness Bracelet.

/*
Basic timer circuit to trigger haptic motor controller at a specified interval.
Uses Flora and DRV2605L Haptic Motor Controller
Tutorial: https://learn.adafruit.com/haptic-headband
*/

#include <Wire.h>
#include "Adafruit_DRV2605.h"

Adafruit_DRV2605 drv;

uint8_t effect = 7;
uint32_t wait = 10; // Time between reminders, in seconds

void setup() {
  Serial.begin(9600);
  drv.begin();
  
  drv.selectLibrary(1);
  
  // I2C trigger by sending 'go' command 
  // default, internal trigger when sending GO command
  drv.setMode(DRV2605_MODE_INTTRIG); 
  
}

void loop() {
  Serial.print("Effect #"); Serial.println(effect);

  // set the effect to play
  drv.setWaveform(0, effect);  // play effect 
  drv.setWaveform(1, 0);       // end waveform

  // play the effect!
  drv.go();
    
    
    delay(wait * 60 * 1000);
    

}

Plug in your battery, power Flora's switch ON, and roll up the circuit in a headband or bandana. Wear for timing your meditation, reminding you to check the laundry, etc.!

This guide was first published on Nov 25, 2015. It was last updated on Nov 25, 2015.