Skip to the content
PCBKitNew board
2 layers56 × 34 mmMicrophone, the printed circuit board in 3D

Project VULCAN is an open humanoid robotics platform focused on expressive human-robot interaction through modular mechanical, electronic, and AI-driven subsystems.

Size
56 × 34 mm
Copper layers
2
Thickness
1.6 mm
Parts
12
Nets
10
Pads
30
Tracks, vias
56, 0
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
28 May 2023
Updated
7 Sep 2026

Overview

Microphone is an open-source printed circuit board by ERC-BPGC, from the ERC-BPGC/project-vulcan repository on GitHub. It is a 2-layer board of 56 × 34 mm with 12 parts on 10 nets, routed with 56 tracks and 0 vias.

Its parts include 5 resistors, 3 capacitors, 2 connectors and 1 IC. It belongs with the audio and music boards of this library.

README

README.md

Project VULCAN

Python ROS Status

vulcan

Project VULCAN is an open humanoid robotics platform focused on expressive human-robot interaction through modular mechanical, electronic, and AI-driven subsystems. It is a humanoid robot facial structure that can interact with humans — tracking faces, expressing emotions, hearing and speaking.

Current Status

Actively undergoing infrastructure modernization and subsystem stabilization before next-generation expansion.

Architecture Principles

  • Atomic modular subsystems.
  • Minimal cross-module interference.
  • Hardware/software separation.
  • Scalable pipelines for future contributors.
  • Experiment isolation via experiments/.

System Pipeline Overview

text
 Microphone Input
        ↓
 Speech-to-Text
        ↓
 Emotion + Context Fusion
        ↓
 LLM / RAG Pipeline
        ↓
 Response Generation
        ↓
 TTS + Mouth Movement + Facial Expressions

Features

  • Eyes — Independent 2-axis eyeball motion, eyelids, and gaze tracking via embedded cameras.
  • Mouth — Lip movement synced with speech and emotional expressions.
  • Eyebrows — Up/down motion to complement expressions.
  • Neck — 2-axis motion (horizontal 360° + vertical tilt).
  • Hearing & Speech — Microphone array for sound localisation, speech recognition, and TTS output.
  • Vision — Face detection, gaze estimation, emotion recognition (FER), hand-wave detection.
  • LLM Integration — RAG-augmented responses via GPT.

Demos

(GIF previews of eye tracking, blinking, mouth articulation, and emotion response coming soon!)

Hardware Stack

  • ESP32-CAM vision nodes.
  • Arduino Mega servo controller.
  • Custom servo PCB.
  • Embedded microphones.
  • Dual-camera eye subsystem.

Subsystems

Mechanical

  • Eye, eyelid & eyebrow subsystem — asymmetric eyeball motion with cameras, blinking, and brow movement.
  • Mouth subsystem — lip articulation for speech and emotion.
  • Neck subsystem — full pan and tilt.

Software

  • software/vision/ — face detection, gaze estimation (t_gaze.py), emotion recognition (m_model.py, m_expression.py), hand-wave detection.
  • software/speech/ — speech-to-text, TTS, voice selection.
  • software/llm/ — GPT interface and RAG pipeline for context-aware responses.
  • software/core/ — main driver (vulcan.py, vulcan2.py) coordinating all subsystems.

Electronics

  • Servo PCB (ESP32 & Mega variants) — custom KiCad boards in electronics/pcb/.
  • ESP32-CAM firmware — electronics/firmware/camera_esp/.
  • Arduino servo firmware — electronics/firmware/serial_arduino/.

Repository Structure

text
project-vulcan/
├── docs/                   # Install guides (CUDA, OpenCV, dlib), diagrams
├── software/
│   ├── core/               # Main entry points
│   ├── vision/             # CV modules
│   ├── speech/             # STT / TTS
│   ├── llm/                # GPT + RAG pipeline
│   │   └── rag/
│   ├── data/               # Knowledge base files for RAG
│   ├── utils/              # Shared helpers
│   ├── tools/              # Diagnostic scripts (check mic, list cameras)
│   ├── experiments/        # Prototypes and WIP scripts
│   ├── models/             # Model weights (gitignored — see models/README.md)
│   ├── archive/            # Deprecated code
│   └── requirements.txt
├── electronics/
│   ├── pcb/                # KiCad projects
│   ├── firmware/           # Arduino / ESP32 sketches
│   └── scripts/            # Python hardware-communication scripts
└── mechanical/             # CAD files (SolidWorks, Fusion, Blender, STL)
    ├── Eye_subsystem/
    ├── Mouth_Subsystem/
    ├── Head Structure/
    ├── Neck Base/
    └── base_holder/

Model weights are not tracked in git — see software/models/README.md for download links.
Install guides for CUDA, OpenCV, and dlib are in docs/

Getting Started

bash
# Install Python dependencies
pip install -r software/requirements.txt

# Download model weights (see software/models/README.md), then run
python software/core/vulcan2.py

Contributor Guidelines

  • New features should be isolated into modules.
  • Avoid editing archived or legacy systems.
  • Experimental work belongs in software/experiments/.
  • Shared utilities belong in software/utils/.
  • All hardware communication layers must remain abstracted.

Roadmap

  • ROS2 migration.
  • Improved facial animation pipeline.
  • Real-time multimodal emotion fusion.
  • Autonomous interaction routines.
  • Enhanced gaze tracking.
  • Full conversational memory system.

Built With

Downloading all the dependencies for running auto folder

  • Make sure cmake and cuda are already downloaded before doing this
  • Download the reurequirements.txt file
  • pip install -r requirements.txt

Limitations

  • The robot covers only the structure above the neck — no full-body mobility.

Core Contributors

Parts

12
QtyValueFootprintReferences
310KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R2, R3
2Screw_Terminal_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1, J2
1100KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR4
1100nFCapacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mmC1
110uFCapacitor_THT:CP_Radial_D8.0mm_P5.00mmC2
11KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR5
18uFCapacitor_THT:CP_Radial_D8.0mm_P5.00mmC3
1Microphone_CondenserConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalMK1
1UA741Package_DIP:DIP-8_W10.16mmU2

Questions

How big is the Microphone PCB?

It measures 56 × 34 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Microphone use?

12 parts. 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 Microphone KiCad files?

From the ERC-BPGC/project-vulcan repository on GitHub, at the commit this page was made from: the board is Electronics/pcb/Microphone/Microphone.kicad_pcb and its schematic Electronics/pcb/ESP_CAM_to_ttl/ESP_CAM_to_ttl.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Microphone design in my own project?

Its repository states no licence, so its author keeps all rights: ask ERC-BPGC before reusing the design.

More from ERC-BPGC/project-vulcan

5
  • 2 layers114 × 94 mmMega servos 1, the printed circuit board in 3D

    Mega servos 1

    ERC-BPGC/project-vulcan

    Project VULCAN is an open humanoid robotics platform focused on expressive human-robot interaction through modular mechanical, electronic, and AI-driven subsystems.

    46 parts8
  • 2 layers29.4 × 37 mmServo pcb, the printed circuit board in 3D

    Servo pcb

    ERC-BPGC/project-vulcan

    Project VULCAN is an open humanoid robotics platform focused on expressive human-robot interaction through modular mechanical, electronic, and AI-driven subsystems.

    32 parts8
  • 2 layers49.5 × 70.5 mmServo pcb esp32, the printed circuit board in 3D

    Servo pcb esp32

    ERC-BPGC/project-vulcan

    Project VULCAN is an open humanoid robotics platform focused on expressive human-robot interaction through modular mechanical, electronic, and AI-driven subsystems.

    20 parts8
  • 2 layers23.6 × 17.6 mmMicrophone smd.step, the printed circuit board in 3D

    Microphone smd.step

    ERC-BPGC/project-vulcan

    Project VULCAN is an open humanoid robotics platform focused on expressive human-robot interaction through modular mechanical, electronic, and AI-driven subsystems.

    16 parts8
  • 2 layers19 × 19.5 mmESP CAM to ttl, the printed circuit board in 3D

    ESP CAM to ttl

    ERC-BPGC/project-vulcan

    Project VULCAN is an open humanoid robotics platform focused on expressive human-robot interaction through modular mechanical, electronic, and AI-driven subsystems.

    3 parts8

Similar boards

  • 2 layersNrf bga, the printed circuit board in 3D

    Nrf bga

    github-linguist/linguist

    Language Savant. If your repository's language is being reported incorrectly, send us a pull request!

    12 parts14kMIT
  • 2 layers66.9 × 74.5 mmDeskHop, the printed circuit board in 3D

    DeskHop

    hrvach/deskhop

    Fast Desktop Switching Device

    12 parts7.9kGPL-3.0
  • 2 layers40 × 15 mmSensors, the printed circuit board in 3D

    Sensors

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    12 parts3kApache-2.0
  • 2 layers42.7 × 56.5 mmTle6240 driver, the printed circuit board in 3D

    Tle6240 driver

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    12 parts1.2k
  • 2 layers49 × 25 mm5v boost regulator, the printed circuit board in 3D

    5v boost regulator

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    12 parts915
  • 2 layers28.3 × 10.3 mmTap Photosensor PCB, the printed circuit board in 3D

    Tap Photosensor PCB

    VoronDesign/Voron-Tap

    Tap is a nozzle-based z-probe for the V2 and Trident printer designs. The entire toolhead moves to trigger an optical switch. Tap offers many advantages:

    12 parts716GPL-3.0
  • 2 layers25.4 × 70.4 mmTpmsniffer, the printed circuit board in 3D

    Tpmsniffer

    stacksmashing/pico-tpmsniffer

    A simple, very experimental TPM sniffer for LPC bus

    12 parts696