Introduction: STRYDE.

STRYDE. aims to provide amateur and intermediate runners with insights and assistance comparable to that available to professional athletes with low-cost, aesthetic and convenient wearables. Ultimately, these devices should help you to improve performance and avoid injury while running.

STRYDE. comprises of a pair of tights incorporating sensors to analyse posture (forwards lean angle) while running, as well as an auditory device to help runners maintain a consistent pace and correct their posture. The compression running tights communicate data from the sensors back to a PC or mobile where the user can gain insights about the way they run and compare this to an ideal technique.

Ultimately, these wearables aim to aid the wearer in enhancing their performance, preventing injury and better understanding their fitness activities.

Step 1: Materials and Tools

Materials and technologies:

  • eResin_ PLA with a colour of choice for 3D printing
  • 2x Arduino Pro Mini or similar with I2C and 5V pins
  • CH341A USB programmer for Arduino Pro mini
  • Seeed Grove Accelerometer Module
  • Li-Po battery charger
  • Bluetooth 4.0 module (HM-10)
  • Buzzer module
  • Wires


  • Photoshop
  • Arduino official software
  • Solidworks


  • Soldering iron
  • Solder
  • Wire strippers & wire cutter
  • Voltmeter
  • Measuring tape
  • 3D printer

Step 2: Create 3D Model of Earphones Using CAD Software

    Start your earphone model with a sketch on paper. Find inspirations from online and surrounding sources. Some photos of sketches for this STRYDE. is attached above for your reference. Next, measure your neck with a measuring tape to determine the width and length of the earphones. Make sure to measure loosely so the earphones can fit comfortably at the end.

    Always consider the manufacturing process for your design. When 3D printing it is essential to take into account of constraints of the 3D printers that are accessible to you. Some significant constraints to note are maximum and minimum dimensions that can be printed, as well as the error range of the printers.

    After you have successfully dimensions your 2D sketches, draw them up on your CAD software of choice which is able to export an STL file (we picked Solidworks). If you have limited experience with CAD software, there are many free training videos available online you can look up to create any shape you like.

    When you are finished modelling, confirm that all your dimensions are accurate before exporting the file in a STL format.

    Step 3: 3D Print Earphones With CAD File

      Before proceeding with this step, note your CAD model may need to be split/sliced into top and bottom pieces and then glued due to production limitations of 3D printers. Consult staff or online forums about the operation of the specific printer you have access to and requirements for printing hollow objects.

      We have some examples above using our white prototypes. Convert your model into G code with assistance of 3D printing staff or by looking up how to do so with your specific software. Choose suitable material based on comfort, cost, aesthetics and consider outsourcing. We recommend PLA, TPU and eResin-PLA.

      Print and refine by sanding, polishing or if you have chosen eResin-PLA, use a laser to solidify the model. Repeat printing until you are satisfied with the shape and finish of the earpieces.

      Step 4: Produce Cool Beats

      There are two options for the audio output of the earpieces. The first is a simple 170-190BPM ticking sound for the wearer to match their running pace to. Alternately, you may choose to produce your own soundtrack, exporting it in a format that can be uploaded and played back through the speaker attached to the Arduino.

      Use Ableton Live or other music software. Set beat to 160, 165, 170, 175 as required, this can be changed at any point but is recommended to be set first in order to minimise any pitch shifting or distortion.

      Choose instruments or drum sounds to reinforce the beat, Tom or bass sounds are recommended. Place a note at the beginning of each bar, ensure the velocity is 110. Arrange complementary sounds or instruments, such as hi-hats, chimes and air texture noises. Keep in mind not to have sounds that are too similar to the main beat, use audio effects to make damp or blunt any strident or pluck sounds, or reduce the attack. The velocity for the complementary sounds should not exceed 90.

      Aim to create an atmosphere that inspires urgency or movement through a composition of layered sounds that build tension, use your creativity! Loop the audio created. Export in WAV. format.

      Step 5: Assemble Arduino Components

      There are two separate devices to be built, housed in a pair of leggings and the earpieces. Follow the instructions below to assemble the two devices. In the next step, we will write the Arduino code to output sound through the buzzer in the earpieces and transmit back the sensor data from the device attached to the leggings.

      1. Leggings device

      The leggings device consists of a Arduino Pro Mini mainboard, an MPU9250 based accelerometer module and a Bluetooth 4.0 Module (HM-10 recommended).

      These are to be soldered onto the Arduino microcontroller as follows:

      Pins on module => Pins on Arduino

      Accelerometer module (MPU9250):

      SDA => SDA

      SCL => SCL

      VCC => 5V

      GND => GND

      Bluetooth (HM-10) module:

      VCC => 5V

      GND => GND

      TX => RX

      RX => TX

      Finally, put two 3.7V LiPo batteries in series (as shown in the digram) to achieve a total voltage of 7.4V for the series battery. Wire the red/positive hanging lead to the RAW pin and the black/negative lead to the GND pin on the Arduino Pro Mini in order to power the device externally. You may want to look into how a switch or button could be added to toggle current to the device so the battery doesn't need to be manually connected and disconnected.

      2. Earpieces

      The earpieces simply require attaching a speaker module to a Arduino pro mini. The Arduino is driven by a battery module with the same configuration as that shown for the leggings module (and attached to the same RAW and GND pins)

      Speaker Module:

      VCC => 5V

      GND => GND

      IO => Pin 8

      Finally, insert the device into the 3D printed housing. Use an adhesive to secure the end pieces onto the housing.

      Step 6: Write Code for Arduino and Upload

      For each step below, attach the Arduino Pro Mini to the USB programmer as shown in the diagrams, configuring the Arduino software as follows using the 'Tools' menu:

      • Board: Arduino Pro or Pro Mini
      • Processor: ATMEGA328P (5V, 16MHz)
      • Port: COMxx (will vary on each device. Disconnect other Arduino or COM devices from your computer if you are unable to determine which is your Arduino)
      • Programmer: AVR ISP MkII

      Leggings Device:

      Earpiece Device:

      Step 7: Setup Web Interface for Displaying Leggings/posture Data

      To display the readings from the Arduino placed on the leggings, we will create a web interface that can be accessed from a PC or mobile.

      Download the attached files, renaming index.hmtl.txt to index.html, and then open index.html with your browser (Google Chrome recommended)

      Note that there is no requirement to upload the files to a public web server or set up a website. The web interface simply consists of HTML/CSS/Javascript files that can be stored on your computer and opened with a web browser, which will then talk to the leggings device over a bluetooth connection initiated via your browser.

      Attached is a screenshot of a small section of code from the file app.js that is run when the user presses the connect button on the page. Here we tell the computer to call the function 'dataHandler' whenever data is received from the Arduino. You should follow the code to see what other functions are called and how the data is handled and eventually drawn on the graph.

      Below is a small summary of the included files:

      index.hml: Tells browser what elements to draw on the page and where they are to be placed relative to one another.

      style.css: Styling of individual elements (e.g. grey outline around graph)

      webTerminal.js: JavaScript library for communicating with the module over bluetooth. Provides functions necessary for easily handling received data and sending messages back to a connected bluetooth device over a serial bluetooth connection.

      app.js: Our own custom JavaScript code that handles all the data received from the arduino and draws on the graph

      Step 8: Accessing and Using the Web Interface

      The leggings module reads gyroscope, accelerometer and even temperature information. This project requires only use of the gyroscopes Y axis readings, from which the wearer's posture can be determined.

      To access the web interface, open the file index.html downloaded in the previous step. You should see an interface similar to that in the attached screenshot.

      Next, press the connect button and select your bluetooth module (usually named HMSoft) from the list of devices. If there are many devices, it may help to position the module closer to your computer so it can be easily identified from the bluetooth reception level.