An vibrating alarm clock based on Microview.
Other C
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


An alarm clock with vibration, battery monitoring and induction (wireless) charging capabilities. Buttons available to set the time/alarm, turn off OLED and reset. This device is meant for my friend's birthday gift.

As you can tell from the name, this is the second version. It has been slightly streamlined compared to the first.

##Demo video on Youtube

##Final pictures Screen Front, fully assembled.

Screen Top cover removed and charging on my Qi wireless charge pad.

Screen Side view with top open. A Qi wireless charger in the background. Not so messy this time.

More pictures during the assembly/testing phase at the end.

##Parts used

  1. Microview with 64x48 OLED screen (based on ATmega328P chip). Bought during its Kickstarter campaign.
  2. Chronodot v2.1 Real Time Clock (based on DS3231 temperature compensated RTC crystal)
  3. Adafruit PowerBoost 500 Charger
  4. 3.3V voltage regulator (LD1117V33)
  5. 4x button switches (1 switch as reset button)
  6. Pololu DRV8833 dual motor driver
  7. 500mA Qi wireless receiver module
  8. 10mm vibration motor
  9. 4400mAh Lithium battery


  1. 1x half-breadboard
  2. 4x mini-breadboard (2x8 points)
  3. Translucent case


This schematic only represents the logical connections I made. The physical connections differs due to space issues. Closest components used as Fritzing does not have them.

  1. MD030A as DRV8833 motor driver. (Pin 6 on the Microview is connected to the sleep pin on the DRV8833.)
  2. RTC module as Chronodot
  3. The battery is a cylindrical style 4400mAh one.

##Differences with version 1 (V1)

  1. No more pull-down resistors for the switches. I use the internal pull-up resistors of the Arduino by setting pinmode to INPUT_PULLUP.
  2. Battery capacity: The battery size was an afterthought in V1. The battery size is now more than 4x larger.
  3. Power consumption: Reduced by putting the Arduino to sleep and only waking via alarm interrupts from the Chronodot or button press. Even if alarm is enabled, current use is 34mA with display on and 16mA when in sleep giving battery life at approximately 5 and 11 days respectively. (See pictures below)
  4. The components here now run at 5V levels instead of 3.3V previously as that is the output of the PowerBoost charger even though this may not be entirely efficient. I can't use the battery output directly as that value can drop below 3.3V.
  5. The Pololu DRV8833 motor driver is powered behind a 3.3V regulator as 5V is too high for the 10mm vibration motor.
  6. Display the temperature of the Chronodot.
  7. Qi wireless charging. Frequent plugging in and out of the micro-USB cable may wear-out/damage the connector. Wireless charging is convenient too!
  8. Removed speaker as it is rather soft. Even the vibration motor is louder than the speaker!


  1. The Analog to Digital Converter (ADC) of the Microview is rather unstable. As the battery voltage is retrieved via the ADC, I had to do a running average to get a stable value to display.

##Pictures during assembly/testing Screen Current while in sleep mode. Hardware folks may say I can do better but I don't really have time to optimise so much.

Screen Current with screen on and no sleep. Current usage more than doubles.

Screen Side profile. Obviously not charging at such distance away.

Screen On my Qi wireless charge pad. Blue light on the Qi pad and orange on the PowerBoost charger indicates a successful power transfer process.

Screen Under the motor driver is where I "hide" the vibrator to prevent it from jumping out of place as experienced in V1.

Screen I use the very nifty adjustable voltage generator to simulate a battery at different voltage levels to verify the battery percent readings.


Adding a wireless power receiving capability is just as simple as adding a receiver pad. Why didn't I consider this earlier?

##References and libraries

  1. Creating fonts for Microview
  2. DS3232 RTC library
  3. Rocketscream Low Power library