Skip to the content
PCBKitNew board
4 layers40 × 80 mmBarbelMotionTracker V1, the printed circuit board in 3D

BarbelMotionTracker V1

ThorbenH/ba-thesis-project

This git project is dedicated to a prototype implementation that attempts to track and evaluate the motion of a barbell in the gym.

Size
40 × 80 mm
Copper layers
4
Thickness
1.58 mm
Parts
123
Nets
120
Pads
450
Tracks, vias
998, 180
Pours
9
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
3 Nov 2024
Updated
3 Nov 2024

Overview

BarbelMotionTracker V1 is an open-source printed circuit board by ThorbenH, from the ThorbenH/ba-thesis-project repository on GitHub. It is a 4-layer board of 40 × 80 mm with 123 parts on 120 nets, routed with 998 tracks and 180 vias.

It is built around the ESP32-WROOM-32E, BMP390 and CP2102N-A02-GQFN24R, with the MMC5983MA, TPS62111RSAR and BNO055 among its other parts. Its parts include 50 resistors, 34 capacitors, 12 ICs, 4 transistors and 3 diodes. It belongs with the ESP32 boards of this library.

Main components

12

README

README.md

BarbelMotionTracker

This git project is dedicated to a prototype implementation that attempts to track and evaluate the motion of a barbell in the gym.

3D-Files

Here you will find the FFF (FDM) printable files for a case for the board. All STL-files are in metric (mm). To complete the assembly you will need some additional hardware (M3 screws, rubber pad, M3 heat set inserts, 4mmx0.5mm brass tubing, 2cm wide velcro strap)

PCB_Design

Here you will find the KiCad8.0 design files as well as the pre exported gerbers (ready to order at JLCPCB). You will also find the ibom.html file which is a Interactive Bill Of Materials that you can open in any modern browser. It is of great use when doing board smd assembly.

Software_Device

Here you will find a PlatformIO project that contains the software running on the board. It is written in C/C++ for the esp32 platform using the arduino framework.

To get started install VSCode, install the PlatformIO extension, plug in the board using the USB-C shared power and data port and make sure the board is turned on using the power switch.p

The software collects all the raw sensor data into a CSV-File for future of board processing.

Calibration modes can be selected by uncommenting preprocessor arguments in the "platformio.ini" file.

Micro SD-Card

The sd-card has to be formatted as FAT32. FAT32 is only supported by micro-sd-cards with capacity less than 32GB. The sd-card has to contain a settings.txt file that has to be populated. Check the "sdcard.h" code for details. A good starting point might be this (make sure to include the empty lines at the end of the file, as the device expects these to write the BNO055 calibration to):

text
User
1
s
90.00
2.50
45.00
2.50
12.50
2.50
95.00
2.50












Plot_Calibration

Contains a the python code to visualize a calibration as gathered by the device (see Software_Device). To get the calibration matrix you can use the tool Magneto v1.2 at https://sites.google.com/view/sailboatinstruments1 .

Post_Process_Data

First run "apply_calibration_and_split.py" to split one recording session into exercises and sets and apply the calibration. This requires a recorded session and a "cal_matrix.json" file in the subfolder "data". Make sure to set the correct file name for your recordig in "apply_calibration_and_split.py". Next you can run "compute_orientation_and_motion.py". Make sure to set the correct target folder.

Some settings are required for these two steps. They can be set in "processing_settings.py".

All other files should contain "_thesis" in their name and where only used to create plots of the data for the thesis. Feel free to disregard these.

Machine_Learning

To run the machine learning code you first need to create the dataset used for training and testing. The python code file "prepData.py" uses a hard coded location for the data. To generate the data required first run the Post_Process_Data pipeline. Then you can run the training in order "prepData.py" -> "train.py" -> "test.py".

Parts

123
QtyValueFootprintReferences
1510kResistor_SMD:R_0603_1608MetricR3, R9, R10, R30, R31, R32, R33, R42, R43, R44, R45, R47, R48, R49, R50
12100nCapacitor_SMD:C_0603_1608MetricC1, C3, C5, C11, C21, C22, C23, C25, C29, C31, C34, C35
90RResistor_SMD:R_0603_1608MetricR4, R5, R17, R18, R25, R26, R27, R28, R29
847k5 1%Resistor_SMD:R_0603_1608MetricR8, R16, R19, R20, R21, R22, R23, R24
8TestPointTestPoint:TestPoint_Pad_D1.0mmTP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8
733nCapacitor_SMD:C_0603_1608MetricC13, C14, C15, C16, C17, C18, C19
41uCapacitor_SMD:C_0603_1608MetricC6, C28, C30, C36
4MountingHoleMountingHole:MountingHole_2.2mm_M2H1, H2, H3, H4
310uCapacitor_SMD:C_0805_2012MetricC4, C20, C27
3SS8050-GSamacSys_Parts:SOT95P240X115-3NQ1, Q2, Q4
21kResistor_SMD:R_0603_1608MetricR7, R46
222k1 1%Resistor_SMD:R_0603_1608MetricR6, R34
222pCapacitor_SMD:C_0402_1005MetricC32, C33
22k2Resistor_SMD:R_0603_1608MetricR12, R15
24k7Resistor_SMD:R_0603_1608MetricR36, R37
25k1Resistor_SMD:R_0603_1608MetricR1, R2
268Resistor_SMD:R_0603_1608MetricR13, R39
1100Resistor_SMD:R_1206_3216MetricR38
1100kResistor_SMD:R_0603_1608MetricR40
1104031-0811SamacSys_Parts:1040310811J3
110nCapacitor_SMD:C_0603_1608MetricC24
110u 1206Capacitor_SMD:C_1206_3216MetricC38
1150Resistor_SMD:R_1206_3216MetricR41
12.2uCapacitor_SMD:C_0603_1608MetricC26
122uCapacitor_SMD:C_0805_2012MetricC2
122u 1210Capacitor_SMD:C_1210_3225MetricC37
1330Resistor_SMD:R_0603_1608MetricR11
133kResistor_SMD:R_0603_1608MetricR35
14.7uCapacitor_SMD:C_0603_1608MetricC12
1597-3305-607FSamacSys_Parts:LEDC2012X70NLED1
16R8Resistor_SMD:R_1206_3216MetricR14
1AMPLA5030S-6R8MTSamacSys_Parts:INDPM5752X300NL1
1BCW72LT1GSamacSys_Parts:SOT96P237X111-3NQ3
1BMP390SamacSys_Parts:BMP390IC6
1BNO055BNO055:LGA28R50P4X10_380X520X100U2
1CM7VT1A-LowESR-32.768kHz-12.5pF-20-TA-QCSamacSys_Parts:CM7V32768TBQA020Y1
1CMT-6635C-030SamacSys_Parts:CMT6635C030U3
1CP2102N-A02-GQFN24RSamacSys_Parts:QFN50P400X400X80-25N-DIC2
1Conn_01x02_PinConnector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_HorizontalJ4
1DDiode_SMD:D_0805_2012MetricD1
1ESP32-WROOM-32ERF_Module:ESP32-WROOM-32EU1
1ICM-42688-PSamacSys_Parts:IIM42352IC7
1LTC4054XES5-4.2#TRMPBFSamacSys_Parts:SOT95P280X100-5NIC3
1MMC5983MASamacSys_Parts:MMC5983MAIC8
1PowerSwitchCustomPowerSwitchCustom:PowerSwitchCustomSW1
1QRE1113GRSamacSys_Parts:QRE1113GRU4
1TCRT5000LSamacSys_Parts:TCRT5000LIC9
1TPS62111RSARSamacSys_Parts:QFN65P400X400X100-17NIC5
1USB4105-GF-AUSB4105-GF-A:GCT_USB4105-GF-AJ1
1USBLC6-2SC6SamacSys_Parts:SOT95P280X145-6NIC1
1VCDB1112H-5AY3B-TRSamacSys_Parts:LEDC2012X90NLED2
1~Display_ST7789V2:Display_ST7789V2DISP1
1~ZippyRotaryEncoder_ANO:ZippyRotaryEncoder_ANOENC1

Questions

How big is the BarbelMotionTracker V1 PCB?

It measures 40 × 80 mm and has 4 copper layers, 1.58 mm thick.

What parts does the BarbelMotionTracker V1 use?

123 parts, built around the ESP32-WROOM-32E, BMP390, CP2102N-A02-GQFN24R and MMC5983MA. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the BarbelMotionTracker V1 KiCad files?

From the ThorbenH/ba-thesis-project repository on GitHub, at the commit this page was made from: the board is PCB_Design/BarbelMotionTracker-V1.kicad_pcb and its schematic PCB_Design/BarbelMotionTracker-V1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the BarbelMotionTracker V1 design in my own project?

Its repository states no licence, so its author keeps all rights: ask ThorbenH before reusing the design.

Similar boards

  • 2 layers214 × 187.9 mmLine follower simple, the printed circuit board in 3D

    Line follower simple

    alientanya/line-follower-PCB

    A modular PCB platform for Fast Line Follower (FLF) robots, designed to prioritize sensor experimentation and component flexibility.

    259 parts2MIT
  • 2 layers365.8 × 174 mmLine follower simple, the printed circuit board in 3D

    Line follower simple

    CptEdward-MP/RM_Electronics_Central_Library

    Over time, every team also writes the same firmware again.

    235 parts
  • 4 layers78 × 48 mmMotherboard rev 3, the printed circuit board in 3D

    Motherboard rev 3

    hpvdt/falcon_motherboard

    Firmware and hardware designs for the Falcon motherboard

    69 parts
  • 2 layers63.5 × 99.1 mmBlugasm, the printed circuit board in 3D

    Blugasm

    saawsm/Blugasm

    A battery powered nogasm with support for bluetooth toys.

    74 parts19GPL-3.0
  • 4 layers111.6 × 133.9 mmGreenhouse controller pcb, the printed circuit board in 3D

    Greenhouse controller pcb

    hspil/greenhouse-controller-pcb

    Central controller for greenhouse automation project

    115 parts
  • 4 layers99.8 × 94.6 mmOresat batteries, the printed circuit board in 3D

    Oresat batteries

    oresat/oresat-batteries

    Battery board for OreSat

    354 parts29
  • 4 layers99.8 × 94.6 mmOresat adcs card, the printed circuit board in 3D

    Oresat adcs card

    oresat/oresat-adcs-hardware

    Controller PCB for OreSat reaction wheels, magnetorquers, IMU, and magnetometers

    598 parts21GPL-2.0
  • 4 layers99.8 × 94.6 mmOresat proto card, the printed circuit board in 3D

    Oresat proto card

    oresat/oresat-proto-card

    Prototype card for the OreSat bus. Requires the OreSat Backplane.

    205 parts9