Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multifunctional Probe

Hardware design project — Altium Designer schematics and PCB layout for an ESP32-based multifunctional probe with CAN, Ethernet, USB-serial, and isolated AC/DC power input.

Design Tool Board Layers Status License

This repository contains the complete Altium Designer project — schematic sheets, PCB layout, and supporting reference documentation — for a single-board device ("Multifunctional Probe") built around an ESP32-WROOM module. It is a hardware-design repository: there is no firmware or application source code here, only the electrical design.


What This Project Does

The Multifunctional Probe is a PCB designed to give an ESP32 core multiple physical-layer interfaces on one board — CAN bus, Ethernet (via a discrete PHY), USB-to-serial, general-purpose digital/analog I/O, and an isolated AC-to-DC input stage for powering the board from mains or field AC sources.

In practice, this repository is what you'd reach for if you need to:

  • Review or modify the schematic of an ESP32-based industrial/field probe before fabrication.
  • Reuse individual subsystem sheets (e.g. the isolated AC/DC front end, or the CAN transceiver stage) as a starting point in another design.
  • Regenerate manufacturing outputs (BOM, Gerbers, drill files) from the native Altium project.
  • Understand the board's signal architecture without opening Altium first, via this README and the bundled board report.

Who It Is For

  • Hardware/PCB engineers evaluating or extending this design.
  • Firmware developers who need to know the ESP32 pin mapping and peripheral wiring before writing code for this board (no firmware repository currently exists — see Limitations).
  • Anyone sourcing components or fabricating the board, using the PCB document and board report included here.

Altium Designer (or a compatible viewer) is required to open the native design files — this is not a repository you can build or run with a package manager.


Architecture

The project is organized as a hierarchical Altium schematic. Dashboard - Multifunctional Probe.SchDoc is the top-level sheet; it instantiates six sub-sheets as sheet symbols, each covering one subsystem. This hierarchy is defined in Multifunctional Probe.PrjPcbStructure and compiles into the single PCB document Multifunctional Probe.PcbDoc.

flowchart TD
    Top["Dashboard - Multifunctional Probe.SchDoc<br/>(top-level sheet)"]
    PWR["Power Management.SchDoc"]
    CAN["CAN.SchDoc"]
    IO["Input - Output.SchDoc"]
    USB["USB2Serial.SchDoc"]
    CORE["Core-ESP32.SchDoc"]
    ETH["Ethernet DP.SchDoc"]
    PCB[("Multifunctional Probe.PcbDoc")]

    Top --> PWR
    Top --> CAN
    Top --> IO
    Top --> USB
    Top --> CORE
    Top --> ETH
    PWR --> PCB
    CAN --> PCB
    IO --> PCB
    USB --> PCB
    CORE --> PCB
    ETH --> PCB
Loading

A seventh schematic, AC-TO-DC-Input - Output Isolation.SchDoc, exists in the repository but is not currently referenced by Multifunctional Probe.PrjPcb (it does not appear as a sheet symbol or document entry in the project file). Treat it as a standalone reference/candidate sheet rather than part of the compiled design — why it was decoupled from the active hierarchy is Not yet documented.

Signal / Power Flow

flowchart LR
    ACIN["AC Input"] --> ISO["Isolation Stage\n(AC-TO-DC sheet, not linked\ninto compiled project)"]
    ISO -.-> PWR["Power Management"]
    PWR --> CORE["ESP32 Core"]
    CORE --> CANB["CAN Transceiver"]
    CORE --> ETH["Ethernet PHY"]
    CORE --> USB["USB-to-Serial"]
    CORE --> IO["Digital/Analog I/O"]
Loading

The dashed link reflects that the isolation sheet is not wired into the compiled hierarchy today; power currently enters the Power Management sheet directly in the released project.

Core Components

Sheet / File Responsibility Source
Dashboard Top-level sheet; instantiates and interconnects all subsystem sheets Dashboard - Multifunctional Probe.SchDoc
Power Management Board power supply and regulation Power Management.SchDoc
Core-ESP32 ESP32-WROOM module core circuit (boot straps, decoupling, programming header) Core-ESP32.SchDoc, Core-ESP32.Harness
CAN CAN bus transceiver and bus interface CAN.SchDoc
Ethernet DP Ethernet PHY and RMII/MII-style interface to the ESP32 Ethernet DP.SchDoc, Ethernet DP.Harness
USB2Serial USB-to-UART bridge for serial communication/programming USB2Serial.SchDoc
Input - Output General-purpose digital/analog I/O conditioning Input - Output.SchDoc
AC-TO-DC Isolation (unlinked) Isolated AC-to-DC front end AC-TO-DC-Input - Output Isolation.SchDoc
PCB Layout Physical board layout and routing Multifunctional Probe.PcbDoc
Project File Altium project definition and compiled document list Multifunctional Probe.PrjPcb

.Harness files (Core-ESP32.Harness, Ethernet DP.Harness) are Altium harness-connector definitions used to bundle related signals (e.g. the Ethernet PHY bus) between sheets — they are supporting design files, not standalone documentation.

Features

  • ESP32-WROOM core. Dedicated schematic sheet for the module, its boot/reset network, and programming interface. Reference datasheet (esp32-wroom-32d_esp32-wroom-32u_datasheet_en.pdf) is bundled in the repository.
  • CAN bus interface. Discrete transceiver sheet for connecting the ESP32 to a CAN network.
  • Ethernet connectivity. Discrete PHY sheet (RMII-style bus, per Ethernet DP.Harness) for wired networking.
  • USB-to-serial bridge. Dedicated sheet for host communication/programming over USB.
  • General-purpose I/O. Separate sheet for digital/analog input and output conditioning.
  • Isolated AC/DC power (in progress). A dedicated isolation sheet exists for powering the board from AC sources, but it is not yet integrated into the compiled project — Planned / Requires validation.
  • Fully routed 2-layer PCB. Per the bundled board report, the current layout is 100% routed (411/411 connections) across 187 components.

Technology Stack

Layer Technology Purpose
Design tool Altium Designer Schematic capture and PCB layout (native .SchDoc / .PcbDoc / .PrjPcb files)
Core MCU ESP32-WROOM-32D / 32U Main processing module (per bundled Espressif datasheet)
Bus interfaces CAN, Ethernet (PHY), USB Physical-layer connectivity implemented on dedicated sheets
Power AC/DC isolation + regulation Board power supply; isolation sheet not yet linked into the compiled project

No firmware toolchain, build system, or software dependency is present in this repository — it is an EDA (electronic design automation) project only.


Quick Start

There is no build/run step for this repository; "getting started" means opening the design in Altium Designer.

Prerequisites

  • Altium Designer (the exact version used to author the project is Not yet documented in the repo — treat compatibility with your installed version as Requires validation).
  • Sufficient disk space; Multifunctional Probe.PcbDoc alone is ~11 MB.

Open the project

git clone https://github.com/Pouya-Mansournia/multifunctional-probe.git
cd multifunctional-probe

Then, in Altium Designer:

  1. Open Multifunctional Probe.PrjPcb.
  2. Let Altium resolve the document list (Dashboard - Multifunctional Probe.SchDoc is the root sheet).
  3. Compile the project (Project → Compile PCB Project) to validate the design and regenerate the board information report.
  4. Open Multifunctional Probe.PcbDoc to view/edit the physical layout.

Multifunctional Probe.html / Multifunctional Probe.txt are pre-generated Board Information Reports you can open directly (browser or text editor) without Altium, for a quick summary of board size, routing completion, and layer statistics.


Folder Structure

multifunctional-probe/
├── README.md
├── Multifunctional Probe.PrjPcb                     # Altium project definition (compiled document list)
├── Multifunctional Probe.PrjPcbStructure             # Sheet hierarchy (top sheet + sheet symbols)
├── Multifunctional Probe.PcbDoc                      # PCB layout (physical board)
├── Multifunctional Probe.Annotation                  # Component designator/sheet numbering state
├── Multifunctional Probe.html / .txt                 # Generated Board Information Reports
├── Dashboard - Multifunctional Probe.SchDoc          # Top-level schematic sheet
├── Power Management.SchDoc
├── Core-ESP32.SchDoc
├── Core-ESP32.Harness                                # Harness connector definition for the ESP32 sheet
├── CAN.SchDoc
├── Ethernet DP.SchDoc
├── Ethernet DP.Harness                               # Harness connector definition for the Ethernet PHY bus
├── USB2Serial.SchDoc
├── Input - Output.SchDoc
├── AC-TO-DC-Input - Output Isolation.SchDoc           # Present in repo, not linked into the compiled project
└── esp32-wroom-32d_esp32-wroom-32u_datasheet_en.pdf   # Reference datasheet

Board Summary

Taken from the bundled Board Information Report (Multifunctional Probe.txt, generated by Altium):

Metric Value
Board size 4822.55 mils × 3445.676 mils (≈122.5 mm × 87.5 mm)
Components on board 187
Layers 2 (Top Layer, Bottom Layer)
Connections 411
Routing completion 100.00% (411/411 routed)
Vias 230

This report is a point-in-time snapshot from the design tool; re-run Reports → Board Information Report in Altium after any layout change to regenerate current figures.


Limitations

  • No firmware. This repository contains hardware design files only; no ESP32 application/firmware source is included or referenced.
  • No license file. The repository currently has no LICENSE; see License below.
  • AC/DC isolation sheet is not wired into the project. AC-TO-DC-Input - Output Isolation.SchDoc exists but is absent from Multifunctional Probe.PrjPcb's document list, so it does not affect the compiled design or PCB today.
  • No exported manufacturing outputs. Gerbers, drill files, pick-and-place, and BOM exports are not present in the repository — only the native Altium .PcbDoc.
  • No CI, tests, or automated validation. As an EDA project there is no software test suite; design validation happens via Altium's DRC/ERC and the Board Information Report.
  • Altium Designer version requirement is undocumented — compatibility with a specific Altium release is Requires validation.

Roadmap

  • Planned: Choose and add an explicit hardware/documentation license.
  • Planned: Integrate or formally retire the AC-TO-DC isolation sheet.
  • Planned: Export and commit manufacturing outputs (Gerbers, drill, BOM, pick-and-place).
  • Planned: Publish firmware for the ESP32 core, if/when developed, likely as a companion repository.

No dated milestones are tracked in the repository; the above reflects logical next steps inferred from the current project state, not committed deadlines.

Contributing

There is no CONTRIBUTING.md in this repository yet. If you'd like to propose changes:

  1. Open an issue describing the schematic/layout change and its rationale.
  2. If you have Altium Designer access, fork the repository, make changes on a branch, and open a pull request describing what changed and why (e.g. which sheet, which nets/components).
  3. Because these are binary/native Altium documents, describe changes in prose (and, where possible, exported PDFs or screenshots) — diffs of .SchDoc/.PcbDoc are not human-readable in GitHub's UI.

Community and Support

  • Issues: use GitHub Issues on this repository for bugs, design questions, or proposed changes.
  • No Discussions, chat, or other support channel is currently configured for this repository.

License

No license file is currently present. Add a license (for example an open hardware license such as CERN-OHL, or a standard document/code license if firmware and docs are added later) before treating this repository as reusable open-source hardware.

Maintainer

Pouya Mansournia

Acknowledgements

  • Espressif Systems — ESP32-WROOM-32D/32U datasheet, bundled in this repository for reference.

About

The "Multifunctional-Probe" board is a versatile device built around an ESP32 core, compatible with voltages ranging from 12 to 24 volts. It features 4 isolation inputs and 3 relay outputs, alongside 2 MOSFET outputs.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages