Image-Text-to-Text • Updated • 7
| schematic string | schematic_image image | pcb_files list | pcb_images images list | components_used list | schematic_json string | schematic_yaml string | name string | description string | extensions_used list |
|---|---|---|---|---|---|---|---|---|---|
| "(kicad_sch\n\t(version 20231120)\n\t(generator "eeschema")\n\t(generator_version "8.0")\n\t(uui(...TRUNCATED) | ["(kicad_pcb\n\t(version 20240108)\n\t(generator "pcbnew")\n\t(generator_version "8.0")\n\t(gene(...TRUNCATED) | [{"src":"https://datasets-server.huggingface.co/assets/bshada/open-schematics/--/{dataset_git_revisi(...TRUNCATED) | ["Conn_01x01_Pin","Conn_01x06_Pin","USB_A","Conn_02x05_Odd_Even","Conn_01x06_MountingPin","C","Fuse_(...TRUNCATED) | "{\n "libSymbols": [\n "Connector:Conn_01x01_Pin",\n "Connector:Conn_01x06_Pin",\n (...TRUNCATED) | "libSymbols:\n- Connector:Conn_01x01_Pin\n- Connector:Conn_01x06_Pin\n- Connector:USB_A\n- Connector(...TRUNCATED) | TiebeDeclercq/Uart-programmer | "A versatile UART programming board designed for microcontroller development with flexible voltage s(...TRUNCATED) | [ | |
| ".kicad_sch", | |||||||||
| ".kicad_pcb" | |||||||||
| ] | |||||||||
| "(kicad_sch (version 20230121) (generator eeschema)\n\n (uuid e63e39d7-6ac0-4ffd-8aa3-1841a4541b55)(...TRUNCATED) | ["(kicad_pcb (version 20221018) (generator pcbnew)\n\n (general\n (thickness 1.6)\n )\n\n (pap(...TRUNCATED) | [{"src":"https://datasets-server.huggingface.co/assets/bshada/open-schematics/--/{dataset_git_revisi(...TRUNCATED) | ["C_Small","Conn_01x03","Conn_01x06","Conn_01x08","Conn_01x10","Conn_02x06_Odd_Even","Jumper_3_Bridg(...TRUNCATED) | "{\n "libSymbols": [\n "analog_front_end:C_Small",\n "analog_front_end:Conn_01x03",\n (...TRUNCATED) | "libSymbols:\n- analog_front_end:C_Small\n- analog_front_end:Conn_01x03\n- analog_front_end:Conn_01x(...TRUNCATED) | UofTPhyEssSW/Student-Workshop-Course-L1 | "University of Toronto, Dept. of Physics, Electronic Support Services - Student Workshop Course L1 c(...TRUNCATED) | [ | |
| ".kicad_sch", | |||||||||
| ".kicad_pcb" | |||||||||
| ] | |||||||||
| "(kicad_sch\n\t(version 20250114)\n\t(generator "eeschema")\n\t(generator_version "9.0")\n\t(uui(...TRUNCATED) | ["(kicad_pcb\n\t(version 20241229)\n\t(generator "pcbnew")\n\t(generator_version "9.0")\n\t(gene(...TRUNCATED) | [{"src":"https://datasets-server.huggingface.co/assets/bshada/open-schematics/--/{dataset_git_revisi(...TRUNCATED) | [ | ||||||
| "CPDT6-5V0UPC-HF", | |||||||||
| "NE555N-TD", | |||||||||
| "PESD5V0U4BW", | |||||||||
| "STM32F446VET6TR" | |||||||||
| ] | "{\n "libSymbols": [\n "B7_PartDB:CPDT6-5V0UPC-HF",\n "B7_PartDB:NE555N-TD",\n "B7_(...TRUNCATED) | "libSymbols:\n- B7_PartDB:CPDT6-5V0UPC-HF\n- B7_PartDB:NE555N-TD\n- B7_PartDB:PESD5V0U4BW\n- B7_Part(...TRUNCATED) | Kater--S/B7-KiCad-Libs | KiCad libs for B7 electronics development | [ | ||||
| ".kicad_sch", | |||||||||
| ".kicad_pcb" | |||||||||
| ] | |||||||||
| "(kicad_sch (version 20211123) (generator eeschema)\n\n (uuid ac7e5c31-00db-4420-8f7e-97b5f6835ad7)(...TRUNCATED) | ["(kicad_pcb (version 20171130) (host pcbnew "(5.1.7)-1")\n\n (general\n (thickness 1.6)\n (...TRUNCATED) | [{"src":"https://datasets-server.huggingface.co/assets/bshada/open-schematics/--/{dataset_git_revisi(...TRUNCATED) | ["+3,3V","+5V","74LS02P","74LS541","74x4245","C","CAT25","CONN_6","D50-EDGECONN","EST-MR2A08A","GND"(...TRUNCATED) | "{\n "libSymbols": [\n "d50mram:+3,3V",\n "d50mram:+5V",\n "d50mram:74LS02P",\n (...TRUNCATED) | "libSymbols:\n- d50mram:+3,3V\n- d50mram:+5V\n- d50mram:74LS02P\n- d50mram:74LS541\n- d50mram:74x424(...TRUNCATED) | HSBallina/roland-mram-card | A multi-bank MRAM based memory card for Roland instruments | [ | |
| ".kicad_sch", | |||||||||
| ".kicad_pcb" | |||||||||
| ] | |||||||||
| "(kicad_sch (version 20230121) (generator eeschema)\n\n (uuid 42263837-7632-4b29-9542-a61a2119441e)(...TRUNCATED) | ["(kicad_pcb (version 20221018) (generator pcbnew)\n\n (general\n (thickness 1.6)\n )\n\n (pap(...TRUNCATED) | [{"src":"https://datasets-server.huggingface.co/assets/bshada/open-schematics/--/{dataset_git_revisi(...TRUNCATED) | ["Conn_01x02","Conn_02x04_Top_Bottom","Conn_02x05_Odd_Even","C","LED","R","MAX3232","MountingHole","(...TRUNCATED) | "{\n "libSymbols": [\n "Connector_Generic:Conn_01x02",\n "Connector_Generic:Conn_02x04_T(...TRUNCATED) | "libSymbols:\n- Connector_Generic:Conn_01x02\n- Connector_Generic:Conn_02x04_Top_Bottom\n- Connector(...TRUNCATED) | notthetup/esp232 | ESP32 + RS232 = 💰 | [ | |
| ".kicad_sch", | |||||||||
| ".kicad_pcb" | |||||||||
| ] | |||||||||
| "(kicad_sch (version 20211123) (generator eeschema)\n\n (uuid afd3dbad-e7a8-4e4c-b77c-4065a69aefa2)(...TRUNCATED) | ["(kicad_pcb (version 20211014) (generator pcbnew)\n\n (general\n (thickness 1.6)\n )\n\n (pap(...TRUNCATED) | [{"src":"https://datasets-server.huggingface.co/assets/bshada/open-schematics/--/{dataset_git_revisi(...TRUNCATED) | [ | ||||||
| "Conn_01x01", | |||||||||
| "+12V", | |||||||||
| "BC846", | |||||||||
| "C-EUC1206", | |||||||||
| "GND", | |||||||||
| "LM358D", | |||||||||
| "R-EU_R0805" | |||||||||
| ] | "{\n "libSymbols": [\n "Connector_Generic:Conn_01x01",\n "S-Mix-Replacement-eagle-import(...TRUNCATED) | "libSymbols:\n- Connector_Generic:Conn_01x01\n- S-Mix-Replacement-eagle-import:+12V\n- S-Mix-Replace(...TRUNCATED) | ManCloud/S-MIX-replacement | Replacement PCB for broken S-MIX ICs | [ | ||||
| ".kicad_sch", | |||||||||
| ".kicad_pcb" | |||||||||
| ] | |||||||||
| "(kicad_sch (version 20230121) (generator eeschema)\n\n (uuid ad0152e8-b0b4-42e6-8559-5c9df2df486f)(...TRUNCATED) | ["(kicad_pcb (version 20221018) (generator pcbnew)\n\n (general\n (thickness 1.6)\n )\n\n (pap(...TRUNCATED) | ["LM358","TestPoint","C","C_Polarized","Crystal_GND2","Q_NPN_BCE","Q_PNP_BCE","R","D_1N4148WS-SOD323(...TRUNCATED) | "{\n "libSymbols": [\n "Amplifier_Operational:LM358",\n "Connector:TestPoint",\n "D(...TRUNCATED) | "libSymbols:\n- Amplifier_Operational:LM358\n- Connector:TestPoint\n- Device:C\n- Device:C_Polarized(...TRUNCATED) | Zychlix/Inverter32 | An open source, open hardware plug'n'play 3 phase motor inverter design. It | [ | ||
| ".kicad_sch", | |||||||||
| ".kicad_pcb" | |||||||||
| ] | |||||||||
| "(kicad_sch (version 20211123) (generator eeschema)\n\n (uuid 47ad866d-2717-4a8a-9f10-bb5311d60938)(...TRUNCATED) | ["(kicad_pcb (version 20211014) (generator pcbnew)\n\n (general\n (thickness 1.6)\n )\n\n (pap(...TRUNCATED) | [{"src":"https://datasets-server.huggingface.co/assets/bshada/open-schematics/--/{dataset_git_revisi(...TRUNCATED) | ["USB_C_Receptacle_USB2.0","Conn_01x03_MountingPin","Conn_01x04_MountingPin","C_Small","D_Small","LE(...TRUNCATED) | "{\n "libSymbols": [\n "Connector:USB_C_Receptacle_USB2.0",\n "Connector_Generic_Mountin(...TRUNCATED) | "libSymbols:\n- Connector:USB_C_Receptacle_USB2.0\n- Connector_Generic_MountingPin:Conn_01x03_Mounti(...TRUNCATED) | Jana-Marie/MiniBee | "Some smol Zigbee endpoint to integrate addressable LEDs (e.g. SK6812, WS2812) into existing smart l(...TRUNCATED) | [ | |
| ".kicad_sch", | |||||||||
| ".kicad_pcb" | |||||||||
| ] | |||||||||
| "(kicad_sch (version 20211123) (generator eeschema)\n\n (uuid cbb67656-d7e5-4911-ac92-b50d967751c3)(...TRUNCATED) | ["(kicad_pcb (version 20211014) (generator pcbnew)\n\n (general\n (thickness 1.6)\n )\n\n (pap(...TRUNCATED) | [{"src":"https://datasets-server.huggingface.co/assets/bshada/open-schematics/--/{dataset_git_revisi(...TRUNCATED) | ["SJ-3523N","Barrel_Jack_Switch","TestPoint","C","C_Polarized","LED","R","R_Potentiometer","R_Potent(...TRUNCATED) | "{\n "libSymbols": [\n "12AU7-Amplifier:SJ-3523N",\n "Connector:Barrel_Jack_Switch",\n (...TRUNCATED) | "libSymbols:\n- 12AU7-Amplifier:SJ-3523N\n- Connector:Barrel_Jack_Switch\n- Connector:TestPoint\n- D(...TRUNCATED) | ryanshappell/12AU7-Amplifier | 12AU7 Vacuum tube headphone amplifier. | [ | |
| ".kicad_sch", | |||||||||
| ".kicad_pcb" | |||||||||
| ] | |||||||||
| "(kicad_sch\n\t(version 20250114)\n\t(generator "eeschema")\n\t(generator_version "9.0")\n\t(uui(...TRUNCATED) | ["(kicad_pcb\n\t(version 20241229)\n\t(generator "pcbnew")\n\t(generator_version "9.0")\n\t(gene(...TRUNCATED) | [{"src":"https://datasets-server.huggingface.co/assets/bshada/open-schematics/--/{dataset_git_revisi(...TRUNCATED) | [ | ||||||
| "SK6812", | |||||||||
| "XIAO-RP2040-DIP", | |||||||||
| "SW_Push", | |||||||||
| "+5V", | |||||||||
| "GND" | |||||||||
| ] | "{\n "libSymbols": [\n "LED:SK6812",\n "Seeed_Studio_XIAO_Series:XIAO-RP2040-DIP",\n (...TRUNCATED) | "libSymbols:\n- LED:SK6812\n- Seeed_Studio_XIAO_Series:XIAO-RP2040-DIP\n- Switch:SW_Push\n- power:+5(...TRUNCATED) | emilyl1121/emilyhackpad-v1 | This is for my hackpad, a macropad project that has 4 keys and basic functions! | [ | ||||
| ".kicad_sch", | |||||||||
| ".kicad_pcb" | |||||||||
| ] |
The largest dataset of electronic schematics and PCB layouts on the internet, built as an engineering reference for schematic and PCB layout work. It's a self-growing, autonomous dataset that continuously scans the web for new engineering designs and updates itself accordingly.
Dataset Description #
Each record corresponds to one schematic file and includes the raw source, rendered images, structured metadata, and all associated PCB files from the same project.
Dataset Structure
| Field | Type | Description |
|---|---|---|
schematic |
||
| string | Raw schematic file content (.kicad_sch , .sch , or .SchDoc ) |
|
schematic_image |
||
| image | Rendered PNG of the schematic (None if unavailable) | |
pcb_files |
||
| list[string] | Raw content of PCB files (.kicad_pcb / .pcb ) from the same project |
|
pcb_images |
||
| list[image] | Rendered PNGs of each PCB file, parallel to pcb_files (None per entry if unavailable) |
|
components_used |
||
| list[string] | Component names extracted from library symbols (.kicad_sch only; None for other formats) |
|
schematic_json |
||
| string | kiutils JSON representation of the schematic (.kicad_sch only; None otherwise) |
|
schematic_yaml |
||
| string | kiutils YAML representation of the schematic (.kicad_sch only; None otherwise) |
|
name |
||
| string | Source repository (owner/repo ) |
|
description |
||
| string | Repository description | |
extensions_used |
||
| list[string] | File extensions present: schematic extension first, then unique PCB extensions (e.g. [".kicad_sch", ".kicad_pcb"] ) |
Schematic formats included
.kicad_sch
— KiCad v5+ (primary format; includes JSON/YAML/components).sch
— KiCad v4 legacy.SchDoc
— Altium Designer
PCB filters applied
- PCB files larger than 10 MB are excluded (extreme outliers; affects <1% of files)
- Projects with more than 20 PCB files retain the 20 with the largest rendered image (highest detail), ranked by pixel area
Dataset Creation #
Source Data
Schematics and PCB layouts collected from publicly available data from the web.
Data Collection
Files were fetched and processed to extract:
- Raw schematic and PCB source files
- Rendered images (PNG/SVG → PNG)
- Structured metadata via kiutils(JSON/YAML) - Component lists from library symbol references
Data Processing
- Empty
.kicad_sch
files (no library symbols or schematic symbols) are filtered out .sch
and.SchDoc
rows are included with raw text only; JSON/YAML/components are None when kiutils conversion is unavailable- Component names are extracted from
libSymbols
fields and deduplicated per library prefix extensions_used
is inferred from actual file paths on disk, not from YAML metadata fields
Use Cases #
Circuit Design AI: Training models to generate or understand electronic schematics** PCB Layout Understanding**: Learning the relationship between schematics and their physical PCB layouts** Component Recognition**: Identifying electronic components from schematic and PCB diagrams** Design Assistance**: Building tools to help engineers with circuit and PCB design** Multimodal Learning**: Paired schematic text + image + PCB text + image for cross-modal tasks** Documentation Generation**: Automatically generating documentation from schematics** Design Validation**: Training models to detect errors or suggest improvements** Educational Tools**: Creating interactive learning systems for electronics education
Limitations #
- JSON/YAML/components are only populated for
.kicad_sch
format (~85% of rows) - PCB images are unavailable for ~55% of PCB entries (no PNG or SVG rendered)
- Schematic images are unavailable for ~10% of rows
- Quality and complexity of designs vary significantly across projects
- Component naming conventions vary between projects and library sources
License #
This dataset is released under the Creative Commons Attribution 4.0 International (CC-BY-4.0) license. Please ensure you comply with the original licenses of the source projects when using this data.
Citation #
If you use this dataset in your research or projects, please cite:
@dataset{open_schematics_2026,
title={Open Schematics: A Dataset of Electronic Schematics and PCB Layouts from Hardware Projects},
author={bshada},
year={2026},
publisher={Hugging Face},
howpublished={\url{https://huggingface.co/datasets/bshada/open-schematics}}
}
Contact #
For questions, issues, or contributions, please open an issue on the dataset repository.
- Downloads last month
- 4,571