@tscircuit/copper-pour-solver 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/.github/workflows/.replit +9 -0
  2. package/.github/workflows/bun-formatcheck.yml +26 -0
  3. package/.github/workflows/bun-pver-release.yml +71 -0
  4. package/.github/workflows/bun-test.yml +31 -0
  5. package/.github/workflows/bun-typecheck.yml +26 -0
  6. package/README.md +37 -0
  7. package/biome.json +93 -0
  8. package/bun.lock +164 -0
  9. package/bunfig.toml +5 -0
  10. package/cosmos.config.json +5 -0
  11. package/dist/index.d.ts +57 -0
  12. package/dist/index.js +368 -0
  13. package/lib/circuit-json/convert-circuit-json-to-input-problem.ts +208 -0
  14. package/lib/circuit-json/convertCircuitJsonToInputProblem.ts +0 -0
  15. package/lib/index.ts +3 -0
  16. package/lib/solvers/CopperPourPipelineSolver.ts +51 -0
  17. package/lib/solvers/copper-pour/circle-to-polygon.ts +15 -0
  18. package/lib/solvers/copper-pour/generate-brep.ts +60 -0
  19. package/lib/solvers/copper-pour/get-board-polygon.ts +19 -0
  20. package/lib/solvers/copper-pour/process-obstacles.ts +116 -0
  21. package/lib/types.ts +46 -0
  22. package/package.json +28 -0
  23. package/site/Welcome.page.tsx +0 -0
  24. package/tests/__snapshots__/circuit-1.snap.svg +1 -0
  25. package/tests/__snapshots__/circuit-2.snap.svg +1 -0
  26. package/tests/__snapshots__/circuit-3.snap.svg +1 -0
  27. package/tests/__snapshots__/circuit-4.snap.svg +1 -0
  28. package/tests/__snapshots__/circuit-5.snap.svg +1 -0
  29. package/tests/__snapshots__/circuit-6.snap.svg +1 -0
  30. package/tests/assets/circuit-1.json +592 -0
  31. package/tests/assets/circuit-2.json +1424 -0
  32. package/tests/assets/circuit-3.json +1424 -0
  33. package/tests/assets/circuit-4.json +631 -0
  34. package/tests/assets/circuit-5.json +631 -0
  35. package/tests/assets/circuit-6.json +806 -0
  36. package/tests/circuit-1.test.ts +14 -0
  37. package/tests/circuit-2.test.ts +15 -0
  38. package/tests/circuit-3.test.ts +15 -0
  39. package/tests/circuit-4.test.ts +15 -0
  40. package/tests/circuit-5.test.ts +15 -0
  41. package/tests/circuit-6.test.ts +15 -0
  42. package/tests/fixtures/preload.ts +1 -0
  43. package/tests/utils/run-solver-and-render-to-svg.ts +64 -0
  44. package/tsconfig.json +34 -0
@@ -0,0 +1,1424 @@
1
+ [
2
+ {
3
+ "type": "source_project_metadata",
4
+ "source_project_metadata_id": "source_project_metadata_0",
5
+ "software_used_string": "@tscircuit/core@0.0.844"
6
+ },
7
+ {
8
+ "type": "source_group",
9
+ "source_group_id": "source_group_0",
10
+ "is_subcircuit": true,
11
+ "was_automatically_named": true,
12
+ "subcircuit_id": "subcircuit_source_group_0"
13
+ },
14
+ {
15
+ "type": "source_port",
16
+ "source_port_id": "source_port_0",
17
+ "name": "pin1",
18
+ "pin_number": 1,
19
+ "port_hints": ["pin1", "1"],
20
+ "source_component_id": "source_component_0",
21
+ "subcircuit_id": "subcircuit_source_group_0",
22
+ "subcircuit_connectivity_map_key": "unnamedsubcircuit473_connectivity_net1"
23
+ },
24
+ {
25
+ "type": "source_port",
26
+ "source_port_id": "source_port_1",
27
+ "name": "pin2",
28
+ "pin_number": 2,
29
+ "port_hints": ["pin2", "2"],
30
+ "source_component_id": "source_component_0",
31
+ "subcircuit_id": "subcircuit_source_group_0"
32
+ },
33
+ {
34
+ "type": "source_port",
35
+ "source_port_id": "source_port_2",
36
+ "name": "pin3",
37
+ "pin_number": 3,
38
+ "port_hints": ["pin3", "3"],
39
+ "source_component_id": "source_component_0",
40
+ "subcircuit_id": "subcircuit_source_group_0"
41
+ },
42
+ {
43
+ "type": "source_port",
44
+ "source_port_id": "source_port_3",
45
+ "name": "pin4",
46
+ "pin_number": 4,
47
+ "port_hints": ["pin4", "4"],
48
+ "source_component_id": "source_component_0",
49
+ "subcircuit_id": "subcircuit_source_group_0",
50
+ "subcircuit_connectivity_map_key": "unnamedsubcircuit473_connectivity_net0"
51
+ },
52
+ {
53
+ "type": "source_port",
54
+ "source_port_id": "source_port_4",
55
+ "name": "pin5",
56
+ "pin_number": 5,
57
+ "port_hints": ["pin5", "5"],
58
+ "source_component_id": "source_component_0",
59
+ "subcircuit_id": "subcircuit_source_group_0"
60
+ },
61
+ {
62
+ "type": "source_port",
63
+ "source_port_id": "source_port_5",
64
+ "name": "pin6",
65
+ "pin_number": 6,
66
+ "port_hints": ["pin6", "6"],
67
+ "source_component_id": "source_component_0",
68
+ "subcircuit_id": "subcircuit_source_group_0"
69
+ },
70
+ {
71
+ "type": "source_port",
72
+ "source_port_id": "source_port_6",
73
+ "name": "pin7",
74
+ "pin_number": 7,
75
+ "port_hints": ["pin7", "7"],
76
+ "source_component_id": "source_component_0",
77
+ "subcircuit_id": "subcircuit_source_group_0"
78
+ },
79
+ {
80
+ "type": "source_port",
81
+ "source_port_id": "source_port_7",
82
+ "name": "pin8",
83
+ "pin_number": 8,
84
+ "port_hints": ["pin8", "8"],
85
+ "source_component_id": "source_component_0",
86
+ "subcircuit_id": "subcircuit_source_group_0"
87
+ },
88
+ {
89
+ "type": "source_component",
90
+ "source_component_id": "source_component_0",
91
+ "ftype": "simple_chip",
92
+ "name": "U1",
93
+ "source_group_id": "source_group_0"
94
+ },
95
+ {
96
+ "type": "source_port",
97
+ "source_port_id": "source_port_8",
98
+ "name": "pin1",
99
+ "pin_number": 1,
100
+ "port_hints": ["pin1", "anode", "pos", "left", "1"],
101
+ "source_component_id": "source_component_1",
102
+ "subcircuit_id": "subcircuit_source_group_0"
103
+ },
104
+ {
105
+ "type": "source_port",
106
+ "source_port_id": "source_port_9",
107
+ "name": "pin2",
108
+ "pin_number": 2,
109
+ "port_hints": ["pin2", "cathode", "neg", "right", "2"],
110
+ "source_component_id": "source_component_1",
111
+ "subcircuit_id": "subcircuit_source_group_0",
112
+ "subcircuit_connectivity_map_key": "unnamedsubcircuit473_connectivity_net0"
113
+ },
114
+ {
115
+ "type": "source_component",
116
+ "source_component_id": "source_component_1",
117
+ "ftype": "simple_resistor",
118
+ "name": "R1",
119
+ "resistance": 10000,
120
+ "display_resistance": "10kΩ",
121
+ "are_pins_interchangeable": true,
122
+ "source_group_id": "source_group_0"
123
+ },
124
+ {
125
+ "type": "source_port",
126
+ "source_port_id": "source_port_10",
127
+ "name": "pin1",
128
+ "pin_number": 1,
129
+ "port_hints": ["pin1", "pos", "anode", "1"],
130
+ "source_component_id": "source_component_2",
131
+ "subcircuit_id": "subcircuit_source_group_0"
132
+ },
133
+ {
134
+ "type": "source_port",
135
+ "source_port_id": "source_port_11",
136
+ "name": "pin2",
137
+ "pin_number": 2,
138
+ "port_hints": ["pin2", "neg", "cathode", "2"],
139
+ "source_component_id": "source_component_2",
140
+ "subcircuit_id": "subcircuit_source_group_0",
141
+ "subcircuit_connectivity_map_key": "unnamedsubcircuit473_connectivity_net0"
142
+ },
143
+ {
144
+ "type": "source_component",
145
+ "source_component_id": "source_component_2",
146
+ "ftype": "simple_capacitor",
147
+ "name": "C1",
148
+ "capacitance": 1e-7,
149
+ "display_capacitance": "100nF",
150
+ "are_pins_interchangeable": true,
151
+ "source_group_id": "source_group_0"
152
+ },
153
+ {
154
+ "type": "source_net",
155
+ "source_net_id": "source_net_0",
156
+ "name": "GND",
157
+ "member_source_group_ids": [],
158
+ "is_ground": true,
159
+ "is_power": false,
160
+ "is_positive_voltage_source": false,
161
+ "subcircuit_id": "subcircuit_source_group_0",
162
+ "subcircuit_connectivity_map_key": "unnamedsubcircuit473_connectivity_net0"
163
+ },
164
+ {
165
+ "type": "source_net",
166
+ "source_net_id": "source_net_1",
167
+ "name": "VCC",
168
+ "member_source_group_ids": [],
169
+ "is_ground": false,
170
+ "is_power": true,
171
+ "is_positive_voltage_source": true,
172
+ "subcircuit_id": "subcircuit_source_group_0",
173
+ "subcircuit_connectivity_map_key": "unnamedsubcircuit473_connectivity_net1"
174
+ },
175
+ {
176
+ "type": "source_board",
177
+ "source_board_id": "source_board_0",
178
+ "source_group_id": "source_group_0"
179
+ },
180
+ {
181
+ "type": "source_trace",
182
+ "source_trace_id": "source_trace_0",
183
+ "connected_source_port_ids": ["source_port_9"],
184
+ "connected_source_net_ids": ["source_net_0"],
185
+ "subcircuit_id": "subcircuit_source_group_0",
186
+ "display_name": ".R1 > .pin2 to net.GND",
187
+ "subcircuit_connectivity_map_key": "unnamedsubcircuit473_connectivity_net0"
188
+ },
189
+ {
190
+ "type": "source_trace",
191
+ "source_trace_id": "source_trace_1",
192
+ "connected_source_port_ids": ["source_port_11"],
193
+ "connected_source_net_ids": ["source_net_0"],
194
+ "subcircuit_id": "subcircuit_source_group_0",
195
+ "max_length": null,
196
+ "display_name": ".C1 > .pin2 to net.GND",
197
+ "subcircuit_connectivity_map_key": "unnamedsubcircuit473_connectivity_net0"
198
+ },
199
+ {
200
+ "type": "source_trace",
201
+ "source_trace_id": "source_trace_2",
202
+ "connected_source_port_ids": ["source_port_3"],
203
+ "connected_source_net_ids": ["source_net_0"],
204
+ "subcircuit_id": "subcircuit_source_group_0",
205
+ "display_name": ".U1 > .pin4 to net.GND",
206
+ "subcircuit_connectivity_map_key": "unnamedsubcircuit473_connectivity_net0"
207
+ },
208
+ {
209
+ "type": "source_trace",
210
+ "source_trace_id": "source_trace_3",
211
+ "connected_source_port_ids": ["source_port_0"],
212
+ "connected_source_net_ids": ["source_net_1"],
213
+ "subcircuit_id": "subcircuit_source_group_0",
214
+ "display_name": ".U1 > .pin1 to net.VCC",
215
+ "subcircuit_connectivity_map_key": "unnamedsubcircuit473_connectivity_net1"
216
+ },
217
+ {
218
+ "type": "source_pin_missing_trace_warning",
219
+ "source_pin_missing_trace_warning_id": "source_pin_missing_trace_warning_0",
220
+ "message": "Port pin1 on R1 is missing a trace",
221
+ "source_component_id": "source_component_1",
222
+ "source_port_id": "source_port_8",
223
+ "subcircuit_id": "subcircuit_source_group_0",
224
+ "warning_type": "source_pin_missing_trace_warning"
225
+ },
226
+ {
227
+ "type": "source_pin_missing_trace_warning",
228
+ "source_pin_missing_trace_warning_id": "source_pin_missing_trace_warning_1",
229
+ "message": "Port pin1 on C1 is missing a trace",
230
+ "source_component_id": "source_component_2",
231
+ "source_port_id": "source_port_10",
232
+ "subcircuit_id": "subcircuit_source_group_0",
233
+ "warning_type": "source_pin_missing_trace_warning"
234
+ },
235
+ {
236
+ "type": "schematic_component",
237
+ "schematic_component_id": "schematic_component_0",
238
+ "center": {
239
+ "x": 0,
240
+ "y": 0
241
+ },
242
+ "rotation": 0,
243
+ "size": {
244
+ "width": 0.4,
245
+ "height": 1
246
+ },
247
+ "pin_spacing": 0.2,
248
+ "port_labels": {},
249
+ "source_component_id": "source_component_0",
250
+ "schematic_group_id": "schematic_group_0"
251
+ },
252
+ {
253
+ "type": "schematic_text",
254
+ "schematic_text_id": "schematic_text_0",
255
+ "text": "",
256
+ "schematic_component_id": "schematic_component_0",
257
+ "anchor": "left",
258
+ "rotation": 0,
259
+ "position": {
260
+ "x": -0.2,
261
+ "y": -0.63
262
+ },
263
+ "color": "#006464",
264
+ "font_size": 0.18
265
+ },
266
+ {
267
+ "type": "schematic_text",
268
+ "schematic_text_id": "schematic_text_1",
269
+ "text": "U1",
270
+ "schematic_component_id": "schematic_component_0",
271
+ "anchor": "left",
272
+ "rotation": 0,
273
+ "position": {
274
+ "x": -0.2,
275
+ "y": 0.63
276
+ },
277
+ "color": "#006464",
278
+ "font_size": 0.18
279
+ },
280
+ {
281
+ "type": "schematic_component",
282
+ "schematic_component_id": "schematic_component_1",
283
+ "center": {
284
+ "x": -2.36,
285
+ "y": -0.2999999999999998
286
+ },
287
+ "size": {
288
+ "width": 1.1,
289
+ "height": 0.388910699999999
290
+ },
291
+ "source_component_id": "source_component_1",
292
+ "is_box_with_pins": true,
293
+ "symbol_name": "boxresistor_right",
294
+ "symbol_display_value": "10kΩ",
295
+ "schematic_group_id": "schematic_group_0"
296
+ },
297
+ {
298
+ "type": "schematic_component",
299
+ "schematic_component_id": "schematic_component_2",
300
+ "center": {
301
+ "x": -2.36,
302
+ "y": 1.5144553499999995
303
+ },
304
+ "size": {
305
+ "width": 1.1,
306
+ "height": 0.84
307
+ },
308
+ "source_component_id": "source_component_2",
309
+ "is_box_with_pins": true,
310
+ "symbol_name": "capacitor_right",
311
+ "symbol_display_value": "100nF",
312
+ "schematic_group_id": "schematic_group_0"
313
+ },
314
+ {
315
+ "type": "schematic_group",
316
+ "schematic_group_id": "schematic_group_0",
317
+ "is_subcircuit": true,
318
+ "subcircuit_id": "subcircuit_source_group_0",
319
+ "name": "unnamed_board1",
320
+ "center": {
321
+ "x": 0,
322
+ "y": 0
323
+ },
324
+ "width": 0,
325
+ "height": 0,
326
+ "schematic_component_ids": [],
327
+ "source_group_id": "source_group_0"
328
+ },
329
+ {
330
+ "type": "schematic_port",
331
+ "schematic_port_id": "schematic_port_0",
332
+ "schematic_component_id": "schematic_component_0",
333
+ "center": {
334
+ "x": -0.6000000000000001,
335
+ "y": 0.30000000000000004
336
+ },
337
+ "source_port_id": "source_port_0",
338
+ "facing_direction": "left",
339
+ "distance_from_component_edge": 0.4,
340
+ "side_of_component": "left",
341
+ "pin_number": 1,
342
+ "true_ccw_index": 0,
343
+ "is_connected": false
344
+ },
345
+ {
346
+ "type": "schematic_port",
347
+ "schematic_port_id": "schematic_port_1",
348
+ "schematic_component_id": "schematic_component_0",
349
+ "center": {
350
+ "x": -0.6000000000000001,
351
+ "y": 0.10000000000000003
352
+ },
353
+ "source_port_id": "source_port_1",
354
+ "facing_direction": "left",
355
+ "distance_from_component_edge": 0.4,
356
+ "side_of_component": "left",
357
+ "pin_number": 2,
358
+ "true_ccw_index": 1,
359
+ "is_connected": false
360
+ },
361
+ {
362
+ "type": "schematic_port",
363
+ "schematic_port_id": "schematic_port_2",
364
+ "schematic_component_id": "schematic_component_0",
365
+ "center": {
366
+ "x": -0.6000000000000001,
367
+ "y": -0.09999999999999998
368
+ },
369
+ "source_port_id": "source_port_2",
370
+ "facing_direction": "left",
371
+ "distance_from_component_edge": 0.4,
372
+ "side_of_component": "left",
373
+ "pin_number": 3,
374
+ "true_ccw_index": 2,
375
+ "is_connected": false
376
+ },
377
+ {
378
+ "type": "schematic_port",
379
+ "schematic_port_id": "schematic_port_3",
380
+ "schematic_component_id": "schematic_component_0",
381
+ "center": {
382
+ "x": -0.6000000000000001,
383
+ "y": -0.30000000000000004
384
+ },
385
+ "source_port_id": "source_port_3",
386
+ "facing_direction": "left",
387
+ "distance_from_component_edge": 0.4,
388
+ "side_of_component": "left",
389
+ "pin_number": 4,
390
+ "true_ccw_index": 3,
391
+ "is_connected": true
392
+ },
393
+ {
394
+ "type": "schematic_port",
395
+ "schematic_port_id": "schematic_port_4",
396
+ "schematic_component_id": "schematic_component_0",
397
+ "center": {
398
+ "x": 0.6000000000000001,
399
+ "y": -0.30000000000000004
400
+ },
401
+ "source_port_id": "source_port_4",
402
+ "facing_direction": "right",
403
+ "distance_from_component_edge": 0.4,
404
+ "side_of_component": "right",
405
+ "pin_number": 5,
406
+ "true_ccw_index": 4,
407
+ "is_connected": false
408
+ },
409
+ {
410
+ "type": "schematic_port",
411
+ "schematic_port_id": "schematic_port_5",
412
+ "schematic_component_id": "schematic_component_0",
413
+ "center": {
414
+ "x": 0.6000000000000001,
415
+ "y": -0.10000000000000003
416
+ },
417
+ "source_port_id": "source_port_5",
418
+ "facing_direction": "right",
419
+ "distance_from_component_edge": 0.4,
420
+ "side_of_component": "right",
421
+ "pin_number": 6,
422
+ "true_ccw_index": 5,
423
+ "is_connected": false
424
+ },
425
+ {
426
+ "type": "schematic_port",
427
+ "schematic_port_id": "schematic_port_6",
428
+ "schematic_component_id": "schematic_component_0",
429
+ "center": {
430
+ "x": 0.6000000000000001,
431
+ "y": 0.09999999999999998
432
+ },
433
+ "source_port_id": "source_port_6",
434
+ "facing_direction": "right",
435
+ "distance_from_component_edge": 0.4,
436
+ "side_of_component": "right",
437
+ "pin_number": 7,
438
+ "true_ccw_index": 6,
439
+ "is_connected": false
440
+ },
441
+ {
442
+ "type": "schematic_port",
443
+ "schematic_port_id": "schematic_port_7",
444
+ "schematic_component_id": "schematic_component_0",
445
+ "center": {
446
+ "x": 0.6000000000000001,
447
+ "y": 0.30000000000000004
448
+ },
449
+ "source_port_id": "source_port_7",
450
+ "facing_direction": "right",
451
+ "distance_from_component_edge": 0.4,
452
+ "side_of_component": "right",
453
+ "pin_number": 8,
454
+ "true_ccw_index": 7,
455
+ "is_connected": false
456
+ },
457
+ {
458
+ "type": "schematic_port",
459
+ "schematic_port_id": "schematic_port_8",
460
+ "schematic_component_id": "schematic_component_1",
461
+ "center": {
462
+ "x": -2.91,
463
+ "y": -0.2999999999999998
464
+ },
465
+ "source_port_id": "source_port_8",
466
+ "facing_direction": "left",
467
+ "distance_from_component_edge": 0.4,
468
+ "pin_number": 1,
469
+ "display_pin_label": "anode",
470
+ "is_connected": false
471
+ },
472
+ {
473
+ "type": "schematic_port",
474
+ "schematic_port_id": "schematic_port_9",
475
+ "schematic_component_id": "schematic_component_1",
476
+ "center": {
477
+ "x": -1.8099999999999998,
478
+ "y": -0.2999999999999998
479
+ },
480
+ "source_port_id": "source_port_9",
481
+ "facing_direction": "right",
482
+ "distance_from_component_edge": 0.4,
483
+ "pin_number": 2,
484
+ "display_pin_label": "cathode",
485
+ "is_connected": true
486
+ },
487
+ {
488
+ "type": "schematic_port",
489
+ "schematic_port_id": "schematic_port_10",
490
+ "schematic_component_id": "schematic_component_2",
491
+ "center": {
492
+ "x": -2.91,
493
+ "y": 1.5144553499999995
494
+ },
495
+ "source_port_id": "source_port_10",
496
+ "facing_direction": "left",
497
+ "distance_from_component_edge": 0.4,
498
+ "pin_number": 1,
499
+ "display_pin_label": "pos",
500
+ "is_connected": false
501
+ },
502
+ {
503
+ "type": "schematic_port",
504
+ "schematic_port_id": "schematic_port_11",
505
+ "schematic_component_id": "schematic_component_2",
506
+ "center": {
507
+ "x": -1.8099999999999998,
508
+ "y": 1.5144553499999995
509
+ },
510
+ "source_port_id": "source_port_11",
511
+ "facing_direction": "right",
512
+ "distance_from_component_edge": 0.4,
513
+ "pin_number": 2,
514
+ "display_pin_label": "neg",
515
+ "is_connected": true
516
+ },
517
+ {
518
+ "type": "schematic_trace",
519
+ "schematic_trace_id": "schematic_trace_0",
520
+ "source_trace_id": "solver_R1.2-C1.2",
521
+ "edges": [
522
+ {
523
+ "from": {
524
+ "x": -1.8099999999999996,
525
+ "y": -0.2999999999999998
526
+ },
527
+ "to": {
528
+ "x": -1.6099999999999997,
529
+ "y": -0.2999999999999998
530
+ }
531
+ },
532
+ {
533
+ "from": {
534
+ "x": -1.6099999999999997,
535
+ "y": -0.2999999999999998
536
+ },
537
+ "to": {
538
+ "x": -1.6099999999999997,
539
+ "y": 1.5144553499999995
540
+ }
541
+ },
542
+ {
543
+ "from": {
544
+ "x": -1.6099999999999997,
545
+ "y": 1.5144553499999995
546
+ },
547
+ "to": {
548
+ "x": -1.8099999999999996,
549
+ "y": 1.5144553499999995
550
+ }
551
+ }
552
+ ],
553
+ "junctions": [
554
+ {
555
+ "x": -1.6099999999999997,
556
+ "y": -0.2999999999999998
557
+ }
558
+ ],
559
+ "subcircuit_connectivity_map_key": "unnamedsubcircuit473_connectivity_net0"
560
+ },
561
+ {
562
+ "type": "schematic_trace",
563
+ "schematic_trace_id": "schematic_trace_1",
564
+ "source_trace_id": "solver_U1.4-R1.2",
565
+ "edges": [
566
+ {
567
+ "from": {
568
+ "x": -0.6000000000000001,
569
+ "y": -0.30000000000000004
570
+ },
571
+ "to": {
572
+ "x": -1.8099999999999996,
573
+ "y": -0.2999999999999998
574
+ }
575
+ }
576
+ ],
577
+ "junctions": [
578
+ {
579
+ "x": -1.6099999999999997,
580
+ "y": -0.2999999999999998
581
+ }
582
+ ],
583
+ "subcircuit_connectivity_map_key": "unnamedsubcircuit473_connectivity_net0"
584
+ },
585
+ {
586
+ "type": "schematic_net_label",
587
+ "schematic_net_label_id": "schematic_net_label_0",
588
+ "text": "GND",
589
+ "anchor_position": {
590
+ "x": -1.2049999999999998,
591
+ "y": -0.29999999999999993
592
+ },
593
+ "center": {
594
+ "x": -1.2049999999999998,
595
+ "y": -0.3899999999999999
596
+ },
597
+ "anchor_side": "top",
598
+ "source_net_id": "source_net_0",
599
+ "symbol_name": "rail_down"
600
+ },
601
+ {
602
+ "type": "schematic_net_label",
603
+ "schematic_net_label_id": "schematic_net_label_1",
604
+ "text": "VCC",
605
+ "anchor_position": {
606
+ "x": -0.6000000000000001,
607
+ "y": 0.30000000000000004
608
+ },
609
+ "center": {
610
+ "x": -0.7500000000000001,
611
+ "y": 0.30000000000000004
612
+ },
613
+ "anchor_side": "right",
614
+ "source_net_id": "source_net_1"
615
+ },
616
+ {
617
+ "type": "pcb_component",
618
+ "pcb_component_id": "pcb_component_0",
619
+ "center": {
620
+ "x": -6,
621
+ "y": 0
622
+ },
623
+ "width": 5.300000000000001,
624
+ "height": 4.41,
625
+ "layer": "top",
626
+ "rotation": 0,
627
+ "source_component_id": "source_component_0",
628
+ "subcircuit_id": "subcircuit_source_group_0",
629
+ "do_not_place": false,
630
+ "obstructs_within_bounds": true
631
+ },
632
+ {
633
+ "type": "pcb_component",
634
+ "pcb_component_id": "pcb_component_1",
635
+ "center": {
636
+ "x": 6,
637
+ "y": 4
638
+ },
639
+ "width": 1.5599999999999987,
640
+ "height": 0.6400000000000001,
641
+ "layer": "top",
642
+ "rotation": 0,
643
+ "source_component_id": "source_component_1",
644
+ "subcircuit_id": "subcircuit_source_group_0",
645
+ "do_not_place": false,
646
+ "obstructs_within_bounds": true
647
+ },
648
+ {
649
+ "type": "pcb_component",
650
+ "pcb_component_id": "pcb_component_2",
651
+ "center": {
652
+ "x": 6,
653
+ "y": -4
654
+ },
655
+ "width": 1.5599999999999987,
656
+ "height": 0.6400000000000001,
657
+ "layer": "top",
658
+ "rotation": 0,
659
+ "source_component_id": "source_component_2",
660
+ "subcircuit_id": "subcircuit_source_group_0",
661
+ "do_not_place": false,
662
+ "obstructs_within_bounds": true
663
+ },
664
+ {
665
+ "type": "pcb_board",
666
+ "pcb_board_id": "pcb_board_0",
667
+ "center": {
668
+ "x": 0,
669
+ "y": 0
670
+ },
671
+ "thickness": 1.4,
672
+ "num_layers": 2,
673
+ "width": 30,
674
+ "height": 20,
675
+ "material": "fr4"
676
+ },
677
+ {
678
+ "type": "pcb_smtpad",
679
+ "pcb_smtpad_id": "pcb_smtpad_0",
680
+ "pcb_component_id": "pcb_component_0",
681
+ "pcb_port_id": "pcb_port_0",
682
+ "layer": "top",
683
+ "shape": "rect",
684
+ "width": 1,
685
+ "height": 0.6,
686
+ "port_hints": ["1"],
687
+ "is_covered_with_solder_mask": false,
688
+ "x": -8.15,
689
+ "y": 1.905,
690
+ "subcircuit_id": "subcircuit_source_group_0"
691
+ },
692
+ {
693
+ "type": "pcb_solder_paste",
694
+ "pcb_solder_paste_id": "pcb_solder_paste_0",
695
+ "layer": "top",
696
+ "shape": "rect",
697
+ "width": 0.7,
698
+ "height": 0.42,
699
+ "x": -8.15,
700
+ "y": 1.905,
701
+ "pcb_component_id": "pcb_component_0",
702
+ "pcb_smtpad_id": "pcb_smtpad_0",
703
+ "subcircuit_id": "subcircuit_source_group_0"
704
+ },
705
+ {
706
+ "type": "pcb_smtpad",
707
+ "pcb_smtpad_id": "pcb_smtpad_1",
708
+ "pcb_component_id": "pcb_component_0",
709
+ "pcb_port_id": "pcb_port_1",
710
+ "layer": "top",
711
+ "shape": "rect",
712
+ "width": 1,
713
+ "height": 0.6,
714
+ "port_hints": ["2"],
715
+ "is_covered_with_solder_mask": false,
716
+ "x": -8.15,
717
+ "y": 0.635,
718
+ "subcircuit_id": "subcircuit_source_group_0"
719
+ },
720
+ {
721
+ "type": "pcb_solder_paste",
722
+ "pcb_solder_paste_id": "pcb_solder_paste_1",
723
+ "layer": "top",
724
+ "shape": "rect",
725
+ "width": 0.7,
726
+ "height": 0.42,
727
+ "x": -8.15,
728
+ "y": 0.635,
729
+ "pcb_component_id": "pcb_component_0",
730
+ "pcb_smtpad_id": "pcb_smtpad_1",
731
+ "subcircuit_id": "subcircuit_source_group_0"
732
+ },
733
+ {
734
+ "type": "pcb_smtpad",
735
+ "pcb_smtpad_id": "pcb_smtpad_2",
736
+ "pcb_component_id": "pcb_component_0",
737
+ "pcb_port_id": "pcb_port_2",
738
+ "layer": "top",
739
+ "shape": "rect",
740
+ "width": 1,
741
+ "height": 0.6,
742
+ "port_hints": ["3"],
743
+ "is_covered_with_solder_mask": false,
744
+ "x": -8.15,
745
+ "y": -0.635,
746
+ "subcircuit_id": "subcircuit_source_group_0"
747
+ },
748
+ {
749
+ "type": "pcb_solder_paste",
750
+ "pcb_solder_paste_id": "pcb_solder_paste_2",
751
+ "layer": "top",
752
+ "shape": "rect",
753
+ "width": 0.7,
754
+ "height": 0.42,
755
+ "x": -8.15,
756
+ "y": -0.635,
757
+ "pcb_component_id": "pcb_component_0",
758
+ "pcb_smtpad_id": "pcb_smtpad_2",
759
+ "subcircuit_id": "subcircuit_source_group_0"
760
+ },
761
+ {
762
+ "type": "pcb_smtpad",
763
+ "pcb_smtpad_id": "pcb_smtpad_3",
764
+ "pcb_component_id": "pcb_component_0",
765
+ "pcb_port_id": "pcb_port_3",
766
+ "layer": "top",
767
+ "shape": "rect",
768
+ "width": 1,
769
+ "height": 0.6,
770
+ "port_hints": ["4"],
771
+ "is_covered_with_solder_mask": false,
772
+ "x": -8.15,
773
+ "y": -1.905,
774
+ "subcircuit_id": "subcircuit_source_group_0"
775
+ },
776
+ {
777
+ "type": "pcb_solder_paste",
778
+ "pcb_solder_paste_id": "pcb_solder_paste_3",
779
+ "layer": "top",
780
+ "shape": "rect",
781
+ "width": 0.7,
782
+ "height": 0.42,
783
+ "x": -8.15,
784
+ "y": -1.905,
785
+ "pcb_component_id": "pcb_component_0",
786
+ "pcb_smtpad_id": "pcb_smtpad_3",
787
+ "subcircuit_id": "subcircuit_source_group_0"
788
+ },
789
+ {
790
+ "type": "pcb_smtpad",
791
+ "pcb_smtpad_id": "pcb_smtpad_4",
792
+ "pcb_component_id": "pcb_component_0",
793
+ "pcb_port_id": "pcb_port_4",
794
+ "layer": "top",
795
+ "shape": "rect",
796
+ "width": 1,
797
+ "height": 0.6,
798
+ "port_hints": ["5"],
799
+ "is_covered_with_solder_mask": false,
800
+ "x": -3.85,
801
+ "y": -1.905,
802
+ "subcircuit_id": "subcircuit_source_group_0"
803
+ },
804
+ {
805
+ "type": "pcb_solder_paste",
806
+ "pcb_solder_paste_id": "pcb_solder_paste_4",
807
+ "layer": "top",
808
+ "shape": "rect",
809
+ "width": 0.7,
810
+ "height": 0.42,
811
+ "x": -3.85,
812
+ "y": -1.905,
813
+ "pcb_component_id": "pcb_component_0",
814
+ "pcb_smtpad_id": "pcb_smtpad_4",
815
+ "subcircuit_id": "subcircuit_source_group_0"
816
+ },
817
+ {
818
+ "type": "pcb_smtpad",
819
+ "pcb_smtpad_id": "pcb_smtpad_5",
820
+ "pcb_component_id": "pcb_component_0",
821
+ "pcb_port_id": "pcb_port_5",
822
+ "layer": "top",
823
+ "shape": "rect",
824
+ "width": 1,
825
+ "height": 0.6,
826
+ "port_hints": ["6"],
827
+ "is_covered_with_solder_mask": false,
828
+ "x": -3.85,
829
+ "y": -0.635,
830
+ "subcircuit_id": "subcircuit_source_group_0"
831
+ },
832
+ {
833
+ "type": "pcb_solder_paste",
834
+ "pcb_solder_paste_id": "pcb_solder_paste_5",
835
+ "layer": "top",
836
+ "shape": "rect",
837
+ "width": 0.7,
838
+ "height": 0.42,
839
+ "x": -3.85,
840
+ "y": -0.635,
841
+ "pcb_component_id": "pcb_component_0",
842
+ "pcb_smtpad_id": "pcb_smtpad_5",
843
+ "subcircuit_id": "subcircuit_source_group_0"
844
+ },
845
+ {
846
+ "type": "pcb_smtpad",
847
+ "pcb_smtpad_id": "pcb_smtpad_6",
848
+ "pcb_component_id": "pcb_component_0",
849
+ "pcb_port_id": "pcb_port_6",
850
+ "layer": "top",
851
+ "shape": "rect",
852
+ "width": 1,
853
+ "height": 0.6,
854
+ "port_hints": ["7"],
855
+ "is_covered_with_solder_mask": false,
856
+ "x": -3.85,
857
+ "y": 0.635,
858
+ "subcircuit_id": "subcircuit_source_group_0"
859
+ },
860
+ {
861
+ "type": "pcb_solder_paste",
862
+ "pcb_solder_paste_id": "pcb_solder_paste_6",
863
+ "layer": "top",
864
+ "shape": "rect",
865
+ "width": 0.7,
866
+ "height": 0.42,
867
+ "x": -3.85,
868
+ "y": 0.635,
869
+ "pcb_component_id": "pcb_component_0",
870
+ "pcb_smtpad_id": "pcb_smtpad_6",
871
+ "subcircuit_id": "subcircuit_source_group_0"
872
+ },
873
+ {
874
+ "type": "pcb_smtpad",
875
+ "pcb_smtpad_id": "pcb_smtpad_7",
876
+ "pcb_component_id": "pcb_component_0",
877
+ "pcb_port_id": "pcb_port_7",
878
+ "layer": "top",
879
+ "shape": "rect",
880
+ "width": 1,
881
+ "height": 0.6,
882
+ "port_hints": ["8"],
883
+ "is_covered_with_solder_mask": false,
884
+ "x": -3.85,
885
+ "y": 1.905,
886
+ "subcircuit_id": "subcircuit_source_group_0"
887
+ },
888
+ {
889
+ "type": "pcb_solder_paste",
890
+ "pcb_solder_paste_id": "pcb_solder_paste_7",
891
+ "layer": "top",
892
+ "shape": "rect",
893
+ "width": 0.7,
894
+ "height": 0.42,
895
+ "x": -3.85,
896
+ "y": 1.905,
897
+ "pcb_component_id": "pcb_component_0",
898
+ "pcb_smtpad_id": "pcb_smtpad_7",
899
+ "subcircuit_id": "subcircuit_source_group_0"
900
+ },
901
+ {
902
+ "type": "pcb_silkscreen_path",
903
+ "pcb_silkscreen_path_id": "pcb_silkscreen_path_0",
904
+ "pcb_component_id": "pcb_component_0",
905
+ "layer": "top",
906
+ "route": [
907
+ {
908
+ "x": -7.55,
909
+ "y": -2.5225
910
+ },
911
+ {
912
+ "x": -7.55,
913
+ "y": 2.5225
914
+ },
915
+ {
916
+ "x": -6.516666666666667,
917
+ "y": 2.5225
918
+ },
919
+ {
920
+ "x": -6.477337758464165,
921
+ "y": 2.32478022661137
922
+ },
923
+ {
924
+ "x": -6.365338503613049,
925
+ "y": 2.1571614963869505
926
+ },
927
+ {
928
+ "x": -6.19771977338863,
929
+ "y": 2.0451622415358353
930
+ },
931
+ {
932
+ "x": -6,
933
+ "y": 2.0058333333333334
934
+ },
935
+ {
936
+ "x": -5.80228022661137,
937
+ "y": 2.0451622415358353
938
+ },
939
+ {
940
+ "x": -5.634661496386951,
941
+ "y": 2.1571614963869505
942
+ },
943
+ {
944
+ "x": -5.522662241535835,
945
+ "y": 2.32478022661137
946
+ },
947
+ {
948
+ "x": -5.483333333333333,
949
+ "y": 2.5225
950
+ },
951
+ {
952
+ "x": -4.45,
953
+ "y": 2.5225
954
+ },
955
+ {
956
+ "x": -4.45,
957
+ "y": -2.5225
958
+ },
959
+ {
960
+ "x": -7.55,
961
+ "y": -2.5225
962
+ }
963
+ ],
964
+ "stroke_width": 0.1,
965
+ "subcircuit_id": "subcircuit_source_group_0"
966
+ },
967
+ {
968
+ "type": "pcb_silkscreen_text",
969
+ "pcb_silkscreen_text_id": "pcb_silkscreen_text_0",
970
+ "anchor_alignment": "center",
971
+ "anchor_position": {
972
+ "x": -6,
973
+ "y": 2.9225
974
+ },
975
+ "font": "tscircuit2024",
976
+ "font_size": 0.6204166666666666,
977
+ "layer": "top",
978
+ "text": "U1",
979
+ "ccw_rotation": 0,
980
+ "pcb_component_id": "pcb_component_0",
981
+ "subcircuit_id": "subcircuit_source_group_0"
982
+ },
983
+ {
984
+ "type": "pcb_smtpad",
985
+ "pcb_smtpad_id": "pcb_smtpad_8",
986
+ "pcb_component_id": "pcb_component_1",
987
+ "pcb_port_id": "pcb_port_8",
988
+ "layer": "top",
989
+ "shape": "rect",
990
+ "width": 0.54,
991
+ "height": 0.64,
992
+ "port_hints": ["1", "left"],
993
+ "is_covered_with_solder_mask": false,
994
+ "x": 5.49,
995
+ "y": 4,
996
+ "subcircuit_id": "subcircuit_source_group_0"
997
+ },
998
+ {
999
+ "type": "pcb_solder_paste",
1000
+ "pcb_solder_paste_id": "pcb_solder_paste_8",
1001
+ "layer": "top",
1002
+ "shape": "rect",
1003
+ "width": 0.378,
1004
+ "height": 0.44799999999999995,
1005
+ "x": 5.49,
1006
+ "y": 4,
1007
+ "pcb_component_id": "pcb_component_1",
1008
+ "pcb_smtpad_id": "pcb_smtpad_8",
1009
+ "subcircuit_id": "subcircuit_source_group_0"
1010
+ },
1011
+ {
1012
+ "type": "pcb_smtpad",
1013
+ "pcb_smtpad_id": "pcb_smtpad_9",
1014
+ "pcb_component_id": "pcb_component_1",
1015
+ "pcb_port_id": "pcb_port_9",
1016
+ "layer": "top",
1017
+ "shape": "rect",
1018
+ "width": 0.54,
1019
+ "height": 0.64,
1020
+ "port_hints": ["2", "right"],
1021
+ "is_covered_with_solder_mask": false,
1022
+ "x": 6.51,
1023
+ "y": 4,
1024
+ "subcircuit_id": "subcircuit_source_group_0"
1025
+ },
1026
+ {
1027
+ "type": "pcb_solder_paste",
1028
+ "pcb_solder_paste_id": "pcb_solder_paste_9",
1029
+ "layer": "top",
1030
+ "shape": "rect",
1031
+ "width": 0.378,
1032
+ "height": 0.44799999999999995,
1033
+ "x": 6.51,
1034
+ "y": 4,
1035
+ "pcb_component_id": "pcb_component_1",
1036
+ "pcb_smtpad_id": "pcb_smtpad_9",
1037
+ "subcircuit_id": "subcircuit_source_group_0"
1038
+ },
1039
+ {
1040
+ "type": "pcb_silkscreen_path",
1041
+ "pcb_silkscreen_path_id": "pcb_silkscreen_path_1",
1042
+ "pcb_component_id": "pcb_component_1",
1043
+ "layer": "top",
1044
+ "route": [
1045
+ {
1046
+ "x": 6.51,
1047
+ "y": 4.72
1048
+ },
1049
+ {
1050
+ "x": 5.02,
1051
+ "y": 4.72
1052
+ },
1053
+ {
1054
+ "x": 5.02,
1055
+ "y": 3.2800000000000002
1056
+ },
1057
+ {
1058
+ "x": 6.51,
1059
+ "y": 3.2800000000000002
1060
+ }
1061
+ ],
1062
+ "stroke_width": 0.1,
1063
+ "subcircuit_id": "subcircuit_source_group_0"
1064
+ },
1065
+ {
1066
+ "type": "pcb_silkscreen_text",
1067
+ "pcb_silkscreen_text_id": "pcb_silkscreen_text_1",
1068
+ "anchor_alignment": "center",
1069
+ "anchor_position": {
1070
+ "x": 6,
1071
+ "y": 5.22
1072
+ },
1073
+ "font": "tscircuit2024",
1074
+ "font_size": 0.4,
1075
+ "layer": "top",
1076
+ "text": "R1",
1077
+ "ccw_rotation": 0,
1078
+ "pcb_component_id": "pcb_component_1",
1079
+ "subcircuit_id": "subcircuit_source_group_0"
1080
+ },
1081
+ {
1082
+ "type": "pcb_smtpad",
1083
+ "pcb_smtpad_id": "pcb_smtpad_10",
1084
+ "pcb_component_id": "pcb_component_2",
1085
+ "pcb_port_id": "pcb_port_10",
1086
+ "layer": "top",
1087
+ "shape": "rect",
1088
+ "width": 0.54,
1089
+ "height": 0.64,
1090
+ "port_hints": ["1", "left"],
1091
+ "is_covered_with_solder_mask": false,
1092
+ "x": 5.49,
1093
+ "y": -4,
1094
+ "subcircuit_id": "subcircuit_source_group_0"
1095
+ },
1096
+ {
1097
+ "type": "pcb_solder_paste",
1098
+ "pcb_solder_paste_id": "pcb_solder_paste_10",
1099
+ "layer": "top",
1100
+ "shape": "rect",
1101
+ "width": 0.378,
1102
+ "height": 0.44799999999999995,
1103
+ "x": 5.49,
1104
+ "y": -4,
1105
+ "pcb_component_id": "pcb_component_2",
1106
+ "pcb_smtpad_id": "pcb_smtpad_10",
1107
+ "subcircuit_id": "subcircuit_source_group_0"
1108
+ },
1109
+ {
1110
+ "type": "pcb_smtpad",
1111
+ "pcb_smtpad_id": "pcb_smtpad_11",
1112
+ "pcb_component_id": "pcb_component_2",
1113
+ "pcb_port_id": "pcb_port_11",
1114
+ "layer": "top",
1115
+ "shape": "rect",
1116
+ "width": 0.54,
1117
+ "height": 0.64,
1118
+ "port_hints": ["2", "right"],
1119
+ "is_covered_with_solder_mask": false,
1120
+ "x": 6.51,
1121
+ "y": -4,
1122
+ "subcircuit_id": "subcircuit_source_group_0"
1123
+ },
1124
+ {
1125
+ "type": "pcb_solder_paste",
1126
+ "pcb_solder_paste_id": "pcb_solder_paste_11",
1127
+ "layer": "top",
1128
+ "shape": "rect",
1129
+ "width": 0.378,
1130
+ "height": 0.44799999999999995,
1131
+ "x": 6.51,
1132
+ "y": -4,
1133
+ "pcb_component_id": "pcb_component_2",
1134
+ "pcb_smtpad_id": "pcb_smtpad_11",
1135
+ "subcircuit_id": "subcircuit_source_group_0"
1136
+ },
1137
+ {
1138
+ "type": "pcb_silkscreen_path",
1139
+ "pcb_silkscreen_path_id": "pcb_silkscreen_path_2",
1140
+ "pcb_component_id": "pcb_component_2",
1141
+ "layer": "top",
1142
+ "route": [
1143
+ {
1144
+ "x": 6.51,
1145
+ "y": -3.2800000000000002
1146
+ },
1147
+ {
1148
+ "x": 5.02,
1149
+ "y": -3.2800000000000002
1150
+ },
1151
+ {
1152
+ "x": 5.02,
1153
+ "y": -4.72
1154
+ },
1155
+ {
1156
+ "x": 6.51,
1157
+ "y": -4.72
1158
+ }
1159
+ ],
1160
+ "stroke_width": 0.1,
1161
+ "subcircuit_id": "subcircuit_source_group_0"
1162
+ },
1163
+ {
1164
+ "type": "pcb_silkscreen_text",
1165
+ "pcb_silkscreen_text_id": "pcb_silkscreen_text_2",
1166
+ "anchor_alignment": "center",
1167
+ "anchor_position": {
1168
+ "x": 6,
1169
+ "y": -2.7800000000000002
1170
+ },
1171
+ "font": "tscircuit2024",
1172
+ "font_size": 0.4,
1173
+ "layer": "top",
1174
+ "text": "C1",
1175
+ "ccw_rotation": 0,
1176
+ "pcb_component_id": "pcb_component_2",
1177
+ "subcircuit_id": "subcircuit_source_group_0"
1178
+ },
1179
+ {
1180
+ "type": "pcb_port",
1181
+ "pcb_port_id": "pcb_port_0",
1182
+ "pcb_component_id": "pcb_component_0",
1183
+ "layers": ["top"],
1184
+ "subcircuit_id": "subcircuit_source_group_0",
1185
+ "x": -8.15,
1186
+ "y": 1.905,
1187
+ "source_port_id": "source_port_0"
1188
+ },
1189
+ {
1190
+ "type": "pcb_port",
1191
+ "pcb_port_id": "pcb_port_1",
1192
+ "pcb_component_id": "pcb_component_0",
1193
+ "layers": ["top"],
1194
+ "subcircuit_id": "subcircuit_source_group_0",
1195
+ "x": -8.15,
1196
+ "y": 0.635,
1197
+ "source_port_id": "source_port_1"
1198
+ },
1199
+ {
1200
+ "type": "pcb_port",
1201
+ "pcb_port_id": "pcb_port_2",
1202
+ "pcb_component_id": "pcb_component_0",
1203
+ "layers": ["top"],
1204
+ "subcircuit_id": "subcircuit_source_group_0",
1205
+ "x": -8.15,
1206
+ "y": -0.635,
1207
+ "source_port_id": "source_port_2"
1208
+ },
1209
+ {
1210
+ "type": "pcb_port",
1211
+ "pcb_port_id": "pcb_port_3",
1212
+ "pcb_component_id": "pcb_component_0",
1213
+ "layers": ["top"],
1214
+ "subcircuit_id": "subcircuit_source_group_0",
1215
+ "x": -8.15,
1216
+ "y": -1.905,
1217
+ "source_port_id": "source_port_3"
1218
+ },
1219
+ {
1220
+ "type": "pcb_port",
1221
+ "pcb_port_id": "pcb_port_4",
1222
+ "pcb_component_id": "pcb_component_0",
1223
+ "layers": ["top"],
1224
+ "subcircuit_id": "subcircuit_source_group_0",
1225
+ "x": -3.85,
1226
+ "y": -1.905,
1227
+ "source_port_id": "source_port_4"
1228
+ },
1229
+ {
1230
+ "type": "pcb_port",
1231
+ "pcb_port_id": "pcb_port_5",
1232
+ "pcb_component_id": "pcb_component_0",
1233
+ "layers": ["top"],
1234
+ "subcircuit_id": "subcircuit_source_group_0",
1235
+ "x": -3.85,
1236
+ "y": -0.635,
1237
+ "source_port_id": "source_port_5"
1238
+ },
1239
+ {
1240
+ "type": "pcb_port",
1241
+ "pcb_port_id": "pcb_port_6",
1242
+ "pcb_component_id": "pcb_component_0",
1243
+ "layers": ["top"],
1244
+ "subcircuit_id": "subcircuit_source_group_0",
1245
+ "x": -3.85,
1246
+ "y": 0.635,
1247
+ "source_port_id": "source_port_6"
1248
+ },
1249
+ {
1250
+ "type": "pcb_port",
1251
+ "pcb_port_id": "pcb_port_7",
1252
+ "pcb_component_id": "pcb_component_0",
1253
+ "layers": ["top"],
1254
+ "subcircuit_id": "subcircuit_source_group_0",
1255
+ "x": -3.85,
1256
+ "y": 1.905,
1257
+ "source_port_id": "source_port_7"
1258
+ },
1259
+ {
1260
+ "type": "pcb_port",
1261
+ "pcb_port_id": "pcb_port_8",
1262
+ "pcb_component_id": "pcb_component_1",
1263
+ "layers": ["top"],
1264
+ "subcircuit_id": "subcircuit_source_group_0",
1265
+ "x": 5.49,
1266
+ "y": 4,
1267
+ "source_port_id": "source_port_8"
1268
+ },
1269
+ {
1270
+ "type": "pcb_port",
1271
+ "pcb_port_id": "pcb_port_9",
1272
+ "pcb_component_id": "pcb_component_1",
1273
+ "layers": ["top"],
1274
+ "subcircuit_id": "subcircuit_source_group_0",
1275
+ "x": 6.51,
1276
+ "y": 4,
1277
+ "source_port_id": "source_port_9"
1278
+ },
1279
+ {
1280
+ "type": "pcb_port",
1281
+ "pcb_port_id": "pcb_port_10",
1282
+ "pcb_component_id": "pcb_component_2",
1283
+ "layers": ["top"],
1284
+ "subcircuit_id": "subcircuit_source_group_0",
1285
+ "x": 5.49,
1286
+ "y": -4,
1287
+ "source_port_id": "source_port_10"
1288
+ },
1289
+ {
1290
+ "type": "pcb_port",
1291
+ "pcb_port_id": "pcb_port_11",
1292
+ "pcb_component_id": "pcb_component_2",
1293
+ "layers": ["top"],
1294
+ "subcircuit_id": "subcircuit_source_group_0",
1295
+ "x": 6.51,
1296
+ "y": -4,
1297
+ "source_port_id": "source_port_11"
1298
+ },
1299
+ {
1300
+ "type": "cad_component",
1301
+ "cad_component_id": "cad_component_0",
1302
+ "position": {
1303
+ "x": -6,
1304
+ "y": 0,
1305
+ "z": 0.7
1306
+ },
1307
+ "rotation": {
1308
+ "x": 0,
1309
+ "y": 0,
1310
+ "z": 0
1311
+ },
1312
+ "pcb_component_id": "pcb_component_0",
1313
+ "source_component_id": "source_component_0",
1314
+ "footprinter_string": "soic8"
1315
+ },
1316
+ {
1317
+ "type": "cad_component",
1318
+ "cad_component_id": "cad_component_1",
1319
+ "position": {
1320
+ "x": 6,
1321
+ "y": 4,
1322
+ "z": 0.7
1323
+ },
1324
+ "rotation": {
1325
+ "x": 0,
1326
+ "y": 0,
1327
+ "z": 0
1328
+ },
1329
+ "pcb_component_id": "pcb_component_1",
1330
+ "source_component_id": "source_component_1",
1331
+ "footprinter_string": "0402"
1332
+ },
1333
+ {
1334
+ "type": "cad_component",
1335
+ "cad_component_id": "cad_component_2",
1336
+ "position": {
1337
+ "x": 6,
1338
+ "y": -4,
1339
+ "z": 0.7
1340
+ },
1341
+ "rotation": {
1342
+ "x": 0,
1343
+ "y": 0,
1344
+ "z": 0
1345
+ },
1346
+ "pcb_component_id": "pcb_component_2",
1347
+ "source_component_id": "source_component_2",
1348
+ "footprinter_string": "0402"
1349
+ },
1350
+ {
1351
+ "type": "pcb_trace",
1352
+ "pcb_trace_id": "source_net_0_mst0_0",
1353
+ "connection_name": "source_net_0",
1354
+ "route": [
1355
+ {
1356
+ "route_type": "wire",
1357
+ "x": 6.51,
1358
+ "y": -4,
1359
+ "width": 0.15,
1360
+ "layer": "top"
1361
+ },
1362
+ {
1363
+ "route_type": "wire",
1364
+ "x": 6.51,
1365
+ "y": 4,
1366
+ "width": 0.15,
1367
+ "layer": "top"
1368
+ },
1369
+ {
1370
+ "route_type": "wire",
1371
+ "x": 6.51,
1372
+ "y": 4,
1373
+ "width": 0.15,
1374
+ "layer": "top"
1375
+ }
1376
+ ],
1377
+ "subcircuit_id": "subcircuit_source_group_0",
1378
+ "source_trace_id": "source_net_0"
1379
+ },
1380
+ {
1381
+ "type": "pcb_trace",
1382
+ "pcb_trace_id": "source_net_0_mst1_0",
1383
+ "connection_name": "source_net_0",
1384
+ "route": [
1385
+ {
1386
+ "route_type": "wire",
1387
+ "x": 6.51,
1388
+ "y": -4,
1389
+ "width": 0.15,
1390
+ "layer": "top"
1391
+ },
1392
+ {
1393
+ "route_type": "wire",
1394
+ "x": 6.0034806559943235,
1395
+ "y": -4.506519344005676,
1396
+ "width": 0.15,
1397
+ "layer": "top"
1398
+ },
1399
+ {
1400
+ "route_type": "wire",
1401
+ "x": -5.477886375986962,
1402
+ "y": -4.506519344005676,
1403
+ "width": 0.15,
1404
+ "layer": "top"
1405
+ },
1406
+ {
1407
+ "route_type": "wire",
1408
+ "x": -5.548480655994324,
1409
+ "y": -4.506519344005676,
1410
+ "width": 0.15,
1411
+ "layer": "top"
1412
+ },
1413
+ {
1414
+ "route_type": "wire",
1415
+ "x": -8.15,
1416
+ "y": -1.905,
1417
+ "width": 0.15,
1418
+ "layer": "top"
1419
+ }
1420
+ ],
1421
+ "subcircuit_id": "subcircuit_source_group_0",
1422
+ "source_trace_id": "source_net_0"
1423
+ }
1424
+ ]