tscircuit/sparkfun-boards
This code defines a detailed PCB schematic and physical footprint layout for various embedded hardware modules, mapping electrical pins, mechanical mounting holes, and silk-screen annotations for manufacturing and assembly.
- Version
- 0.0.32
- License
- unset
- Stars
- 3
tests/OutlineBoard.test.tsx
import { expect, test } from "bun:test"
import { Circuit } from "tscircuit"
import { outlineBuilder } from "../util/OutlineBuilder"
test("OutlineBoard", () => {
const outline = outlineBuilder(-9, 11)
.lineTo(11, 11)
.corner({ radius: 1, turn: "ccw" })
.lineTo(11, -7)
.corner({ radius: 0.5, turn: "ccw" })
.lineTo(10, -7)
.corner({ radius: 0.5, turn: "cw" })
.lineTo(10, -11)
.lineTo(3.28, -11)
.lineTo(3.28, -8)
.arcTo(2.08, -8, { radius: 0.6, sweep: true })
.lineTo(2.08, -11)
.lineTo(-10, -11)
.lineTo(-10, -7)
.corner({ radius: 0.5, turn: "cw" })
.lineTo(-11, -7)
.corner({ radius: 0.5, turn: "ccw" })
.lineTo(-11, 11)
.corner({ radius: 1, turn: "ccw" })
.toArray()
const circuit = new Circuit()
circuit.add(<board outline={outline}></board>)
expect(outline).toMatchInlineSnapshot(`
[
{
"x": -9,
"y": 11,
},
{
"x": 10,
"y": 11,
},
{
"x": 10.195090322016128,
"y": 10.98078528040323,
},
{
"x": 10.38268343236509,
"y": 10.923879532511286,
},
{
"x": 10.555570233019603,
"y": 10.831469612302545,
},
{
"x": 10.707106781186548,
"y": 10.707106781186548,
},
{
"x": 10.831469612302545,
"y": 10.555570233019601,
},
{
"x": 10.923879532511286,
"y": 10.38268343236509,
},
{
"x": 10.98078528040323,
"y": 10.195090322016128,
},
{
"x": 11,
"y": 10,
},
{
"x": 11,
"y": -6.5,
},
{
"x": 10.990392640201616,
"y": -6.597545161008064,
},
{
"x": 10.961939766255643,
"y": -6.691341716182545,
},
{
"x": 10.915734806151272,
"y": -6.777785116509801,
},
{
"x": 10.853553390593273,
"y": -6.853553390593274,
},
{
"x": 10.7777851165098,
"y": -6.9157348061512725,
},
{
"x": 10.691341716182546,
"y": -6.961939766255643,
},
{
"x": 10.597545161008064,
"y": -6.990392640201615,
},
{
"x": 10.5,
"y": -7,
},
{
"x": 10.402454838991936,
"y": -7.009607359798385,
},
{
"x": 10.308658283817454,
"y": -7.038060233744357,
},
{
"x": 10.2222148834902,
"y": -7.0842651938487275,
},
{
"x": 10.146446609406727,
"y": -7.146446609406726,
},
{
"x": 10.084265193848728,
"y": -7.222214883490199,
},
{
"x": 10.038060233744357,
"y": -7.308658283817455,
},
{
"x": 10.009607359798384,
"y": -7.402454838991936,
},
{
"x": 10,
"y": -7.5,
},
{
"x": 10,
"y": -11,
},
{
"x": 3.28,
"y": -11,
},
{
"x": 3.28,
"y": -8,
},
{
"x": 3.2684711660390393,
"y": -7.882945808620388,
},
{
"x": 3.2343277158029364,
"y": -7.770389944543881,
},
{
"x": 3.1788817629005806,
"y": -7.666657866386814,
},
{
"x": 3.104264064149398,
"y": -7.575735939630326,
},
{
"x": 3.013342135788035,
"y": -7.50111824283469,
},
{
"x": 2.909610056438437,
"y": -7.445672292163401,
},
{
"x": 2.7970541916275735,
"y": -7.411528844348147,
},
{
"x": 2.6799999999999997,
"y": -7.400000012904785,
},
{
"x": 2.5629458083724255,
"y": -7.411528844348147,
},
{
"x": 2.450389943561562,
"y": -7.445672292163401,
},
{
"x": 2.3466578642119647,
"y": -7.50111824283469,
},
{
"x": 2.255735935850602,
"y": -7.575735939630325,
},
{
"x": 2.1811182370994193,
"y": -7.666657866386813,
},
{
"x": 2.125672284197063,
"y": -7.770389944543881,
},
{
"x": 2.09152883396096,
"y": -7.882945808620388,
},
{
"x": 2.08,
"y": -8,
},
{
"x": 2.08,
"y": -11,
},
{
"x": -10,
"y": -11,
},
{
"x": -10,
"y": -7.5,
},
{
"x": -10.009607359798384,
"y": -7.402454838991936,
},
{
"x": -10.038060233744357,
"y": -7.308658283817455,
},
{
"x": -10.084265193848728,
"y": -7.222214883490199,
},
{
"x": -10.146446609406727,
"y": -7.146446609406726,
},
{
"x": -10.2222148834902,
"y": -7.0842651938487275,
},
{
"x": -10.308658283817454,
"y": -7.038060233744357,
},
{
"x": -10.402454838991936,
"y": -7.009607359798385,
},
{
"x": -10.5,
"y": -7,
},
{
"x": -10.597545161008064,
"y": -6.990392640201615,
},
{
"x": -10.691341716182546,
"y": -6.961939766255643,
},
{
"x": -10.7777851165098,
"y": -6.9157348061512725,
},
{
"x": -10.853553390593273,
"y": -6.853553390593274,
},
{
"x": -10.915734806151272,
"y": -6.777785116509801,
},
{
"x": -10.961939766255643,
"y": -6.691341716182545,
},
{
"x": -10.990392640201616,
"y": -6.597545161008064,
},
{
"x": -11,
"y": -6.5,
},
{
"x": -11,
"y": 10,
},
{
"x": -10.98078528040323,
"y": 10.195090322016128,
},
{
"x": -10.923879532511286,
"y": 10.38268343236509,
},
{
"x": -10.831469612302545,
"y": 10.555570233019601,
},
{
"x": -10.707106781186548,
"y": 10.707106781186548,
},
{
"x": -10.555570233019601,
"y": 10.831469612302545,
},
{
"x": -10.38268343236509,
"y": 10.923879532511286,
},
{
"x": -10.195090322016128,
"y": 10.98078528040323,
},
{
"x": -10,
"y": 11,
},
]
`)
})