«DiY» WePosture#

Good posture through equilibrium. WIP - Work-In-Progress

Let’s tinker gadgets

  • Time estimate: One afternoon (net)

  • Cost estimate: Far below 50 Euro (Raspberry Pi, Monitor, Keyboard, Mouse not included)

  • Skill level: Intermediate hobby tinkerer

Background#

Recently I met a physician in the field of orthopaedics, sports medicine and performance diagnostics. I learned from him that a good posture is important for our health and well-being. So let’s create some thing!

The Gadget#

With a …

  • home-made Balance Board (like a Wii Balance Board) with hardware used in digital scales, voltage amplifiers (HX711)

  • a (little) oversized microcontroller, Raspberry PI 5 (RPI5), we can directly work on, so a full-blown computer.

  • WebApp (Full-Stack with FARM-Stack: FastAPI, React, MongoDB) to visualize the data and to provide a user interface for the user to interact with the gadget. In the DataBase historical health data can be stored and analyzed.

BOM - Bill Of Material#

Production (and Development):

Development (in addition):

SBOM - Software Bill Of Material#

Production (and Development):

Development (in addition):

  • Visual Studio Code 1.92.2

  • pipx 1.1.0

  • Poetry 1.8.3

Resources#

Sketches#

Here some sketches:

../../_images/bd_weposture.svg
../../_images/board_with_feed_and_loadcells.png

Expert Dialogs#

Here some GPT-4o chats:

Insights in Work-In-Progress#

../../_images/balance_board.png

Balance board with top side made of glass waiting and 1k Resistors waiting to get to the four HX711 amplifiers of in the circuit.#

../../_images/sketch_ui_ux.png

Sketch on UI/UX#

../../_images/rpi_4b_and_circuit.png

RPI 4B connected to 2x4 HX711, Power, Monitor, Keyboard and Mouse#

../../_images/pinout_connections_1_of_2.png

Pinout connections 1 of 2#

../../_images/pinout_connections_2_of_2.png

Pinout connections 2 of 2#

Software (Repository: basejumpa/WeBalance ) already acquires data. Here the continuous output (obsolete, still the output of just 4 load cells connected):

--snip--

read duration: 0.969 seconds, rate: 10.3 Hz
raw ['1990.750', '-28956.286', '-1740.286', '-17075.444']
wt ['1990.750', '-28956.286', '-1740.286', '-17075.444']

read duration: 0.968 seconds, rate: 10.3 Hz
raw ['1995.625', '-28946.571', '-1719.857', '-17096.286']
wt ['1995.625', '-28946.571', '-1719.857', '-17096.286']

read duration: 0.978 seconds, rate: 10.2 Hz
raw ['1998.714', '-28930.429', '-1654.143', '-17004.875']
wt ['1998.714', '-28930.429', '-1654.143', '-17004.875']

--snap--

Next step: connect each load cell to its own HX711 as shown here:

../../_images/circuit_hx711_one_load_cell.jpg

Circuit one cell connected to one hx711. Origin: Arduino Scale with HX711 and 50kg Bathroom Scale Load Cells | Step by Step Guide | Connecting one load cell#

Flash SD-Card with Raspberry Pi OS Lite 64-bit:

../../_images/initial_os_settings.png

Initial OS settings on Raspberry Pi OS Lite 64-bit#