Close
0%
0%

PosturePack

wearable posture sensing with bluetooth module

Similar projects worth following
My DIY version of a posture sensing wearable. It's intended to improve a users posture by providing feedback via bluetooth when slouching is detected.

It's been designed to be worn in a pocket sewn onto the back of an undershirt.

This device contains

- A BN0055 9DOF IMU to measure users posture
- ATmega32U4 operating at 3.3V and 8MHz
- Adafruit BLE UART module for bluetooth communication
- 500mAh LiPo battery

I'm using the free Light Blue app to receive notifications from the device. Instructions to connect below.

I know products exist with similar functionality but I decided to build one myself for the fun of it.

I was happy with the final functionality and repeatability of the measurement output by the BN0055.

I had the board manufactured at dirtypcbs.com

All the components were ordered from DigiKey.

I used a toaster/reflow oven to surface mount the components.

I 3d printed a case, I had to divide the case into multiple parts as I have a very small print bed.

I did not break out the ICSP pins to headers/connector on the attached PCB files, this means I had to solder jumper wires directly onto the ATmega32U4 to upload the bootloader. 

h - 3.15 kB - 12/04/2020 at 01:56

Download

ino - 6.13 kB - 12/04/2020 at 01:56

Download

Portable Network Graphics (PNG) - 51.02 kB - 12/04/2020 at 01:54

Preview
Download

  • Gif fun

    ImageryEel12/10/2020 at 21:01 0 comments

    Action GIF

  • Future improvements

    ImageryEel12/04/2020 at 23:21 0 comments

    Regarding the Adafruit Bluetooth module: I would have loved to integrate a 'bare' bluetooth module and avoided using a breakout board for both cost saving and cosmetic reasons, however I didn't want to get into flashing the bluetooth firmware. If I release another revision I will try to integrate a discrete bluetooth module. For a proof of concept I think I made the right decision as the breakout board was really easy to use.

    The Posture Pack also badly needs some haptic feedback. Although I spend the majority of my time next to a computer I'm curious how effective this would be walking outside. It would be easier to use as you wouldn't need to change bluetooth from laptop-phone etc. 

  • Final configuration testing

    ImageryEel12/04/2020 at 04:17 0 comments

    After measuring my posture without feedback and after with bluetooth notification feedback I'm pretty happy with the result of this project. Here are the improvements I would include in another revision of the board:

    1) Vibration motor for non-bluetooth posture notifcations

    2) Add traces/connector for ICSP (CRITICAL!)

    3) Replace R1 to 2k to increase charge rate to 500 mA

    It would be neat to do a study of long term impacts of using this, could it actually improve sitting/standing posture without the notifications? I think that it likely would.

    Here are some measurements before and after enabling notifications

    Day

    Average Posture

    WFH 

    63

    WFH-With Bluetooth Posture Feedback

    75

    Random Weekend

    63.96

    In the Lab

    68.64

    Straight as Possible

    72.5

    Plank

    -6.94

View all 3 project logs

  • 1
    Uploading bootloader/ino file

    I used a teensy 3.2 to flash the bootloader via ICSP.  See attached image for connections.

    Install pro micro library as described: https://forum.arduino.cc/index.php?topic=363341.0, select teensy port, Change board to ‘pro micro’, Programmer: ‘Arduino as ISP’, now you can flash the bootloader and you can upload a sketch by selecting  ‘upload using programmer’.

  • 2
    Making a pocket

    I'm not a experience tailor so I won't offer detailed instructions for the pocket, however I did use these shirts: https://www.amazon.com/gp/product/B000P50WN0/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

    They were long enough for me that I could cut off the bottom 15cm or so and use that to create a pocket as shown in the image.

  • 3
    Basic use of the Posture Pack

    There are three modes for the sensor, 

    1) Acceptable posture ( >70 based on my measurements and testing)

    2) Below threshold, user receives 'You're Hunching!' notification followed by measured posture

    3) Sensor is placed on flat surface, outputs current posture, average angle, number of samples and firmware version (sample output below shows current angle -12, average: 75, samples 1662 and version 7.

View all 4 instructions

Enjoy this project?

Share

Discussions

Danie Conradie wrote 12/11/2020 at 10:40 point

Very cool project. On your "Final configuration testing" log, what sensor value did you use for the measurements, and what does 'WFH" mean? Do you turn on the sensor when you sit down or does it automatically detect when you sit still?

  Are you sure? yes | no

ImageryEel wrote 12/11/2020 at 17:39 point

Hey Danie, thanks! WFH = Work From Home. I think lots of people who are WFH are using sub-par chairs and desks (like me) who could benefit from this device. I use the measurement 'orientation y' from the BNO055 sensor/adafruit library to estimate posture. The sensor is always on and samples are taken every ~3 seconds. According to the data sheet the sensor can draw up to 12.3 mA, and the bluetooth module can draw 2-15 mA, based on this the pack should have >15 hours of operating capacity. 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates