
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.

This git project is dedicated to a prototype implementation that attempts to track and evaluate the motion of a barbell in the gym.
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.
This git project is dedicated to a prototype implementation that attempts to track and evaluate the motion of a barbell in the gym.
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)
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.
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.
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):
User
1
s
90.00
2.50
45.00
2.50
12.50
2.50
95.00
2.50
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 .
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.
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".
| Qty | Value | Footprint | References |
|---|---|---|---|
| 15 | 10k | Resistor_SMD:R_0603_1608Metric | R3, R9, R10, R30, R31, R32, R33, R42, R43, R44, R45, R47, R48, R49, R50 |
| 12 | 100n | Capacitor_SMD:C_0603_1608Metric | C1, C3, C5, C11, C21, C22, C23, C25, C29, C31, C34, C35 |
| 9 | 0R | Resistor_SMD:R_0603_1608Metric | R4, R5, R17, R18, R25, R26, R27, R28, R29 |
| 8 | 47k5 1% | Resistor_SMD:R_0603_1608Metric | R8, R16, R19, R20, R21, R22, R23, R24 |
| 8 | TestPoint | TestPoint:TestPoint_Pad_D1.0mm | TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8 |
| 7 | 33n | Capacitor_SMD:C_0603_1608Metric | C13, C14, C15, C16, C17, C18, C19 |
| 4 | 1u | Capacitor_SMD:C_0603_1608Metric | C6, C28, C30, C36 |
| 4 | MountingHole | MountingHole:MountingHole_2.2mm_M2 | H1, H2, H3, H4 |
| 3 | 10u | Capacitor_SMD:C_0805_2012Metric | C4, C20, C27 |
| 3 | SS8050-G | SamacSys_Parts:SOT95P240X115-3N | Q1, Q2, Q4 |
| 2 | 1k | Resistor_SMD:R_0603_1608Metric | R7, R46 |
| 2 | 22k1 1% | Resistor_SMD:R_0603_1608Metric | R6, R34 |
| 2 | 22p | Capacitor_SMD:C_0402_1005Metric | C32, C33 |
| 2 | 2k2 | Resistor_SMD:R_0603_1608Metric | R12, R15 |
| 2 | 4k7 | Resistor_SMD:R_0603_1608Metric | R36, R37 |
| 2 | 5k1 | Resistor_SMD:R_0603_1608Metric | R1, R2 |
| 2 | 68 | Resistor_SMD:R_0603_1608Metric | R13, R39 |
| 1 | 100 | Resistor_SMD:R_1206_3216Metric | R38 |
| 1 | 100k | Resistor_SMD:R_0603_1608Metric | R40 |
| 1 | 104031-0811 | SamacSys_Parts:1040310811 | J3 |
| 1 | 10n | Capacitor_SMD:C_0603_1608Metric | C24 |
| 1 | 10u 1206 | Capacitor_SMD:C_1206_3216Metric | C38 |
| 1 | 150 | Resistor_SMD:R_1206_3216Metric | R41 |
| 1 | 2.2u | Capacitor_SMD:C_0603_1608Metric | C26 |
| 1 | 22u | Capacitor_SMD:C_0805_2012Metric | C2 |
| 1 | 22u 1210 | Capacitor_SMD:C_1210_3225Metric | C37 |
| 1 | 330 | Resistor_SMD:R_0603_1608Metric | R11 |
| 1 | 33k | Resistor_SMD:R_0603_1608Metric | R35 |
| 1 | 4.7u | Capacitor_SMD:C_0603_1608Metric | C12 |
| 1 | 597-3305-607F | SamacSys_Parts:LEDC2012X70N | LED1 |
| 1 | 6R8 | Resistor_SMD:R_1206_3216Metric | R14 |
| 1 | AMPLA5030S-6R8MT | SamacSys_Parts:INDPM5752X300N | L1 |
| 1 | BCW72LT1G | SamacSys_Parts:SOT96P237X111-3N | Q3 |
| 1 | BMP390 | SamacSys_Parts:BMP390 | IC6 |
| 1 | BNO055 | BNO055:LGA28R50P4X10_380X520X100 | U2 |
| 1 | CM7VT1A-LowESR-32.768kHz-12.5pF-20-TA-QC | SamacSys_Parts:CM7V32768TBQA020 | Y1 |
| 1 | CMT-6635C-030 | SamacSys_Parts:CMT6635C030 | U3 |
| 1 | CP2102N-A02-GQFN24R | SamacSys_Parts:QFN50P400X400X80-25N-D | IC2 |
| 1 | Conn_01x02_Pin | Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal | J4 |
| 1 | D | Diode_SMD:D_0805_2012Metric | D1 |
| 1 | ESP32-WROOM-32E | RF_Module:ESP32-WROOM-32E | U1 |
| 1 | ICM-42688-P | SamacSys_Parts:IIM42352 | IC7 |
| 1 | LTC4054XES5-4.2#TRMPBF | SamacSys_Parts:SOT95P280X100-5N | IC3 |
| 1 | MMC5983MA | SamacSys_Parts:MMC5983MA | IC8 |
| 1 | PowerSwitchCustom | PowerSwitchCustom:PowerSwitchCustom | SW1 |
| 1 | QRE1113GR | SamacSys_Parts:QRE1113GR | U4 |
| 1 | TCRT5000L | SamacSys_Parts:TCRT5000L | IC9 |
| 1 | TPS62111RSAR | SamacSys_Parts:QFN65P400X400X100-17N | IC5 |
| 1 | USB4105-GF-A | USB4105-GF-A:GCT_USB4105-GF-A | J1 |
| 1 | USBLC6-2SC6 | SamacSys_Parts:SOT95P280X145-6N | IC1 |
| 1 | VCDB1112H-5AY3B-TR | SamacSys_Parts:LEDC2012X90N | LED2 |
| 1 | ~ | Display_ST7789V2:Display_ST7789V2 | DISP1 |
| 1 | ~ | ZippyRotaryEncoder_ANO:ZippyRotaryEncoder_ANO | ENC1 |
It measures 40 × 80 mm and has 4 copper layers, 1.58 mm thick.
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.
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.
Its repository states no licence, so its author keeps all rights: ask ThorbenH before reusing the design.

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

CptEdward-MP/RM_Electronics_Central_Library
Over time, every team also writes the same firmware again.

hpvdt/falcon_motherboard
Firmware and hardware designs for the Falcon motherboard


hspil/greenhouse-controller-pcb
Central controller for greenhouse automation project


oresat/oresat-adcs-hardware
Controller PCB for OreSat reaction wheels, magnetorquers, IMU, and magnetometers

oresat/oresat-proto-card
Prototype card for the OreSat bus. Requires the OreSat Backplane.