molecule
ESC G431
Public Made by Adomby adom
Single-motor ESC for the drone test cell: STM32G431 + DRV8300 driving a 3-phase bridge of six BSC016N06NS MOSFETs, TPSM365 buck to 12 V, INA181 low-side current sense (25 mV/A, 131 A full-scale). Runs AM32. 64 x 74 mm, 4-layer.
main
John Lauer
Add local values, both-face contact leaders, J1 per-pin labels and MOSFET pin1 markers
181f6be
20d ago
from pathlib import Path
import json,re
D=Path(__file__).parent;s=(D/'esc-g431-astra-silkscreen-v19.kicad_pcb').read_text();m=json.loads((D/'labels-v19.json').read_text())
changes={'C5':{},'C15':{'x':149.5},'C38':{},'R1':{},'C36':{},'C22':{'x':126.35},'C20':{'x':129.65,'y':84.65}}
for l in m['labels']:
if l.get('reference') not in changes or 'value' not in l.get('role',''):continue
old=dict(l);l.update(size=.2,**changes[l['reference']]);pat=r'(\(gr_text '+re.escape(json.dumps(old['text']))+r' \(at )'+re.escape(str(old['x']))+r' '+re.escape(str(old['y']))+r' '+str(old.get('angle',0))+r'(\).*?\(size )[0-9.]+ [0-9.]+(\) \(thickness )[0-9.]+'
s,n=re.subn(pat,lambda q:q[1]+f'{l["x"]} {l["y"]} {l.get("angle",0)}'+q[2]+'.2 .2'+q[3]+'.03',s,count=1,flags=re.S);assert n==1,(old,n)
out=D/'esc-g431-astra-silkscreen-v20.kicad_pcb';out.write_text(s);m['board']=str(out);(D/'labels-v20.json').write_text(json.dumps(m,indent=2))