Skip to the content
4 layers120 × 112 mmThorPBC2.0, the printed circuit board in 3D
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

2

README

README.md

Thoracic 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

  1. 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.
  2. Firmware Installation:

    • Clone the repository and navigate to the /Firmware directory.
    • Open the project in Visual Studio Code and use the Pico extension to compile and flash the firmware.
  3. 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

  1. Install Required Software:

    • Ensure Python is installed with the required libraries (Flask, OpenCV, etc.).
    • Navigate to the /Software directory and install dependencies using:
      bash
      pip install -r requirements.txt
  2. Start the Web Application:

    • Run the app.py script to start the Flask web server:
      bash
      python app.py
    • Access the control interface via a web browser on the local network.
  3. Hardware Connections:

    • Connect the Pi Camera Module V3 to the CSI port.
    • Ensure UART is configured on /dev/ttyAMA0 for communication with the Pico Controller.

Usage

  1. 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.
  2. 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.
  3. 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
QtyValueFootprintReferences
80.1uFThorParts:CAP_C320_KEMC1, C2, C3, C4, C5, C7, C8, C9
8100 OhmsThorParts:RES_TYCO_YR1_TYCR1, R2, R3, R4, R5, R6, R7, R8
41uFThorParts:CAP_C330C_MR_X7R_KEMC10, C11, C12, C13
4L293DPackage_DIP:DIP-16_W7.62mmU3, U4, U5, U6
4Stepper_MotorTerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-4-2.54_1x04_P2.54mm_HorizontalM1, M2, M3, M4
1ADS1115_Module_0ThorParts:ADS1115_1x10_P2.54mm_VerticalJ9
1ADS1115_Module_1ThorParts:ADS1115_1x10_P2.54mm_VerticalJ8
1ATX-24ThorParts:Molex_Mini-Fit_Jr_5566-24A_2x12_P4.20mm_Vertical_ThorJ6
1LOGOThorParts:CameraModG***
1LOGOThorParts:SIUE_LogoG***
1LoadCell_0TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-4-2.54_1x04_P2.54mm_HorizontalJ10
1LoadCell_1TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-4-2.54_1x04_P2.54mm_HorizontalJ11
1LoadCell_2TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-4-2.54_1x04_P2.54mm_HorizontalJ12
1LoadCell_3TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-4-2.54_1x04_P2.54mm_HorizontalJ13
1OS102011MS2QN1ThorParts:SPDT_OS102011_CNKSW1
1PicoMCU_RaspberryPi_and_Boards:RPi_Pico_SMD_THU7
1UART_0Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ7
1UART_1Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ5

The 41 most common of 46 parts.

More from sschuchman/thorCam

1
  • 4 layers93 × 70.4 mmThorPCB, the printed circuit board in 3D

    ThorPCB

    sschuchman/thorCam

    20 parts1

Similar boards

  • 2 layers100 × 100 mmRegisters, the printed circuit board in 3D

    Registers

    imihajlow/ccpu

    A 8-bit computer made of 74xx series logic gates and memory ICs.

    217 parts145
  • 4 layers60 × 60 mm3117 AUSIGN, the printed circuit board in 3D

    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 mmPTERODACTYL v4, the printed circuit board in 3D

    PTERODACTYL v4

    mahruschow/team-pterodactyl

    UMD near-space PTERODACTYL KiCad sensor-board working design

    51 parts2
  • 2 layers21.2 × 116.2 mmScroll dial, the printed circuit board in 3D

    Scroll dial

    maker-lukas/Scroll-Dial

    A scroll dial using the AS5600 sensor and a small macropad

    20 parts2
  • 2 layers134 × 80.5 mmETerrena, the printed circuit board in 3D

    ETerrena

    AyrXZ47/cansat1

    Codigo de la nueva version del Tuzo Cansat AEM-UAZ

    20 parts1GPL-3.0
  • 2 layers100 × 80 mmSpeakerpcb, the printed circuit board in 3D

    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 mmTimerClock, the printed circuit board in 3D

    TimerClock

    kseebaldt/clock_rtc

    Arduino based etc clock

    33 parts1
  • 2 layers29.5 × 21.6 mmRC Hotwheels, the printed circuit board in 3D

    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.