Introduction: Flex Rest

The Flex Rest is a product which aims to decrease the effects of a sedentary lifestyle which often comes with a desk job. It consists of a cushion and a laptop stand. The cushion is placed on the chair and acts as a pressure sensor which senses whenever the user is sitting down. When the user hasn’t moved for 55 min, the motor in the laptop stand is triggered and the palm rest starts moving. This reminds the user that they need to get up and move for a few minutes before continuing to work.

Material you will need

For the pressure sensitive cushion

  • A 33cmØx1cm cushion (or make one yourself)
  • 10cmx2.5cm velostat
  • 9cmx2cm copper tape
  • 4 electric wires
  • 5 V Battery Source

For the laptop stand

  • 1.2 sq.m 4 mm thick plywood
  • A cardboard binder
  • 1.5 sq.m Alcantara fabric or any other fabric of your choice
  • Soft padding (we used 50g cotton)
  • Two Ø8 mm 5 cm long cylinders


  • Arduino Wifi rev
  • 2 Cords
  • Node MCU WiFi Board
  • USB A - USB C
  • USB A - Micro USB
  • Servo FITEC FS5106R with 5 kg capacity


  • Arduino IDE
  • Adobe Illustrator


  • Laser cutter
  • Ruler
  • Saw machine
  • Sewing machine
  • Computer

Step 1: The Design and Construction of the Plywood Flex and Gears

At the end of this step, you should have created two plywood flex pieces, five gears and three racks.The first aspect to consider is the inflating and deflating palm rest of the laptop stand. This is done by adding a specific flex and stretch property to a rectangular shaped plywood by using a laser cutter. By using, one can generate different patterns that increase the flexibility and/or stretch of the plywood. The template used is named Shutterbox template and can be found under the tab Boxes with flex.

As illustrated in the picture above, only half of the plywood will be engraved with a pattern while the other half needs to be fully solid.

Note: There is variation of alternative that could be implement e.g. by using air compressors, reshapable materials (that can be easily altered using e.g. pressure) and so forth.

The gears that come with the servo do not always work for the intended usage. The laser cutter is a great way to design and create your own gears. We constructed two types of gears on 4 mm thick plywood. The first type of gear has sharp triangled edges. We constructed two of those. The second type of gear looks more like a rudder, since it has rectangular edges. We created three of those. Both of the patterns for the gears were drawn in Adobe Illustrator.

The racks are attached to the plywood flex and are needed to link the motion from the gears. The pattern was drawn in Adobe Illustrator.

Step 2: The Design and Construction of the Laptop Stand

Start with a regular cardboard binder for the base of the laptop stand. The next step is to laser cut a piece of the plywood into three rectangles which will be used as supporting side panels on the open sides of the binder. We used a height of 6.5 cm on the shorter edge and 8.5 cm on the higher edge. After the frame for the laptop case is done, it is time to assemble all of the smaller things inside the case.

Inside the case:

The inside of the box will have the following components (illustrated in the picture):

  • Component 1 and 2 are rectangular pieces of wood placed to stabilize and limit the movement of the rack. Additionally, component 1 will act as a placeholder for the servo with a gear that will move the rack back and forth. Component 1 and 2 can either be cut out using the laser cutter or manually using a saw.
  • Component 3 consists of three rectangular pieces of wood placed on top of each other to prevent the rack (component 5) to move vertically.
  • Component 4 is a cylindrical piece of wood that acts as a placeholder for the gear (shown with a gear on the right side). It is important to have a cylindrical smooth surface to allow the gear to move freely with minimal friction.
  • Component 6 consists of three small rectangular pieces of wood, distributed evenly, to minimize the friction and allow the plywood flex to move back and forth.
  • Component 7, the gears, are three in total. They are made by glueing together two gears of different kind.

Note: Assembling and placing these components can occur in any order.

The last step is to attach the gears to the cylinders and attaching the racks to the plywood flex and attach the to the box.

Step 3: Making a Pressure Sensor From Velostat

  1. Cut the velostat in an appropriate size. We cut a 10x2.5 cm rectangle.
  2. Tape the copper tape onto both sides of the velostat, and make sure the tape is approximately on the same position on both sides.
  3. Connect an electric wire to the copper tape on both sides, and make sure it is long enough.
  4. Connect one of the wires to the 5V outlet. Connect the other to a resistor and an analog input to the NodeMcu. The resistance on the resistor may vary from case to case but in ours a 4.7kOhm resistor was good enough to get a result. Connect the resistor to ground.
  5. Make sure every part is working together by running the arduino code PressureSensor.ino
  6. When the correct resistor has been found and everything is working, solder everything together.

Step 4: Making the Electronics Work

The electronics consist of the board Node MCU and Arduino WiFi rev2. These have onboard WiFi components that enable easy WiFi communication without any additional electronics. However, these boards must be programmed to be able to communicate through WiFi. We chose to let the Node MCU solely process the analog input and convert it to a value that takes true or false. True indicates that the pressure sensor and Node MCU has registered someone sitting on the cushion and false the opposite. The Arduino WiFi rev2 should then receive the boolean and control the motor according to the value i.e. send control signals to the servo.

Test program to control the servo was written, called Servo.ino. Test program to send data over WiFi was written called Client.ino and Server.ino. Note that Server is intended for Node MCU and should be started completely (until message “Server Stared” is written on serial port) before the Client is run. Finally combine the programs to your likings.

Red, blue and yellow cords connects to the servo motor. The control panel is used to move the servo back and forward. The Servo.ino program is moving the motor for a specified time on each button push.