app
AI Flow
Public Made by Adomby adom
Adom's AI Flow: a tool to help the AI follow all of the steps it takes to build a board.
main
John Lauer
0.1.36: the fab is written as 3rd party fab in docs, skills, flows and run logs; profile inhouse renamed fab
3750e82
6d ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516
{
"board": "ESC G431 (Adom molecule: STM32G431, DRV8300, six BSC016N06NS, TPSM365 buck, INA181 current sense), 64 x 74 mm, 4 layers",
"fab": "3rd party fab (copper ablation: keep as much copper as the electrical rules allow)",
"copperUm": 35,
"clearance": 0.2,
"edgeClearance": 0.5,
"inheritedErrors": 13,
"inheritedErrorsNote": "six malformed MOSFET courtyards and seven U2 pad clearances come from the source libraries; they are counted separately and never fixed by the flow",
"fixedRefs": [
"MP1",
"MP2",
"MP3",
"MP4",
"MC1",
"MC2",
"MC3",
"MC4",
"MC5",
"MC6",
"MC7",
"MC8",
"MC9",
"MC10",
"MC11",
"MC12",
"MC13",
"MC14",
"MC15",
"MC16",
"MC17",
"MC18",
"MC19",
"MC20",
"MC21",
"MC22",
"MC23"
],
"planes": {
"GND": "In1.Cu",
"+3V3": "In2.Cu"
},
"wideNets": {
"+VBAT": [
1.0,
0.5,
0.25
],
"/DRV_SHA": [
1.0,
0.5,
0.25
],
"/DRV_SHB": [
1.0,
0.5,
0.25
],
"/DRV_SHC": [
1.0,
0.5,
0.25
],
"GND_OUT": [
1.0,
0.5,
0.25
]
},
"midNets": {
"+5V": [
0.5,
0.25
],
"+12V": [
0.5,
0.25
]
},
"kelvin": {
"U6.3": "R32.2",
"U6.4": "R32.1"
},
"kelvinNote": "INA181 IN- (pad 3) taps the shunt's GND pad, IN+ (pad 4) taps its GND_OUT pad; dedicated traces, no plane stub, pour keepouts along them",
"loads": {
"+VBAT": {
"amps": 20,
"maxRiseC": 10
},
"/DRV_SHA": {
"amps": 20,
"maxRiseC": 10
},
"/DRV_SHB": {
"amps": 20,
"maxRiseC": 10
},
"/DRV_SHC": {
"amps": 20,
"maxRiseC": 10
},
"GND_OUT": {
"amps": 20,
"maxRiseC": 10
},
"+12V": {
"amps": 0.5
},
"+5V": {
"amps": 0.5
}
},
"hot": {
"Q1": {
"watts": 0.6,
"tabNet": "+VBAT"
},
"Q3": {
"watts": 0.6,
"tabNet": "+VBAT"
},
"Q5": {
"watts": 0.6,
"tabNet": "+VBAT"
},
"Q2": {
"watts": 0.6,
"tabNet": "/DRV_SHA"
},
"Q4": {
"watts": 0.6,
"tabNet": "/DRV_SHB"
},
"Q6": {
"watts": 0.6,
"tabNet": "/DRV_SHC"
},
"U1": {
"watts": 0.5,
"tabNet": "+VBAT",
"note": "SOT-89 pad 2 (the tab) is +VBAT, the input; the +VBAT F.Cu block has a tongue down to it"
}
},
"pours": [
{
"net": "GND",
"layers": [
"In1.Cu"
],
"outline": true,
"priority": 0,
"connection": "solid",
"name": "GND inner reference plane"
},
{
"net": "+3V3",
"layers": [
"In2.Cu"
],
"outline": true,
"priority": 0,
"connection": "solid",
"name": "+3V3 inner reference plane"
},
{
"net": "GND",
"outline": true,
"layers": [
"F.Cu",
"B.Cu"
],
"priority": 0,
"connection": "thermal",
"thermalGap": 0.3,
"thermalBridge": 0.35,
"name": "GND outer copper retention"
},
{
"net": "+VBAT",
"polygon": [
[
133.8,
59.5
],
[
156,
59.5
],
[
156,
125.5
],
[
133.8,
125.5
]
],
"layers": [
"F.Cu",
"B.Cu"
],
"name": "Battery rail and high-side thermal column",
"priority": 2,
"connection": "solid"
},
{
"net": "/DRV_SHC",
"polygon": [
[
156.2,
75.5
],
[
167,
75.5
],
[
167,
89.7
],
[
150,
89.7
],
[
150,
82.4
],
[
156.2,
82.4
]
],
"layers": [
"F.Cu"
],
"name": "Phase C front load corridor",
"priority": 3,
"connection": "solid"
},
{
"net": "/DRV_SHC",
"polygon": [
[
149,
82.5
],
[
167,
82.5
],
[
167,
89.7
],
[
130,
89.7
],
[
130,
86
],
[
149,
86
]
],
"layers": [
"B.Cu"
],
"name": "Phase C low-side thermal spreader",
"priority": 3,
"connection": "solid"
},
{
"net": "/DRV_SHB",
"polygon": [
[
156.2,
90
],
[
167,
90
],
[
167,
103.7
],
[
150,
103.7
],
[
150,
96.4
],
[
156.2,
96.4
]
],
"layers": [
"F.Cu"
],
"name": "Phase B front load corridor",
"priority": 3,
"connection": "solid"
},
{
"net": "/DRV_SHB",
"polygon": [
[
149,
96.5
],
[
158,
96.5
],
[
158,
90
],
[
167,
90
],
[
167,
109.5
],
[
158,
109.5
],
[
158,
103.7
],
[
149,
103.7
]
],
"layers": [
"B.Cu"
],
"name": "Phase B low-side thermal spreader",
"priority": 3,
"connection": "solid"
},
{
"net": "/DRV_SHA",
"polygon": [
[
156.2,
104
],
[
167,
104
],
[
167,
121.5
],
[
150,
121.5
],
[
150,
110.4
],
[
156.2,
110.4
]
],
"layers": [
"F.Cu"
],
"name": "Phase A front load corridor",
"priority": 3,
"connection": "solid"
},
{
"net": "/DRV_SHA",
"polygon": [
[
149,
110.5
],
[
167,
110.5
],
[
167,
124.5
],
[
130,
124.5
],
[
130,
118
],
[
149,
118
]
],
"layers": [
"B.Cu"
],
"name": "Phase A low-side thermal spreader",
"priority": 3,
"connection": "solid"
},
{
"net": "GND_OUT",
"polygon": [
[
125,
59.5
],
[
135.7,
59.5
],
[
135.7,
75
],
[
125,
75
]
],
"layers": [
"F.Cu",
"B.Cu"
],
"name": "Shunt return to fixed battery contact",
"priority": 3,
"connection": "solid"
}
],
"solidAt": [
"C45.2",
"C43.2",
"JP1.1",
"MC18.1",
"C36.2",
"C9.2",
"U1.1"
],
"thermalVias": [
{
"pad": "Q1.5",
"net": "+VBAT",
"count": 4
},
{
"pad": "Q3.5",
"net": "+VBAT",
"count": 4
},
{
"pad": "Q5.5",
"net": "+VBAT",
"count": 4
},
{
"pad": "Q2.5",
"net": "/DRV_SHA",
"count": 4
},
{
"pad": "Q4.5",
"net": "/DRV_SHB",
"count": 4
},
{
"pad": "Q6.5",
"net": "/DRV_SHC",
"count": 4
}
],
"stitchVias": [],
"notPoured": [
"/DRV_BSTA",
"/DRV_BSTB",
"/DRV_BSTC",
"/SW",
"/HSE_IN",
"/HSE_OUT",
"/COMP1_INM_IO1_BEMF_B",
"/COMP1_INM_IO2_BEMF_C",
"/COMP2_INM_IO1_BEMF_A",
"/VBAT_SENSE",
"/IBAT_SENSE",
"+3V3",
"/VDDA"
],
"notPouredNote": "switching and bootstrap nodes, the crystal, the BEMF dividers and comparator inputs, the sense taps; +3V3 and /VDDA have the In2.Cu plane",
"stitchViasNote": "inside both +VBAT rail blocks (F.Cu and B.Cu) and clear of other copper; a stitching via outside the pour is an unconnected item",
"poursNote": "Fresh Astra placement: high-side tabs at x152.95 and y79/93/107; low-side tabs at x155.05 and y87/101/115. Front phase corridors connect the fixed phase contacts, and rear regions spread tab heat. Broad battery copper occupies the central power column. These polygons replace all geometry from the earlier placement; native refill, DRC and measured analyses determine acceptance.",
"hotNote": "BSC016N06NS at 20 A phase current: I2R at 3 mOhm hot (Rds(on) 1.6 mOhm typ at 25 C) over one third of the electrical cycle (six-step) is 0.4 W, plus about 0.2 W of switching at 24 kHz: 0.6 W per FET. U1 is a linear regulator on the +VBAT tab: 0.5 W.",
"hotMaxRiseC": 60,
"hotMaxRiseNote": "the tab may sit 60 C above ambient at the stated dissipation (theta from the 40 C/W per square inch outer-copper heuristic of 0.1)",
"thermalRevisionNote": "Q4 left arm was starved by routing and added only 0.67 mm2 of filled copper. Replaced by a connected rear extension at x158..167, y90..109.5 beside MC9. All electrical and thermal limits unchanged."
}