Manya’s Final Project: Sensory Bookmark

This bookmark is designed to make reading an immersive, multisensory experience. Upon opening your book, this bookmark turns into a reading light, automatically illuminating to light up your page. A customizable scent profile enhances the moment. Close the book, and the light turns off while the system enters low-power sleep mode to save battery.

If you’d like to take on an additional challenge, this bookmark has the potential to take on IoT features. Built on the Arduino Nano ESP32 with WiFi capabilities, you can program it to automatically start your favorite reading playlist on Spotify when you open your book, and even enable Do Not Disturb mode on your phone. It allows you to create a distraction-free reading environment and truly get lost in your latest literary escape.

Instructables Link

Continue reading “Manya’s Final Project: Sensory Bookmark”

Manya’s Final Project Proposal: IoT Bookmark


Objective:

Design and create an innovative, minimalist bookmark that enhances the reading experience using subtle, sensory-driven tech. The project aims to explore how a smart bookmark can help readers focus and enjoy the reading experience, with limited distractions. The bookmark itself will be delightful to handle and look at, but is secondary to the book itself.

Features & Functionality:

  • Minimalist Form: The bookmark has a clean, geometric design for visual and ergonomic appeal
  • Slim Profile: Components are chosen for their thin form factor, ensuring the bookmark will fit comfortably in a book
  • Touch or Pressure Sensor: Hidden within the surface or as a slim button on the surface, a pressure or touch sensor detects when the book is opened, automatically activating the LED (and potentially other digital functions).
  • LED Light Sphere: A soft-glowing LED sphere at the top of the bookmark provides a gentle ambient light cue when the bookmark is in use.
  • Scent Pad (?): A discreet vent holds a scent pad, which adds to the sensory experience

Potential Additions:

  • Wireless connectivity (with ESP32 or similar) to trigger playlist playback or DND mode on your phone when reading.

Design Notes:

  • Materials and interface are chosen to create a product that feels technical yet pleasing

Next Steps:

  • Finalize component list
  • Start thinking about code
  • More sketching
  • Create digital and physical 3D prototypes

Parts

Tools

  • Soldering Iron
  • Wire Cutters/Strippers
  • Hot Glue Gun

Sample Arduino IDE Code for ESP32 Touch Sensor & LED

ESP32 uses the touchRead() function, which is straightforward and highly sensitive.

// ESP32 Bookmark: Touch pad turns LED ON when NOT touched (book open)
const int touchPin = T0; // Touch pin (e.g., GPIO 4; see ESP32 pinout)
const int ledPin = 4; // LED pin (GPIO 4, use any available GPIO)

int threshold = 30; // Set experimentally; touchRead() value when not touched is higher

void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(115200); // Optional: For debugging
}

void loop() {
int touchValue = touchRead(touchPin);
Serial.println(touchValue); // For calibration

if (touchValue > threshold) {
// Not touched (book open)
digitalWrite(ledPin, HIGH); // LED ON
} else {
// Touched (book closed)
digitalWrite(ledPin, LOW); // LED OFF
}
}

Manya’s Halloween Costume: Final

The Luxe Capacitor

DESCRIPTION:
I started out aiming to recreate the Flux Capacitor from Back to the Future, as part of my Marty McFly costume. I wanted to recreate a prop as I’m interested in prop design, and design for entertainment. However, I wanted to put my own spin on it, and decided that I would make a Luxe Capacitor, and I would wear it be wearable.

I came away with quite a few learnings from this process. Overall, I struggled to figure out the order in which to complete steps. For example, I spray painted individual components and then realized that it prevented adhesion when I started to glue everything together. Upon completion, I think I have a better (not perfect) sense in how I would order my to do list if repeating this process. I created my own dielines for the box (which I then laser cut), and I made the mistake of not leaving extra room for the insert to fit into the box. Lastly, I didn’t test my circuit while soldering. It worked out, but if I encountered errors then I wouldn’t have had any idea which connection was causing the issue.

PROGRESS:

MATERIALS:

Hardware
– 3 RGBW NeoPixels (8 LEDs per strip)
– Adafruit Gemma M0
– Tactile Switch Button
– Power Bank

Other Supplies
– Chipboard
– Solder
– Stranded Wire
Gold Spray paint
– Transparent polyester film (from Artist & Craftsman Supply)
– Clear PVC tubing (from Canal Rubber)
– Thin silicon tubing (from Canal Rubber, leftover from 3DPD1)
– Hose (from Canal Rubber)
– Large flat washers (from Canal Lighting & Parts)
– Chain (from Canal Lighting & Parts)
Gold lable tape
Silicon Spark plug Boot
– Paint for spark plug (orange, yellow)

Tools
– Soldering Iron
– Wire Snips
– Wire Strippers
– Hot Glue Gun/
– Box Cutter/X-Acto
– Label Maker (Thank you Tristan!)
– Drill

CIRCUIT DIAGRAM:

ARDUINO CODE:

// Simple demonstration on using an input device to trigger changes on your
// NeoPixels. Wire a momentary push button to connect from ground to a
// digital IO pin. When the button is pressed it will change to a new pixel
// animation. Initial state has all pixels off -- press the button once to
// start the first animation. As written, the button does not interrupt an
// animation in-progress, it works only when idle.

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
 #include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif

// Digital IO pin connected to the button. This will be driven with a
// pull-up resistor so the switch pulls the pin to ground momentarily.
// On a high -> low transition the button press logic will execute.
#define BUTTON_PIN 0  // Gemma M0 D0 for button input

#define PIXEL_PIN 1  // Digital IO pin connected to the NeoPixels (Gemma M0 default)

#define PIXEL_COUNT 8  // Number of NeoPixels

// Declare our NeoPixel strip object:
Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, NEO_GRBW + NEO_KHZ800);
// Argument 1 = Number of pixels in NeoPixel strip
// Argument 2 = Arduino pin number (most are valid)
// Argument 3 = Pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
//   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)

boolean oldState = HIGH;
int     mode     = 0;    // Currently-active animation mode, 0-9

void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  strip.begin(); // Initialize NeoPixel strip object (REQUIRED)
  strip.show();  // Initialize all pixels to 'off'
}

void loop() {
  // Get current button state.
  boolean newState = digitalRead(BUTTON_PIN);

  // Check if state changed from high to low (button press).
  if ((newState == LOW) && (oldState == HIGH)) {
    // Short delay to debounce button.
    delay(20);
    // Check if button is still low after debounce.
    newState = digitalRead(BUTTON_PIN);
    if (newState == LOW) {      // Yes, still low
      if (++mode > 3) mode = 0; // Advance to next mode, wrap around after #3
      switch (mode) {           // Start the new animation...
        case 0:
          fluxChase(0, 0, 0, 0, 0);  // off
          break;
        case 1:
          fluxChase(255, 180, 0, 20, 100);  // light chase, 100ms delay per frame
          break;
        case 2:
          fadeEffect(255, 180, 0, 20, 5); // slow fade
          break;
        case 3:
          fadeEffect(255, 180, 0, 20, 2);  // fast fade
          break;
      }
    }
  }
  // Set the last-read button state to the old state.
  oldState = newState;
}

// Animated chasing glow
void fluxChase(uint8_t r, uint8_t g, uint8_t b, uint8_t w, int delayTime) {
  for (int loop = 0; loop < 6; loop++) { // looping - renamed from 'i' to avoid shadowing
    for (int step = 0; step < PIXEL_COUNT * 1; step++) {
      strip.clear();
      for (int i = 0; i < PIXEL_COUNT; i++) {
        int offset = (step + i) % PIXEL_COUNT;
        float fade = 1.0 - (float)i / PIXEL_COUNT; // trailing dimmer effect
        strip.setPixelColor(offset, strip.Color(r * fade, g * fade, b * fade, w * fade));
      }
      strip.show();
      delay(delayTime);
    }
  }
}

// Smooth fade in/out
void fadeEffect(uint8_t r, uint8_t g, uint8_t b, uint8_t w, int speed) {
  for (int loop = 0; loop < 4; loop++) { // looping - renamed from 'i' for clarity
    // Fade in
    for (int brightness = 0; brightness <= 255; brightness++) {
      setAllBrightness(r, g, b, w, brightness);
      delay(speed);
    }
    // Fade out
    for (int brightness = 255; brightness >= 0; brightness--) {
      setAllBrightness(r, g, b, w, brightness);
      delay(speed);
    }
  }
}

// Helper for setting all pixels to same brightness
void setAllBrightness(uint8_t r, uint8_t g, uint8_t b, uint8_t w, uint8_t brightness) {
  for (int i = 0; i < PIXEL_COUNT; i++) {
    strip.setPixelColor(i, strip.Color(
      (r * brightness) / 255,
      (g * brightness) / 255,
      (b * brightness) / 255,
      (w * brightness) / 255
    ));
  }
  strip.show();
}

Manya’s Flux Capacitor Pt 1

Description: Flux Capacitor

I will be constructing a replica of the Flux Capacitor prop from Back to the Future. It will be the main element in my Marty McFly costume. The purpose of this prop is to promote delight with a touch of nostalgia.

Circuit Diagram

Tinkercad Link
I am trying to figure out my circuit diagram, but need some assistance. This is where I have gotten to so far.

To Do:
– Add push button to cycle through 2-3 different light sequences
– Update light sequences (elaboration in Arduino section below)

Arduino

Pseudocode:
1. Mechanical button input activated
2. 3 Yellow Neopixel LED strips slow chasing sequence (from outside to inside)
3. The mechanical button is pushed to initiate the next light sequence in the cycle
4. Three Yellow Neopixel LED strips fast chasing sequence (from outside to inside)
5. The mechanical button is pushed to initiate the next light sequence in the cycle
6. Three Yellow Neopixel LED strips, fast blinking
7. Mechanical button pushed to turn off (or can I make it so that holding button for a determined amount of time turns off)?

Materials/Parts


Hardware

– 3 Neopixels (8 LEDs per strip)
– Gemma (have)
– Breadboard Wires (have)
– USB battery pack (have)

Other Supplies
– Solder (have)
– Stranded Wire (have)
– Cardboard Box (similar shape, hinging)
– Spray paint (dark gray)
– Transparent film
– Clear vinyl tubing (determine interior diameter to fit Neopixel into)
– Large flat washers (try to find sold individually)
– Red lable tape
-Spark plug wires (kind of $$$, maybe find alt)
– Paint for spark plug (orange, yellow)

Tools
– Soldering Iron
– Wire Snips
– Wire Strippers
– Hot glue
– Super Glue (best kind?)
– Box Cutter
– Label Maker
– Drill
– 3D printer (optional if spark plugs don’t work out)

To-Do List

1. Complete circuit diagram
2. Figure out Arduino code
3. Purchase supplies after 1:1 meeting (Neopixels and finding correct box size are priority)
5. Map out box with 1:1 scale to ensure fit
4. Once circuit diagram has been finalized solder Neopixels to Gemma

Progress

Manya’s Flux Capacitor Pt 2

PROGRESS

  • Working on Button Cycler code
  • Bought supplies (transparent window, chain, tubing, hose, 3 NeoPixel strips)

TINKERCAD

https://www.tinkercad.com/things/hiz9I9xFeLC-flux-capacitor1?sharecode=cMn7V532x1lQbqBToTnFhIq-Ds7HJIDHxTYsmUuGKeo

Having some trouble simulating button cycling.


TO BUY/SOURCE

TO DO

BOX

  • [ ] Create box dielines based on Neopixel size
  • [ ] Make box out of chipboard (cut by hand if no laser cutter)
    • [ ] Figure out where to put button hole
  • [ ] Create false bottom of box with holes cut out for wires, top surfaces is where components will attach, below false bottom is where hardware is housed
  • [ ] Spray paint box/false bottom metallic (silver or gold)
  • [ ] Attach transparent sheet to back of window on the front of the box

HARDWARE

  • [ ] Solder wire to 3 NeoPixel strips
  • [ ] Solder wires (from NeoPixel strips) to Gemma
  • [ ] Solder tactile button to Gemma

ATTACHMENT

  • [ ] Attach washers (spray paint gold) to surface
  • [ ] Place/attach NeoPixel strips in clear tubing
  • [ ] Attach spark plugs/tubes to washers
  • [ ] Place Gemma and USB battery pack underneath false bottom
  • [ ] Place button into hole on side of box

FINALIZE

  • [ ] Attach false bottom to box via adhesive
  • [ ] Figure out if I want to add latch to box
  • [ ] Attach tubing to box exterior
  • [ ] Attach chain/handle to box, potential spray paint gold (if I decide to paint box gold)

SOFTWARE

  • [ ] Finalize Button Cycler code

QUESTIONS

  • Should I create a flap on back of box to access hardware?
  • How much wire do I need to attach NeoPixels on surface of false bottom to Gemma at bottom of box?

Manya’s Flux Capacitor Pt 3

PROGRESS

  • Spray-painted components (washers, spark plugs, tubing,
  • Laser-cut chipboard
  • Sealed chipboard (PVA (light layer of white glue) + water (1:1 mix))
  • Folded box into 3D form, used a mixture of adhesives (Tacky glue, Tombow Extreme Adhesive)
  • Gold spray paint (3 coats)
  • Soldered circuit (Gemma M0, stranded wire, tactile button, 3 Neopixels (RGBW Natural White, 8 LEDS)
  • Tested circuit using Arduino Sample button cycler and strand test
  • Finalized Arduino code and Tinkercad

TO DO

  • Attach chain handle (still figuring this out)
  • Attach wires/tubes to spark plugs
  • Fix component adhesions (try hot glue)
  • Final spray paint layer over attached parts
  • Black nail polish over Neopixel components
  • Test final Arduino code with final circuit
  • Protect circuitry prior to inserting/attaching to box?
  • Insert circuit into box (Neopixels into tubing)
  • Attach circuitry and hardware to box (how does the button
  • Attach screen to box window
  • Make and attach label (thank you Tristan)

LEARNINGS

  • Figure out how to order progress (spray paint components after adhering?)
  • Test circuit while soldering in order to problem solve if things go wrong (this didn’t happen to me, but noted for future, thank you Wini)
  • The insert should be smaller than the box it is intended to fit into (see dielines below), making it work this time

Manya’s Arduino + Halloween Sketches

Arduino Circuit

Tinkercad Circuit Link

Halloween Sketches

  1. Jellyfish Costume

Shopping List/Supplies
Thin Neopixel Strip
– Clear/transparent blue umbrella
– Sheer fabric strips of varying blue hues

2. Highway Overpass

Shopping List/Supplies
– Black Turtleneck
– Black Pants (maybe)
– Yellow/or Yellow + Multicolor LED strips (some that curve, varied widths)
– Tactile Switch Buttons
– Fabric Glue

3. Runway (new as of 10/10)


Shopping List/Supplies
– Black Turtleneck/Outfit
– Airplane zipper (3d print?)
Neopixel Strips
– Tactile Switch Buttons
– USB battery pack (have)
– Fabric Glue


4. Flux Dogpacitor

Shopping List/Supplies
– Box (find recycled one)
– Gray Spray paint?
– Transparent vellum/acrylic
– 3 White/Yellow LED Strips
– Red Labels (with embossed text)
– Yellow wire
– Orange elbox connectors
– Foam cylinders

Manya’s First Arduino Exercises

  1. Blinking LED Circuit

a. Blink (delay = 1000ms)

b. Fast Blink (delay = 200ms)

2. LED Loop

3. Fading LEDs

FadeAmount = 5

FadeAmount = 4

FadeAmount = 3

4. RGB LEDs

5. Digital Inputs (Buttons)

Note: I didn’t remember how to reverse the button action via changing the wiring, so I changed the code instead, but I would like to better understand why the code was reversed due to wiring.

Button: ON -> OFF

Button: OFF -> ON

6. Analog Inputs (potentiometer)

Manya’s Plush Night Light Proposal

1. PROTOTYPES

a. LED Prototype (it works!)

b. Plush Prototype*

*rough prototype, not to scale or accurate color

2. Plush Prototype Pattern

3. Night Light Concept (+ target user)
A few years ago, I saw the movie First Reformed. I no longer remember the plot, but what I do recall is a scene in which two characters are sitting on a couch next to a floor lamp shaped like an eye. I found that it was designed by Nicola L., a French artist known for her anthropomorphic sculptures that fused bodies with domestic objects.

I plan to make a night light inspired by her ocular lamp. The target audience is anyone who wants to add a touch of anthropomorphic surrealism to their space.


4. Parts/Materials
1. Single Battery Pack
2. 3 AAA Batteries
3. 4 diffused white 10mm through-hole LEDs
4. 4 Resistors
5. Heat Shrink Tubing
6. Polyfill
7. Fabric (ideally mixed textures, satin + cotton + felt)
– Orange
– White
– Dark Blue
– White Blue

5. Brainstorm Sketches (3)

6. Circuit Diagram

AquaSonic Electric Toothbrush Teardown

PROCESS OVERVIEW

My first Making Studio assignment involved disassembling an old AquaSonic electric toothbrush. It appears that this model is no longer available for sale on the AquaSonic e-commerce website.

As this was my first teardown, there was a lot to learn! I struggled to find full teardown examples of electric toothbrushes, but was able to use some common sense and guessing to get started. Other than encountering some unfortunate toothbrush-related gunk, I was pleasantly surprised at how smoothly the first half of the process unfolded. However, I ran into quite a bit of trouble removing the circuit board (16) and Li-Ion battery (15) from the interior plastic framework (20). I was hesitant to exert too much brute force as I was fearful of damaging the battery.

Here is a visual breakdown of my chronological process. The parts are numbered in the order in which they were taken apart, and can be referenced in the parts section further down.

While attempting to remove the Printed Circuit Board/PCB (16), a lot of LED indicators (PCB 04) lit up, and I was unable to turn them off for a while. The intensity of the light was surprisingly bright.

I eventually used wirecutters and a larger screwdriver to remove the PCB (16) from the plastic framework (20), and the Li-Ion battery (15) was easily removable after that.

COMPONENTS

1. Outer Case: plastic
2. Brush Connector Base: plastic
3. Motor Shaft Bearing: steel?
4. Top Gasket: plastic
5. Button Covers: silicon or rubber
6. Screws: stainless steel
7. Top Ring: rubber
8. Motor O-ring: rubber
9. Motor Gasket: rubber
10. Motor Case: steel
11. Small Brush Motor O-ring: plastic or rubber
12. Charging Base Clip: plastic + metal (copper?)
13. TBD Brush Motor Part: plastic?
14. Brush Motor Rotor + Vibrating Rod: copper coil, steel
15. 14500 Li-Ion Battery Cell: lithium, nickel, cobalt, maybe manganese(?)
16. PCB: copper, fiberglass, resin
17. Base O-ring Seal: silicon or rubber
18. Charger Coil: copper
19. Base: plastic
20. Inner Frame: plastic


PCB Components/Chip Details


01. Power Button (S1)
02. Secondary Button (S2)
03. Coil Connectors (M)
04. LED Indicators (LED)
05. Transistors (Q), Diodes (D), Resistors (R), Capacitors (C)
06. Battery Connections (B-, B+)
07. Chip 1, MCU? (U2)
08. Chip 2, PW? (U1)

Chip Details
I was unable to locate any part numbers on the chips. Some research suggests that they are surface-mounted Integrated Chips (IC) with Dual in-Line Package (DIP) form factors. It seems that the larger one is likely a Microcontroller (MCU), which controls motor speed, timing, LED indicators, charging, etc. The other is possibly a Power Management chip, controlling battery charging and protection from overcharging.

Type: TBD
Manufacturer: TBD


MANUFACTURING

01. Plastic Injection Molding is used to create the internal plastic pieces (frame, button covers) and outer case. This involves melting plastic pellets (polycarbonate, polypropylene, ABS) and injecting them into precision molds. Parts are removed after cooling. This technique is used to ensure precision and water resistance.
02. PCB Manufacturing + Assembly involves photolithography, surface-mount technology (SMT), and solder mask application
03. Metal Stamping/Machining is used to create motor shafts and other metal components. Sheet metal stamping, turning, and precision machining are techniques that are used in this process.
04. Li-Ion Battery Cell Manufacturing happens under very controlled conditions. It involves various steps that conclude with packaging.
05. Motor Assembly is crucial to ensuring the brush will vibrate. Copper wires are coiled around rotors, and all motor-related parts (rings, gaskets, bearings, etc.) are assembled.
06. Final Assembly occurs when all components are combined using manual or automated assembly methods. Adhesive sealing or ultrasonic welding techniques are used to waterproof.

TOOLS/TECHNIQUES

01. Wire Cutter: Used to remove the PCB (16) from the plastic frame (20), also used to remove the base (19) from the plastic frame (20)
02. Screwdriver: used to pry apart larger/more unwieldy pieces (like removing the PCB board from the plastic framework)
03. Small Steel Screwdriver: used to unscrew screws (06) and to pry apart small pieces that were glued together
04. Wrench: Used to grip and remove larger parts that were glued together
05. My Hand (Not Pictured): Used during the entire teardown process to manipulate tools, etc.

DESIGN ELEMENTS

01. I found it interesting that the interface is very simple (compared with most of their current models). There are two buttons (05); the top one is the power button and is labeled “ON/OFF”. As it no longer functions, I am inferring that the second “button” is a charging indicator. This simple interface is representative of the limited capabilities/modes.

02. Indented arch shapes on the back of the outer case (01) seem to be placed where one’s fingers would go when gripping the toothbrush. It is a nice ergonomic touch.

03. (Not Picture) Overall, it is clear that this was not designed to be taken apart. I’m curious how much of this is due to capitalism, discouraging DIY fixes and encouraging new purchases, and if any of it has to do with safety due to the lithium battery.

Hi! I’m Manya.

I’m a multidisciplinary designer based in Brooklyn. I grew up in a small Connecticut town, halfway between New York City and Boston. In college, I studied biology and competed on the cross-country and track teams. I then attended design school in Atlanta before moving to Brooklyn to begin my professional career. Before joining PoD, I focused primarily on graphic design. Most recently, I was at Mother Design, where I specialized in branding and systems.

Outside of work and school, I enjoy spending time with my dog, Frankie, and watching him interact with the world. I maintain a running practice as a way to challenge myself and ensure I spend time outside.

I am cognizant that there might be a steeper learning curve towards the beginning of this course, as most of this is new to me. However, I’m looking forward to gaining a better understanding of how things work and potentially finding a new avenue of interest that will extend beyond this class.

@manyaswick