From: microsoft <huggingface.co/microsoft>Newsgroups: alt.freeweights.textSubject:

SchGen

Date: 2026-11-15Commit: 97ac530Signed: 2DC28CC7B26A283B ✓

Model. Safetensors weights, 209 MB in all. Published by microsoft under MIT.

text209MBSchGensafetensorspermissive
FactsParamsnot statedSize209 MBFormatssafetensorsTasknot taggedLicenseMITFrom sourcepermissive
$ fw get microsoft/SchGen
# manifest sha256 98c1614ad522… · 209 MB · 15 files
$ fw verify ./SchGen microsoft/SchGen
From sourceHosted (signed)microsoft/SchGenLast check: 2026-11-15 03:52 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Runs with

Ranked by fit to this model (safetensors), then by GitHub stars.

Overview

Size
209 MB
Weights
60.2 MB (safetensors)
Parameters
not stated
Formats
safetensors
Task
not tagged
License
MIT (permissive)
Files
15, each with a sha256
Publisher
microsoft
Added
2026-11-15
Section
alt.freeweights.text
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 03:52 UTCpassed

Model card

From the publisher at commit 97ac530. Shown as plain text with links; images open at the publisher.

SchGen#

License Model

SchGen is a large language model for PCB schematic generation from natural-language requests.

The model is supervised fine-tuned from GPT-OSS-20B using a custom dataset of approximately 8K paired user requests and schematic-generation code samples. SchGen generates executable Python code that can be rendered into KiCad schematic designs using customized schematic APIs.

➡️ Base Model: GPT-OSS-20B ➡️ License: MIT ➡️ Framework: Transformers ➡️ Context Length: 13,312 tokens

To cite this model and corresponding paper, please use the following bib item:

@misc{luo2026schgenpcbschematicgeneration,
      title={SchGen: PCB Schematic Generation with Semantic-Grounded Code Representations}, 
      author={Qinpei Luo and Ruichun Ma and Xinyu Zhang and Lili Qiu},
      year={2026},
      eprint={2605.30345},
      archivePrefix={arXiv},
      primaryClass={cs.AI},
      url={https://arxiv.org/abs/2605.30345}, 
}

Overview#

Printed circuit board (PCB) design is a critical but expertise-intensive process in embedded systems, IoT, robotics, and AI hardware.

SchGen explores whether large language models can assist hardware design by generating schematic construction code directly from natural-language descriptions.

The input is a user request describing a circuit design requirement, and the output is executable Python code that can generate a KiCad schematic using custom APIs.

Example input:

I want a 1.8V regulated supply from VIN using an AP2112K LDO,
with a test point on the 1.8V rail and a solder-jumper-selectable LED indicator.

🔥 Key Features#

  • 🔌 Natural Language to Schematic Code Generates executable Python schematic-generation code directly from user requests.
  • 🧠 KiCad-Oriented Design Flow Designed around custom Code-to-Schematic APIs for KiCad schematic construction.
  • 📐 Structured Hardware Generation Produces editable and programmatic schematic representations instead of images.
  • 🛠️ Research-Focused PCB Generation Intended for experimentation, benchmarking, and AI-assisted hardware prototyping.

Model Details#

ItemValue
Base ModelGPT-OSS-20B
Parameters20B
ArchitectureSupervised Fine-Tuned LLM
InputNatural-language design requests
OutputPython schematic-generation code
Context Length13,312
Training Hardware1× NVIDIA A100
Training Time~21 hours

Usage#

The recommended workflow is:

  1. Provide a natural-language circuit request
  2. Generate Python schematic-construction code
  3. Execute the code to render a KiCad schematic
  4. Verify outputs using ERC/DRC tools

The model is designed for integration into:

  • EDA automation pipelines
  • Hardware engineering copilots
  • Synthetic schematic generation systems
  • Research workflows for AI-assisted PCB design

Evaluation#

SchGen was evaluated using several schematic-generation metrics:

  • Valid Circuits Measures whether generated code executes successfully and produces valid schematics.
  • Spatial Violation Measures overlaps among symbols, labels, and wires.
  • Netlist Accuracy Measures connectivity correctness against ground-truth netlists.

SchGen outperforms several frontier LLM baselines on schematic generation tasks when all models are provided with the same schematic-generation APIs.


Limitations#

SchGen is an early-stage research system and currently focuses on:

  • small and medium-scale schematic modules
  • hobbyist and open-source hardware designs
  • English-language requests

The model may underperform on:

  • RF or high-frequency circuits
  • industrial or enterprise hardware
  • large multi-board systems
  • safety-critical applications

Generated outputs should always undergo:

  • Electrical Rule Checking (ERC)
  • Design Rule Checking (DRC)
  • human engineering review

SchGen is intended as an assistive tool rather than a fully autonomous hardware engineer.


Technical Requirements#

The model generates executable Python code and requires:

  • Python environment
  • KiCad installation
  • Custom schematic-generation APIs

Inference was validated on:

  • NVIDIA A100 GPUs
  • 4-bit quantized configurations

Dataset#

SchGen was trained on a custom dataset of approximately 8K pairs of:

  • natural-language hardware requests
  • Python schematic-generation code

The dataset was synthesized through:

  1. GPT-generated draft schematics
  2. Human correction and annotation
  3. LLM-generated user requests

The dataset is available at https://huggingface.co/datasets/microsoft/SchGen_dataset


License#

This project is licensed under the MIT License.


Contact#

This project was conducted by members of Microsoft Research.

For questions, feedback, or collaboration inquiries:

  • ruichunma@microsoft.com

If issues or problematic behavior are identified, the repository may be updated with appropriate mitigations.

Files

15 files · 209 MBWeights 60.2 MB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 15 files with their sha256
FileSizesha256
.gitattributes1.57 KB34448b82c17d60fec9b65b1f093c115ddbaadc04beb1b0140b6bfed2e012a930
README copy.md5.17 KB380c86a68c4731010bb347889e955f598082d04ce44b639753aa6af09f08f164
README.md5.32 KB29709a635048b6cbfa9bdbcb8d47e1308e45a40b98a0830d30224618b1adc8f5
adapter_config.json1.19 KBa7ea0318cc2c3e5b7c596a5d8f8226ce50a583b6c3a1ecf12678742c3086888b
adapter_model.safetensors60.2 MBb27387b24466606c8507d0f97528d6c705acdffa316686300a929be1de9a2f69
chat_template.jinja16.8 KB342ad1f13d5b83dce51c41efd7745af46742954f541c48457af2ca39f6cf3f16
config.json101 Bef5ade35d53d390b107a6465710529671a59000fdb80a843ba412fc462aa9c63
optimizer.pt120 MBe51355087cb4f5cfd665801f668ffe973562cfb66eee3ab1038217aeed8bb090
rng_state.pth14.6 KB7f743d0df3a561a3b36452eea510648d657f40e221bae15903cbac67093557a6
scheduler.pt1.47 KBee4d5cf4de78aa0bbf2a622e061ddaccf5a4efabbe011f402226d902a4816ffe
special_tokens_map.json440 B8464cabd6eda239fe46ebf8ae63b46c417721784a961a022f6b59174a2cda0e2
tokenizer.json27.9 MB0614fe83cadab421296e664e1f48f4261fa8fef6e03e63bb75c20f38e37d07d3
tokenizer_config.json4.20 KB9279e942392b742d633c7adbb89ebe002c98399db8926a7af5125c726f404070
trainer_state.json253 KBce83f84169e7449ba599a12eedae63dbe75ef049778435c6881d5d6aeb15a76b
training_args.bin6.16 KB07011fa14cac144aaf184615d638ac93f8b2be6bac020fbab1daeeaf5e3ee080
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
97ac530555 pinned now2026-11-15 03:52 UTC15 files · 209 MB

Use it

$ fw get microsoft/SchGen
# manifest sha256 98c1614ad522… · 209 MB · 15 files
$ fw verify ./SchGen microsoft/SchGen
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/microsoft/SchGen.json --dir ./SchGen $ python3 fw.py verify ./SchGen ./microsoft__SchGen.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download microsoft/SchGen --revision 97ac53055570568e125510237e06fdb340a38558 --local-dir ./SchGen

License

Name
MIT License
Id
MIT
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
29709a635048b6cbfa9bdbcb8d47e1308e45a40b98a0830d30224618b1adc8f5
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: microsoft <huggingface.co/microsoft>Newsgroups: alt.freeweights.textSubject: SchGenDate: 2026-11-15Commit: 97ac530Signed: 2DC28CC7B26A283B ✓
Upstream
microsoft/SchGen
Pinned commit
97ac53055570568e125510237e06fdb340a38558
Manifest
SchGen.json · .minisig
Manifest sha256
98c1614ad5228bb1758d3041817eab39c81940915b207adadf28308132bad2a6
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:52 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/microsoft/SchGen.json $ curl -O https://freeweights.allternit.com/manifests/microsoft/SchGen.json.minisig $ minisign -Vm SchGen.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

No related models in this catalog.Nothing here lists this model as its parent, and it names no parent.
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download microsoft/SchGen
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. SchGen.json. Provenance. Takedown history: none.
From: laion <huggingface.co/laion>Subject: a2-rl-e2egit_large-50-32B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-large-15-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-v2-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_pymethods2test-large-80-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_unitsyn-python-large-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_mix_h2_language_proportional-65-8B