Skip to content

feat: implement UTDFN-4-EP(1x1) footprint (#183)#532

Open
victorjzq wants to merge 2 commits intotscircuit:mainfrom
victorjzq:feat/utdfn4ep-183
Open

feat: implement UTDFN-4-EP(1x1) footprint (#183)#532
victorjzq wants to merge 2 commits intotscircuit:mainfrom
victorjzq:feat/utdfn4ep-183

Conversation

@victorjzq
Copy link
Contributor

/claim #183

Implements the UTDFN-4-EP(1x1) footprint for 4-corner-pad + central exposed thermal pad packages (1.0 × 1.0 mm body).

The previous attempt (PR #437) was missing silkscreen reference text and the type declaration in footprinter.ts. This PR addresses both.

What changed:

  • src/fn/utdfn4ep.ts — new footprint with 4 corner pads, 1 EP, and top/bottom silkscreen L-marks + ref designator text
  • src/fn/index.ts — exports utdfn4ep
  • src/footprinter.ts — adds utdfn4ep to the Footprinter type
  • tests/utdfn4ep.test.ts — default and parametric SVG snapshot tests via fp.string()

Dimensions follow the Microchip DS20005619G recommended land pattern (MIC5366-1.8YMT-TZ, JLCPCB C621364). The footprint-completeness test passes with 169 expectations.

Fixes #183

Comment on lines +5 to +20
test("utdfn4ep", () => {
const circuitJson = fp.string("utdfn4ep").circuitJson()
const svgContent = convertCircuitJsonToPcbSvg(circuitJson)
expect(svgContent).toMatchSvgSnapshot(import.meta.path, "utdfn4ep")
})

test("utdfn4ep_pw0.3mm_ph0.5mm_epw0.55mm_eph0.45mm", () => {
const circuitJson = fp
.string("utdfn4ep_pw0.3mm_ph0.5mm_epw0.55mm_eph0.45mm")
.circuitJson()
const svgContent = convertCircuitJsonToPcbSvg(circuitJson)
expect(svgContent).toMatchSvgSnapshot(
import.meta.path,
"utdfn4ep_pw0.3mm_ph0.5mm_epw0.55mm_eph0.45mm",
)
})
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test file contains 2 test() functions (lines 5-9 and 11-20), which violates the rule that a *.test.ts file may have AT MOST one test(...). After that, the user should split into multiple, numbered files. To fix this, split the tests into separate files like 'utdfn4ep1.test.ts' and 'utdfn4ep2.test.ts', with each file containing only one test() function.

Spotted by Graphite (based on custom rule: Custom rule)

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

@victorjzq
Copy link
Contributor Author

Test files have been split into utdfn4ep1.test.ts and utdfn4ep2.test.ts per the project's one-test-per-file convention (addressed graphite-app review).

The footprint follows the same pattern as existing DFN implementations in the codebase.

@victorjzq
Copy link
Contributor Author

@seveibar This implements UTDFN-4-EP(1x1) footprint as requested in #183. All CI passing, tests split per project convention. Ready for review!

@victorjzq
Copy link
Contributor Author

Hey @seveibar — UTDFN-4-EP(1x1) implementation, CI green. Ready for merge!

@victorjzq
Copy link
Contributor Author

Hey @MustafaMulla29 @rushabhcodes — this PR is CI-green and ready for review. Thanks!

Copy link
Contributor

@rushabhcodes rushabhcodes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add kicad parity test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement UTDFN-4-EP(1x1)

2 participants