Files
wafer_map_webui/README.md
2025-07-17 15:56:04 +08:00

4.2 KiB

Wafer Map Pro

Wafer Map Pro is a modern, web-based tool designed for the visualization and interactive editing of semiconductor wafer maps. Built with a Python Flask backend and a dynamic HTML5 Canvas frontend, it provides a fluid and intuitive user experience for engineers and technicians working with wafer data.

Features

  • Interactive Canvas Renderer: The wafer map is rendered on an HTML5 Canvas, allowing for smooth and efficient handling of large datasets.
  • Dynamic Pan & Zoom: Effortlessly navigate the wafer map by clicking and dragging to pan, and using the mouse wheel to zoom in on areas of interest.
  • Advanced Selection Tools:
    • Single Die: Click to select a single die.
    • Multi-Select: Hold Ctrl while clicking to select multiple, non-contiguous dies.
    • Region/Box Select: Hold Shift and drag the mouse to select a rectangular area of dies.
  • Bin Code Editing: Instantly change the bin code (Good, NG, Dummy, Ignore) of any selected die or region.
  • Map Transformation: Rotate the entire wafer map 90 degrees clockwise with a single click.
  • Real-Time Data Analysis: A persistent display shows the live count of each bin code, updating automatically after every edit.
  • File Handling:
    • Upload wafer maps from simple .txt files.
    • Download the edited wafer map, preserving its structure.
  • Modern UI/UX:
    • A sleek dark mode theme reduces eye strain.
    • A professional sidebar layout keeps controls organized and the map view unobstructed.
    • Smooth animations and transitions provide a polished user experience.

🛠️ Tech Stack

  • Backend:
    • Python 3
    • Flask: A lightweight web framework for serving the application and handling API requests.
    • NumPy: Used for efficient numerical operations and array manipulations (e.g., map rotation).
  • Frontend:
    • HTML5
    • CSS3: For modern styling, animations, and the dark theme.
    • JavaScript (Vanilla): Powers all the client-side interactivity, including the canvas rendering engine, event handling, and API communication.

🚀 Getting Started

Follow these instructions to get a copy of the project up and running on your local machine.

Prerequisites

  • Python 3.6 or higher
  • pip (Python package installer)

Installation

  1. Clone the repository to your local machine:

    git clone https://github.com/your-username/wafer-map-pro.git
    cd wafer-map-pro
    
  2. Create and activate a virtual environment (recommended):

    # For Windows
    python -m venv venv
    .\venv\Scripts\activate
    
    # For macOS/Linux
    python3 -m venv venv
    source venv/bin/activate
    
  3. Install the required Python packages:

    pip install -r requirements.txt
    
  4. Run the Flask application:

    python app.py
    
  5. Open your web browser and navigate to the following address: http://127.0.0.1:5000


📖 How to Use

  1. Step 1: Upload File

    • Click the file input area or drag and drop a .txt file containing your wafer map data.
    • Click "Upload & Analyze".
  2. Step 2: Define Bin Codes

    • The application will automatically detect all unique characters in your file.
    • For each character, use the dropdown menu to assign its corresponding bin type (Good, NG, Dummy, or Ignore).
    • Click "Generate Map".
  3. Step 3: Interact and Edit

    • Your wafer map will be displayed in the main view.
    • Use the controls to Pan, Zoom, Select, Edit, and Rotate the map.
    • The bin code counts will update in real-time.
    • The hint Pro-tip: Hold Shift and drag to select a region. is provided for quick reference.
  4. Step 4: Download

    • Once you have finished editing, click the "Download .txt" button to save your work. A new text file with the updated map will be downloaded.

Expected .txt File Format

The application expects a simple text file where each character represents a die. Spacing is used to separate dies. The parser is designed to handle non-uniform rows and columns gracefully.

Example:

  1111
 112211
11222211
11222211
 112211
  1111