

ThorPBC2.0
- Size
- 120 × 112 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 46
- Nets
- 93
- Pads
- 297
- Tracks, vias
- 221, 161
- Pours
- 3
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 3 Sep 2024
- Updated
- 13 Dec 2024
Overview
ThorPBC2.0 is an open-source printed circuit board by sschuchman, from the sschuchman/thorCam repository on GitHub. It is a 4-layer board of 120 × 112 mm with 46 parts on 93 nets, routed with 221 tracks and 161 vias.
It is built around the L293D and OS102011MS2QN1. Its parts include 12 capacitors, 9 connectors, 8 resistors, 5 ICs and 1 switch. It belongs with the RP2040 boards of this library.
Main components
2README
README.mdThoracic Camera
Overview
The Thoracic Camera project is a collaborative effort to design a dynamic thoracic camera system capable of precision actuation and real-time feedback for use in minimally invasive surgeries. By combining a Raspberry Pi 5 for advanced processing and a Raspberry Pi Pico for motor control and sensor feedback, the system delivers a robust solution for camera tracking and actuation in the chest cavity.
Contributors
- Sean Schuchman: January 2024 - December 2024
- Jakob Schoeberle: August 2024 - December 2024
- Colton Wall: August 2024 - December 2024
Hardware
Raspberry Pi 5
- Role: Central processing hub for the system.
- Responsibilities:
- Handles video feed from the Pi Camera Module V3.
- Performs computer vision tasks to detect and track a target object.
- Sends actuation commands to the Pico Controller via UART.
Pico Controller (Raspberry Pi Pico)
- Role: Camera actuation controller.
- Responsibilities:
- Interprets movement commands from the Raspberry Pi 5 and drives stepper motors.
- Monitors sensor feedback from tension modules to ensure proper wire tension.
- Handles precise actuation of the thoracic camera in response to commands.
Pico Controller
The Pico Controller acts as an abstraction layer between the computer vision system on the Raspberry Pi 5 and the physical camera actuation system. It simplifies control by encapsulating motor and tension management, providing an easy-to-interface control system.
Features:
- Camera Actuation:
Controls stepper motors to manipulate tension wires, enabling the camera to move along the x-plane and y-plane directions. - Tension Monitoring:
Uses sensor feedback from load cells to dynamically adjust wires and maintain system balance. - Control Modes:
- Manual Mode: Direct input to move the camera.
- Automatic Mode: Actuation based on computer vision commands from the Raspberry Pi 5.
Directory Structure
The project is divided into several directories to organize hardware, software, and firmware resources.
/Software: Contains software running on the Raspberry Pi 5, including computer vision and the Flask web application for control./Firmware: Firmware for the Raspberry Pi Pico to manage motor control and tension monitoring./Hardware: Schematic diagrams, PCB designs, and other hardware resources./Datasheets: Documentation for components such as stepper motors, motor drivers, and sensors./3D_Models: 3D printable designs for physical components./legacy: Archive of previous iterations or deprecated designs.
Setup
Raspberry Pi Pico Setup
-
Development Environment:
- Use Visual Studio Code with the Raspberry Pi Pico extension to build and flash the firmware.
- Ensure the Raspberry Pi Pico Debug Probe is connected for flashing and debugging.
-
Firmware Installation:
- Clone the repository and navigate to the
/Firmwaredirectory. - Open the project in Visual Studio Code and use the Pico extension to compile and flash the firmware.
- Clone the repository and navigate to the
-
Hardware Connections:
- Connect stepper motors via L293D drivers to the GPIO pins.
- Connect ADS1115 ADC modules to GPIO4 (SDA) and GPIO5 (SCL).
- Ensure UART pins (GPIO0 and GPIO1) are connected to the Raspberry Pi 5 for communication.
Raspberry Pi 5 Setup
-
Install Required Software:
- Ensure Python is installed with the required libraries (
Flask,OpenCV, etc.). - Navigate to the
/Softwaredirectory and install dependencies using:bash pip install -r requirements.txt
- Ensure Python is installed with the required libraries (
-
Start the Web Application:
- Run the
app.pyscript to start the Flask web server:bash python app.py - Access the control interface via a web browser on the local network.
- Run the
-
Hardware Connections:
- Connect the Pi Camera Module V3 to the CSI port.
- Ensure UART is configured on
/dev/ttyAMA0for communication with the Pico Controller.
Usage
-
Manual Control:
- Use the web interface to manually send movement commands to the Pico Controller.
- Adjust camera settings and monitor sensor feedback through the interface.
-
Automatic Control:
- Enable automatic mode via the web interface to allow the system to track a selected object.
- The Raspberry Pi 5 processes the video feed to calculate the offset and sends movement commands to the Pico Controller.
-
Real-Time Feedback:
- Monitor sensor values and system logs in the web interface.
- View live video and mask feeds to verify object tracking.
Parts
46| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | 0.1uF | ThorParts:CAP_C320_KEM | C1, C2, C3, C4, C5, C7, C8, C9 |
| 8 | 100 Ohms | ThorParts:RES_TYCO_YR1_TYC | R1, R2, R3, R4, R5, R6, R7, R8 |
| 4 | 1uF | ThorParts:CAP_C330C_MR_X7R_KEM | C10, C11, C12, C13 |
| 4 | L293D | Package_DIP:DIP-16_W7.62mm | U3, U4, U5, U6 |
| 4 | Stepper_Motor | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-4-2.54_1x04_P2.54mm_Horizontal | M1, M2, M3, M4 |
| 1 | ADS1115_Module_0 | ThorParts:ADS1115_1x10_P2.54mm_Vertical | J9 |
| 1 | ADS1115_Module_1 | ThorParts:ADS1115_1x10_P2.54mm_Vertical | J8 |
| 1 | ATX-24 | ThorParts:Molex_Mini-Fit_Jr_5566-24A_2x12_P4.20mm_Vertical_Thor | J6 |
| 1 | LOGO | ThorParts:CameraMod | G*** |
| 1 | LOGO | ThorParts:SIUE_Logo | G*** |
| 1 | LoadCell_0 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-4-2.54_1x04_P2.54mm_Horizontal | J10 |
| 1 | LoadCell_1 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-4-2.54_1x04_P2.54mm_Horizontal | J11 |
| 1 | LoadCell_2 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-4-2.54_1x04_P2.54mm_Horizontal | J12 |
| 1 | LoadCell_3 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-4-2.54_1x04_P2.54mm_Horizontal | J13 |
| 1 | OS102011MS2QN1 | ThorParts:SPDT_OS102011_CNK | SW1 |
| 1 | Pico | MCU_RaspberryPi_and_Boards:RPi_Pico_SMD_TH | U7 |
| 1 | UART_0 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J7 |
| 1 | UART_1 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J5 |
The 41 most common of 46 parts.
More from sschuchman/thorCam
1- 4 layers93 × 70.4 mm

Similar boards
- 2 layers100 × 100 mm

- 4 layers60 × 60 mm

3117 AUSIGN
r4hulrr/ausign
Real-time Auslan (Australian Sign Language) to English speech translation glove. Built with ESP32-S3, flex sensors, IMU on a custom PCB, and a Bluetooth-connected Python GUI.
151 parts3MIT - 4 layers97.8 × 97.8 mm

PTERODACTYL v4
mahruschow/team-pterodactyl
UMD near-space PTERODACTYL KiCad sensor-board working design
51 parts2 - 2 layers21.2 × 116.2 mm

Scroll dial
maker-lukas/Scroll-Dial
A scroll dial using the AS5600 sensor and a small macropad
20 parts2 - 2 layers134 × 80.5 mm

- 2 layers100 × 80 mm

Speakerpcb
gmaxdragon/Seizo-Noise
A massive PCB for a speaker for my robotic arm with a microphone built into it and a ton of other GPIO ports.
52 parts1 - 2 layers100 × 100 mm

- 2 layers29.5 × 21.6 mm

RC Hotwheels
404boboo/RC-Hotwheels
This repository contains all the files and documentation for our DIY remote-controlled Hot Wheels car. We designed our own custom PCB using KiCad, featuring a NRF24L01 transceiver(We only used it as a receiver for now)…
16 parts
Questions
How big is the ThorPBC2.0 PCB?
It measures 120 × 112 mm and has 4 copper layers, 1.6 mm thick.
What parts does the ThorPBC2.0 use?
46 parts, built around the L293D and OS102011MS2QN1. 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 ThorPBC2.0 KiCad files?
From the sschuchman/thorCam repository on GitHub, at the commit this page was made from: the board is Hardware/ThorPBC2.0.kicad_pcb and its schematic Hardware/Loadcells_Schematic.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the ThorPBC2.0 design in my own project?
Its repository states no licence, so its author keeps all rights: ask sschuchman before reusing the design.