Fix footprint-only EasyEDA imports and preserve BGA pad identifiers - #417
Merged
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
imrishabh18
approved these changes
Jul 30, 2026
Member
There was a problem hiding this comment.
@seveibar This looks crazy. Maybe a chip this large should automatically be split into multiple <schematicbox /> ?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes
tsci import RK3566, which successfully finds JLCPCB partC2943786but fails during EasyEDA conversion.Root Cause
Search works correctly and resolves
RK3566toC2943786. The failure occurs during the subsequent import/conversion step.EasyEDA returns this component as footprint-only data:
dataStr.shapeis explicitly empty, so no EasyEDA schematic symbol is available.editorVersion,hasIdFlag,BBox, andcolorsare omitted.packageDetailis complete and contains all 565 footprint pads.Our Zod schema incorrectly required the omitted schematic metadata, causing validation to fail before footprint conversion.
There was also a separate parsing issue with BGA ball identifiers such as
1E20. They were interpreted as JavaScript scientific notation and converted to100000000000000000000, resulting in invalid and duplicate generated port names.Solution
editorVersion: ""hasIdFlag: falsecolors: []BBoxpositioned at the schematic origin1E20as strings.The fix does not add or reconstruct missing EasyEDA schematic data. It only allows footprint-only components to pass validation.
When the generated TSX is executed, tscircuit creates its existing generic chip schematic from the footprint pad identifiers. Therefore, the schematic snapshot represents the tscircuit-generated fallback, not an EasyEDA-provided RK3566 schematic.
Result
C2943786now imports with:1A1and1E20Tests
Added coverage using the actual
C2943786EasyEDA payload:1E20TypeScript, Biome, build, and snapshot tests pass.