Project Details

Project's Block Diagram

Shown here is the Top Level Block Diagram representaing each essential functions and input/output connections between blocks. Each block does the following:


  • Modeling: handles feature extraction and training session to recognize circuit components ranging from SMD components such as resistor, capacitor, and locations such as pad and hole.
  • Trained Network: executes object detection using Tensorflow API to identify circuit components and provides data to Computer Vision API for generating Netlist.
  • Computer Vision: visualizes the testing images to detect objects , performs edge detection on the PCB traces using OpenCV API.
  • Netlist Generator: determines and provides confidence percentage of the netlist of the traces .
  • Website Interface: serves as a platform to allow users uploading the PCB image to analyze and generate netlist.

Requirements

In order to achieve the goals for this project, the PCB Reverse Engineering has 12 total requirements that has to be met, which are the following:

  • Algorithm Reference ( All algorithms used from any framework must be cited in the artifacts of the project).
  • Code Accessibility (The coding portion needs to be stored on a public repository (such as GitHub) for access).
  • Component Identification (The system will categorize at least 70% of the discrete components on the PCB as either through hole component, surface mount component, or other).
  • Ease of Use (9 out of 10 users will be able to use the system without prior instruction or directions).
  • Generate a Netlist (The system will generate and display an editable netlist of all interconnections on the PCB that is at least 70% complete).
  • Image Condition Checking (The system will make sure that the PCB image has a resolution of at least 1080P and have image traces distinguishable from the board by the human eye).
  • Netlist Representation (The system must generate the netlist of PCB file with read and write permissions).
  • OSU Server Compatibility (Source files used for the system will be compatible, modifiable, and executable within the OSU server).
  • Reasonable Generation Time (As soon as the website interface has received an appropriate resolution image, the system will take no longer than 30 minutes to analyze the PCB image and generate the netlist. (The time it takes for the user to correct labels on the netlist is not included in this calculation).
  • Use of Open Source (The software implementation must utilize at least one open source Computer Vision Framework such as OpenCV or Tensorflow for Deep Learning).
  • User Interaction (The system will only need one top picture of the PCB board and one bottom picture of the PCB board).
  • User Feedback (The system will prompt the user after generating the netlist on whether the result is correct in order to enhance the performance).


Project Video

Here is the detailed explanation of the overall PCB Reverse Engineering Project by Khanin Udomchoksakul.

Project Poster

This is the poster aimed to represent the project in Engineering Expo.