Skip to content

Final project process

Design direction and form development

Researching Existing Meditation Cushions

At the beginning, I imagined the cushion as a soft glowing round object. However, after researching different meditation cushion references and observing real sitting postures, I realized that the shape should not only look soft or emotional. It also needed to support the body in a practical way.

Meditation cushion shape references

Figure: Reference images of different meditation cushions and sitting supports, from more sculptural forms to simpler wedge-based structures.

I collected different examples of meditation cushions and sitting supports, ranging from complex organic forms to very simple wedge-shaped blocks.

These references helped me realize that many practical meditation cushions are not completely flat. They often use a height difference between the front and back to lift the pelvis slightly and help the body sit more upright.

In existing products, the height difference is often around 20 mm, while some higher designs can reach about 65 mm.


Interview and Sitting Posture Observation

I also interviewed a friend who works with healing practices and has studied body fascia recovery and rehabilitation-related knowledge.

She demonstrated how she usually sits for meditation and explained that many people today do not have enough knee mobility to sit comfortably in a full cross-legged posture. Forcing the body into a traditional cross-legged position can create extra pressure on the knees instead of helping the body relax.

This supported my design direction. The cushion should not force the user into an ideal meditation posture. Instead, it should use structure and height difference to help the body sit more comfortably and stably.

Sitting posture observation

Figure: Sitting posture observation. Raising the pelvis can help the body sit more upright while reducing excessive bending pressure on the knees.


From a Glowing Round Cushion to a Sloped Structure

My design direction gradually shifted from a glowing round cushion to a more body-aware sloped structure.

During the sketching stage, I explored several possible directions:

  • a soft glowing round cushion
  • a thick cushion with light around the edge
  • a support structure with height difference
  • a cushion structure combining a lighting base and an upper sitting surface

Shape sketch development

Figure: Early shape sketches showing the transition from a glowing round cushion to a cushion structure with height difference.


Why Use a Sloped Cushion Structure?

Through reference research and sitting posture observation, I found that the most useful structure was actually very simple:

  • a raised back side to support the pelvis
  • a lower front side to leave more space for the legs
  • a height difference that helps the spine sit more upright
  • less extreme bending pressure on the knees

The sloped structure lifts the pelvis slightly. This makes it easier for the upper body to stay upright without forcing the knees into a deep folded position.

Because of this, I stopped developing the cushion as a purely decorative glowing object and started focusing on height-based body support.


Final Fusion Structure Design

In Fusion, I designed the final cushion as a sloped structure with a 30 mm height difference.

This design includes several key parts:

  • a higher back side to support the pelvis
  • a lower front side for a more natural leg position
  • a semicircular cut-out at the front to provide space for the feet or cross-legged posture
  • a base area for placing the COB LED strip
  • internal space for integrating the FSR sensors, wires, and electronic modules later

Fusion final dimensions

Figure: Final cushion structure in Fusion. The design uses a 30 mm sloped height difference, a front semicircular area for the feet, and a base area for the LED strip.


Final Design Direction

The final cushion form needs to combine two goals:

  1. Posture support
    The cushion uses a 30 mm height difference to lift the pelvis slightly, helping the body sit more upright while reducing pressure on the knees.

  2. Light interaction
    The base of the cushion keeps space for the COB LED strip, so the pressure-sensitive breathing light system can respond when the user sits down.

This means the cushion structure is not only a shell for the electronics.
It also becomes part of the interaction itself: body weight, sitting posture, height difference, sensor placement, and lighting feedback need to work together.

Hidden LED groove design and test

Fabrication Evidence / Material Test

Overview

I tested the housing and diffuser for the concealed COB LED strip in my Smart Cushion project. The reason for this test was that I wanted the breathing light effect to be more visible in the final cushion. Instead of simply seeing a bright LED strip, I wanted a softer and wider glow that could show the breathing change more clearly.

Since I have an interior design background, the basic logic of linear lighting details, LED channels, and diffuser covers is already familiar to me. This test focused on scaling the structure down to the project size and checking the real light quality through a printed prototype.

Item Description
Material White PETG housing + transparent PETG diffuser
Test length 20 cm printed sample
Light source COB LED strip
Result The red-marked combination created a softer and wider diffusion, so I will continue with it

Reference Research

Reference research

I first collected real examples of linear LED profiles, aluminium channels, and concealed lighting details. I also downloaded similar models from MakerWorld to study the dimensional relationship at a smaller scale.

Although I am familiar with lighting details from interior design, this project is much smaller than typical architectural lighting, so the proportions needed to be checked again.


Fusion Modelling

Fusion model

Then I built several cross-section versions in Fusion to compare the COB strip position, the distance between the LED and the diffuser, and whether the housing could be 3D printed.


Dimension Check

Dimension sketches

I used sketches and dimension notes to check the basic proportions of the 20 cm test piece, including the wall thickness, LED channel, diffuser slot, and overall width.

This helped me remove some unsuitable dimensions before printing.


White PETG Printing Test

White PETG print tests

I printed a 20 cm test piece in white PETG instead of making the full structure directly.

This length was enough to observe the section, assembly gaps, support marks, and overall stiffness, while saving time and material.


Selected Diffuser Combination

Selected PETG profile

Transparent PETG was used as the diffuser. After comparing the options, I decided to keep the red-marked combination because the diffuser distance worked better and the light was less concentrated.


COB LED Diffusion Test

COB LED diffusion test

I tested the samples with the real COB LED strip. The result was clear: the red-marked combination created a wider diffusion area and a softer light.

This result is good enough for my current prototype, so I will continue with this direction for the final Smart Cushion structure.


Decision

The test result is good enough for the next prototype. The red-marked profile softens the COB strip and creates a wider light spread.

This will make the breathing light effect more visible, instead of concentrating the light only on the LED strip itself. I will use this direction in the final Smart Cushion structure.


24V COB LED strip test

Week10 https://fabacademy.org/2026/labs/formshop/students/winnie-sun/weekly/10%20Output%20devices/

Pressure sensor testing

Week09 https://fabacademy.org/2026/labs/formshop/students/winnie-sun/weekly/09%20Input%20devices/

Local UI and interaction test

MVP Test: Using a Pressure Sensor to Control a 24V COB LED Strip

Before integrating the electronics into the final cushion structure, I built a Minimum Viable Product (MVP) to test whether the core interaction between the pressure sensor, XIAO ESP32-C3, MOSFET module, and 24V COB LED strip could work reliably.

The goal of this test was to confirm whether a low-voltage sensor system could safely control a high-power 24V lighting output.

Core Logic:
Foam is pressed ➡ FSR value changes ➡ XIAO ESP32-C3 reads the analog input ➡ PWM signal controls the MOSFET ➡ MOSFET controls the 24V COB LED strip ➡ Light responds to pressure changes.


Hardware Setup

Physical Layer Structure

To simulate the pressure condition inside the final cushion, I used a three-layer foam structure:

Layer Material Function
Top Layer 3 mm 35D foam sheet Softens pressure points, protects the sensor, and helps distribute pressure more evenly.
Sensing Layer FSR pressure sensor Detects pressure changes when the user sits down.
Base Layer 10 cm 60D foam block Provides support and simulates the load-bearing structure of the final cushion.

Foam pressure sensor test setup

Figure: The FSR pressure sensor is placed under a 3 mm 35D foam layer, with a 10 cm 60D foam block underneath for support.


Circuit Logic

The system is divided into two parts:

  • 3.3V logic control side
  • 24V lighting power side

The XIAO ESP32-C3 reads the FSR pressure value and outputs a PWM signal.
The MOSFET module uses this PWM signal to control the brightness of the 24V COB LED strip.

The XIAO does not directly power the 24V LED strip.
It only sends the control signal.


Input Sensor Connection

FSR Module Pin Connected To
VCC / + XIAO 3V3
AO / SIG XIAO A0
GND / - XIAO GND

The analog value from the FSR pressure sensor is read through A0.


Output Control Connection

XIAO ESP32-C3 Pin Connected To
D2 / GPIO4 MOSFET TRIG / PWM
GND MOSFET GND

In this test, I used a dedicated metal connection module to organize the common ground connection, so that the XIAO, FSR module, and MOSFET control side shared a stable GND reference.

Common ground metal connection module

Figure: A metal connection module was used to organize the common ground connection.


24V Power Side Connection

Power Part Connected To
24V power supply + MOSFET module power input positive
24V power supply - MOSFET module power input negative
COB LED strip + 24V positive
COB LED strip - MOSFET load output

The MOSFET wiring had already been labeled in a previous assignment image, so I did not repeat the full marking here.


Pin Definitions Used in the Code

The pin logic used in this test was:

const int fsrPin = A0;
const int ledPin = D2; // GPIO4 on XIAO ESP32-C3

A0 was used to read the FSR pressure value.
D2 / GPIO4 was used to output the PWM signal to the MOSFET, which then controlled the brightness of the 24V COB LED strip.


Debugging Process

This MVP did not work perfectly on the first try.
I went through several rounds of checking and adjustment.

First Test: Incorrect Wiring

During the first test, the system did not work correctly.

I checked the connections between the FSR, XIAO, MOSFET, and 24V power side, and found that some wires were connected incorrectly.

After correcting the wiring, the XIAO was able to read the FSR values, and the MOSFET started responding to the control signal.


Second Test: Loose Alligator Clip

During the second test, the circuit logic was mostly correct, but the 24V COB LED strip still responded unstably.

I did not replace the alligator clips.
Instead, I rechecked all the connection points.

The main issue was that one of the alligator clips was not clamped tightly enough, which caused an unstable connection in the 24V power path.

After tightening the clip and confirming all connections, the LED strip responded correctly to the pressure input.


Debugging Conclusion

This test showed that having the correct circuit logic does not always mean the system will work stably.

In this test, the main issues were not caused by the code, but by the physical connections:

  • whether the wires were connected correctly
  • whether the GND connection was organized clearly
  • whether the 24V power path was stable
  • whether the alligator clips and temporary connections were tight
  • whether the MOSFET was receiving the correct PWM signal

After rechecking and adjusting the connections, the full path from pressure input to lighting output worked successfully.


Interaction Tuning

After the circuit worked, I continued tuning the lighting behavior.

I did not want the light to simply turn on and off.
Instead, I wanted the light to feel calm, soft, and slow, matching the feeling of a meditation cushion.

So I adjusted the lighting behavior into several states:

State Trigger Condition Lighting Effect
Idle No pressure detected Keeps a very dim idle glow
Active Pressure detected Light slowly fades in
Stable Pressure remains stable Enters breathing light mode
Release Pressure is removed Light slowly fades out

Key Tuning Parameters

B:6800   // 6.8-second breathing cycle, simulating a slow human breathing rhythm
AT:4200  // 4.2-second fade-in time for a softer start
W:3000   // 3-second waiting time before entering breathing mode after stable pressure

These parameters made the light transition slower and softer, reducing the mechanical feeling of sudden brightness changes.


FSR Value Processing

To prevent the light from flickering due to small pressure fluctuations, I continued tuning the FSR input processing.

The tuning focused on:

  • whether the pressure threshold was appropriate
  • whether the value stayed stable when someone sat down
  • whether the value returned properly after pressure was removed
  • whether the light brightness followed the pressure changes
  • whether the breathing light could run naturally under stable pressure

The final result was that the FSR value changes could reliably affect the lighting state, and the LED strip brightness matched the pressure-processing logic.


Design Decision: Why Use a Dual-FSR Layout?

After the MVP test succeeded, I started considering the sensor layout for the final cushion.

At first, I considered three possible options:

  • one FSR sensor
  • two FSR sensors
  • three FSR sensors

In the end, I decided to use a left-right dual-FSR layout.


Why Not Use Three Sensors?

I originally considered adding a third FSR sensor in the center, but later decided not to use it.

Reason 1: The Cushion Shape Already Guides the Body

The cushion itself has a sloped structure.
Its shape naturally guides the user’s front-back sitting position.

Because of this, a center sensor would not add much useful information for detecting whether the user is seated.

Reason 2: More Sensors Add More Complexity

Adding a third sensor would create more issues:

  • more wiring
  • more ADC pin usage
  • more complex data processing
  • more calibration work
  • more possible failure points

At this stage, two FSR sensors are enough to verify the core interaction.
There is no need to add complexity too early.


Advantages of the Dual-FSR Layout

A left-right dual-FSR layout can detect two things:

  • whether the user is sitting down
  • whether the user’s weight is leaning toward one side

Detecting Whether the User Is Sitting

The system can use the stronger value from the left and right sensors to detect whether the user is sitting:

totalPressure = max(left, right);

Detecting Left-Right Balance

The system can also compare the pressure difference between the two sides:

balance = left - right;

This value can later be used to detect whether the user is leaning left or right, or to create separate left-right lighting feedback.


Verification Result

After continuous testing and adjustment, this MVP worked successfully.

The success criteria were:

  • The FSR pressure value could be read stably.
  • The processed FSR value could correctly affect the lighting state.
  • The XIAO could control the MOSFET through PWM.
  • The MOSFET could control the 24V COB LED strip.
  • The LED strip could respond to pressure changes with brightness feedback.
  • The breathing light effect could run stably.
  • The full circuit path from pressure input to lighting output worked correctly.

Conclusion

This MVP successfully proved that an FSR pressure sensor can control a 24V COB LED strip through the XIAO ESP32-C3 and a MOSFET module.

This test confirmed that:

  • pressure input can be read by the system
  • FSR values can be processed into lighting control logic
  • the low-voltage control side can control a 24V lighting output
  • the breathing light effect can be connected to the sitting interaction
  • stable physical wiring is critical for successful testing

This test provides the foundation for the final pressure-sensitive lighting system inside the cushion.


Next Steps

Strengthen the Hardware Connections

The temporary wiring should be replaced with more stable connection methods.

Possible options include:

  • WAGO connectors
  • screw terminals
  • soldered connections
  • heat-shrink protection
  • proper wire fixing and strain relief

Integrate Dual-Channel FSR Input

The next version should implement left-right FSR data fusion:

totalPressure = max(left, right);
balance = left - right;

This will allow the cushion to detect:

  • whether the user is sitting down
  • whether the user’s body weight is leaning left or right

Integrate the Electronics into the Cushion Structure

The electronics should be embedded into pre-cut channels inside the 10 cm 60D support foam.

The parts that need to be protected and organized include:

  • FSR pressure sensors
  • signal wires
  • MOSFET module
  • 24V power wires
  • COB LED strip routing

Continue Tuning the Interaction

The lighting behavior should continue to be adjusted so the cushion feels quieter, softer, and more natural.

Possible improvements include:

  • smoother pressure value filtering
  • slower brightness transitions
  • independent left-right lighting feedback
  • more subtle idle glow control
  • safer maximum brightness limit

Manufacturing Model and Electronic Integration Planning

After finishing the Fusion model, I moved into the manufacturing planning stage.

The soft cushion part already has a clear fabrication direction. I plan to follow a slip-seat upholstery method, using a layered structure with foam, fabric, and a wooden support platform.

Reference: Slip Seat Upholstery

Manufacturing model overview

Figure: Current manufacturing model showing the cushion body, wooden structure, LED base, and electronic system area.


Current Structure

The current model is built from several main parts:

Part Function
Upper cushion Creates the sloped sitting surface and supports the body.
Wooden layers Hold the shape and create internal space.
Base layer Provides space for the COB LED strip.
Front concave area Leaves space for the feet and becomes a possible electronic access area.
Electronic system Contains the XIAO, MOSFET, power input, FSR wires, and LED connection.

The wooden layers are planned to use 6 mm boards.


Electronic Compartment

The main unresolved part is the electronic system layout.

At this stage, I plan to place the electronic compartment near the front concave area. This area is not the main sitting surface, so it is easier to use as an access point.

The compartment can be made as a 3D printed removable module.

It should hold:

  • XIAO ESP32-C3
  • MOSFET module
  • 24V power input
  • common ground connection
  • FSR sensor connectors
  • COB LED strip connector

The electronics should stay accessible for testing and repair.


LED Wiring Plan

The COB LED strip will be placed around the base of the cushion.

I considered two wiring options:

  1. Drill holes through the wooden board.
  2. Extend the LED wires to the electronic compartment entrance.

The better direction is a hybrid solution:

LED strip
→ shallow groove in the wooden base
→ protected pass-through hole
→ electronic compartment

This keeps the wiring cleaner and still allows the electronics to be accessed later.


Design Decision

The cushion needs three systems to work together:

  • soft cushion support
  • wooden internal structure
  • electronic integration

The front concave area will become the main access zone for the electronics, while the base layer will guide the LED strip and wiring.