Overview

The Flex Sensor 2.2" (manufactured by Spectra Symbol and distributed by SparkFun and Adafruit) is a flexible carbon-based variable resistor strip. As the sensor is physically bent, conductive carbon particles printed on its flexible polymer substrate separate, causing electrical resistance to increase proportionally to the bend angle.

Unbent (flat), the 2.2-inch sensor has a nominal baseline resistance of 10 kΩ10\ \text{k}\Omega. Bending the sensor 9090^\circ away from the ink-printed surface increases its resistance to approximately 30 kΩ30\ \text{k}\Omega to 40 kΩ40\ \text{k}\Omega. It is widely used in VR data gloves (finger flexion tracking), animatronic puppet controls, robotic joint position sensing, and wearable motion capture.

Quick reference

Length2.2 inches (55.88 mm55.88\text{ mm}) active length
Flat resistance (RflatR_{flat})10.0 kΩ±30%10.0\ \text{k}\Omega \pm 30\%
Bent resistance (9090^\circ)30.0 kΩ30.0\ \text{k}\Omega to 40.0 kΩ40.0\ \text{k}\Omega
Resistance tolerance±30%\pm 30\%
Power rating0.5 Watts continuous
Flexing life cycle>1,000,000>1,000,000 bends
Interface2-terminal passive variable resistor (requires voltage divider)

Terminal Layout & Physical Structure

text
       ┌──────────────────────────────────────────────┐  [=== Pin 1
       │  Spectra Symbol Flex Sensor 2.2" (Ink Facing) │  [=== Pin 2
       └──────────────────────────────────────────────┘
       <--------------- 55.88 mm Active --------------->
  • Pin 1 & Pin 2: Non-polarized 2-pin solder tab header (0.1"/2.54 mm0.1\text{"} / 2.54\text{ mm} spacing).
  • Direction of Bend: Bend away from the printed text/ink side (so the ink layer is stretched on the outer curve of the bend) for maximum resistance increase and longest mechanical life.

Specifications

ParameterSymbolMinTypMaxUnitConditions
Flat ResistanceRflatR_{flat}7.010.013.0Completely unbent / flat
90° Bend ResistanceR90R_{90}25.035.045.0Bent 90 degrees away from ink
180° Bend ResistanceR180R_{180}40.060.090.0Bent 180 degrees
Continuous Power RatingPmaxP_{max}0.51.0WThermal rating
Continuous Current LimitImaxI_{max}1.0mARecommended loop current
Operating TemperatureToprT_{opr}-352580°CAmbient

Voltage Divider Circuit Math

To convert variable resistance into a voltage readable by a microcontroller ADC, place the flex sensor in series with a fixed 10 kΩ10\ \text{k}\Omega pull-down resistor (RFR_F):

VOUT=VCC×(RFRflex+RF)V_{OUT} = V_{CC} \times \left( \frac{R_F}{R_{flex} + R_F} \right)

  • Flat State (Rflex=10 kΩR_{flex} = 10\ \text{k}\Omega):

VOUT=5.0V×(10k10k+10k)=2.50V(ADC512)V_{OUT} = 5.0\text{V} \times \left( \frac{10\text{k}}{10\text{k} + 10\text{k}} \right) = 2.50\text{V} \quad (ADC \approx 512)

  • 9090^\circ Bent State (Rflex=30 kΩR_{flex} = 30\ \text{k}\Omega):

VOUT=5.0V×(10k30k+10k)=1.25V(ADC256)V_{OUT} = 5.0\text{V} \times \left( \frac{10\text{k}}{30\text{k} + 10\text{k}} \right) = 1.25\text{V} \quad (ADC \approx 256)

Wiring

Flex Sensor TerminalConnectionNotes
Pin 1VCCV_{CC} (5V or 3.3V Rail)Power rail
Pin 2Microcontroller Analog ADC Pin & 10 kΩ10\ \text{k}\Omega ResistorVoltage divider junction
10 kΩ10\ \text{k}\Omega Resistor Other EndGNDGround reference
Warning

Mechanical Strain Relief:

  • The solder tab base pins are fragile. Bending the sensor directly at the solder pin junction will snap the electrical traces. Always apply heat-shrink tubing or hot glue over the pin base for strain relief and mount the active flex section on a flexible substrate (such as a glove finger).

Example

cpp
const int flexPin = A0;
const float VCC = 5.0;      // ADC Reference Voltage
const float R_DIV = 10000.0; // Fixed 10k resistor

void setup() {
  Serial.begin(9600);
}

void loop() {
  int flexADC = analogRead(flexPin);
  float flexV = flexADC * (VCC / 1023.0);
  
  // Calculate Flex Sensor Resistance
  float R_flex = R_DIV * (VCC / flexV - 1.0);

  // Map estimated angle (10k = 0 deg, 30k = 90 deg)
  float angle = map(R_flex, 10000, 30000, 0, 90);
  angle = constrain(angle, 0, 90);

  Serial.print("ADC: "); Serial.print(flexADC);
  Serial.print(" | Resistance: "); Serial.print(R_flex / 1000.0); Serial.print(" kOhm");
  Serial.print(" | Angle: "); Serial.print(angle); Serial.println(" deg");

  delay(200);
}

Common mistakes

  • Bending near the base connector: Concentrating mechanical stress at the solder tabs snaps internal metal contacts. Keep bends within the middle 2-inch flexible zone.
  • Forgetting per-sensor calibration: Resistance values vary ±30%\pm 30\% between manufacturing lots (RflatR_{flat} can range from 7 kΩ7\ \text{k}\Omega to 13 kΩ13\ \text{k}\Omega). Always calibrate flat and bent ADC thresholds in code using map().

Notes

  • Flex Sensor Lengths: Available in 2.2-inch (short) and 4.5-inch (long) formats.

Assets & downloads