Skip to content

1. Principles and practices

This week, I started brainstorming my project idea. Because of my interest in both medicine and engineering, I choose a CPR training vest. This vest would use force sensors to collect data on compression rate and possibly compression depth.


I was inspired by a presentation by Jenni Buckley who explained how to make the physical components of the vest using springs and metal plates. I hope to focus more on digitalizing the compression data.

After listening to Jenni’s presentation, I researched the amount of force applied during CPR. According to the CPR Certified Blog, around 60 lbs of force is applied if the compressions are 2 inches deep.


I began by drawing a sketch on graph paper based on this design. Inspo

Here is my napkin and digital sketch.

Napkin Sketch

Digital Sketch


In order to keep my project around $100-$200, I researched the foundational technologies needed for my project.

In regards to the CPR dummy that will encase my device, I hope to borrow one of my school’s! After this course, I may look into developing my own dummy.

Origionally, I was considering testing on humans, but after discussion with my Fab Academy instructor (Mr. Taylor) and guru (Dr. Fagan), I found the ethical implications of human trials would be too complicated for my preliminary prototypes.

Our discussion also lead me to take interest into the innerworkings of a CPR dummy. I found that you can buy a compression assembly replacement! I will most likely begin assembling on this.


This is sample code for a force sensitive resistor. I found the code while reading a the hookup guide. It relates force (g) and resistance (ohms).

Force Sensitive Resistor Hookup Guide

Example sketch for SparkFun's force sensitive resistors
Jim Lindblom @ SparkFun Electronics
April 28, 2016

Create a voltage divider circuit combining an FSR with a 3.3k resistor.
- The resistor should connect from A0 to GND.
- The FSR should connect from A0 to 3.3V
As the resistance of the FSR decreases (meaning an increase in pressure), the
voltage at A0 should increase.

Development environment specifics:
Arduino 1.6.7
const int FSR_PIN = A0; // Pin connected to FSR/resistor divider

// Measure the voltage at 5V and resistance of your 3.3k resistor, and enter
// their value's below:
const float VCC = 4.98; // Measured voltage of Ardunio 5V line
const float R_DIV = 3230.0; // Measured resistance of 3.3k resistor

void setup() 
  pinMode(FSR_PIN, INPUT);

void loop() 
  int fsrADC = analogRead(FSR_PIN);
  // If the FSR has no pressure, the resistance will be
  // near infinite. So the voltage should be near 0.
  if (fsrADC != 0) // If the analog reading is non-zero
    // Use ADC reading to calculate voltage:
    float fsrV = fsrADC * VCC / 1023.0;
    // Use voltage and static resistor value to 
    // calculate FSR resistance:
    float fsrR = R_DIV * (VCC / fsrV - 1.0);
    Serial.println("Resistance: " + String(fsrR) + " ohms");
    // Guesstimate force based on slopes in figure 3 of
    // FSR datasheet:
    float force;
    float fsrG = 1.0 / fsrR; // Calculate conductance
    // Break parabolic curve down into two linear slopes:
    if (fsrR <= 600) 
      force = (fsrG - 0.00075) / 0.00000032639;
      force =  fsrG / 0.000000642857;
    Serial.println("Force: " + String(force) + " g");

    // No pressure detected


In preparation for the course, I also downloaded the following programs:

  • Arduino
  • AutoDesk Eagle
  • AutoDesk Fusion360
  • Inkscape
  • GitHub Desktop
  • Brackets (Because of Gitlab, I beleive my use of this application will be minimal)


I also started learning how to write in Markdown. Here is a key that I made using this cheatsheet.