Cover Image

Ripple - A desktop widget

Introduction

This Widget is a compact, interactive Arduino project that turns a humble 8x8 LED matrix into a lively desktop companion. It has two distinct personalities packed into 64 LEDs:

Switching between modes is gesture-driven: give the widget a shake and the ADXL345 accelerometer detects it, flipping between the friendly face and the physics playground.

Components list

Arduino Nano R3    -> 1
8x8x8 Led Metrics  -> 1
Triple Axis Accelerometer ADXL345 -> 1
Resistor 220 ohm   -> 8
PCB Board Prototype -> 2
Female to Female Hex Spaced -> 4
Breadboard for prototyping
Solder Wire, Lead Free
Soldering iron
Arduino IDE 

How It Works

The firmware is split into three clean modules:

The main loop prioritizes display refresh on every iteration, so the LEDs stay smooth and bright regardless of which mode is active. Physics updates are throttled to every 50 ms, and accelerometer reads do double duty, feeding both the shake detector and the gravity vector for the fluid sim.

Working prototype

How to customize?

You can customize the code to do following

// add a new expression     
static byte new_emotion[8] = {     
	   B00000000,
	   B00000000,
	   B01100110,
	   B00000000,
	   B00000000,
	   B00111100,
	   B00000000,
	   B00000000
	 };
// Then plug it into the frames[] sequence and give it a duration in frameDurations[]

Schematics Diagram

Schematics

Ki Cad 3D views

Front Back

Demo

Reference