Overview
Circuit JSON (AKA tscircuit soup) is the name of the built low-level JSON circuit representation. It contains
all the information needed to visually represent a schematic, PCB, produce Gerber files, produce
bill of materials, run SPICE simulations, view warnings and more. It is designed to easily
interoperate with a SQL database.
Circuit JSON is an array of objects, a tscircuit soup object looks like this:
{
"type": "source_component",
"ftype": "simple_resistor",
"source_component_id": "source_component_1",
"name": "R1"
}
Typically a component like a resistor will be made up of many soup objects. All tscircuit
components (from the API reference section) have methods that convert themselves into soup.
Sometimes a component will analyze the soup produce by it’s children to produce it’s own
soup. For example, a <group />
will build soup for it’s children, then route traces.
Units
You can use any standard unit e.g. 0.1in
or 2.54mm
, these are automatically
translated to the numeric value for the “default unit” after parsing.
Source
source_component_base
{
"type": "source_component",
"source_component_id": "source_component_1",
"name": "C1",
"manufacturer_part_number": "exercitation id ipsum",
"supplier_part_numbers": {
"in_": [
"in cupidatat",
"anim",
"cupidatat",
"do esse labore sed dolor",
"Ut"
],
"do_5": [
"non",
"esse culpa cillum",
"incididunt",
"in pariatur proident",
"commodo"
],
"voluptate_83": ["reprehenderit ut dolore officia deserunt"]
}
}
Property | Type | Required | Description |
---|
type | string | Yes | |
ftype | string | No | |
source_component_id | string | Yes | |
name | string | Yes | |
manufacturer_part_number | string | No | |
supplier_part_numbers | object | No | |
source_group
{
"type": "source_group",
"source_group_id": "source_group_1"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
source_group_id | string | Yes | |
name | string | No | |
source_led
{
"type": "source_component",
"ftype": "led",
"source_component_id": "source_component_1",
"name": "L1",
"manufacturer_part_number": "culpa dolore dolor quis",
"supplier_part_numbers": {
"nulla_3e7": ["ut sit aliqua qui", "dolore amet enim eiusmod"],
"in2": [
"nulla est enim dolore anim",
"dolor exercitation cillum nulla",
"proident",
"do"
]
}
}
Property | Type | Required | Description |
---|
type | string | Yes | |
ftype | string | Yes | |
source_component_id | string | Yes | |
name | string | Yes | |
manufacturer_part_number | string | No | |
supplier_part_numbers | object | No | |
source_net
{
"type": "source_net",
"source_net_id": "source_net_1",
"name": "N1",
"member_source_group_ids": [
"aute esse",
"ut Duis",
"esse pariatur aliqua qui laborum"
],
"is_power": true,
"is_ground": true,
"is_digital_signal": false,
"is_analog_signal": true,
"trace_width": 25700714.050349265
}
Property | Type | Required | Description |
---|
type | string | Yes | |
source_net_id | string | Yes | |
name | string | Yes | |
member_source_group_ids | array | Yes | |
is_power | boolean | No | |
is_ground | boolean | No | |
is_digital_signal | boolean | No | |
is_analog_signal | boolean | No | |
trace_width | number | No | |
source_port
{
"type": "source_port",
"pin_number": -44141394.10892415,
"port_hints": ["1", "left"],
"name": "P1",
"source_port_id": "source_port_1",
"source_component_id": "source_component_1"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
pin_number | number | No | |
port_hints | array | No | |
name | string | Yes | |
source_port_id | string | Yes | |
source_component_id | string | Yes | |
source_simple_bug
@deprecated
{
"type": "source_component",
"ftype": "simple_bug",
"source_component_id": "source_component_1",
"name": "B1",
"manufacturer_part_number": "laborum non dolor ea",
"supplier_part_numbers": {
"Excepteur_4": ["amet enim aliquip nulla veniam", "incididunt ipsum"],
"qui_ab0": ["adipisicing"]
}
}
Property | Type | Required | Description |
---|
type | string | Yes | |
ftype | string | Yes | |
source_component_id | string | Yes | |
name | string | Yes | |
manufacturer_part_number | string | No | |
supplier_part_numbers | object | No | |
source_simple_capacitor
{
"type": "source_component",
"ftype": "simple_capacitor",
"source_component_id": "source_component_1",
"name": "C1",
"manufacturer_part_number": "dolor anim",
"supplier_part_numbers": {
"sint_7f1": [
"est commodo qui",
"eu minim aute",
"culpa anim proident aliqua",
"et veniam dolore",
"ea"
],
"irure_a": [
"in exercitation Lorem ad sint",
"in quis Ut exercitation",
"consectetur pariatur in do",
"cupidatat Excepteur esse",
"ullamco esse"
]
},
"capacitance": "1uF"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
ftype | string | Yes | |
source_component_id | string | Yes | |
name | string | Yes | |
manufacturer_part_number | string | No | |
supplier_part_numbers | object | No | |
capacitance | string, number | Yes | |
source_simple_chip
{
"type": "source_component",
"ftype": "simple_chip",
"source_component_id": "source_component_1",
"name": "C1"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
ftype | string | Yes | |
source_component_id | string | Yes | |
name | string | Yes | |
manufacturer_part_number | string | No | |
supplier_part_numbers | object | No | |
source_simple_diode
{
"type": "source_component",
"ftype": "simple_diode",
"source_component_id": "source_component_1",
"name": "D1",
"manufacturer_part_number": "nisi consectetur esse qui",
"supplier_part_numbers": {
"ad8e": [
"irure aliqua velit",
"officia non magna",
"eu nisi dolore consectetur",
"incididunt",
"ut"
]
}
}
Property | Type | Required | Description |
---|
type | string | Yes | |
ftype | string | Yes | |
source_component_id | string | Yes | |
name | string | Yes | |
manufacturer_part_number | string | No | |
supplier_part_numbers | object | No | |
source_simple_ground
{
"type": "source_component",
"ftype": "simple_ground",
"source_component_id": "source_component_1",
"name": "G1",
"manufacturer_part_number": "nostrud officia minim irure laboris",
"supplier_part_numbers": {
"dolor_3c": [
"exercitation veniam eiusmod nisi",
"id",
"occaecat cillum exercitation pariatur",
"amet nostrud proident ut occaecat",
"aute"
],
"ute98": [
"deserunt irure enim proident dolor",
"anim velit nisi",
"sint eiusmod Lorem ex"
],
"incididunt_e": ["culpa in sint qui", "cillum Duis dolore eu"]
}
}
Property | Type | Required | Description |
---|
type | string | Yes | |
ftype | string | Yes | |
source_component_id | string | Yes | |
name | string | Yes | |
manufacturer_part_number | string | No | |
supplier_part_numbers | object | No | |
source_simple_power_source
{
"type": "source_component",
"ftype": "simple_power_source",
"source_component_id": "source_component_1",
"name": "P1",
"manufacturer_part_number": "pariatur sint",
"supplier_part_numbers": {
"commodo_2d4": [
"consequat nostrud consectetur sint",
"est amet culpa non",
"anim aute ipsum dolore cillum",
"aliquip ullamco fugiat",
"do quis in"
]
},
"voltage": "5V"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
ftype | string | Yes | |
source_component_id | string | Yes | |
name | string | Yes | |
manufacturer_part_number | string | No | |
supplier_part_numbers | object | No | |
voltage | string, number | Yes | |
source_simple_resistor
{
"type": "source_component",
"ftype": "simple_resistor",
"source_component_id": "source_component_1",
"name": "R1",
"supplier_part_numbers": {
"velit60": [
"aute ea Ut enim est",
"non exercitation dolore incididunt ad",
"ea",
"laborum laboris veniam"
]
},
"resistance": "1k"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
ftype | string | Yes | |
source_component_id | string | Yes | |
name | string | Yes | |
manufacturer_part_number | string | No | |
supplier_part_numbers | object | No | |
resistance | string, number | Yes | |
source_trace
{
"type": "source_trace",
"source_trace_id": "source_trace_1",
"connected_source_port_ids": [
"officia",
"esse",
"cupidatat voluptate veniam ipsum",
"incididunt dolor"
],
"connected_source_net_ids": [
"Duis dolore aute deserunt et",
"velit proident consectetur ut",
"amet dolor pariatur in tempor",
"proident"
]
}
Property | Type | Required | Description |
---|
type | string | Yes | |
source_trace_id | string | Yes | |
connected_source_port_ids | array | Yes | |
connected_source_net_ids | array | Yes | |
Schematic
schematic_box
Draws a box on the schematic
{
"type": "schematic_box",
"schematic_component_id": "schematic_component_1",
"width": "5mm",
"height": "5mm",
"x": "3mm",
"y": "1mm"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
schematic_component_id | string | Yes | |
width | string, number | Yes | |
height | string, number | Yes | |
x | string, number | Yes | |
y | string, number | Yes | |
schematic_component
{
"type": "schematic_component",
"rotation": "90deg",
"size": {
"width": "5mm",
"height": "5mm"
},
"center": {
"x": "3mm",
"y": "1mm"
},
"source_component_id": "source_component_1",
"schematic_component_id": "schematic_component_1",
"pin_spacing": 93362735.23039353,
"pin_styles": {},
"box_width": "ex dolor aute",
"symbol_name": "minim dolore",
"port_arrangement": {
"left_size": 3,
"right_size": 3
},
"port_labels": {
"1": "VCC",
"2": "GND",
"3": "OUT"
}
}
Property | Type | Required | Description |
---|
type | string | Yes | |
rotation | string, number | No | |
size | object | Yes | |
center | object | Yes | |
source_component_id | string | Yes | |
schematic_component_id | string | Yes | |
pin_spacing | undefined | No | |
pin_styles | object | No | |
box_width | undefined | No | |
symbol_name | string | No | |
port_arrangement | undefined | No | |
port_labels | object | No | |
schematic_error
Defines a schematic error on the schematic
{
"schematic_error_id": "schematic_error_1",
"type": "schematic_error",
"error_type": "schematic_port_not_found",
"message": "do labore qui in ex"
}
Property | Type | Required | Description |
---|
schematic_error_id | string | Yes | |
type | string | Yes | |
error_type | string | Yes | |
message | string | Yes | |
schematic_line
{
"type": "schematic_line",
"schematic_component_id": "schematic_component_1",
"x1": "1mm",
"x2": "2mm",
"y1": "1mm",
"y2": "2mm"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
schematic_component_id | string | Yes | |
x1 | string, number | Yes | |
x2 | string, number | Yes | |
y1 | string, number | Yes | |
y2 | string, number | Yes | |
schematic_net_label
{
"type": "schematic_net_label",
"source_net_id": "source_net_1",
"center": {
"x": "3mm",
"y": "1mm"
},
"anchor_side": "left",
"text": "Hello, World!"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
source_net_id | string | Yes | |
center | object | Yes | |
anchor_side | string | Yes | |
text | string | Yes | |
schematic_path
{
"type": "schematic_path",
"schematic_component_id": "schematic_component_1",
"fill_color": "blue",
"is_filled": false,
"points": [
{
"x": "3mm",
"y": "1mm"
},
{
"x": "3mm",
"y": "1mm"
}
]
}
Property | Type | Required | Description |
---|
type | string | Yes | |
schematic_component_id | string | Yes | |
fill_color | string | No | |
is_filled | boolean | No | |
points | array | Yes | |
schematic_port
Defines a port on a schematic component
{
"type": "schematic_port",
"schematic_port_id": "schematic_port_1",
"source_port_id": "source_port_1",
"schematic_component_id": "schematic_component_1",
"center": {
"x": "3mm",
"y": "1mm"
},
"facing_direction": "up"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
schematic_port_id | string | Yes | |
source_port_id | string | Yes | |
schematic_component_id | string | No | |
center | object | Yes | |
facing_direction | string | No | |
schematic_text
{
"type": "schematic_text",
"schematic_component_id": "schematic_component_1",
"schematic_text_id": "schematic_text_1",
"text": "Hello, World!",
"position": {
"x": "3mm",
"y": "1mm"
},
"rotation": "90deg",
"anchor": "left"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
schematic_component_id | string | Yes | |
schematic_text_id | string | Yes | |
text | string | Yes | |
position | object | Yes | |
rotation | number | No | |
anchor | string | No | |
schematic_trace
{
"type": "schematic_trace",
"schematic_trace_id": "schematic_trace_1",
"source_trace_id": "source_trace_1",
"edges": [
{
"from": {
"x": "3mm",
"y": "1mm"
},
"to": {
"x": "3mm",
"y": "1mm"
},
"from_schematic_port_id": "from_schematic_port_1",
"to_schematic_port_id": "to_schematic_port_1"
},
{
"from": {
"x": "3mm",
"y": "1mm"
},
"to": {
"x": "3mm",
"y": "1mm"
},
"from_schematic_port_id": "from_schematic_port_1"
}
]
}
Property | Type | Required | Description |
---|
type | string | Yes | |
schematic_trace_id | string | Yes | |
source_trace_id | string | Yes | |
edges | array | Yes | |
Pcb
pcb_board
Defines the board outline of the PCB
{
"type": "pcb_board",
"width": "5mm",
"height": "5mm",
"center": {
"x": "3mm",
"y": "1mm"
}
}
Property | Type | Required | Description |
---|
type | string | Yes | |
pcb_board_id | string | No | |
width | string, number | Yes | |
height | string, number | Yes | |
center | object | Yes | |
outline | array | No | |
pcb_component
Defines a component on the PCB
{
"type": "pcb_component",
"pcb_component_id": "pcb_component_1",
"source_component_id": "source_component_1",
"center": {
"x": "3mm",
"y": "1mm"
},
"layer": "top",
"rotation": "90deg",
"width": "5mm",
"height": "5mm"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
pcb_component_id | string | No | |
source_component_id | string | Yes | |
center | object | Yes | |
layer | undefined | Yes | |
rotation | string, number | Yes | |
width | undefined | Yes | |
height | undefined | Yes | |
pcb_fabrication_note_path
Defines a fabrication path on the PCB for fabricators or assemblers
{
"type": "pcb_fabrication_note_path",
"pcb_fabrication_note_path_id": "pcb_fabrication_note_path_1",
"pcb_component_id": "pcb_component_1",
"layer": "top",
"route": [
{
"x": "3mm",
"y": "1mm"
},
{
"x": "3mm",
"y": "1mm"
},
{
"x": "3mm",
"y": "1mm"
},
{
"x": "3mm",
"y": "1mm"
}
],
"stroke_width": "0.1mm",
"color": "consequat eu aliqua ut"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
pcb_fabrication_note_path_id | string | No | |
pcb_component_id | string | Yes | |
layer | string | Yes | |
route | array | Yes | |
stroke_width | undefined | Yes | |
color | string | No | |
pcb_fabrication_note_text
Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators
{
"type": "pcb_fabrication_note_text",
"pcb_component_id": "pcb_component_1",
"text": "Hello, World!",
"layer": "top"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
pcb_fabrication_note_text_id | string | No | |
font | string | No | |
font_size | string, number | No | |
pcb_component_id | string | Yes | |
text | string | Yes | |
layer | string | Yes | |
anchor_position | object | No | |
anchor_alignment | string | No | |
color | string | No | |
pcb_placement_error
Defines a placement error on the PCB
{
"pcb_error_id": "pcb_error_1",
"type": "pcb_error",
"error_type": "pcb_placement_error",
"message": "anim id"
}
Property | Type | Required | Description |
---|
pcb_error_id | string | Yes | |
type | string | Yes | |
error_type | string | Yes | |
message | string | Yes | |
pcb_port
Defines a port on the PCB
{
"type": "pcb_port",
"pcb_port_id": "pcb_port_1",
"source_port_id": "source_port_1",
"pcb_component_id": "pcb_component_1",
"x": "3mm",
"y": "1mm",
"layers": ["top", "bottom"]
}
Property | Type | Required | Description |
---|
type | string | Yes | |
pcb_port_id | string | Yes | |
source_port_id | string | Yes | |
pcb_component_id | string | Yes | |
x | string, number | Yes | |
y | string, number | Yes | |
layers | array | Yes | |
pcb_port_not_matched_error
Defines a trace error on the PCB
{
"pcb_error_id": "pcb_error_1",
"type": "pcb_error",
"error_type": "pcb_port_not_matched_error",
"message": "in qui in",
"pcb_component_ids": ["pcb_component_1"]
}
Property | Type | Required | Description |
---|
pcb_error_id | string | Yes | |
type | string | Yes | |
error_type | string | Yes | |
message | string | Yes | |
pcb_component_ids | array | Yes | |
pcb_silkscreen_circle
Defines a silkscreen circle on the PCB
{
"type": "pcb_silkscreen_circle",
"pcb_silkscreen_circle_id": "pcb_silkscreen_circle_1",
"pcb_component_id": "pcb_component_1",
"center": {
"x": "3mm",
"y": "1mm"
},
"radius": "5mm",
"layer": "top"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
pcb_silkscreen_circle_id | string | Yes | |
pcb_component_id | string | Yes | |
center | object | Yes | |
radius | undefined | Yes | |
layer | string | Yes | |
pcb_silkscreen_line
Defines a silkscreen line on the PCB
{
"type": "pcb_silkscreen_line",
"pcb_silkscreen_line_id": "pcb_silkscreen_line_1",
"pcb_component_id": "pcb_component_1",
"x1": "1mm",
"y1": "1mm",
"x2": "2mm",
"y2": "2mm",
"layer": "top"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
pcb_silkscreen_line_id | string | Yes | |
pcb_component_id | string | Yes | |
stroke_width | string, number | No | |
x1 | string, number | Yes | |
y1 | string, number | Yes | |
x2 | string, number | Yes | |
y2 | string, number | Yes | |
layer | string | Yes | |
pcb_silkscreen_oval
Defines a silkscreen oval on the PCB
{
"type": "pcb_silkscreen_oval",
"pcb_silkscreen_oval_id": "pcb_silkscreen_oval_1",
"pcb_component_id": "pcb_component_1",
"center": {
"x": "3mm",
"y": "1mm"
},
"radius_x": "laborum id aute commodo Excepteur",
"radius_y": "nisi",
"layer": "top"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
pcb_silkscreen_oval_id | string | Yes | |
pcb_component_id | string | Yes | |
center | object | Yes | |
radius_x | undefined | Yes | |
radius_y | undefined | Yes | |
layer | string | Yes | |
pcb_silkscreen_path
Defines a silkscreen path on the PCB
{
"type": "pcb_silkscreen_path",
"pcb_silkscreen_path_id": "pcb_silkscreen_path_1",
"pcb_component_id": "pcb_component_1",
"layer": "top",
"route": [
{
"x": "3mm",
"y": "1mm"
},
{
"x": "3mm",
"y": "1mm"
}
],
"stroke_width": "0.1mm"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
pcb_silkscreen_path_id | string | Yes | |
pcb_component_id | string | Yes | |
layer | string | Yes | |
route | array | Yes | |
stroke_width | undefined | Yes | |
pcb_silkscreen_rect
Defines a silkscreen rect on the PCB
{
"type": "pcb_silkscreen_rect",
"pcb_silkscreen_rect_id": "pcb_silkscreen_rect_1",
"pcb_component_id": "pcb_component_1",
"center": {
"x": "3mm",
"y": "1mm"
},
"width": "5mm",
"height": "5mm",
"layer": "top"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
pcb_silkscreen_rect_id | string | Yes | |
pcb_component_id | string | Yes | |
center | object | Yes | |
width | undefined | Yes | |
height | undefined | Yes | |
layer | string | Yes | |
pcb_silkscreen_text
Defines silkscreen text on the PCB
{
"type": "pcb_silkscreen_text",
"font": "tscircuit2024",
"font_size": "1mm",
"pcb_component_id": "pcb_component_1",
"text": "Hello, World!",
"layer": "top",
"anchor_position": {
"x": "3mm",
"y": "1mm"
},
"anchor_alignment": "bottom_left"
}
Property | Type | Required | Description |
---|
type | string | Yes | |
font | string | No | |
font_size | string, number | No | |
pcb_component_id | string | Yes | |
text | string | Yes | |
layer | string | Yes | |
anchor_position | object | No | |
anchor_alignment | string | No | |
pcb_text
Defines text on the PCB
{
"type": "pcb_text",
"text": "Hello, World!",
"x": "3mm",
"y": "1mm",
"align": "bottom-left",
"width": "5mm",
"height": "5mm",
"lines": 1
}
Property | Type | Required | Description |
---|
type | string | Yes | |
text | string | Yes | |
x | string, number | Yes | |
y | string, number | Yes | |
align | string | Yes | |
width | string, number | Yes | |
height | string, number | Yes | |
lines | number | Yes | |
pcb_trace
{
"type": "pcb_trace",
"pcb_trace_id": "pcb_trace_1",
"route_thickness_mode": "interpolated",
"route": [
{
"route_type": "wire",
"x": "3mm",
"y": "1mm",
"width": "5mm",
"start_pcb_port_id": "start_pcb_port_1",
"end_pcb_port_id": "end_pcb_port_1",
"layer": "top"
},
{
"route_type": "wire",
"x": "3mm",
"y": "1mm",
"width": "5mm",
"end_pcb_port_id": "end_pcb_port_1",
"layer": "top"
},
{
"route_type": "via",
"x": "3mm",
"y": "1mm",
"from_layer": "top",
"to_layer": "bottom"
},
{
"route_type": "wire",
"x": "3mm",
"y": "1mm",
"width": "5mm",
"start_pcb_port_id": "start_pcb_port_1",
"end_pcb_port_id": "end_pcb_port_1",
"layer": "top"
},
{
"route_type": "wire",
"x": "3mm",
"y": "1mm",
"width": "5mm",
"start_pcb_port_id": "start_pcb_port_1",
"end_pcb_port_id": "end_pcb_port_1",
"layer": "top"
}
]
}
Property | Type | Required | Description |
---|
type | string | Yes | |
source_trace_id | string | No | |
pcb_component_id | string | No | |
pcb_trace_id | string | Yes | |
route_thickness_mode | string | No | |
should_round_corners | boolean | No | |
route | array | Yes | |
pcb_trace_error
Defines a trace error on the PCB
{
"pcb_error_id": "pcb_error_1",
"type": "pcb_error",
"error_type": "pcb_trace_error",
"message": "esse nostrud",
"center": {
"x": "3mm",
"y": "1mm"
},
"pcb_trace_id": "pcb_trace_1",
"source_trace_id": "source_trace_1",
"pcb_component_ids": ["pcb_component_1"],
"pcb_port_ids": ["pcb_port_1", "pcb_port_2"]
}
Property | Type | Required | Description |
---|
pcb_error_id | string | Yes | |
type | string | Yes | |
error_type | string | Yes | |
message | string | Yes | |
center | object | No | |
pcb_trace_id | string | Yes | |
source_trace_id | string | Yes | |
pcb_component_ids | array | Yes | |
pcb_port_ids | array | Yes | |
pcb_trace_hint
A hint that can be used to generate a PCB trace
{
"pcb_trace_hint_id": "pcb_trace_hint_1",
"type": "pcb_trace_hint",
"pcb_port_id": "pcb_port_1",
"pcb_component_id": "pcb_component_1",
"route": [
{
"x": "3mm",
"y": "1mm",
"via": false,
"to_layer": "bottom",
"trace_width": 29179354.518070206
}
]
}
Property | Type | Required | Description |
---|
pcb_trace_hint_id | string | Yes | |
type | string | Yes | |
pcb_port_id | string | Yes | |
pcb_component_id | string | Yes | |
route | array | Yes | |
pcb_via
Defines a via on the PCB
{
"type": "pcb_via",
"x": "3mm",
"y": "1mm",
"layers": ["top", "bottom"]
}
Property | Type | Required | Description |
---|
type | string | Yes | |
x | string, number | Yes | |
y | string, number | Yes | |
outer_diameter | string, number | No | |
hole_diameter | string, number | No | |
from_layer | undefined | No | |
to_layer | undefined | No | |
layers | array | Yes | |
Misc
any_circuit_element
{
"schematic_error_id": "schematic_error_1",
"type": "schematic_error",
"error_type": "schematic_port_not_found",
"message": "commodo"
}
any_source_component
{
"type": "source_component",
"ftype": "simple_diode",
"source_component_id": "source_component_1",
"name": "D1",
"manufacturer_part_number": "in enim",
"supplier_part_numbers": {
"anim_bb": [
"incididunt nulla Duis",
"pariatur consectetur cupidatat",
"fugiat Excepteur"
]
}
}
cad_component
Defines a component on the PCB
{
"type": "cad_component",
"cad_component_id": "cad_component_1",
"pcb_component_id": "pcb_component_1",
"source_component_id": "source_component_1",
"position": {
"x": "3mm",
"y": "1mm",
"z": 97839368.19161832
},
"rotation": "90deg",
"size": {
"x": "3mm",
"y": "1mm",
"z": 21254537.386721
},
"layer": "top",
"footprinter_string": "commodo",
"model_obj_url": "ullamco cupidatat deserunt et",
"model_stl_url": "consequat laboris quis ad sed",
"model_3mf_url": "Duis in amet elit",
"model_jscad": {}
}
Property | Type | Required | Description |
---|
type | string | Yes | |
cad_component_id | string | Yes | |
pcb_component_id | string | Yes | |
source_component_id | string | Yes | |
position | object | Yes | |
rotation | object | No | |
size | object | No | |
layer | undefined | No | |
footprinter_string | string | No | |
model_obj_url | string | No | |
model_stl_url | string | No | |
model_3mf_url | string | No | |
model_jscad | undefined | No | |
capacitance
current
distance
inductance
layer_ref
layer_string
length
pcb_hole
Defines a hole on the PCB
{
"pcb_hole_id": "pcb_hole_1",
"type": "pcb_hole",
"hole_shape": "round",
"hole_width": "1mm",
"hole_height": "1mm",
"x": "3mm",
"y": "1mm"
}
pcb_keepout
{
"type": "pcb_keepout",
"shape": "circle",
"center": {
"x": "3mm",
"y": "1mm"
},
"radius": "5mm",
"pcb_keepout_id": "pcb_keepout_1",
"layers": ["top", "bottom"],
"description": "aliqua laborum ullamco"
}
pcb_plated_hole
Defines a plated hole on the PCB
{
"type": "pcb_plated_hole",
"shape": "circle",
"outer_diameter": "1.2mm",
"hole_diameter": "0.08in",
"x": "3mm",
"y": "1mm",
"layers": ["top", "bottom"],
"port_hints": ["1", "left"],
"pcb_component_id": "pcb_component_1",
"pcb_plated_hole_id": "pcb_plated_hole_1"
}
pcb_route_hint
{
"x": "3mm",
"y": "1mm",
"via": true,
"via_to_layer": {
"name": "P1"
}
}
Property | Type | Required | Description |
---|
x | string, number | Yes | |
y | string, number | Yes | |
via | boolean | No | |
via_to_layer | undefined | No | |
pcb_route_hints
[
{
"x": "5mm",
"y": "6mm",
"via": false
}
]
pcb_smtpad
Defines an SMT pad on the PCB
{
"pcb_smtpad_id": "pcb_smtpad_1",
"type": "pcb_smtpad",
"shape": "rect",
"x": "3mm",
"y": "1mm",
"width": "5mm",
"height": "5mm",
"layer": "top",
"port_hints": ["1", "left"],
"pcb_component_id": "pcb_component_1",
"pcb_port_id": "pcb_port_1"
}
point
{
"x": "3mm",
"y": "1mm"
}
Property | Type | Required | Description |
---|
x | string, number | Yes | |
y | string, number | Yes | |
point3
{
"x": "3mm",
"y": "1mm",
"z": -76323084.49027786
}
Property | Type | Required | Description |
---|
x | string, number | Yes | |
y | string, number | Yes | |
z | string, number | Yes | |
position
{
"x": "3mm",
"y": "1mm"
}
Property | Type | Required | Description |
---|
x | string, number | Yes | |
y | string, number | Yes | |
position3
{
"x": "3mm",
"y": "1mm",
"z": 40116288.04740775
}
Property | Type | Required | Description |
---|
x | string, number | Yes | |
y | string, number | Yes | |
z | string, number | Yes | |
resistance
rotation
route_hint_point
{
"x": "3mm",
"y": "1mm",
"to_layer": "bottom",
"trace_width": 46665910.013412684
}
Property | Type | Required | Description |
---|
x | string, number | Yes | |
y | string, number | Yes | |
via | boolean | No | |
to_layer | undefined | No | |
trace_width | string, number | No | |
schematic_pin_styles
{
"quis0": {
"left_margin": -4408656.335038647,
"right_margin": "nisi ullamco mollit ad aliquip",
"top_margin": 3100953.615015283,
"bottom_margin": -62822363.50467563
}
}
size
{
"width": "5mm",
"height": "5mm"
}
Property | Type | Required | Description |
---|
width | number | Yes | |
height | number | Yes | |
supplier_name
time
visible_layer
voltage