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.


CNC Wooden Base and Cushion Assembly

After the manufacturing model and electronic integration planning, I started making the physical structure of the cushion. This part records the CNC wooden base, the LED diffuser fitting, the first PCB test board, the foam body, and the elastic webbing support.

May 29: CNC Bed Problem and Machine Fixing

I first tried to cut the wooden base on the large CNC machine on May 29. During the setup, the machine worktable moved, so the vacuum bed could not hold the board firmly. Because of this, the cutting failed and I stopped the process.

After checking the machine with my tutor and the supplier, we used glass glue / silicone to fix the worktable. It needed around 24 hours to dry and become stable before the next cutting attempt.

CNC bed problem and 24-hour fixing

Figure: The first CNC attempt failed because the worktable moved. The bed was fixed with glass glue and left to cure for 24 hours.


June 2: Second CNC Cutting and Recutting

On June 2, I returned to cut the wooden pieces again. Before cutting, we stood on the table while turning on the vacuum system, so the board could be pressed flatter and held more firmly.

This time the cutting was successful, but one piece still had a dimensional offset because of slight movement. I recut that piece on the same day and finally got the complete set of wooden base pieces.

Second CNC cutting and recutting one shifted piece

Figure: During the second CNC attempt, the board was pressed down before turning on the vacuum. One shifted piece was recut to get the correct dimension.


June 2: Edge Sanding

After CNC cutting, I used the sanding machine to clean the rough edges. This made the wooden pieces smoother and easier to assemble later.

Sanding the CNC-cut wooden edges

Figure: Sanding the CNC-cut wooden pieces after cutting.


June 2: Gluing and Clamping the Wooden Frame

After sanding, I used white wood glue to glue the wooden layers together. I used clamps to hold the curved frame in position while the glue dried, so the layers would not move during the curing process.

Wood glue and clamps for fixing the frame

Figure: Applying wood glue and using clamps to fix the wooden frame.


LED Strip Support Fitting

I also tested a printed support part for the LED strip with the real wooden board. During the fitting test, I found that the size and installation position were not accurate enough, so I measured the deviation and prepared to reprint the part.

LED strip support fitting test

Figure: Testing the printed LED strip support with the wooden board and checking the fitting deviation.


June 3: Foam Cutting

On June 3, I started cutting the foam body. I bought a special foam cutting knife and also used a hot wire cutting tool.

The hot wire could cut the foam, but it produced smoke, so ventilation was necessary. The final result was usable, although the surface still had some uneven areas. Cutting the angled surface was especially difficult to make standard. For the side surfaces, fixing the hot wire and moving the foam plane was more accurate than moving the wire by hand.

Foam cutting tools and hot wire cutting

Figure: Foam cutting tools, including a special foam knife and a hot wire cutting tool.

Foam cutting result

Figure: The foam body after cutting. The result was usable, but the angled surfaces were still difficult to cut perfectly.


June 4: LED Diffuser Strip and First PCB Test Board

On June 4, I printed a more accurate LED diffuser strip for the cushion. This version was used to check the real fitting relationship between the LED strip, the diffuser part, and the wooden base.

On the same day, I also tried making the first PCB test board. This board was not the final circuit yet. The goal was to check the milling result, the board scale, the trace size, and the real connector placement before making the final carrier board.

LED diffuser strip and first PCB test board

Figure: Printing the more accurate LED diffuser strip and making the first PCB test board.


June 5: Elastic Webbing Support

On June 5, I started testing the elastic webbing for the seat support. I first tested the staple gun on a spare piece of wood. The staple gun could fix the elastic band, but it was also easy to shoot through the material, so I needed to control the pressure and position carefully.

Staple gun test for elastic webbing

Figure: Testing the staple gun before fixing the elastic webbing on the final wooden frame.

Fixing the elastic webbing needed two people. One person pulled the elastic band to estimate the length and tension, and I used the staple gun to fix it to the wooden frame. After the webbing was installed, my friend and I both sat on it to test the support. The result was good, and the webbing provided a stable support surface.

Elastic webbing support test

Figure: Fixing the elastic webbing with a staple gun. This step needed two people to control the tension and position.


Safety Notes

During this stage, I realized that I needed better protection when handling materials and tools. When I moved the steel plate, I accidentally scratched my finger. When I used the hot wire cutter, I also burned myself.

For the next fabrication steps, I need to wear gloves and use proper protection when moving metal parts, operating the hot wire cutter, sanding, and using the staple gun. I also need to keep the workspace ventilated when cutting foam with the hot wire.