From e1b3aad58a316bda9df415040ac3b168b6750223 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Sun, 5 Jul 2026 15:31:41 -0700 Subject: [PATCH 1/8] wip --- edg/abstract_parts/UsbConnectors.py | 14 ++++-- edg/parts/connector/UsbPorts.py | 64 ++++++++++++++++++++++------ examples/test_ble_joystick.py | 2 +- examples/test_esp_programmer.py | 2 +- examples/test_iot_display.py | 4 +- examples/test_iot_iron.py | 2 +- examples/test_iot_thermal_camera.py | 2 +- examples/test_keyboard.py | 2 +- examples/test_lora.py | 3 +- examples/test_multimeter.py | 2 +- examples/test_pcbbot.py | 2 +- examples/test_swd_debugger.py | 4 +- examples/test_tofarray.py | 2 +- examples/test_usb_fpga_programmer.py | 2 +- examples/test_usb_source_measure.py | 4 +- examples/test_usb_uart.py | 2 +- 16 files changed, 76 insertions(+), 37 deletions(-) diff --git a/edg/abstract_parts/UsbConnectors.py b/edg/abstract_parts/UsbConnectors.py index be955dc64..378e211ec 100644 --- a/edg/abstract_parts/UsbConnectors.py +++ b/edg/abstract_parts/UsbConnectors.py @@ -12,10 +12,13 @@ class UsbConnector(Connector): @abstract_block class UsbHostConnector(UsbConnector): - """Abstract base class for a USB 2.0 device-side port connector""" + """Abstract base class for a USB 2.0 device-side port connector.""" - def __init__(self) -> None: + def __init__(self, *, generate_esd_diode: BoolLike = True) -> None: super().__init__() + + self.generate_esd_diode = self.ArgParameter(generate_esd_diode) + self.pwr = self.Port(VoltageSink.empty(), optional=True) self.gnd = self.Port(Ground.empty()) @@ -24,10 +27,13 @@ def __init__(self) -> None: @abstract_block class UsbDeviceConnector(UsbConnector, PowerSource): - """Abstract base class for a USB 2.0 device-side port connector""" + """Abstract base class for a USB 2.0 device-side port connector.""" - def __init__(self) -> None: + def __init__(self, *, generate_esd_diode: BoolLike = True) -> None: super().__init__() + + self.generate_esd_diode = self.ArgParameter(generate_esd_diode) + self.pwr = self.Port(VoltageSource.empty(), optional=True) self.gnd = self.Port(Ground.empty()) diff --git a/edg/parts/connector/UsbPorts.py b/edg/parts/connector/UsbPorts.py index 06180520b..0c25d4364 100644 --- a/edg/parts/connector/UsbPorts.py +++ b/edg/parts/connector/UsbPorts.py @@ -33,7 +33,7 @@ def contents(self) -> None: class UsbCReceptacle_Device(InternalSubcircuit, FootprintBlock, JlcPart): - """Raw USB Type-C Receptacle + """Raw generic USB Type-C Receptacle Pullup capable indicates whether this port (or more accurately, the device on the other side) can pull up the signal. In UFP (upstream-facing, device) mode the power source should pull up CC.""" @@ -44,8 +44,8 @@ def __init__( current_limits: RangeLike = UsbConnector.USB2_CURRENT_LIMITS, ) -> None: super().__init__() - self.pwr = self.Port(VoltageSource(voltage=voltage, current_limits=current_limits), optional=True) self.gnd = self.Port(Ground()) + self.pwr = self.Port(VoltageSource(voltage=voltage, current_limits=current_limits), optional=True) self.usb = self.Port(UsbHostPort(), optional=True) self.shield = self.Port(Ground(), optional=True) @@ -72,9 +72,7 @@ def contents(self) -> None: "B5": self.cc.cc2, "S1": self.shield, }, - mfr="Sparkfun", - part="COM-15111", - datasheet="https://cdn.sparkfun.com/assets/8/6/b/4/5/A40-00119-A52-12.pdf", + part="USB-C Receptacle", pnp_rot=0, pnp_offset=(0, -1.25), ) @@ -88,20 +86,31 @@ def __init__( self, voltage: RangeLike = UsbConnector.USB2_VOLTAGE_RANGE, # allow custom PD voltage and current current_limits: RangeLike = UsbConnector.USB2_CURRENT_LIMITS, + *, + generate_esd_diode: BoolLike = True, ) -> None: - super().__init__() + super().__init__(generate_esd_diode=generate_esd_diode) self.conn = self.Block(UsbCReceptacle_Device(voltage=voltage, current_limits=current_limits)) - self.connect(self.pwr, self.conn.pwr) self.connect(self.gnd, self.conn.gnd) + self.connect(self.pwr, self.conn.pwr) self.connect(self.usb, self.conn.usb) self.cc = self.Port(UsbCcPort.empty(), optional=True) # external connectivity defines the circuit - self.generator_param(self.pwr.is_connected(), self.cc.is_connected()) + self.generator_param( + self.pwr.is_connected(), self.usb.is_connected(), self.cc.is_connected(), self.generate_esd_diode + ) @override def generate(self) -> None: super().generate() + + if self.usb.is_connected(): + if self.get(self.generate_esd_diode): + self.esd = self.Block(UsbEsdDiode()) + self.connect(self.esd.gnd, self.gnd) + self.connect(self.esd.usb, self.usb) + if self.get(self.cc.is_connected()): # if CC externally connected, connect directly to USB port self.connect(self.cc, self.conn.cc) self.require( @@ -145,17 +154,19 @@ def contents(self) -> None: ) -class UsbMicroBReceptacle(UsbDeviceConnector, FootprintBlock): +class Molex_105017_0001_Device(InternalSubcircuit, FootprintBlock): def __init__(self) -> None: super().__init__() + self.gnd = self.Port(Ground()) + self.pwr = self.Port( + VoltageSource(voltage=UsbConnector.USB2_VOLTAGE_RANGE, current_limits=UsbConnector.USB2_CURRENT_LIMITS) + ) + self.usb = self.Port(UsbHostPort()) + self.shield = self.Port(Ground(), optional=True) @override def contents(self) -> None: super().contents() - self.pwr.init_from(VoltageSource(voltage=self.USB2_VOLTAGE_RANGE, current_limits=self.USB2_CURRENT_LIMITS)) - self.gnd.init_from(Ground()) - self.usb.init_from(UsbHostPort()) - self.footprint( "J", "Connector_USB:USB_Micro-B_Molex-105017-0001", @@ -165,7 +176,7 @@ def contents(self) -> None: "2": self.usb.dm, "3": self.usb.dp, # '4': TODO: ID pin - "6": self.gnd, # shield + "6": self.shield, }, mfr="Molex", part="105017-0001", @@ -173,6 +184,31 @@ def contents(self) -> None: ) +class UsbMicroBReceptacle(UsbDeviceConnector, GeneratorBlock): + def __init__(self, *, generate_esd_diode: BoolLike = True) -> None: + super().__init__(generate_esd_diode=generate_esd_diode) + + self.conn = self.Block(Molex_105017_0001_Device()) + self.connect(self.gnd, self.conn.gnd) + self.connect(self.pwr, self.conn.pwr) + self.connect(self.usb, self.conn.usb) + + self.generator_param(self.usb.is_connected(), self.generate_esd_diode) + + @override + def generate(self) -> None: + super().generate() + + if self.usb.is_connected(): + if self.get(self.generate_esd_diode): + self.esd = self.Block(UsbEsdDiode()) + self.connect(self.esd.gnd, self.gnd) + self.connect(self.esd.usb, self.usb) + + # TODO there does not seem to be full agreement on what to do with the shield pin, we arbitrarily ground it + self.connect(self.gnd, self.conn.shield) + + class UsbCcPulldownResistor(InternalSubcircuit, Block): """Pull-down resistors on the CC lines for a device to request power from a type-C UFP port, without needing a USB PD IC.""" diff --git a/examples/test_ble_joystick.py b/examples/test_ble_joystick.py index c58ef4610..6da1a167a 100644 --- a/examples/test_ble_joystick.py +++ b/examples/test_ble_joystick.py @@ -187,7 +187,7 @@ def contents(self) -> None: ) as imp: self.mcu = imp.Block(Holyiot_18010()) # nRF52 weirdly requires Vbus, so this can't be abstract self.connect(self.mcu.pwr_usb, self.vusb) - (self.usb_esd,), self.usb_chain = self.chain(self.usb.usb, imp.Block(UsbEsdDiode()), self.mcu.usb.request()) + self.connect(self.usb.usb, self.mcu.usb.request()) # debugging LEDs (self.ledr,), _ = self.chain(imp.Block(IndicatorLed(Led.Red)), self.mcu.gpio.request("led")) diff --git a/examples/test_esp_programmer.py b/examples/test_esp_programmer.py index e34eeda73..ad14f0ad9 100644 --- a/examples/test_esp_programmer.py +++ b/examples/test_esp_programmer.py @@ -50,7 +50,7 @@ def contents(self) -> None: self.vusb_protect = imp.Block(ProtectionZenerDiode(voltage=(5.25, 6) * Volt)) self.usbconv = imp.Block(Cp2102()) - (self.usb_esd,), self.usb_chain = self.chain(self.usb_uart.usb, imp.Block(UsbEsdDiode()), self.usbconv.usb) + self.connect(self.usb_uart.usb, self.usbconv.usb) # for target power only self.reg_3v3 = imp.Block(LinearRegulator(output_voltage=3.3 * Volt(tol=0.05))) diff --git a/examples/test_iot_display.py b/examples/test_iot_display.py index 420bfed47..b2a2bc505 100644 --- a/examples/test_iot_display.py +++ b/examples/test_iot_display.py @@ -89,9 +89,7 @@ def contents(self) -> None: ) as imp: self.mcu = imp.Block(IoController()) self.mcu.with_mixin(IoControllerWifi()) - - # need to name the USB chain so the USB net has the _N and _P postfix for differential traces - (self.usb_esd,), self.usb_chain = self.chain(self.usb.usb, imp.Block(UsbEsdDiode()), self.mcu.usb.request()) + self.connect(self.usb.usb, self.mcu.usb.request()) # DEBUGGING UI ELEMENTS (self.ledr,), _ = self.chain(imp.Block(IndicatorLed(Led.Red)), self.mcu.gpio.request("ledr")) diff --git a/examples/test_iot_iron.py b/examples/test_iot_iron.py index ec9b7f796..75e565183 100644 --- a/examples/test_iot_iron.py +++ b/examples/test_iot_iron.py @@ -95,7 +95,7 @@ def contents(self) -> None: self.connect(self.mcu.gpio.request("pd_int"), self.pd.int) self.connect(self.i2c, self.pd.i2c) - (self.usb_esd,), self.usb_chain = self.chain(self.usb.usb, imp.Block(UsbEsdDiode()), self.mcu.usb.request()) + self.connect(self.usb.usb, self.mcu.usb.request()) (self.vusb_sense,), _ = self.chain( self.vusb, diff --git a/examples/test_iot_thermal_camera.py b/examples/test_iot_thermal_camera.py index 39f8c8e84..d5e232815 100644 --- a/examples/test_iot_thermal_camera.py +++ b/examples/test_iot_thermal_camera.py @@ -648,7 +648,7 @@ def contents(self) -> None: self.connect(self.mcu.gpio.request("eth_cs"), self.phy.cs) self.connect(int_line, self.phy.int) - (self.usb_esd,), self.usb_chain = self.chain(self.usb.usb, imp.Block(UsbEsdDiode()), self.mcu.usb.request()) + self.connect(self.usb.usb, self.mcu.usb.request()) self.i2c = self.mcu.i2c.request("i2c") (self.i2c_pull, self.i2c_tp), self.i2c_chain = self.chain( diff --git a/examples/test_keyboard.py b/examples/test_keyboard.py index 3cc3ef9a1..cade51307 100644 --- a/examples/test_keyboard.py +++ b/examples/test_keyboard.py @@ -31,7 +31,7 @@ def contents(self) -> None: ImplicitConnect(self.reg.gnd, [Common]), ) as imp: self.mcu = imp.Block(IoController()) - (self.usb_esd,), _ = self.chain(self.usb.usb, imp.Block(UsbEsdDiode()), self.mcu.usb.request()) + self.connect(self.usb.usb, self.mcu.usb.request()) # debugging LEDs (self.ledr,), _ = self.chain(imp.Block(IndicatorSinkLed(Led.Red)), self.mcu.gpio.request("led")) diff --git a/examples/test_lora.py b/examples/test_lora.py index d529b25ec..be6fe20ab 100644 --- a/examples/test_lora.py +++ b/examples/test_lora.py @@ -84,8 +84,7 @@ def contents(self) -> None: ) as imp: self.mcu = imp.Block(IoController()) self.mcu.with_mixin(IoControllerBle()) - - (self.usb_esd,), self.usb_chain = self.chain(self.usb.usb, imp.Block(UsbEsdDiode()), self.mcu.usb.request()) + self.connect(self.usb.usb, self.mcu.usb.request()) (self.ledr,), _ = self.chain(self.mcu.gpio.request("ledr"), imp.Block(IndicatorLed(Led.Red))) (self.ledg,), _ = self.chain(self.mcu.gpio.request("ledg"), imp.Block(IndicatorLed(Led.Yellow))) diff --git a/examples/test_multimeter.py b/examples/test_multimeter.py index 19389c9b4..064329dfa 100644 --- a/examples/test_multimeter.py +++ b/examples/test_multimeter.py @@ -244,7 +244,7 @@ def contents(self) -> None: self.mcu.adc.request("vbatsense"), ) - (self.usb_esd,), _ = self.chain(self.data_usb.usb, imp.Block(UsbEsdDiode()), self.mcu.usb.request()) + self.connect(self.data_usb.usb, self.mcu.usb.request()) self.connect(self.mcu.pwr_usb, self.data_usb.pwr) self.chain(self.gate.btn_out, self.mcu.gpio.request("sw0")) diff --git a/examples/test_pcbbot.py b/examples/test_pcbbot.py index f4ba23ef9..c9f60bfb5 100644 --- a/examples/test_pcbbot.py +++ b/examples/test_pcbbot.py @@ -83,7 +83,7 @@ def contents(self) -> None: ) as imp: self.mcu = imp.Block(IoController()) - (self.usb_esd,), self.usb_chain = self.chain(self.usb.usb, imp.Block(UsbEsdDiode()), self.mcu.usb.request()) + self.connect(self.usb.usb, self.mcu.usb.request()) # single onboard debugging LED (self.led,), _ = self.chain(self.mcu.gpio.request("led"), imp.Block(IndicatorLed(Led.Red))) diff --git a/examples/test_swd_debugger.py b/examples/test_swd_debugger.py index 0f2a98e25..f5703ad8a 100644 --- a/examples/test_swd_debugger.py +++ b/examples/test_swd_debugger.py @@ -122,7 +122,7 @@ def contents(self) -> None: ) as imp: self.mcu = imp.Block(IoController()) - (self.usb_esd,), self.usb_chain = self.chain(self.usb.usb, imp.Block(UsbEsdDiode()), self.mcu.usb.request()) + self.connect(self.usb.usb, self.mcu.usb.request()) (self.led_tgt,), _ = self.chain(self.mcu.gpio.request(f"led_target"), imp.Block(IndicatorLed(Led.Yellow))) (self.led_usb,), _ = self.chain(self.mcu.gpio.request(f"led_usb"), imp.Block(IndicatorLed(Led.White))) @@ -240,7 +240,7 @@ def contents(self) -> None: ) as imp: self.mcu = imp.Block(IoController()) - (self.usb_esd,), self.usb_chain = self.chain(self.usb.usb, imp.Block(UsbEsdDiode()), self.mcu.usb.request()) + self.connect(self.usb.usb, self.mcu.usb.request()) (self.led_tgt,), _ = self.chain(self.mcu.gpio.request(f"led_target"), imp.Block(IndicatorLed(Led.Yellow))) (self.led_usb,), _ = self.chain(self.mcu.gpio.request(f"led_usb"), imp.Block(IndicatorLed(Led.White))) diff --git a/examples/test_tofarray.py b/examples/test_tofarray.py index fad9df4e6..2f503ab8d 100644 --- a/examples/test_tofarray.py +++ b/examples/test_tofarray.py @@ -78,7 +78,7 @@ def contents(self) -> None: ) self.connect(self.mcu.gpio.request_vector("tof_reset"), self.tof.reset) - (self.usb_esd,), self.usb_chain = self.chain(self.usb.usb, imp.Block(UsbEsdDiode()), self.mcu.usb.request()) + self.connect(self.usb.usb, self.mcu.usb.request()) (self.tp_can, self.xcvr, self.can_esd), self.can_chain = self.chain( self.mcu.with_mixin(IoControllerCan()).can.request("can"), diff --git a/examples/test_usb_fpga_programmer.py b/examples/test_usb_fpga_programmer.py index 0c8c5b37c..072bcfd37 100644 --- a/examples/test_usb_fpga_programmer.py +++ b/examples/test_usb_fpga_programmer.py @@ -53,7 +53,7 @@ def contents(self) -> None: self.vusb_protect = imp.Block(ProtectionZenerDiode(voltage=(5.25, 6) * Volt)) self.ft232 = imp.Block(Ft232hl()) - (self.usb_esd,), self.usb_chain = self.chain(self.usb.usb, imp.Block(UsbEsdDiode()), self.ft232.usb) + self.connect(self.usb.usb, self.ft232.usb) (self.led0,), _ = self.chain(self.ft232.acbus.request("0"), imp.Block(IndicatorLed(Led.White))) # TXDEN (self.led1,), _ = self.chain(self.ft232.acbus.request("3"), imp.Block(IndicatorLed(Led.Green))) # RXLED (self.led2,), _ = self.chain(self.ft232.acbus.request("4"), imp.Block(IndicatorLed(Led.Yellow))) # TXLED diff --git a/examples/test_usb_source_measure.py b/examples/test_usb_source_measure.py index bba60278d..0a7a16622 100644 --- a/examples/test_usb_source_measure.py +++ b/examples/test_usb_source_measure.py @@ -681,7 +681,7 @@ def contents(self) -> None: imp.Block(IndicatorSinkLed(Led.Red)), self.mcu.gpio.request("led") ) # debugging LED - (self.usb_esd,), self.usb_chain = self.chain(self.usb.usb, imp.Block(UsbEsdDiode()), self.mcu.usb.request()) + self.connect(self.usb.usb, self.mcu.usb.request()) int_i2c = self.mcu.i2c.request("int_i2c") self.i2c_tp = self.Block(I2cTestPoint("i2c")).connected(int_i2c) @@ -872,7 +872,7 @@ def contents(self) -> None: "analog": "reg_analog, reg_vcontrol, reg_vcontroln, reg_vref, ref_div, ref_buf, ref_cap, vcen_rc, " "dac_ferrite, dac, mv_rc, mi_rc, adc, control, " "outn, outp, outd", - "mcu": "mcu, led, touch_duck, ioe_ctl, usb_esd, i2c_pull, qwiic_pull, qwiic, dutio", + "mcu": "mcu, led, touch_duck, ioe_ctl, i2c_pull, qwiic_pull, qwiic, dutio", "sensing": "conv_temp, pass_temp", "ui": "ioe_ui, enc, dir, rgb, reg_v12, oled, oled_rc, spk_drv, spk", "tp": "tp_vusb, tp_gnd, tp_3v3, tp_v5, tp_v12, tp_conv, tp_analog, tp_vcontrol, tp_vcontroln, tp_vref, tp_lsrc, tp_lsnk, " diff --git a/examples/test_usb_uart.py b/examples/test_usb_uart.py index 62d0eea41..8255bad01 100644 --- a/examples/test_usb_uart.py +++ b/examples/test_usb_uart.py @@ -41,7 +41,7 @@ def contents(self) -> None: self.vusb_protect = imp.Block(ProtectionZenerDiode(voltage=(5.25, 6) * Volt)) self.usbconv = imp.Block(Cp2102()) - (self.usb_esd,), self.usb_chain = self.chain(self.usb_uart.usb, imp.Block(UsbEsdDiode()), self.usbconv.usb) + self.connect(self.usb_uart.usb, self.usbconv.usb) (self.led,), _ = self.chain(self.usbconv.nsuspend, imp.Block(IndicatorLed(Led.White))) # for target power only From fc45d47e6417d680e7bf671b87f3ea88040ea73d Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Sun, 5 Jul 2026 15:35:10 -0700 Subject: [PATCH 2/8] wip --- edg/parts/connector/UsbPorts.py | 42 +++++++-------------------------- edg/parts/connector/__init__.py | 2 +- examples/test_usb_key.py | 24 +++++++++++++++++++ 3 files changed, 33 insertions(+), 35 deletions(-) diff --git a/edg/parts/connector/UsbPorts.py b/edg/parts/connector/UsbPorts.py index 0c25d4364..4d2513953 100644 --- a/edg/parts/connector/UsbPorts.py +++ b/edg/parts/connector/UsbPorts.py @@ -105,11 +105,10 @@ def __init__( def generate(self) -> None: super().generate() - if self.usb.is_connected(): - if self.get(self.generate_esd_diode): - self.esd = self.Block(UsbEsdDiode()) - self.connect(self.esd.gnd, self.gnd) - self.connect(self.esd.usb, self.usb) + if self.get(self.usb.is_connected()) and self.get(self.generate_esd_diode): + self.esd = self.Block(UsbEsdDiode()) + self.connect(self.esd.gnd, self.gnd) + self.connect(self.esd.usb, self.usb) if self.get(self.cc.is_connected()): # if CC externally connected, connect directly to USB port self.connect(self.cc, self.conn.cc) @@ -130,30 +129,6 @@ def generate(self) -> None: self.connect(self.gnd, self.conn.shield) -class UsbAPlugPads(UsbDeviceConnector, FootprintBlock): - def __init__(self) -> None: - super().__init__() - - @override - def contents(self) -> None: - super().contents() - self.pwr.init_from(VoltageSource(voltage=self.USB2_VOLTAGE_RANGE, current_limits=self.USB2_CURRENT_LIMITS)) - self.gnd.init_from(Ground()) - self.usb.init_from(UsbHostPort()) - - self.footprint( - "J", - "edg:USB_A_Pads", - { - "1": self.pwr, - "2": self.usb.dm, - "3": self.usb.dp, - "4": self.gnd, - }, - part="USB A pads", - ) - - class Molex_105017_0001_Device(InternalSubcircuit, FootprintBlock): def __init__(self) -> None: super().__init__() @@ -199,11 +174,10 @@ def __init__(self, *, generate_esd_diode: BoolLike = True) -> None: def generate(self) -> None: super().generate() - if self.usb.is_connected(): - if self.get(self.generate_esd_diode): - self.esd = self.Block(UsbEsdDiode()) - self.connect(self.esd.gnd, self.gnd) - self.connect(self.esd.usb, self.usb) + if self.get(self.usb.is_connected()) and self.get(self.generate_esd_diode): + self.esd = self.Block(UsbEsdDiode()) + self.connect(self.esd.gnd, self.gnd) + self.connect(self.esd.usb, self.usb) # TODO there does not seem to be full agreement on what to do with the shield pin, we arbitrarily ground it self.connect(self.gnd, self.conn.shield) diff --git a/edg/parts/connector/__init__.py b/edg/parts/connector/__init__.py index c889f573e..45be55da6 100644 --- a/edg/parts/connector/__init__.py +++ b/edg/parts/connector/__init__.py @@ -53,7 +53,7 @@ from .FanConnector import CpuFanConnector, CpuFanPwmControl from .Connectors import PowerBarrelJack, Pj_102ah, Pj_036ah, LipoConnector, QwiicTarget -from .UsbPorts import UsbAReceptacle, UsbCReceptacle, UsbAPlugPads, UsbMicroBReceptacle +from .UsbPorts import UsbAReceptacle, UsbCReceptacle, UsbMicroBReceptacle from .UsbPorts import Tpd2e009, Pesd5v0x1bt, Pgb102st23 from .SdCards import SdCard, SdSocket, MicroSdSocket, Dm3btDsfPejs, Molex1040310811 diff --git a/examples/test_usb_key.py b/examples/test_usb_key.py index 1fb66d9f5..fbfecca6b 100644 --- a/examples/test_usb_key.py +++ b/examples/test_usb_key.py @@ -6,6 +6,30 @@ from .util import run_test_board +class UsbAPlugPads(UsbDeviceConnector, FootprintBlock): + def __init__(self) -> None: + super().__init__() + + @override + def contents(self) -> None: + super().contents() + self.pwr.init_from(VoltageSource(voltage=self.USB2_VOLTAGE_RANGE, current_limits=self.USB2_CURRENT_LIMITS)) + self.gnd.init_from(Ground()) + self.usb.init_from(UsbHostPort()) + + self.footprint( + "J", + "edg:USB_A_Pads", + { + "1": self.pwr, + "2": self.usb.dm, + "3": self.usb.dp, + "4": self.gnd, + }, + part="USB A pads", + ) + + class StTscSenseChannel(Block): """Sense channel for STM micros' TSC peripheral.""" From 18070788207f054b862cfa44f4b19172cc2c7304 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Sun, 5 Jul 2026 15:38:32 -0700 Subject: [PATCH 3/8] Update UsbPorts.py --- edg/parts/connector/UsbPorts.py | 59 ++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 19 deletions(-) diff --git a/edg/parts/connector/UsbPorts.py b/edg/parts/connector/UsbPorts.py index 4d2513953..5a2774033 100644 --- a/edg/parts/connector/UsbPorts.py +++ b/edg/parts/connector/UsbPorts.py @@ -5,13 +5,15 @@ from ...vendor_parts.jlc.JlcPart import JlcPart -class UsbAReceptacle(UsbHostConnector, FootprintBlock): +class Molex_105057_Device(InternalSubcircuit, FootprintBlock): def __init__(self) -> None: super().__init__() - self.pwr.init_from(VoltageSink(voltage_limits=self.USB2_VOLTAGE_RANGE, current_draw=self.USB2_CURRENT_LIMITS)) - self.gnd.init_from(Ground()) - - self.usb.init_from(UsbDevicePort()) + self.gnd = self.Port(Ground()) + self.pwr = self.Port( + VoltageSink(voltage_limits=UsbConnector.USB2_VOLTAGE_RANGE, current_draw=UsbConnector.USB2_CURRENT_LIMITS) + ) + self.usb = self.Port(UsbDevicePort(), optional=True) + self.shield = self.Port(Ground(), optional=True) @override def contents(self) -> None: @@ -24,7 +26,7 @@ def contents(self) -> None: "4": self.gnd, "2": self.usb.dm, "3": self.usb.dp, - "5": self.gnd, # shield + "5": self.shield, # shield }, mfr="Molex", part="105057", @@ -32,6 +34,28 @@ def contents(self) -> None: ) +class UsbAReceptacle(UsbHostConnector, GeneratorBlock): + def __init__(self, *, generate_esd_diode: BoolLike = True) -> None: + super().__init__(generate_esd_diode=generate_esd_diode) + + self.conn = self.Block(Molex_105057_Device()) + self.generator_param(self.usb.is_connected(), self.generate_esd_diode) + + @override + def generate(self) -> None: + super().generate() + + # TODO there does not seem to be full agreement on what to do with the shield pin, we arbitrarily ground it + self.connect(self.gnd, self.conn.gnd, self.conn.shield) + self.connect(self.pwr, self.conn.pwr) + self.connect(self.usb, self.conn.usb) + + if self.get(self.usb.is_connected()) and self.get(self.generate_esd_diode): + self.esd = self.Block(UsbEsdDiode()) + self.connect(self.esd.gnd, self.gnd) + self.connect(self.esd.usb, self.usb) + + class UsbCReceptacle_Device(InternalSubcircuit, FootprintBlock, JlcPart): """Raw generic USB Type-C Receptacle Pullup capable indicates whether this port (or more accurately, the device on the other side) can pull @@ -92,9 +116,6 @@ def __init__( super().__init__(generate_esd_diode=generate_esd_diode) self.conn = self.Block(UsbCReceptacle_Device(voltage=voltage, current_limits=current_limits)) - self.connect(self.gnd, self.conn.gnd) - self.connect(self.pwr, self.conn.pwr) - self.connect(self.usb, self.conn.usb) self.cc = self.Port(UsbCcPort.empty(), optional=True) # external connectivity defines the circuit self.generator_param( @@ -105,6 +126,11 @@ def __init__( def generate(self) -> None: super().generate() + # TODO there does not seem to be full agreement on what to do with the shield pin, we arbitrarily ground it + self.connect(self.gnd, self.conn.gnd, self.conn.shield) + self.connect(self.pwr, self.conn.pwr) + self.connect(self.usb, self.conn.usb) + if self.get(self.usb.is_connected()) and self.get(self.generate_esd_diode): self.esd = self.Block(UsbEsdDiode()) self.connect(self.esd.gnd, self.gnd) @@ -125,9 +151,6 @@ def generate(self) -> None: # note that the DFP (power source) can provide the max current, however the UFP (device) # should sense the voltage at CC to determine the amount of current allowed - # TODO there does not seem to be full agreement on what to do with the shield pin, we arbitrarily ground it - self.connect(self.gnd, self.conn.shield) - class Molex_105017_0001_Device(InternalSubcircuit, FootprintBlock): def __init__(self) -> None: @@ -164,24 +187,22 @@ def __init__(self, *, generate_esd_diode: BoolLike = True) -> None: super().__init__(generate_esd_diode=generate_esd_diode) self.conn = self.Block(Molex_105017_0001_Device()) - self.connect(self.gnd, self.conn.gnd) - self.connect(self.pwr, self.conn.pwr) - self.connect(self.usb, self.conn.usb) - self.generator_param(self.usb.is_connected(), self.generate_esd_diode) @override def generate(self) -> None: super().generate() + # TODO there does not seem to be full agreement on what to do with the shield pin, we arbitrarily ground it + self.connect(self.gnd, self.conn.gnd, self.conn.shield) + self.connect(self.pwr, self.conn.pwr) + self.connect(self.usb, self.conn.usb) + if self.get(self.usb.is_connected()) and self.get(self.generate_esd_diode): self.esd = self.Block(UsbEsdDiode()) self.connect(self.esd.gnd, self.gnd) self.connect(self.esd.usb, self.usb) - # TODO there does not seem to be full agreement on what to do with the shield pin, we arbitrarily ground it - self.connect(self.gnd, self.conn.shield) - class UsbCcPulldownResistor(InternalSubcircuit, Block): """Pull-down resistors on the CC lines for a device to request power from a type-C UFP port, From 51ce75143792c9dfd6944b5797fffa1212ba526a Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Sun, 5 Jul 2026 15:53:30 -0700 Subject: [PATCH 4/8] update netlists --- examples/BleJoystick/BleJoystick.net.ref | 136 ++--- examples/BleJoystick/BleJoystick.svgpcb.js | 178 +++--- examples/Datalogger/Datalogger.net.ref | 293 +++++----- examples/Datalogger/Datalogger.svgpcb.js | 221 +++---- examples/EspLora/EspLora.net.ref | 118 ++-- examples/EspLora/EspLora.svgpcb.js | 142 ++--- examples/EspProgrammer/EspProgrammer.net.ref | 78 +-- .../EspProgrammer/EspProgrammer.svgpcb.js | 88 +-- examples/Fcml/Fcml.net.ref | 412 ++++++------- examples/Fcml/Fcml.svgpcb.js | 416 +++++++------- examples/IotDisplay/IotDisplay.net.ref | 142 ++--- examples/IotDisplay/IotDisplay.svgpcb.js | 182 +++--- examples/IotFan/IotFan.net.ref | 4 +- examples/IotIron/IotIron.net.ref | 168 +++--- examples/IotIron/IotIron.svgpcb.js | 102 ++-- .../IotThermalCamera/IotThermalCamera.net.ref | 302 +++++----- .../IotThermalCamera.svgpcb.js | 288 +++++----- examples/Keyboard/Keyboard.net.ref | 104 ++-- examples/Keyboard/Keyboard.svgpcb.js | 94 +-- examples/LedMatrix/LedMatrix.net.ref | 4 +- examples/Multimeter/Multimeter.net.ref | 156 ++--- examples/Multimeter/Multimeter.svgpcb.js | 222 +++---- examples/PcbBot/PcbBot.net.ref | 150 ++--- examples/PcbBot/PcbBot.svgpcb.js | 228 ++++---- examples/PicoProbe/PicoProbe.net.ref | 172 +++--- examples/PicoProbe/PicoProbe.svgpcb.js | 132 ++--- .../ProtectedCharger/ProtectedCharger.net.ref | 4 +- examples/SwdDebugger/SwdDebugger.net.ref | 132 ++--- examples/SwdDebugger/SwdDebugger.svgpcb.js | 128 ++--- .../TestBlinkyArray/TestBlinkyArray.net.ref | 4 +- .../TestBlinkyImplicit.net.ref | 95 +-- .../TestBlinkyImplicit.svgpcb.js | 75 +-- .../TestBlinkyPacked/TestBlinkyPacked.net.ref | 4 +- .../TestBlinkyPinned/TestBlinkyPinned.net.ref | 95 +-- .../TestBlinkyPinned.svgpcb.js | 75 +-- .../TestBlinkyRegulated.net.ref | 79 +-- .../TestBlinkyRegulated.svgpcb.js | 61 +- examples/TestBlinkyRgb/TestBlinkyRgb.net.ref | 95 +-- .../TestBlinkyRgb/TestBlinkyRgb.svgpcb.js | 75 +-- .../TestBlinkyWithLibrary.net.ref | 4 +- .../TestBlinkyWithLibraryExport.net.ref | 4 +- ...stBlinkyWithModeledSchematicImport.net.ref | 4 +- .../TestBlinkyWithSchematicImport.net.ref | 4 +- examples/TofArray/TofArray.net.ref | 242 ++++---- examples/TofArray/TofArray.svgpcb.js | 198 +++---- .../UsbFpgaProgrammer.net.ref | 154 ++--- .../UsbFpgaProgrammer.svgpcb.js | 116 ++-- .../UsbSourceMeasure/UsbSourceMeasure.net.ref | 540 +++++++++--------- .../UsbSourceMeasure.svgpcb.js | 536 ++++++++--------- examples/UsbUart/UsbUart.net.ref | 78 +-- examples/UsbUart/UsbUart.svgpcb.js | 80 +-- 51 files changed, 3777 insertions(+), 3637 deletions(-) diff --git a/examples/BleJoystick/BleJoystick.net.ref b/examples/BleJoystick/BleJoystick.net.ref index d130bf92e..cdf822f26 100644 --- a/examples/BleJoystick/BleJoystick.net.ref +++ b/examples/BleJoystick/BleJoystick.net.ref @@ -56,10 +56,22 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "JJ2")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) +(comp (ref "JU1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "JU1")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "JR1") (value "usb.cc_pull.cc1") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -108,14 +120,14 @@ (property (name "edg_value") (value "gnd")) (sheetpath (names "/") (tstamps "/")) (tstamps "08df027d")) -(comp (ref "JU1") +(comp (ref "JU2") (value "vbat_sense.ic") (footprint "Package_TO_SOT_SMD:SOT-23-8") (property (name "Sheetname") (value "vbat_sense")) (property (name "Sheetfile") (value "edg.parts.analog.opamp.Ina219.Ina219")) (property (name "edg_path") (value "vbat_sense.ic")) (property (name "edg_short_path") (value "vbat_sense.ic")) - (property (name "edg_refdes") (value "JU1")) + (property (name "edg_refdes") (value "JU2")) (property (name "edg_part") (value "INA219AIDCNR (Texas Instruments)")) (property (name "edg_value") (value "INA219AIDCNR")) (sheetpath (names "/vbat_sense/") (tstamps "/16ee042b/")) @@ -216,14 +228,14 @@ (property (name "edg_value") (value "40V 600mV@1A 1A SOD-323 Schottky Barrier Diodes (SBD) ROHS")) (sheetpath (names "/gate/") (tstamps "/041001a2/")) (tstamps "126903a9")) -(comp (ref "JU2") +(comp (ref "JU3") (value "reg_3v3.ic") (footprint "Package_TO_SOT_SMD:SOT-23") (property (name "Sheetname") (value "reg_3v3")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Xc6206p")) (property (name "edg_path") (value "reg_3v3.ic")) (property (name "edg_short_path") (value "reg_3v3.ic")) - (property (name "edg_refdes") (value "JU2")) + (property (name "edg_refdes") (value "JU3")) (property (name "edg_part") (value "XC6206P332MR (Torex Semiconductor Ltd)")) (property (name "edg_value") (value "XC6206P332MR")) (sheetpath (names "/reg_3v3/") (tstamps "/0aba027a/")) @@ -276,14 +288,14 @@ (property (name "edg_value") (value "5μA@1V 90Ω Single 3.6V~3.8V 350mW 3.4V SOD-123 Zener Diodes ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "0eb80301")) -(comp (ref "JU3") +(comp (ref "JU4") (value "chg.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "chg")) (property (name "Sheetfile") (value "edg.parts.power.BatteryCharger_Mcp73831.Mcp73831")) (property (name "edg_path") (value "chg.ic")) (property (name "edg_short_path") (value "chg.ic")) - (property (name "edg_refdes") (value "JU3")) + (property (name "edg_refdes") (value "JU4")) (property (name "edg_part") (value "MCP73831T-2ACI/OT (Microchip Technology)")) (property (name "edg_value") (value "MCP73831T-2ACI/OT")) (sheetpath (names "/chg/") (tstamps "/02630133/")) @@ -336,14 +348,14 @@ (property (name "edg_value") (value "60V 115mA 200mW 7.5Ω@10V,500mA 2.5V@250μA N Channel SOT-23(SOT-23-3) MOSFETs ROHS")) (sheetpath (names "/chg/") (tstamps "/02630133/")) (tstamps "0c040302")) -(comp (ref "JU4") +(comp (ref "JU5") (value "mcu.ic") (footprint "edg:Holyiot-18010-NRF52840") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.nRF52840.Holyiot_18010")) (property (name "edg_path") (value "mcu.ic.device")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "JU4")) + (property (name "edg_refdes") (value "JU5")) (property (name "edg_part") (value "18010 (Holyiot)")) (property (name "edg_value") (value "18010")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -408,18 +420,6 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±200ppm/℃ -55℃~+155℃ 27Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/mcu/usb_res/") (tstamps "/02850146/0be502f4/")) (tstamps "013700d2")) -(comp (ref "JU5") - (value "usb_esd") - (footprint "Package_TO_SOT_SMD:SOT-23") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) - (property (name "edg_path") (value "usb_esd")) - (property (name "edg_short_path") (value "usb_esd")) - (property (name "edg_refdes") (value "JU5")) - (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) - (property (name "edg_value") (value "PESD5V0X1BT")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "0bcb02e6")) (comp (ref "JD4") (value "ledr.package") (footprint "LED_SMD:LED_0603_1608Metric") @@ -653,7 +653,7 @@ (node (ref JJ1) (pin 2)) (node (ref JR4) (pin 1)) (node (ref JQ1) (pin 2)) - (node (ref JU3) (pin 3)) + (node (ref JU4) (pin 3)) (node (ref JC5) (pin 1))) (net (code 2) (name "Jvusb") (node (ref JJ2) (pin A4)) @@ -661,9 +661,9 @@ (node (ref JJ2) (pin B4)) (node (ref JJ2) (pin B9)) (node (ref JTP1) (pin 1)) - (node (ref JU3) (pin 4)) + (node (ref JU4) (pin 4)) (node (ref JC4) (pin 1)) - (node (ref JU4) (pin 22)) + (node (ref JU5) (pin 22)) (node (ref JC7) (pin 1))) (net (code 3) (name "Jgnd") (node (ref JJ1) (pin 1)) @@ -672,30 +672,30 @@ (node (ref JJ2) (pin B1)) (node (ref JJ2) (pin B12)) (node (ref JJ2) (pin S1)) + (node (ref JU1) (pin 3)) (node (ref JR1) (pin 1)) (node (ref JR2) (pin 1)) (node (ref JTP2) (pin 1)) - (node (ref JU1) (pin 3)) - (node (ref JU1) (pin 7)) - (node (ref JU1) (pin 8)) + (node (ref JU2) (pin 3)) + (node (ref JU2) (pin 7)) + (node (ref JU2) (pin 8)) (node (ref JC1) (pin 2)) (node (ref JR5) (pin 1)) (node (ref JQ2) (pin 2)) - (node (ref JU2) (pin 1)) + (node (ref JU3) (pin 1)) (node (ref JC2) (pin 2)) (node (ref JC3) (pin 2)) (node (ref JD3) (pin 2)) - (node (ref JU3) (pin 2)) + (node (ref JU4) (pin 2)) (node (ref JC4) (pin 2)) (node (ref JC5) (pin 2)) (node (ref JQ3) (pin 2)) - (node (ref JU4) (pin 1)) - (node (ref JU4) (pin 25)) - (node (ref JU4) (pin 37)) + (node (ref JU5) (pin 1)) + (node (ref JU5) (pin 25)) + (node (ref JU5) (pin 37)) (node (ref JC6) (pin 2)) (node (ref JJ3) (pin 5)) (node (ref JC7) (pin 2)) - (node (ref JU5) (pin 3)) (node (ref JR9) (pin 2)) (node (ref JSW1) (pin 2)) (node (ref JU6) (pin 1)) @@ -716,20 +716,20 @@ (node (ref JJ7) (pin 1)) (node (ref JJ7) (pin 6))) (net (code 4) (name "Jvbat_gated") - (node (ref JU1) (pin 2)) + (node (ref JU2) (pin 2)) (node (ref JR3) (pin 2)) - (node (ref JU2) (pin 3)) + (node (ref JU3) (pin 3)) (node (ref JC2) (pin 1)) (node (ref JJ7) (pin 7)) (node (ref JJ7) (pin 8))) (net (code 5) (name "Jv3v3") - (node (ref JU1) (pin 4)) + (node (ref JU2) (pin 4)) (node (ref JC1) (pin 1)) - (node (ref JU2) (pin 2)) + (node (ref JU3) (pin 2)) (node (ref JC3) (pin 1)) (node (ref JTP3) (pin 1)) (node (ref JD3) (pin 1)) - (node (ref JU4) (pin 14)) + (node (ref JU5) (pin 14)) (node (ref JC6) (pin 1)) (node (ref JJ3) (pin 1)) (node (ref JR10) (pin 1)) @@ -744,16 +744,16 @@ (node (ref JQ4) (pin 2)) (node (ref JQ5) (pin 2)) (node (ref JJ7) (pin 2))) -(net (code 6) (name "Jusb_chain_0.d_P") +(net (code 6) (name "Jusb.usb.dp") (node (ref JJ2) (pin A6)) (node (ref JJ2) (pin B6)) - (node (ref JR7) (pin 1)) - (node (ref JU5) (pin 2))) -(net (code 7) (name "Jusb_chain_0.d_N") + (node (ref JU1) (pin 2)) + (node (ref JR7) (pin 1))) +(net (code 7) (name "Jusb.usb.dm") (node (ref JJ2) (pin A7)) (node (ref JJ2) (pin B7)) - (node (ref JR8) (pin 1)) - (node (ref JU5) (pin 1))) + (node (ref JU1) (pin 1)) + (node (ref JR8) (pin 1))) (net (code 8) (name "Jusb.conn.cc.cc1") (node (ref JJ2) (pin A5)) (node (ref JR1) (pin 2))) @@ -761,28 +761,28 @@ (node (ref JJ2) (pin B5)) (node (ref JR2) (pin 2))) (net (code 10) (name "Jvbat_sense.i2c.scl") - (node (ref JU1) (pin 5)) - (node (ref JU4) (pin 26)) + (node (ref JU2) (pin 5)) + (node (ref JU5) (pin 26)) (node (ref JR10) (pin 2)) (node (ref JTP4) (pin 1)) (node (ref JU6) (pin 13)) (node (ref JU7) (pin 1)) (node (ref JJ7) (pin 3))) (net (code 11) (name "Jvbat_sense.i2c.sda") - (node (ref JU1) (pin 6)) - (node (ref JU4) (pin 27)) + (node (ref JU2) (pin 6)) + (node (ref JU5) (pin 27)) (node (ref JR11) (pin 2)) (node (ref JTP5) (pin 1)) (node (ref JU6) (pin 14)) (node (ref JU7) (pin 16)) (node (ref JJ7) (pin 4))) (net (code 12) (name "Jvbat_sense.sense_pwr_in") - (node (ref JU1) (pin 1)) + (node (ref JU2) (pin 1)) (node (ref JR3) (pin 1)) (node (ref JQ1) (pin 3))) (net (code 13) (name "Jgate.btn_out") (node (ref JD2) (pin 2)) - (node (ref JU4) (pin 13))) + (node (ref JU5) (pin 13))) (net (code 14) (name "Jgate.btn_in") (node (ref JD1) (pin 1)) (node (ref JD2) (pin 1)) @@ -790,48 +790,48 @@ (net (code 15) (name "Jgate.control") (node (ref JR5) (pin 2)) (node (ref JQ2) (pin 1)) - (node (ref JU4) (pin 15))) + (node (ref JU5) (pin 15))) (net (code 16) (name "Jgate.pull_res.b") (node (ref JR4) (pin 2)) (node (ref JQ1) (pin 1)) (node (ref JQ2) (pin 3)) (node (ref JD1) (pin 2))) (net (code 17) (name "Jchg.stat") - (node (ref JU3) (pin 1))) + (node (ref JU4) (pin 1))) (net (code 18) (name "Jchg.prog_ctl") (node (ref JQ3) (pin 1)) - (node (ref JU4) (pin 2))) + (node (ref JU5) (pin 2))) (net (code 19) (name "Jchg.ic.prog") - (node (ref JU3) (pin 5)) + (node (ref JU4) (pin 5)) (node (ref JR6) (pin 2))) (net (code 20) (name "Jchg.prog_res.gnd") (node (ref JR6) (pin 1)) (node (ref JQ3) (pin 3))) (net (code 21) (name "Jmcu.swd_node.swdio") - (node (ref JU4) (pin 32)) + (node (ref JU5) (pin 32)) (node (ref JJ3) (pin 2))) (net (code 22) (name "Jmcu.swd_node.swclk") - (node (ref JU4) (pin 31)) + (node (ref JU5) (pin 31)) (node (ref JJ3) (pin 4))) (net (code 23) (name "Jmcu.reset_node") - (node (ref JU4) (pin 21)) + (node (ref JU5) (pin 21)) (node (ref JJ3) (pin 3))) (net (code 24) (name "Jmcu.swd.swo") (node (ref JJ3) (pin 6))) (net (code 25) (name "Jmcu.usb_res.interior.dp") - (node (ref JU4) (pin 24)) + (node (ref JU5) (pin 24)) (node (ref JR7) (pin 2))) (net (code 26) (name "Jmcu.usb_res.interior.dm") - (node (ref JU4) (pin 23)) + (node (ref JU5) (pin 23)) (node (ref JR8) (pin 2))) (net (code 27) (name "Jledr.signal") - (node (ref JU4) (pin 10)) + (node (ref JU5) (pin 10)) (node (ref JD4) (pin 2))) (net (code 28) (name "Jledr.package.k") (node (ref JD4) (pin 1)) (node (ref JR9) (pin 1))) (net (code 29) (name "Jbumper_sw.out") - (node (ref JU4) (pin 11)) + (node (ref JU5) (pin 11)) (node (ref JSW1) (pin 1))) (net (code 30) (name "Jimu.int1") (node (ref JU6) (pin 4))) @@ -844,25 +844,25 @@ (node (ref JJ4) (pin 2)) (node (ref JQ4) (pin 3))) (net (code 34) (name "Jstick.ax1") - (node (ref JU4) (pin 8)) + (node (ref JU5) (pin 8)) (node (ref JJ4) (pin 4))) (net (code 35) (name "Jstick.ax2") - (node (ref JU4) (pin 9)) + (node (ref JU5) (pin 9)) (node (ref JJ4) (pin 3))) (net (code 36) (name "Jstick_gate.control") - (node (ref JU4) (pin 3)) + (node (ref JU5) (pin 3)) (node (ref JQ4) (pin 1))) (net (code 37) (name "Jtrig.pwr") (node (ref JU9) (pin 1)) (node (ref JC12) (pin 1)) (node (ref JQ5) (pin 3))) (net (code 38) (name "Jtrig.out") - (node (ref JU4) (pin 6)) + (node (ref JU5) (pin 6)) (node (ref JU9) (pin 2))) (net (code 39) (name "Jtrig_gate.control") - (node (ref JU4) (pin 12)) + (node (ref JU5) (pin 12)) (node (ref JQ5) (pin 1))) (net (code 40) (name "Jbtns.io0") - (node (ref JU4) (pin 20)) + (node (ref JU5) (pin 20)) (node (ref JJ7) (pin 5)))) ) \ No newline at end of file diff --git a/examples/BleJoystick/BleJoystick.svgpcb.js b/examples/BleJoystick/BleJoystick.svgpcb.js index 977631de9..513f532f1 100644 --- a/examples/BleJoystick/BleJoystick.svgpcb.js +++ b/examples/BleJoystick/BleJoystick.svgpcb.js @@ -2,148 +2,153 @@ const board = new PCB(); // jlc_th.th1 const JH1 = board.add(JlcToolingHole_1_152mm, { - translate: pt(1.245, 1.648), rotate: 0, + translate: pt(1.593, 1.650), rotate: 0, id: 'JH1' }) // jlc_th.th2 const JH2 = board.add(JlcToolingHole_1_152mm, { - translate: pt(1.285, 1.648), rotate: 0, + translate: pt(1.633, 1.650), rotate: 0, id: 'JH2' }) // jlc_th.th3 const JH3 = board.add(JlcToolingHole_1_152mm, { - translate: pt(1.245, 1.687), rotate: 0, + translate: pt(1.593, 1.690), rotate: 0, id: 'JH3' }) // bat.conn const JJ1 = board.add(PinHeader_1x02_P2_00mm_Vertical, { - translate: pt(0.719, 1.437), rotate: 0, + translate: pt(1.109, 1.439), rotate: 0, id: 'JJ1' }) // usb.conn const JJ2 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(1.235, 0.165), rotate: 0, + translate: pt(1.532, 0.165), rotate: 0, id: 'JJ2' }) +// usb.esd +const JU1 = board.add(SOT_23, { + translate: pt(1.857, 0.067), rotate: 0, + id: 'JU1' +}) // usb.cc_pull.cc1 const JR1 = board.add(R_0603_1608Metric, { - translate: pt(1.083, 0.420), rotate: 0, + translate: pt(1.839, 0.202), rotate: 0, id: 'JR1' }) // usb.cc_pull.cc2 const JR2 = board.add(R_0603_1608Metric, { - translate: pt(1.239, 0.420), rotate: 0, + translate: pt(1.839, 0.299), rotate: 0, id: 'JR2' }) // tp_usb.tp const JTP1 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(0.370, 1.685), rotate: 0, + translate: pt(0.908, 1.688), rotate: 0, id: 'JTP1' }) // tp_gnd.tp const JTP2 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(0.620, 1.685), rotate: 0, + translate: pt(1.159, 1.688), rotate: 0, id: 'JTP2' }) // vbat_sense.ic -const JU1 = board.add(SOT_23_8, { - translate: pt(1.643, 0.067), rotate: 0, - id: 'JU1' +const JU2 = board.add(SOT_23_8, { + translate: pt(1.106, 0.067), rotate: 0, + id: 'JU2' }) // vbat_sense.Rs.res.res const JR3 = board.add(R_1206_3216Metric, { - translate: pt(1.652, 0.217), rotate: 0, + translate: pt(1.115, 0.217), rotate: 0, id: 'JR3' }) // vbat_sense.vs_cap.cap const JC1 = board.add(C_0603_1608Metric, { - translate: pt(1.620, 0.330), rotate: 0, + translate: pt(1.083, 0.330), rotate: 0, id: 'JC1' }) // gate.pull_res const JR4 = board.add(R_0603_1608Metric, { - translate: pt(0.390, 1.038), rotate: 0, + translate: pt(0.860, 1.038), rotate: 0, id: 'JR4' }) // gate.pwr_fet const JQ1 = board.add(SOT_23, { - translate: pt(0.076, 0.903), rotate: 0, + translate: pt(0.546, 0.903), rotate: 0, id: 'JQ1' }) // gate.amp_res const JR5 = board.add(R_0603_1608Metric, { - translate: pt(0.058, 1.152), rotate: 0, + translate: pt(0.528, 1.152), rotate: 0, id: 'JR5' }) // gate.amp_fet const JQ2 = board.add(SOT_23, { - translate: pt(0.266, 0.903), rotate: 0, + translate: pt(0.736, 0.903), rotate: 0, id: 'JQ2' }) // gate.ctl_diode const JD1 = board.add(D_SOD_323, { - translate: pt(0.063, 1.047), rotate: 0, + translate: pt(0.533, 1.047), rotate: 0, id: 'JD1' }) // gate.btn_diode const JD2 = board.add(D_SOD_323, { - translate: pt(0.229, 1.047), rotate: 0, + translate: pt(0.699, 1.047), rotate: 0, id: 'JD2' }) // reg_3v3.ic -const JU2 = board.add(SOT_23, { - translate: pt(2.081, 0.903), rotate: 0, - id: 'JU2' +const JU3 = board.add(SOT_23, { + translate: pt(0.076, 1.369), rotate: 0, + id: 'JU3' }) // reg_3v3.in_cap.cap const JC2 = board.add(C_0603_1608Metric, { - translate: pt(2.064, 1.038), rotate: 0, + translate: pt(0.058, 1.504), rotate: 0, id: 'JC2' }) // reg_3v3.out_cap.cap const JC3 = board.add(C_0603_1608Metric, { - translate: pt(2.220, 1.038), rotate: 0, + translate: pt(0.214, 1.504), rotate: 0, id: 'JC3' }) // tp_3v3.tp const JTP3 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(0.870, 1.685), rotate: 0, + translate: pt(1.409, 1.688), rotate: 0, id: 'JTP3' }) // prot_3v3.diode const JD3 = board.add(D_SOD_123, { - translate: pt(0.093, 1.693), rotate: 0, + translate: pt(0.631, 1.696), rotate: 0, id: 'JD3' }) // chg.ic -const JU3 = board.add(SOT_23_5, { - translate: pt(1.941, 0.067), rotate: 0, - id: 'JU3' +const JU4 = board.add(SOT_23_5, { + translate: pt(0.081, 0.903), rotate: 0, + id: 'JU4' }) // chg.vdd_cap.cap const JC4 = board.add(C_0805_2012Metric, { - translate: pt(1.927, 0.212), rotate: 0, + translate: pt(0.067, 1.048), rotate: 0, id: 'JC4' }) // chg.vbat_cap.cap const JC5 = board.add(C_0805_2012Metric, { - translate: pt(2.100, 0.212), rotate: 0, + translate: pt(0.240, 1.048), rotate: 0, id: 'JC5' }) // chg.prog_res.res const JR6 = board.add(R_0603_1608Metric, { - translate: pt(1.918, 0.319), rotate: 0, + translate: pt(0.058, 1.155), rotate: 0, id: 'JR6' }) // chg.prog_sw const JQ3 = board.add(SOT_23, { - translate: pt(2.136, 0.067), rotate: 0, + translate: pt(0.276, 0.903), rotate: 0, id: 'JQ3' }) // mcu.ic.device -const JU4 = board.add(Holyiot_18010_NRF52840, { +const JU5 = board.add(Holyiot_18010_NRF52840, { translate: pt(0.290, 0.324), rotate: 0, - id: 'JU4' + id: 'JU5' }) // mcu.vcc_cap.cap const JC6 = board.add(C_0805_2012Metric, { @@ -170,152 +175,147 @@ const JR8 = board.add(R_0603_1608Metric, { translate: pt(0.814, 0.342), rotate: 0, id: 'JR8' }) -// usb_esd -const JU5 = board.add(SOT_23, { - translate: pt(1.130, 1.715), rotate: 0, - id: 'JU5' -}) // ledr.package const JD4 = board.add(LED_0603_1608Metric, { - translate: pt(1.540, 1.328), rotate: 0, + translate: pt(1.930, 1.331), rotate: 0, id: 'JD4' }) // ledr.res const JR9 = board.add(R_0603_1608Metric, { - translate: pt(1.539, 1.425), rotate: 0, + translate: pt(1.930, 1.428), rotate: 0, id: 'JR9' }) // bumper_sw.package const JSW1 = board.add(SW_SPST_EVQP7C, { - translate: pt(1.255, 1.392), rotate: 0, + translate: pt(1.645, 1.394), rotate: 0, id: 'JSW1' }) // i2c_pull.scl_res.res const JR10 = board.add(R_0603_1608Metric, { - translate: pt(1.774, 1.328), rotate: 0, + translate: pt(2.165, 1.330), rotate: 0, id: 'JR10' }) // i2c_pull.sda_res.res const JR11 = board.add(R_0603_1608Metric, { - translate: pt(1.774, 1.425), rotate: 0, + translate: pt(2.165, 1.427), rotate: 0, id: 'JR11' }) // tp_i2c.tp_scl.tp const JTP4 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(0.962, 1.337), rotate: 0, + translate: pt(1.353, 1.339), rotate: 0, id: 'JTP4' }) // tp_i2c.tp_sda.tp const JTP5 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(0.962, 1.451), rotate: 0, + translate: pt(1.353, 1.453), rotate: 0, id: 'JTP5' }) // imu.ic const JU6 = board.add(Bosch_LGA_14_3x2_5mm_P0_5mm, { - translate: pt(0.342, 1.362), rotate: 0, + translate: pt(0.733, 1.365), rotate: 0, id: 'JU6' }) // imu.vdd_cap.cap const JC8 = board.add(C_0603_1608Metric, { - translate: pt(0.328, 1.493), rotate: 0, + translate: pt(0.718, 1.496), rotate: 0, id: 'JC8' }) // imu.vddio_cap.cap const JC9 = board.add(C_0603_1608Metric, { - translate: pt(0.483, 1.493), rotate: 0, + translate: pt(0.874, 1.496), rotate: 0, id: 'JC9' }) // mag.ic const JU7 = board.add(LGA_16_3x3mm_P0_5mm, { - translate: pt(1.667, 0.905), rotate: 0, + translate: pt(2.137, 0.905), rotate: 0, id: 'JU7' }) // mag.vdd_cap.cap const JC10 = board.add(C_0603_1608Metric, { - translate: pt(1.829, 1.042), rotate: 0, + translate: pt(2.299, 1.042), rotate: 0, id: 'JC10' }) // mag.c1.cap const JC11 = board.add(C_0805_2012Metric, { - translate: pt(1.665, 1.052), rotate: 0, + translate: pt(2.135, 1.052), rotate: 0, id: 'JC11' }) // stick.conn.ext const JJ4 = board.add(Hirose_FH12_8S_0_5SH_1x08_1MP_P0_50mm_Horizontal, { - translate: pt(0.765, 1.029), rotate: 0, + translate: pt(1.235, 1.029), rotate: 0, id: 'JJ4' }) // stick_gate.fet const JQ4 = board.add(SOT_23, { - translate: pt(2.026, 1.366), rotate: 0, + translate: pt(0.076, 1.717), rotate: 0, id: 'JQ4' }) // trig.ic const JU9 = board.add(SOT_23, { - translate: pt(0.076, 1.366), rotate: 0, + translate: pt(0.466, 1.369), rotate: 0, id: 'JU9' }) // trig.cbyp.cap const JC12 = board.add(C_0603_1608Metric, { - translate: pt(0.058, 1.501), rotate: 0, + translate: pt(0.449, 1.504), rotate: 0, id: 'JC12' }) // trig_gate.fet const JQ5 = board.add(SOT_23, { - translate: pt(2.295, 1.366), rotate: 0, + translate: pt(0.345, 1.717), rotate: 0, id: 'JQ5' }) // btns.conn.ext const JJ7 = board.add(Hirose_FH12_8S_0_5SH_1x08_1MP_P0_50mm_Horizontal, { - translate: pt(1.281, 1.029), rotate: 0, + translate: pt(1.751, 1.029), rotate: 0, id: 'JJ7' }) board.setNetlist([ - {name: "vbat", pads: [["JJ1", "2"], ["JR4", "1"], ["JQ1", "2"], ["JU3", "3"], ["JC5", "1"]]}, - {name: "vusb", pads: [["JJ2", "A4"], ["JJ2", "A9"], ["JJ2", "B4"], ["JJ2", "B9"], ["JTP1", "1"], ["JU3", "4"], ["JC4", "1"], ["JU4", "22"], ["JC7", "1"]]}, - {name: "gnd", pads: [["JJ1", "1"], ["JJ2", "A1"], ["JJ2", "A12"], ["JJ2", "B1"], ["JJ2", "B12"], ["JJ2", "S1"], ["JR1", "1"], ["JR2", "1"], ["JTP2", "1"], ["JU1", "3"], ["JU1", "7"], ["JU1", "8"], ["JC1", "2"], ["JR5", "1"], ["JQ2", "2"], ["JU2", "1"], ["JC2", "2"], ["JC3", "2"], ["JD3", "2"], ["JU3", "2"], ["JC4", "2"], ["JC5", "2"], ["JQ3", "2"], ["JU4", "1"], ["JU4", "25"], ["JU4", "37"], ["JC6", "2"], ["JJ3", "5"], ["JC7", "2"], ["JU5", "3"], ["JR9", "2"], ["JSW1", "2"], ["JU6", "1"], ["JU6", "2"], ["JU6", "3"], ["JU6", "6"], ["JU6", "7"], ["JC8", "2"], ["JC9", "2"], ["JU7", "11"], ["JU7", "9"], ["JC10", "2"], ["JC11", "2"], ["JJ4", "1"], ["JJ4", "8"], ["JU9", "3"], ["JC12", "2"], ["JJ7", "1"], ["JJ7", "6"]]}, - {name: "vbat_gated", pads: [["JU1", "2"], ["JR3", "2"], ["JU2", "3"], ["JC2", "1"], ["JJ7", "7"], ["JJ7", "8"]]}, - {name: "v3v3", pads: [["JU1", "4"], ["JC1", "1"], ["JU2", "2"], ["JC3", "1"], ["JTP3", "1"], ["JD3", "1"], ["JU4", "14"], ["JC6", "1"], ["JJ3", "1"], ["JR10", "1"], ["JR11", "1"], ["JU6", "12"], ["JU6", "5"], ["JU6", "8"], ["JC8", "1"], ["JC9", "1"], ["JU7", "2"], ["JC10", "1"], ["JQ4", "2"], ["JQ5", "2"], ["JJ7", "2"]]}, - {name: "usb_chain_0.d_P", pads: [["JJ2", "A6"], ["JJ2", "B6"], ["JR7", "1"], ["JU5", "2"]]}, - {name: "usb_chain_0.d_N", pads: [["JJ2", "A7"], ["JJ2", "B7"], ["JR8", "1"], ["JU5", "1"]]}, + {name: "vbat", pads: [["JJ1", "2"], ["JR4", "1"], ["JQ1", "2"], ["JU4", "3"], ["JC5", "1"]]}, + {name: "vusb", pads: [["JJ2", "A4"], ["JJ2", "A9"], ["JJ2", "B4"], ["JJ2", "B9"], ["JTP1", "1"], ["JU4", "4"], ["JC4", "1"], ["JU5", "22"], ["JC7", "1"]]}, + {name: "gnd", pads: [["JJ1", "1"], ["JJ2", "A1"], ["JJ2", "A12"], ["JJ2", "B1"], ["JJ2", "B12"], ["JJ2", "S1"], ["JU1", "3"], ["JR1", "1"], ["JR2", "1"], ["JTP2", "1"], ["JU2", "3"], ["JU2", "7"], ["JU2", "8"], ["JC1", "2"], ["JR5", "1"], ["JQ2", "2"], ["JU3", "1"], ["JC2", "2"], ["JC3", "2"], ["JD3", "2"], ["JU4", "2"], ["JC4", "2"], ["JC5", "2"], ["JQ3", "2"], ["JU5", "1"], ["JU5", "25"], ["JU5", "37"], ["JC6", "2"], ["JJ3", "5"], ["JC7", "2"], ["JR9", "2"], ["JSW1", "2"], ["JU6", "1"], ["JU6", "2"], ["JU6", "3"], ["JU6", "6"], ["JU6", "7"], ["JC8", "2"], ["JC9", "2"], ["JU7", "11"], ["JU7", "9"], ["JC10", "2"], ["JC11", "2"], ["JJ4", "1"], ["JJ4", "8"], ["JU9", "3"], ["JC12", "2"], ["JJ7", "1"], ["JJ7", "6"]]}, + {name: "vbat_gated", pads: [["JU2", "2"], ["JR3", "2"], ["JU3", "3"], ["JC2", "1"], ["JJ7", "7"], ["JJ7", "8"]]}, + {name: "v3v3", pads: [["JU2", "4"], ["JC1", "1"], ["JU3", "2"], ["JC3", "1"], ["JTP3", "1"], ["JD3", "1"], ["JU5", "14"], ["JC6", "1"], ["JJ3", "1"], ["JR10", "1"], ["JR11", "1"], ["JU6", "12"], ["JU6", "5"], ["JU6", "8"], ["JC8", "1"], ["JC9", "1"], ["JU7", "2"], ["JC10", "1"], ["JQ4", "2"], ["JQ5", "2"], ["JJ7", "2"]]}, + {name: "usb.usb.dp", pads: [["JJ2", "A6"], ["JJ2", "B6"], ["JU1", "2"], ["JR7", "1"]]}, + {name: "usb.usb.dm", pads: [["JJ2", "A7"], ["JJ2", "B7"], ["JU1", "1"], ["JR8", "1"]]}, {name: "usb.conn.cc.cc1", pads: [["JJ2", "A5"], ["JR1", "2"]]}, {name: "usb.conn.cc.cc2", pads: [["JJ2", "B5"], ["JR2", "2"]]}, - {name: "vbat_sense.i2c.scl", pads: [["JU1", "5"], ["JU4", "26"], ["JR10", "2"], ["JTP4", "1"], ["JU6", "13"], ["JU7", "1"], ["JJ7", "3"]]}, - {name: "vbat_sense.i2c.sda", pads: [["JU1", "6"], ["JU4", "27"], ["JR11", "2"], ["JTP5", "1"], ["JU6", "14"], ["JU7", "16"], ["JJ7", "4"]]}, - {name: "vbat_sense.sense_pwr_in", pads: [["JU1", "1"], ["JR3", "1"], ["JQ1", "3"]]}, - {name: "gate.btn_out", pads: [["JD2", "2"], ["JU4", "13"]]}, + {name: "vbat_sense.i2c.scl", pads: [["JU2", "5"], ["JU5", "26"], ["JR10", "2"], ["JTP4", "1"], ["JU6", "13"], ["JU7", "1"], ["JJ7", "3"]]}, + {name: "vbat_sense.i2c.sda", pads: [["JU2", "6"], ["JU5", "27"], ["JR11", "2"], ["JTP5", "1"], ["JU6", "14"], ["JU7", "16"], ["JJ7", "4"]]}, + {name: "vbat_sense.sense_pwr_in", pads: [["JU2", "1"], ["JR3", "1"], ["JQ1", "3"]]}, + {name: "gate.btn_out", pads: [["JD2", "2"], ["JU5", "13"]]}, {name: "gate.btn_in", pads: [["JD1", "1"], ["JD2", "1"], ["JJ4", "6"]]}, - {name: "gate.control", pads: [["JR5", "2"], ["JQ2", "1"], ["JU4", "15"]]}, + {name: "gate.control", pads: [["JR5", "2"], ["JQ2", "1"], ["JU5", "15"]]}, {name: "gate.pull_res.b", pads: [["JR4", "2"], ["JQ1", "1"], ["JQ2", "3"], ["JD1", "2"]]}, - {name: "chg.stat", pads: [["JU3", "1"]]}, - {name: "chg.prog_ctl", pads: [["JQ3", "1"], ["JU4", "2"]]}, - {name: "chg.ic.prog", pads: [["JU3", "5"], ["JR6", "2"]]}, + {name: "chg.stat", pads: [["JU4", "1"]]}, + {name: "chg.prog_ctl", pads: [["JQ3", "1"], ["JU5", "2"]]}, + {name: "chg.ic.prog", pads: [["JU4", "5"], ["JR6", "2"]]}, {name: "chg.prog_res.gnd", pads: [["JR6", "1"], ["JQ3", "3"]]}, - {name: "mcu.swd_node.swdio", pads: [["JU4", "32"], ["JJ3", "2"]]}, - {name: "mcu.swd_node.swclk", pads: [["JU4", "31"], ["JJ3", "4"]]}, - {name: "mcu.reset_node", pads: [["JU4", "21"], ["JJ3", "3"]]}, + {name: "mcu.swd_node.swdio", pads: [["JU5", "32"], ["JJ3", "2"]]}, + {name: "mcu.swd_node.swclk", pads: [["JU5", "31"], ["JJ3", "4"]]}, + {name: "mcu.reset_node", pads: [["JU5", "21"], ["JJ3", "3"]]}, {name: "mcu.swd.swo", pads: [["JJ3", "6"]]}, - {name: "mcu.usb_res.interior.dp", pads: [["JU4", "24"], ["JR7", "2"]]}, - {name: "mcu.usb_res.interior.dm", pads: [["JU4", "23"], ["JR8", "2"]]}, - {name: "ledr.signal", pads: [["JU4", "10"], ["JD4", "2"]]}, + {name: "mcu.usb_res.interior.dp", pads: [["JU5", "24"], ["JR7", "2"]]}, + {name: "mcu.usb_res.interior.dm", pads: [["JU5", "23"], ["JR8", "2"]]}, + {name: "ledr.signal", pads: [["JU5", "10"], ["JD4", "2"]]}, {name: "ledr.package.k", pads: [["JD4", "1"], ["JR9", "1"]]}, - {name: "bumper_sw.out", pads: [["JU4", "11"], ["JSW1", "1"]]}, + {name: "bumper_sw.out", pads: [["JU5", "11"], ["JSW1", "1"]]}, {name: "imu.int1", pads: [["JU6", "4"]]}, {name: "imu.int2", pads: [["JU6", "9"]]}, {name: "mag.ic.c1", pads: [["JU7", "10"], ["JC11", "1"]]}, {name: "stick.pwr", pads: [["JJ4", "2"], ["JQ4", "3"]]}, - {name: "stick.ax1", pads: [["JU4", "8"], ["JJ4", "4"]]}, - {name: "stick.ax2", pads: [["JU4", "9"], ["JJ4", "3"]]}, - {name: "stick_gate.control", pads: [["JU4", "3"], ["JQ4", "1"]]}, + {name: "stick.ax1", pads: [["JU5", "8"], ["JJ4", "4"]]}, + {name: "stick.ax2", pads: [["JU5", "9"], ["JJ4", "3"]]}, + {name: "stick_gate.control", pads: [["JU5", "3"], ["JQ4", "1"]]}, {name: "trig.pwr", pads: [["JU9", "1"], ["JC12", "1"], ["JQ5", "3"]]}, - {name: "trig.out", pads: [["JU4", "6"], ["JU9", "2"]]}, - {name: "trig_gate.control", pads: [["JU4", "12"], ["JQ5", "1"]]}, - {name: "btns.io0", pads: [["JU4", "20"], ["JJ7", "5"]]} + {name: "trig.out", pads: [["JU5", "6"], ["JU9", "2"]]}, + {name: "trig_gate.control", pads: [["JU5", "12"], ["JQ5", "1"]]}, + {name: "btns.io0", pads: [["JU5", "20"], ["JJ7", "5"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(2.4891732283464565, 1.8566929133858268); +const limit1 = pt(2.4755905511811025, 1.9023622047244095); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/Datalogger/Datalogger.net.ref b/examples/Datalogger/Datalogger.net.ref index dfe7bb28d..199fc08a7 100644 --- a/examples/Datalogger/Datalogger.net.ref +++ b/examples/Datalogger/Datalogger.net.ref @@ -20,10 +20,22 @@ (property (name "edg_path") (value "usb_conn.conn")) (property (name "edg_short_path") (value "usb_conn.conn")) (property (name "edg_refdes") (value "J2")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb_conn/") (tstamps "/0f1f0358/")) (tstamps "042701af")) +(comp (ref "U1") + (value "usb_conn.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb_conn")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb_conn.esd")) + (property (name "edg_short_path") (value "usb_conn.esd")) + (property (name "edg_refdes") (value "U1")) + (property (name "edg_part") (value "TPD2E009 (Texas Instruments)")) + (property (name "edg_value") (value "TPD2E009")) + (sheetpath (names "/usb_conn/") (tstamps "/0f1f0358/")) + (tstamps "027c013d")) (comp (ref "R1") (value "usb_conn.cc_pull.cc1") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -48,26 +60,26 @@ (property (name "edg_value") (value "5.1k, 1%, 0.1 W")) (sheetpath (names "/usb_conn/cc_pull/") (tstamps "/0f1f0358/0b4c02e3/")) (tstamps "022400f9")) -(comp (ref "U1") +(comp (ref "U2") (value "bat") (footprint "Battery:BatteryHolder_Keystone_106_1x20mm") (property (name "Sheetname") (value "")) (property (name "Sheetfile") (value "")) (property (name "edg_path") (value "bat")) (property (name "edg_short_path") (value "bat")) - (property (name "edg_refdes") (value "U1")) + (property (name "edg_refdes") (value "U2")) (property (name "edg_part") (value "106 (Keystone)")) (property (name "edg_value") (value "106")) (sheetpath (names "/") (tstamps "/")) (tstamps "025f0138")) -(comp (ref "U2") +(comp (ref "U3") (value "pwr_5v.ic") (footprint "Package_TO_SOT_SMD:SOT-23-6") (property (name "Sheetname") (value "pwr_5v")) (property (name "Sheetfile") (value "edg.parts.power.converter.TexasInstruments_Buck.Tps561201")) (property (name "edg_path") (value "pwr_5v.ic")) (property (name "edg_short_path") (value "pwr_5v.ic")) - (property (name "edg_refdes") (value "U2")) + (property (name "edg_refdes") (value "U3")) (property (name "edg_part") (value "TPS561201 (Texas Instruments)")) (property (name "edg_value") (value "TPS561201")) (sheetpath (names "/pwr_5v/") (tstamps "/08be0264/")) @@ -216,14 +228,14 @@ (property (name "edg_value") (value "47k, 1%, 0.1 W")) (sheetpath (names "/buffer/set/") (tstamps "/08a1027b/029a014d/")) (tstamps "175b043f")) -(comp (ref "U3") +(comp (ref "U4") (value "buffer.amp.ic") (footprint "Package_TO_SOT_SMD:SOT-23-6") (property (name "Sheetname") (value "amp")) (property (name "Sheetfile") (value "edg.parts.analog.opamp.Tlv9061.Tlv9061")) (property (name "edg_path") (value "buffer.amp.ic")) (property (name "edg_short_path") (value "buffer.amp.ic")) - (property (name "edg_refdes") (value "U3")) + (property (name "edg_refdes") (value "U4")) (property (name "edg_part") (value "TLV9061S (Texas Instruments)")) (property (name "edg_value") (value "TLV9061S")) (sheetpath (names "/buffer/amp/") (tstamps "/08a1027b/0270013f/")) @@ -252,14 +264,14 @@ (property (name "edg_value") (value "DBN-5R5D334T")) (sheetpath (names "/buffer/") (tstamps "/08a1027b/")) (tstamps "025e0135")) -(comp (ref "U4") +(comp (ref "U5") (value "pwr_3v3.ic") (footprint "Package_TO_SOT_SMD:SOT-223-3_TabPin2") (property (name "Sheetname") (value "pwr_3v3")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ldl1117")) (property (name "edg_path") (value "pwr_3v3.ic")) (property (name "edg_short_path") (value "pwr_3v3.ic")) - (property (name "edg_refdes") (value "U4")) + (property (name "edg_refdes") (value "U5")) (property (name "edg_part") (value "LDL1117S33R (STMicroelectronics)")) (property (name "edg_value") (value "LDL1117S33R")) (sheetpath (names "/pwr_3v3/") (tstamps "/0b4f0295/")) @@ -288,14 +300,14 @@ (property (name "edg_value") (value "4.7uF")) (sheetpath (names "/pwr_3v3/") (tstamps "/0b4f0295/")) (tstamps "0be902ec")) -(comp (ref "U5") +(comp (ref "U6") (value "mcu.ic") (footprint "Package_QFP:LQFP-64_10x10mm_P0.5mm") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Lpc1549.Lpc1549_64")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "U5")) + (property (name "edg_refdes") (value "U6")) (property (name "edg_part") (value "LPC1549JBD64 (NXP)")) (property (name "edg_value") (value "LPC1549JBD64")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -540,14 +552,14 @@ (property (name "edg_value") (value "0ZCM0005FF2G")) (sheetpath (names "/can/") (tstamps "/025c0133/")) (tstamps "0e780345")) -(comp (ref "U6") +(comp (ref "U7") (value "can.reg.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "reg")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ap2204k")) (property (name "edg_path") (value "can.reg.ic")) (property (name "edg_short_path") (value "can.reg.ic")) - (property (name "edg_refdes") (value "U6")) + (property (name "edg_refdes") (value "U7")) (property (name "edg_part") (value "AP2204K-5.0 (Diodes Incorporated)")) (property (name "edg_value") (value "AP2204K-5.0")) (sheetpath (names "/can/reg/") (tstamps "/025c0133/028a013f/")) @@ -576,26 +588,26 @@ (property (name "edg_value") (value "2.2uF")) (sheetpath (names "/can/reg/") (tstamps "/025c0133/028a013f/")) (tstamps "0be902ec")) -(comp (ref "U7") +(comp (ref "U8") (value "can.esd") (footprint "Package_TO_SOT_SMD:SOT-23") (property (name "Sheetname") (value "can")) (property (name "Sheetfile") (value "examples.test_high_switch.CalSolCanBlock")) (property (name "edg_path") (value "can.esd")) (property (name "edg_short_path") (value "can.esd")) - (property (name "edg_refdes") (value "U7")) + (property (name "edg_refdes") (value "U8")) (property (name "edg_part") (value "PESD1CAN,215")) (property (name "edg_value") (value "PESD1CAN,215")) (sheetpath (names "/can/") (tstamps "/025c0133/")) (tstamps "027c013d")) -(comp (ref "U8") +(comp (ref "U9") (value "can.transceiver.ic") (footprint "Package_SO:SOP-8_6.62x9.15mm_P2.54mm") (property (name "Sheetname") (value "transceiver")) (property (name "Sheetfile") (value "edg.parts.interface.CanTransceiver_Iso1050.Iso1050dub")) (property (name "edg_path") (value "can.transceiver.ic")) (property (name "edg_short_path") (value "can.transceiver.ic")) - (property (name "edg_refdes") (value "U8")) + (property (name "edg_refdes") (value "U9")) (property (name "edg_part") (value "ISO1050DUB (Texas Instruments)")) (property (name "edg_value") (value "ISO1050DUB")) (sheetpath (names "/can/transceiver/") (tstamps "/025c0133/1c0604a7/")) @@ -648,14 +660,14 @@ (property (name "edg_value") (value "4.7k, 1%, 0.1 W")) (sheetpath (names "/") (tstamps "/")) (tstamps "0b5202e4")) -(comp (ref "U9") +(comp (ref "U10") (value "xbee.ic") (footprint "Sparkfun_RF:XBEE") (property (name "Sheetname") (value "xbee")) (property (name "Sheetfile") (value "edg.parts.interface.RfModules.Xbee_S3b")) (property (name "edg_path") (value "xbee.ic")) (property (name "edg_short_path") (value "xbee.ic")) - (property (name "edg_refdes") (value "U9")) + (property (name "edg_refdes") (value "U10")) (property (name "edg_part") (value "XBP9B-* (Digi International)")) (property (name "edg_value") (value "XBP9B-*")) (sheetpath (names "/xbee/") (tstamps "/043901a5/")) @@ -708,14 +720,14 @@ (property (name "edg_value") (value "2.2k, 1%, 0.1 W")) (sheetpath (names "/xbee_assoc/") (tstamps "/169c041d/")) (tstamps "0296014b")) -(comp (ref "U10") +(comp (ref "U11") (value "rtc.ic") (footprint "Package_SO:SOIC-16W_7.5x10.3mm_P1.27mm") (property (name "Sheetname") (value "rtc")) (property (name "Sheetfile") (value "edg.parts.sensor.Rtc_Pcf2129.Pcf2129")) (property (name "edg_path") (value "rtc.ic")) (property (name "edg_short_path") (value "rtc.ic")) - (property (name "edg_refdes") (value "U10")) + (property (name "edg_refdes") (value "U11")) (property (name "edg_part") (value "PCF2129T (NXP)")) (property (name "edg_value") (value "PCF2129T")) (sheetpath (names "/rtc/") (tstamps "/02a4014a/")) @@ -1008,14 +1020,14 @@ (property (name "edg_value") (value "10k, 1%, 0.1 W")) (sheetpath (names "/eink/") (tstamps "/041a01a8/")) (tstamps "0e9e0347")) -(comp (ref "U11") +(comp (ref "U12") (value "ext") (footprint "Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical") (property (name "Sheetname") (value "")) (property (name "Sheetfile") (value "")) (property (name "edg_path") (value "ext")) (property (name "edg_short_path") (value "ext")) - (property (name "edg_refdes") (value "U11")) + (property (name "edg_refdes") (value "U12")) (property (name "edg_part") (value "BlueSMiRF (Sparkfun)")) (property (name "edg_value") (value "BlueSMiRF")) (sheetpath (names "/") (tstamps "/")) @@ -1293,27 +1305,28 @@ (node (ref J2) (pin B1)) (node (ref J2) (pin B12)) (node (ref J2) (pin S1)) + (node (ref U1) (pin 3)) (node (ref R1) (pin 1)) (node (ref R2) (pin 1)) - (node (ref U1) (pin 2)) - (node (ref U2) (pin 1)) + (node (ref U2) (pin 2)) + (node (ref U3) (pin 1)) (node (ref R4) (pin 2)) (node (ref C1) (pin 2)) (node (ref C3) (pin 2)) (node (ref C4) (pin 2)) (node (ref R7) (pin 2)) - (node (ref U3) (pin 2)) + (node (ref U4) (pin 2)) (node (ref C5) (pin 2)) (node (ref C6) (pin 2)) - (node (ref U4) (pin 1)) + (node (ref U5) (pin 1)) (node (ref C7) (pin 2)) (node (ref C8) (pin 2)) - (node (ref U5) (pin 14)) - (node (ref U5) (pin 21)) - (node (ref U5) (pin 26)) - (node (ref U5) (pin 27)) - (node (ref U5) (pin 55)) - (node (ref U5) (pin 56)) + (node (ref U6) (pin 14)) + (node (ref U6) (pin 21)) + (node (ref U6) (pin 26)) + (node (ref U6) (pin 27)) + (node (ref U6) (pin 55)) + (node (ref U6) (pin 56)) (node (ref R9) (pin 1)) (node (ref C9) (pin 2)) (node (ref C10) (pin 2)) @@ -1334,18 +1347,18 @@ (node (ref J3) (pin 3)) (node (ref J3) (pin 5)) (node (ref J3) (pin 9)) - (node (ref U8) (pin 4)) + (node (ref U9) (pin 4)) (node (ref C25) (pin 2)) (node (ref J5) (pin 3)) (node (ref J5) (pin 6)) (node (ref J5) (pin SH)) - (node (ref U9) (pin 10)) - (node (ref U9) (pin 14)) + (node (ref U10) (pin 10)) + (node (ref U10) (pin 14)) (node (ref C27) (pin 2)) (node (ref C28) (pin 2)) (node (ref R11) (pin 2)) - (node (ref U10) (pin 5)) - (node (ref U10) (pin 8)) + (node (ref U11) (pin 5)) + (node (ref U11) (pin 8)) (node (ref C29) (pin 2)) (node (ref C30) (pin 2)) (node (ref C31) (pin 2)) @@ -1365,7 +1378,7 @@ (node (ref C42) (pin 2)) (node (ref C43) (pin 2)) (node (ref R14) (pin 1)) - (node (ref U11) (pin 3)) + (node (ref U12) (pin 3)) (node (ref SW1) (pin 2)) (node (ref SW2) (pin 2)) (node (ref R27) (pin 2)) @@ -1373,8 +1386,8 @@ (node (ref R31) (pin 2))) (net (code 2) (name "vin") (node (ref J1) (pin 2)) - (node (ref U2) (pin 3)) - (node (ref U2) (pin 5)) + (node (ref U3) (pin 3)) + (node (ref U3) (pin 5)) (node (ref C1) (pin 1)) (node (ref C3) (pin 1)) (node (ref R26) (pin 1))) @@ -1389,23 +1402,23 @@ (node (ref R5) (pin 1)) (node (ref D1) (pin 1)) (node (ref R6) (pin 1)) - (node (ref U3) (pin 5)) - (node (ref U3) (pin 6)) + (node (ref U4) (pin 5)) + (node (ref U4) (pin 6)) (node (ref C5) (pin 1)) - (node (ref U4) (pin 3)) + (node (ref U5) (pin 3)) (node (ref C7) (pin 1)) (node (ref R28) (pin 1))) (net (code 4) (name "v3v3") - (node (ref U4) (pin 2)) + (node (ref U5) (pin 2)) (node (ref C8) (pin 1)) - (node (ref U5) (pin 13)) - (node (ref U5) (pin 18)) - (node (ref U5) (pin 20)) - (node (ref U5) (pin 22)) - (node (ref U5) (pin 37)) - (node (ref U5) (pin 41)) - (node (ref U5) (pin 52)) - (node (ref U5) (pin 57)) + (node (ref U6) (pin 13)) + (node (ref U6) (pin 18)) + (node (ref U6) (pin 20)) + (node (ref U6) (pin 22)) + (node (ref U6) (pin 37)) + (node (ref U6) (pin 41)) + (node (ref U6) (pin 52)) + (node (ref U6) (pin 57)) (node (ref R8) (pin 1)) (node (ref C9) (pin 1)) (node (ref C10) (pin 1)) @@ -1420,11 +1433,11 @@ (node (ref C19) (pin 1)) (node (ref C20) (pin 1)) (node (ref J3) (pin 1)) - (node (ref U8) (pin 1)) + (node (ref U9) (pin 1)) (node (ref C25) (pin 1)) (node (ref J5) (pin 4)) (node (ref R10) (pin 1)) - (node (ref U9) (pin 1)) + (node (ref U10) (pin 1)) (node (ref C27) (pin 1)) (node (ref C28) (pin 1)) (node (ref R12) (pin 1)) @@ -1433,7 +1446,7 @@ (node (ref C33) (pin 1)) (node (ref L2) (pin 1)) (node (ref C40) (pin 1)) - (node (ref U11) (pin 2)) + (node (ref U12) (pin 2)) (node (ref D6) (pin 2)) (node (ref D7) (pin 2)) (node (ref D8) (pin 2)) @@ -1442,11 +1455,13 @@ (net (code 5) (name "usb_conn.usb.dp") (node (ref J2) (pin A6)) (node (ref J2) (pin B6)) - (node (ref U5) (pin 47))) + (node (ref U1) (pin 2)) + (node (ref U6) (pin 47))) (net (code 6) (name "usb_conn.usb.dm") (node (ref J2) (pin A7)) (node (ref J2) (pin B7)) - (node (ref U5) (pin 48))) + (node (ref U1) (pin 1)) + (node (ref U6) (pin 48))) (net (code 7) (name "usb_conn.conn.cc.cc1") (node (ref J2) (pin A5)) (node (ref R1) (pin 2))) @@ -1454,19 +1469,19 @@ (node (ref J2) (pin B5)) (node (ref R2) (pin 2))) (net (code 9) (name "bat.pwr") - (node (ref U1) (pin 1)) - (node (ref U10) (pin 15)) + (node (ref U2) (pin 1)) + (node (ref U11) (pin 15)) (node (ref C31) (pin 1))) (net (code 10) (name "pwr_5v.ic.sw") - (node (ref U2) (pin 2)) + (node (ref U3) (pin 2)) (node (ref C2) (pin 2)) (node (ref L1) (pin 1))) (net (code 11) (name "pwr_5v.ic.fb") - (node (ref U2) (pin 4)) + (node (ref U3) (pin 4)) (node (ref R3) (pin 2)) (node (ref R4) (pin 1))) (net (code 12) (name "pwr_5v.ic.vbst") - (node (ref U2) (pin 6)) + (node (ref U3) (pin 6)) (node (ref C2) (pin 1))) (net (code 13) (name "buffer.sc_out") (node (ref Q1) (pin 2)) @@ -1476,173 +1491,173 @@ (net (code 14) (name "buffer.sense.b") (node (ref R5) (pin 2)) (node (ref Q1) (pin 3)) - (node (ref U3) (pin 4))) + (node (ref U4) (pin 4))) (net (code 15) (name "buffer.fet.gate") (node (ref Q1) (pin 1)) - (node (ref U3) (pin 1))) + (node (ref U4) (pin 1))) (net (code 16) (name "buffer.set.output") (node (ref R6) (pin 2)) (node (ref R7) (pin 1)) - (node (ref U3) (pin 3))) + (node (ref U4) (pin 3))) (net (code 17) (name "mcu.gpio.rgb1_red") - (node (ref U5) (pin 31)) + (node (ref U6) (pin 31)) (node (ref R15) (pin 2))) (net (code 18) (name "mcu.gpio.rgb1_green") - (node (ref U5) (pin 32)) + (node (ref U6) (pin 32)) (node (ref R16) (pin 2))) (net (code 19) (name "mcu.gpio.rgb1_blue") - (node (ref U5) (pin 30)) + (node (ref U6) (pin 30)) (node (ref R17) (pin 2))) (net (code 20) (name "mcu.gpio.rgb2_red") - (node (ref U5) (pin 28)) + (node (ref U6) (pin 28)) (node (ref R18) (pin 2))) (net (code 21) (name "mcu.gpio.rgb2_green") - (node (ref U5) (pin 29)) + (node (ref U6) (pin 29)) (node (ref R19) (pin 2))) (net (code 22) (name "mcu.gpio.rgb2_blue") - (node (ref U5) (pin 25)) + (node (ref U6) (pin 25)) (node (ref R20) (pin 2))) (net (code 23) (name "mcu.gpio.rgb3_red") - (node (ref U5) (pin 46)) + (node (ref U6) (pin 46)) (node (ref R21) (pin 2))) (net (code 24) (name "mcu.gpio.rgb3_green") - (node (ref U5) (pin 39)) + (node (ref U6) (pin 39)) (node (ref R22) (pin 2))) (net (code 25) (name "mcu.gpio.rgb3_blue") - (node (ref U5) (pin 34)) + (node (ref U6) (pin 34)) (node (ref R23) (pin 2))) (net (code 26) (name "mcu.xtal_node.xi") - (node (ref U5) (pin 36)) + (node (ref U6) (pin 36)) (node (ref X1) (pin 1)) (node (ref C21) (pin 1))) (net (code 27) (name "mcu.xtal_node.xo") - (node (ref U5) (pin 35)) + (node (ref U6) (pin 35)) (node (ref X1) (pin 3)) (node (ref C22) (pin 1))) (net (code 28) (name "mcu.swd_node.swdio") - (node (ref U5) (pin 44)) + (node (ref U6) (pin 44)) (node (ref R8) (pin 2)) (node (ref J3) (pin 2))) (net (code 29) (name "mcu.swd_node.swclk") - (node (ref U5) (pin 40)) + (node (ref U6) (pin 40)) (node (ref R9) (pin 2)) (node (ref J3) (pin 4))) (net (code 30) (name "mcu.reset_node") - (node (ref U5) (pin 45)) + (node (ref U6) (pin 45)) (node (ref J3) (pin 10))) (net (code 31) (name "mcu.ic.xtal_rtc.xtal_in") - (node (ref U5) (pin 42))) + (node (ref U6) (pin 42))) (net (code 32) (name "mcu.ic.xtal_rtc.xtal_out") - (node (ref U5) (pin 43))) + (node (ref U6) (pin 43))) (net (code 33) (name "mcu.swd.tdi") (node (ref J3) (pin 8))) (net (code 34) (name "mcu.swd.swo") - (node (ref U5) (pin 12)) + (node (ref U6) (pin 12)) (node (ref J3) (pin 6))) (net (code 35) (name "can.controller.txd") - (node (ref U5) (pin 51)) - (node (ref U8) (pin 3))) + (node (ref U6) (pin 51)) + (node (ref U9) (pin 3))) (net (code 36) (name "can.controller.rxd") - (node (ref U5) (pin 53)) - (node (ref U8) (pin 2))) + (node (ref U6) (pin 53)) + (node (ref U9) (pin 2))) (net (code 37) (name "can.can.canh") (node (ref J4) (pin 4)) - (node (ref U7) (pin 2)) - (node (ref U8) (pin 7))) + (node (ref U8) (pin 2)) + (node (ref U9) (pin 7))) (net (code 38) (name "can.can.canl") (node (ref J4) (pin 5)) - (node (ref U7) (pin 1)) - (node (ref U8) (pin 6))) + (node (ref U8) (pin 1)) + (node (ref U9) (pin 6))) (net (code 39) (name "can.conn.pwr") (node (ref J4) (pin 2)) (node (ref F1) (pin 1))) (net (code 40) (name "can.conn.gnd") (node (ref J4) (pin 3)) - (node (ref U6) (pin 2)) + (node (ref U7) (pin 2)) (node (ref C23) (pin 2)) (node (ref C24) (pin 2)) - (node (ref U7) (pin 3)) - (node (ref U8) (pin 5)) + (node (ref U8) (pin 3)) + (node (ref U9) (pin 5)) (node (ref C26) (pin 2))) (net (code 41) (name "can.can_fuse.pwr_out") (node (ref F1) (pin 2)) - (node (ref U6) (pin 1)) - (node (ref U6) (pin 3)) + (node (ref U7) (pin 1)) + (node (ref U7) (pin 3)) (node (ref C23) (pin 1))) (net (code 42) (name "can.reg.pwr_out") - (node (ref U6) (pin 5)) + (node (ref U7) (pin 5)) (node (ref C24) (pin 1)) - (node (ref U8) (pin 8)) + (node (ref U9) (pin 8)) (node (ref C26) (pin 1))) (net (code 43) (name "sd.spi.sck") - (node (ref U5) (pin 17)) + (node (ref U6) (pin 17)) (node (ref J5) (pin 5))) (net (code 44) (name "sd.spi.mosi") - (node (ref U5) (pin 15)) + (node (ref U6) (pin 15)) (node (ref J5) (pin 2))) (net (code 45) (name "sd.spi.miso") - (node (ref U5) (pin 19)) + (node (ref U6) (pin 19)) (node (ref J5) (pin 7))) (net (code 46) (name "sd.cs") - (node (ref U5) (pin 11)) + (node (ref U6) (pin 11)) (node (ref J5) (pin 1))) (net (code 47) (name "sd.cd") - (node (ref U5) (pin 16)) + (node (ref U6) (pin 16)) (node (ref J5) (pin 10)) (node (ref R10) (pin 2))) (net (code 48) (name "sd.wp") (node (ref J5) (pin 11))) (net (code 49) (name "xbee.data.tx") - (node (ref U5) (pin 50)) - (node (ref U9) (pin 2))) + (node (ref U6) (pin 50)) + (node (ref U10) (pin 2))) (net (code 50) (name "xbee.data.rx") - (node (ref U5) (pin 58)) - (node (ref U9) (pin 3))) + (node (ref U6) (pin 58)) + (node (ref U10) (pin 3))) (net (code 51) (name "xbee.rssi") - (node (ref U9) (pin 6))) + (node (ref U10) (pin 6))) (net (code 52) (name "xbee.associate") - (node (ref U9) (pin 15)) + (node (ref U10) (pin 15)) (node (ref D2) (pin 2))) (net (code 53) (name "xbee_assoc.package.k") (node (ref D2) (pin 1)) (node (ref R11) (pin 1))) (net (code 54) (name "rtc.spi.sck") - (node (ref U5) (pin 5)) - (node (ref U10) (pin 1)) + (node (ref U6) (pin 5)) + (node (ref U11) (pin 1)) (node (ref J6) (pin 13))) (net (code 55) (name "rtc.spi.mosi") - (node (ref U5) (pin 6)) - (node (ref U10) (pin 2)) + (node (ref U6) (pin 6)) + (node (ref U11) (pin 2)) (node (ref J6) (pin 14))) (net (code 56) (name "rtc.spi.miso") - (node (ref U5) (pin 7)) - (node (ref U10) (pin 3))) + (node (ref U6) (pin 7)) + (node (ref U11) (pin 3))) (net (code 57) (name "rtc.cs") - (node (ref U5) (pin 64)) - (node (ref U10) (pin 4))) + (node (ref U6) (pin 64)) + (node (ref U11) (pin 4))) (net (code 58) (name "rtc.clkout") - (node (ref U10) (pin 7))) + (node (ref U11) (pin 7))) (net (code 59) (name "rtc.int") - (node (ref U10) (pin 13))) + (node (ref U11) (pin 13))) (net (code 60) (name "rtc.ic.pwr") - (node (ref U10) (pin 16)) + (node (ref U11) (pin 16)) (node (ref R12) (pin 2)) (node (ref C29) (pin 1)) (node (ref C30) (pin 1))) (net (code 61) (name "rtc.ic.bbs") - (node (ref U10) (pin 14)) + (node (ref U11) (pin 14)) (node (ref C32) (pin 1))) (net (code 62) (name "eink.reset") - (node (ref U5) (pin 2)) + (node (ref U6) (pin 2)) (node (ref J6) (pin 10))) (net (code 63) (name "eink.cs") - (node (ref U5) (pin 4)) + (node (ref U6) (pin 4)) (node (ref J6) (pin 12))) (net (code 64) (name "eink.dc") - (node (ref U5) (pin 3)) + (node (ref U6) (pin 3)) (node (ref J6) (pin 11))) (net (code 65) (name "eink.busy") - (node (ref U5) (pin 1)) + (node (ref U6) (pin 1)) (node (ref J6) (pin 9))) (net (code 66) (name "eink.device.vdd1v8") (node (ref J6) (pin 18)) @@ -1688,17 +1703,17 @@ (node (ref D5) (pin 2)) (node (ref C41) (pin 2))) (net (code 78) (name "ext.data.tx") - (node (ref U5) (pin 61)) - (node (ref U11) (pin 4))) + (node (ref U6) (pin 61)) + (node (ref U12) (pin 4))) (net (code 79) (name "ext.data.rx") - (node (ref U5) (pin 60)) - (node (ref U11) (pin 5))) + (node (ref U6) (pin 60)) + (node (ref U12) (pin 5))) (net (code 80) (name "ext.cts") - (node (ref U5) (pin 62)) - (node (ref U11) (pin 1))) + (node (ref U6) (pin 62)) + (node (ref U12) (pin 1))) (net (code 81) (name "ext.rts") - (node (ref U5) (pin 59)) - (node (ref U11) (pin 6))) + (node (ref U6) (pin 59)) + (node (ref U12) (pin 6))) (net (code 82) (name "rgb1.package.k_red") (node (ref D6) (pin 3)) (node (ref R15) (pin 1))) @@ -1727,23 +1742,23 @@ (node (ref D8) (pin 1)) (node (ref R23) (pin 1))) (net (code 91) (name "sw1.out") - (node (ref U5) (pin 33)) + (node (ref U6) (pin 33)) (node (ref SW1) (pin 1)) (node (ref R24) (pin 2))) (net (code 92) (name "sw2.out") - (node (ref U5) (pin 23)) + (node (ref U6) (pin 23)) (node (ref SW2) (pin 1)) (node (ref R25) (pin 2))) (net (code 93) (name "v12sense.output") - (node (ref U5) (pin 10)) + (node (ref U6) (pin 10)) (node (ref R26) (pin 2)) (node (ref R27) (pin 1))) (net (code 94) (name "v5sense.output") - (node (ref U5) (pin 9)) + (node (ref U6) (pin 9)) (node (ref R28) (pin 2)) (node (ref R29) (pin 1))) (net (code 95) (name "vscsense.output") - (node (ref U5) (pin 8)) + (node (ref U6) (pin 8)) (node (ref R30) (pin 2)) (node (ref R31) (pin 1)))) ) \ No newline at end of file diff --git a/examples/Datalogger/Datalogger.svgpcb.js b/examples/Datalogger/Datalogger.svgpcb.js index 92f543bb7..fd07c7ef3 100644 --- a/examples/Datalogger/Datalogger.svgpcb.js +++ b/examples/Datalogger/Datalogger.svgpcb.js @@ -7,62 +7,67 @@ const J1 = board.add(Molex_DuraClik_vert_3pin, { }) // usb_conn.conn const J2 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(1.843, 1.867), rotate: 0, + translate: pt(2.889, 1.867), rotate: 0, id: 'J2' }) +// usb_conn.esd +const U1 = board.add(SOT_23, { + translate: pt(3.213, 1.770), rotate: 0, + id: 'U1' +}) // usb_conn.cc_pull.cc1 const R1 = board.add(R_0603_1608Metric, { - translate: pt(1.692, 2.122), rotate: 0, + translate: pt(3.196, 1.905), rotate: 0, id: 'R1' }) // usb_conn.cc_pull.cc2 const R2 = board.add(R_0603_1608Metric, { - translate: pt(1.848, 2.122), rotate: 0, + translate: pt(3.196, 2.002), rotate: 0, id: 'R2' }) // bat -const U1 = board.add(BatteryHolder_Keystone_106_1x20mm, { +const U2 = board.add(BatteryHolder_Keystone_106_1x20mm, { translate: pt(2.492, 0.369), rotate: 0, - id: 'U1' + id: 'U2' }) // pwr_5v.ic -const U2 = board.add(SOT_23_6, { - translate: pt(2.511, 1.770), rotate: 0, - id: 'U2' +const U3 = board.add(SOT_23_6, { + translate: pt(1.974, 1.770), rotate: 0, + id: 'U3' }) // pwr_5v.fb.div.top_res const R3 = board.add(R_0603_1608Metric, { - translate: pt(2.576, 1.987), rotate: 0, + translate: pt(2.039, 1.987), rotate: 0, id: 'R3' }) // pwr_5v.fb.div.bottom_res const R4 = board.add(R_0603_1608Metric, { - translate: pt(2.229, 2.104), rotate: 0, + translate: pt(1.692, 2.104), rotate: 0, id: 'R4' }) // pwr_5v.hf_in_cap.cap const C1 = board.add(C_0603_1608Metric, { - translate: pt(2.385, 2.104), rotate: 0, + translate: pt(1.848, 2.104), rotate: 0, id: 'C1' }) // pwr_5v.vbst_cap.cap const C2 = board.add(C_0603_1608Metric, { - translate: pt(2.541, 2.104), rotate: 0, + translate: pt(2.004, 2.104), rotate: 0, id: 'C2' }) // pwr_5v.power_path.inductor const L1 = board.add(L_Taiyo_Yuden_NR_50xx, { - translate: pt(2.281, 1.811), rotate: 0, + translate: pt(1.744, 1.811), rotate: 0, id: 'L1' }) // pwr_5v.power_path.in_cap.cap const C3 = board.add(C_0805_2012Metric, { - translate: pt(2.238, 1.997), rotate: 0, + translate: pt(1.701, 1.997), rotate: 0, id: 'C3' }) // pwr_5v.power_path.out_cap.cap const C4 = board.add(C_0805_2012Metric, { - translate: pt(2.411, 1.997), rotate: 0, + translate: pt(1.874, 1.997), rotate: 0, id: 'C4' }) // buffer.sense @@ -91,9 +96,9 @@ const R7 = board.add(R_0603_1608Metric, { id: 'R7' }) // buffer.amp.ic -const U3 = board.add(SOT_23_6, { +const U4 = board.add(SOT_23_6, { translate: pt(1.904, 1.229), rotate: 0, - id: 'U3' + id: 'U4' }) // buffer.amp.vdd_cap.cap const C5 = board.add(C_0603_1608Metric, { @@ -106,24 +111,24 @@ const C6 = board.add(CP_Radial_D14_0mm_P5_00mm, { id: 'C6' }) // pwr_3v3.ic -const U4 = board.add(SOT_223_3_TabPin2, { - translate: pt(2.925, 1.844), rotate: 0, - id: 'U4' +const U5 = board.add(SOT_223_3_TabPin2, { + translate: pt(2.388, 1.844), rotate: 0, + id: 'U5' }) // pwr_3v3.in_cap.cap const C7 = board.add(C_0603_1608Metric, { - translate: pt(2.983, 2.054), rotate: 0, + translate: pt(2.446, 2.054), rotate: 0, id: 'C7' }) // pwr_3v3.out_cap.cap const C8 = board.add(C_0805_2012Metric, { - translate: pt(2.819, 2.064), rotate: 0, + translate: pt(2.282, 2.064), rotate: 0, id: 'C8' }) // mcu.ic -const U5 = board.add(LQFP_64_10x10mm_P0_5mm, { +const U6 = board.add(LQFP_64_10x10mm_P0_5mm, { translate: pt(1.469, 0.264), rotate: 0, - id: 'U5' + id: 'U6' }) // mcu.swd_pull.swdio.res const R8 = board.add(R_0603_1608Metric, { @@ -226,9 +231,9 @@ const F1 = board.add(R_0603_1608Metric, { id: 'F1' }) // can.reg.ic -const U6 = board.add(SOT_23_5, { +const U7 = board.add(SOT_23_5, { translate: pt(0.589, 1.770), rotate: 0, - id: 'U6' + id: 'U7' }) // can.reg.in_cap.cap const C23 = board.add(C_0603_1608Metric, { @@ -241,14 +246,14 @@ const C24 = board.add(C_0805_2012Metric, { id: 'C24' }) // can.esd -const U7 = board.add(SOT_23, { +const U8 = board.add(SOT_23, { translate: pt(0.583, 1.943), rotate: 0, - id: 'U7' + id: 'U8' }) // can.transceiver.ic -const U8 = board.add(SOP_8_6_62x9_15mm_P2_54mm, { +const U9 = board.add(SOP_8_6_62x9_15mm_P2_54mm, { translate: pt(0.234, 1.893), rotate: 0, - id: 'U8' + id: 'U9' }) // can.transceiver.logic_cap.cap const C25 = board.add(C_0603_1608Metric, { @@ -271,9 +276,9 @@ const R10 = board.add(R_0603_1608Metric, { id: 'R10' }) // xbee.ic -const U9 = board.add(XBEE, { +const U10 = board.add(XBEE, { translate: pt(1.172, 2.453), rotate: 0, - id: 'U9' + id: 'U10' }) // xbee.vdd_cap_0.cap const C27 = board.add(C_0603_1608Metric, { @@ -296,9 +301,9 @@ const R11 = board.add(R_0603_1608Metric, { id: 'R11' }) // rtc.ic -const U10 = board.add(SOIC_16W_7_5x10_3mm_P1_27mm, { +const U11 = board.add(SOIC_16W_7_5x10_3mm_P1_27mm, { translate: pt(1.109, 1.915), rotate: 0, - id: 'U10' + id: 'U11' }) // rtc.vdd_res.res const R12 = board.add(R_0603_1608Metric, { @@ -421,28 +426,28 @@ const R14 = board.add(R_0603_1608Metric, { id: 'R14' }) // ext -const U11 = board.add(PinHeader_1x06_P2_54mm_Vertical, { +const U12 = board.add(PinHeader_1x06_P2_54mm_Vertical, { translate: pt(3.476, 1.410), rotate: 0, - id: 'U11' + id: 'U12' }) // rgb1.package const D6 = board.add(LED_LiteOn_LTST_C19HE1WT, { - translate: pt(3.258, 1.758), rotate: 0, + translate: pt(3.448, 1.758), rotate: 0, id: 'D6' }) // rgb1.red_res const R15 = board.add(R_0603_1608Metric, { - translate: pt(3.397, 1.731), rotate: 0, + translate: pt(3.587, 1.731), rotate: 0, id: 'R15' }) // rgb1.green_res const R16 = board.add(R_0603_1608Metric, { - translate: pt(3.275, 1.881), rotate: 0, + translate: pt(3.465, 1.881), rotate: 0, id: 'R16' }) // rgb1.blue_res const R17 = board.add(R_0603_1608Metric, { - translate: pt(3.431, 1.881), rotate: 0, + translate: pt(3.621, 1.881), rotate: 0, id: 'R17' }) // rgb2.package @@ -537,71 +542,71 @@ const R31 = board.add(R_0603_1608Metric, { }) board.setNetlist([ - {name: "gnd", pads: [["J1", "1"], ["J1", "3"], ["J2", "A1"], ["J2", "A12"], ["J2", "B1"], ["J2", "B12"], ["J2", "S1"], ["R1", "1"], ["R2", "1"], ["U1", "2"], ["U2", "1"], ["R4", "2"], ["C1", "2"], ["C3", "2"], ["C4", "2"], ["R7", "2"], ["U3", "2"], ["C5", "2"], ["C6", "2"], ["U4", "1"], ["C7", "2"], ["C8", "2"], ["U5", "14"], ["U5", "21"], ["U5", "26"], ["U5", "27"], ["U5", "55"], ["U5", "56"], ["R9", "1"], ["C9", "2"], ["C10", "2"], ["C11", "2"], ["C12", "2"], ["C13", "2"], ["C14", "2"], ["C15", "2"], ["C16", "2"], ["C17", "2"], ["C18", "2"], ["C19", "2"], ["C20", "2"], ["X1", "2"], ["X1", "4"], ["C21", "2"], ["C22", "2"], ["J3", "3"], ["J3", "5"], ["J3", "9"], ["U8", "4"], ["C25", "2"], ["J5", "3"], ["J5", "6"], ["J5", "SH"], ["U9", "10"], ["U9", "14"], ["C27", "2"], ["C28", "2"], ["R11", "2"], ["U10", "5"], ["U10", "8"], ["C29", "2"], ["C30", "2"], ["C31", "2"], ["C32", "2"], ["J6", "17"], ["J6", "8"], ["C33", "2"], ["C34", "2"], ["C35", "2"], ["C36", "2"], ["C37", "2"], ["C38", "2"], ["C39", "2"], ["R13", "2"], ["C40", "2"], ["D5", "1"], ["C42", "2"], ["C43", "2"], ["R14", "1"], ["U11", "3"], ["SW1", "2"], ["SW2", "2"], ["R27", "2"], ["R29", "2"], ["R31", "2"]]}, - {name: "vin", pads: [["J1", "2"], ["U2", "3"], ["U2", "5"], ["C1", "1"], ["C3", "1"], ["R26", "1"]]}, - {name: "v5", pads: [["J2", "A4"], ["J2", "A9"], ["J2", "B4"], ["J2", "B9"], ["R3", "1"], ["L1", "2"], ["C4", "1"], ["R5", "1"], ["D1", "1"], ["R6", "1"], ["U3", "5"], ["U3", "6"], ["C5", "1"], ["U4", "3"], ["C7", "1"], ["R28", "1"]]}, - {name: "v3v3", pads: [["U4", "2"], ["C8", "1"], ["U5", "13"], ["U5", "18"], ["U5", "20"], ["U5", "22"], ["U5", "37"], ["U5", "41"], ["U5", "52"], ["U5", "57"], ["R8", "1"], ["C9", "1"], ["C10", "1"], ["C11", "1"], ["C12", "1"], ["C13", "1"], ["C14", "1"], ["C15", "1"], ["C16", "1"], ["C17", "1"], ["C18", "1"], ["C19", "1"], ["C20", "1"], ["J3", "1"], ["U8", "1"], ["C25", "1"], ["J5", "4"], ["R10", "1"], ["U9", "1"], ["C27", "1"], ["C28", "1"], ["R12", "1"], ["J6", "15"], ["J6", "16"], ["C33", "1"], ["L2", "1"], ["C40", "1"], ["U11", "2"], ["D6", "2"], ["D7", "2"], ["D8", "2"], ["R24", "1"], ["R25", "1"]]}, - {name: "usb_conn.usb.dp", pads: [["J2", "A6"], ["J2", "B6"], ["U5", "47"]]}, - {name: "usb_conn.usb.dm", pads: [["J2", "A7"], ["J2", "B7"], ["U5", "48"]]}, + {name: "gnd", pads: [["J1", "1"], ["J1", "3"], ["J2", "A1"], ["J2", "A12"], ["J2", "B1"], ["J2", "B12"], ["J2", "S1"], ["U1", "3"], ["R1", "1"], ["R2", "1"], ["U2", "2"], ["U3", "1"], ["R4", "2"], ["C1", "2"], ["C3", "2"], ["C4", "2"], ["R7", "2"], ["U4", "2"], ["C5", "2"], ["C6", "2"], ["U5", "1"], ["C7", "2"], ["C8", "2"], ["U6", "14"], ["U6", "21"], ["U6", "26"], ["U6", "27"], ["U6", "55"], ["U6", "56"], ["R9", "1"], ["C9", "2"], ["C10", "2"], ["C11", "2"], ["C12", "2"], ["C13", "2"], ["C14", "2"], ["C15", "2"], ["C16", "2"], ["C17", "2"], ["C18", "2"], ["C19", "2"], ["C20", "2"], ["X1", "2"], ["X1", "4"], ["C21", "2"], ["C22", "2"], ["J3", "3"], ["J3", "5"], ["J3", "9"], ["U9", "4"], ["C25", "2"], ["J5", "3"], ["J5", "6"], ["J5", "SH"], ["U10", "10"], ["U10", "14"], ["C27", "2"], ["C28", "2"], ["R11", "2"], ["U11", "5"], ["U11", "8"], ["C29", "2"], ["C30", "2"], ["C31", "2"], ["C32", "2"], ["J6", "17"], ["J6", "8"], ["C33", "2"], ["C34", "2"], ["C35", "2"], ["C36", "2"], ["C37", "2"], ["C38", "2"], ["C39", "2"], ["R13", "2"], ["C40", "2"], ["D5", "1"], ["C42", "2"], ["C43", "2"], ["R14", "1"], ["U12", "3"], ["SW1", "2"], ["SW2", "2"], ["R27", "2"], ["R29", "2"], ["R31", "2"]]}, + {name: "vin", pads: [["J1", "2"], ["U3", "3"], ["U3", "5"], ["C1", "1"], ["C3", "1"], ["R26", "1"]]}, + {name: "v5", pads: [["J2", "A4"], ["J2", "A9"], ["J2", "B4"], ["J2", "B9"], ["R3", "1"], ["L1", "2"], ["C4", "1"], ["R5", "1"], ["D1", "1"], ["R6", "1"], ["U4", "5"], ["U4", "6"], ["C5", "1"], ["U5", "3"], ["C7", "1"], ["R28", "1"]]}, + {name: "v3v3", pads: [["U5", "2"], ["C8", "1"], ["U6", "13"], ["U6", "18"], ["U6", "20"], ["U6", "22"], ["U6", "37"], ["U6", "41"], ["U6", "52"], ["U6", "57"], ["R8", "1"], ["C9", "1"], ["C10", "1"], ["C11", "1"], ["C12", "1"], ["C13", "1"], ["C14", "1"], ["C15", "1"], ["C16", "1"], ["C17", "1"], ["C18", "1"], ["C19", "1"], ["C20", "1"], ["J3", "1"], ["U9", "1"], ["C25", "1"], ["J5", "4"], ["R10", "1"], ["U10", "1"], ["C27", "1"], ["C28", "1"], ["R12", "1"], ["J6", "15"], ["J6", "16"], ["C33", "1"], ["L2", "1"], ["C40", "1"], ["U12", "2"], ["D6", "2"], ["D7", "2"], ["D8", "2"], ["R24", "1"], ["R25", "1"]]}, + {name: "usb_conn.usb.dp", pads: [["J2", "A6"], ["J2", "B6"], ["U1", "2"], ["U6", "47"]]}, + {name: "usb_conn.usb.dm", pads: [["J2", "A7"], ["J2", "B7"], ["U1", "1"], ["U6", "48"]]}, {name: "usb_conn.conn.cc.cc1", pads: [["J2", "A5"], ["R1", "2"]]}, {name: "usb_conn.conn.cc.cc2", pads: [["J2", "B5"], ["R2", "2"]]}, - {name: "bat.pwr", pads: [["U1", "1"], ["U10", "15"], ["C31", "1"]]}, - {name: "pwr_5v.ic.sw", pads: [["U2", "2"], ["C2", "2"], ["L1", "1"]]}, - {name: "pwr_5v.ic.fb", pads: [["U2", "4"], ["R3", "2"], ["R4", "1"]]}, - {name: "pwr_5v.ic.vbst", pads: [["U2", "6"], ["C2", "1"]]}, + {name: "bat.pwr", pads: [["U2", "1"], ["U11", "15"], ["C31", "1"]]}, + {name: "pwr_5v.ic.sw", pads: [["U3", "2"], ["C2", "2"], ["L1", "1"]]}, + {name: "pwr_5v.ic.fb", pads: [["U3", "4"], ["R3", "2"], ["R4", "1"]]}, + {name: "pwr_5v.ic.vbst", pads: [["U3", "6"], ["C2", "1"]]}, {name: "buffer.sc_out", pads: [["Q1", "2"], ["D1", "2"], ["C6", "1"], ["R30", "1"]]}, - {name: "buffer.sense.b", pads: [["R5", "2"], ["Q1", "3"], ["U3", "4"]]}, - {name: "buffer.fet.gate", pads: [["Q1", "1"], ["U3", "1"]]}, - {name: "buffer.set.output", pads: [["R6", "2"], ["R7", "1"], ["U3", "3"]]}, - {name: "mcu.gpio.rgb1_red", pads: [["U5", "31"], ["R15", "2"]]}, - {name: "mcu.gpio.rgb1_green", pads: [["U5", "32"], ["R16", "2"]]}, - {name: "mcu.gpio.rgb1_blue", pads: [["U5", "30"], ["R17", "2"]]}, - {name: "mcu.gpio.rgb2_red", pads: [["U5", "28"], ["R18", "2"]]}, - {name: "mcu.gpio.rgb2_green", pads: [["U5", "29"], ["R19", "2"]]}, - {name: "mcu.gpio.rgb2_blue", pads: [["U5", "25"], ["R20", "2"]]}, - {name: "mcu.gpio.rgb3_red", pads: [["U5", "46"], ["R21", "2"]]}, - {name: "mcu.gpio.rgb3_green", pads: [["U5", "39"], ["R22", "2"]]}, - {name: "mcu.gpio.rgb3_blue", pads: [["U5", "34"], ["R23", "2"]]}, - {name: "mcu.xtal_node.xi", pads: [["U5", "36"], ["X1", "1"], ["C21", "1"]]}, - {name: "mcu.xtal_node.xo", pads: [["U5", "35"], ["X1", "3"], ["C22", "1"]]}, - {name: "mcu.swd_node.swdio", pads: [["U5", "44"], ["R8", "2"], ["J3", "2"]]}, - {name: "mcu.swd_node.swclk", pads: [["U5", "40"], ["R9", "2"], ["J3", "4"]]}, - {name: "mcu.reset_node", pads: [["U5", "45"], ["J3", "10"]]}, - {name: "mcu.ic.xtal_rtc.xtal_in", pads: [["U5", "42"]]}, - {name: "mcu.ic.xtal_rtc.xtal_out", pads: [["U5", "43"]]}, + {name: "buffer.sense.b", pads: [["R5", "2"], ["Q1", "3"], ["U4", "4"]]}, + {name: "buffer.fet.gate", pads: [["Q1", "1"], ["U4", "1"]]}, + {name: "buffer.set.output", pads: [["R6", "2"], ["R7", "1"], ["U4", "3"]]}, + {name: "mcu.gpio.rgb1_red", pads: [["U6", "31"], ["R15", "2"]]}, + {name: "mcu.gpio.rgb1_green", pads: [["U6", "32"], ["R16", "2"]]}, + {name: "mcu.gpio.rgb1_blue", pads: [["U6", "30"], ["R17", "2"]]}, + {name: "mcu.gpio.rgb2_red", pads: [["U6", "28"], ["R18", "2"]]}, + {name: "mcu.gpio.rgb2_green", pads: [["U6", "29"], ["R19", "2"]]}, + {name: "mcu.gpio.rgb2_blue", pads: [["U6", "25"], ["R20", "2"]]}, + {name: "mcu.gpio.rgb3_red", pads: [["U6", "46"], ["R21", "2"]]}, + {name: "mcu.gpio.rgb3_green", pads: [["U6", "39"], ["R22", "2"]]}, + {name: "mcu.gpio.rgb3_blue", pads: [["U6", "34"], ["R23", "2"]]}, + {name: "mcu.xtal_node.xi", pads: [["U6", "36"], ["X1", "1"], ["C21", "1"]]}, + {name: "mcu.xtal_node.xo", pads: [["U6", "35"], ["X1", "3"], ["C22", "1"]]}, + {name: "mcu.swd_node.swdio", pads: [["U6", "44"], ["R8", "2"], ["J3", "2"]]}, + {name: "mcu.swd_node.swclk", pads: [["U6", "40"], ["R9", "2"], ["J3", "4"]]}, + {name: "mcu.reset_node", pads: [["U6", "45"], ["J3", "10"]]}, + {name: "mcu.ic.xtal_rtc.xtal_in", pads: [["U6", "42"]]}, + {name: "mcu.ic.xtal_rtc.xtal_out", pads: [["U6", "43"]]}, {name: "mcu.swd.tdi", pads: [["J3", "8"]]}, - {name: "mcu.swd.swo", pads: [["U5", "12"], ["J3", "6"]]}, - {name: "can.controller.txd", pads: [["U5", "51"], ["U8", "3"]]}, - {name: "can.controller.rxd", pads: [["U5", "53"], ["U8", "2"]]}, - {name: "can.can.canh", pads: [["J4", "4"], ["U7", "2"], ["U8", "7"]]}, - {name: "can.can.canl", pads: [["J4", "5"], ["U7", "1"], ["U8", "6"]]}, + {name: "mcu.swd.swo", pads: [["U6", "12"], ["J3", "6"]]}, + {name: "can.controller.txd", pads: [["U6", "51"], ["U9", "3"]]}, + {name: "can.controller.rxd", pads: [["U6", "53"], ["U9", "2"]]}, + {name: "can.can.canh", pads: [["J4", "4"], ["U8", "2"], ["U9", "7"]]}, + {name: "can.can.canl", pads: [["J4", "5"], ["U8", "1"], ["U9", "6"]]}, {name: "can.conn.pwr", pads: [["J4", "2"], ["F1", "1"]]}, - {name: "can.conn.gnd", pads: [["J4", "3"], ["U6", "2"], ["C23", "2"], ["C24", "2"], ["U7", "3"], ["U8", "5"], ["C26", "2"]]}, - {name: "can.can_fuse.pwr_out", pads: [["F1", "2"], ["U6", "1"], ["U6", "3"], ["C23", "1"]]}, - {name: "can.reg.pwr_out", pads: [["U6", "5"], ["C24", "1"], ["U8", "8"], ["C26", "1"]]}, - {name: "sd.spi.sck", pads: [["U5", "17"], ["J5", "5"]]}, - {name: "sd.spi.mosi", pads: [["U5", "15"], ["J5", "2"]]}, - {name: "sd.spi.miso", pads: [["U5", "19"], ["J5", "7"]]}, - {name: "sd.cs", pads: [["U5", "11"], ["J5", "1"]]}, - {name: "sd.cd", pads: [["U5", "16"], ["J5", "10"], ["R10", "2"]]}, + {name: "can.conn.gnd", pads: [["J4", "3"], ["U7", "2"], ["C23", "2"], ["C24", "2"], ["U8", "3"], ["U9", "5"], ["C26", "2"]]}, + {name: "can.can_fuse.pwr_out", pads: [["F1", "2"], ["U7", "1"], ["U7", "3"], ["C23", "1"]]}, + {name: "can.reg.pwr_out", pads: [["U7", "5"], ["C24", "1"], ["U9", "8"], ["C26", "1"]]}, + {name: "sd.spi.sck", pads: [["U6", "17"], ["J5", "5"]]}, + {name: "sd.spi.mosi", pads: [["U6", "15"], ["J5", "2"]]}, + {name: "sd.spi.miso", pads: [["U6", "19"], ["J5", "7"]]}, + {name: "sd.cs", pads: [["U6", "11"], ["J5", "1"]]}, + {name: "sd.cd", pads: [["U6", "16"], ["J5", "10"], ["R10", "2"]]}, {name: "sd.wp", pads: [["J5", "11"]]}, - {name: "xbee.data.tx", pads: [["U5", "50"], ["U9", "2"]]}, - {name: "xbee.data.rx", pads: [["U5", "58"], ["U9", "3"]]}, - {name: "xbee.rssi", pads: [["U9", "6"]]}, - {name: "xbee.associate", pads: [["U9", "15"], ["D2", "2"]]}, + {name: "xbee.data.tx", pads: [["U6", "50"], ["U10", "2"]]}, + {name: "xbee.data.rx", pads: [["U6", "58"], ["U10", "3"]]}, + {name: "xbee.rssi", pads: [["U10", "6"]]}, + {name: "xbee.associate", pads: [["U10", "15"], ["D2", "2"]]}, {name: "xbee_assoc.package.k", pads: [["D2", "1"], ["R11", "1"]]}, - {name: "rtc.spi.sck", pads: [["U5", "5"], ["U10", "1"], ["J6", "13"]]}, - {name: "rtc.spi.mosi", pads: [["U5", "6"], ["U10", "2"], ["J6", "14"]]}, - {name: "rtc.spi.miso", pads: [["U5", "7"], ["U10", "3"]]}, - {name: "rtc.cs", pads: [["U5", "64"], ["U10", "4"]]}, - {name: "rtc.clkout", pads: [["U10", "7"]]}, - {name: "rtc.int", pads: [["U10", "13"]]}, - {name: "rtc.ic.pwr", pads: [["U10", "16"], ["R12", "2"], ["C29", "1"], ["C30", "1"]]}, - {name: "rtc.ic.bbs", pads: [["U10", "14"], ["C32", "1"]]}, - {name: "eink.reset", pads: [["U5", "2"], ["J6", "10"]]}, - {name: "eink.cs", pads: [["U5", "4"], ["J6", "12"]]}, - {name: "eink.dc", pads: [["U5", "3"], ["J6", "11"]]}, - {name: "eink.busy", pads: [["U5", "1"], ["J6", "9"]]}, + {name: "rtc.spi.sck", pads: [["U6", "5"], ["U11", "1"], ["J6", "13"]]}, + {name: "rtc.spi.mosi", pads: [["U6", "6"], ["U11", "2"], ["J6", "14"]]}, + {name: "rtc.spi.miso", pads: [["U6", "7"], ["U11", "3"]]}, + {name: "rtc.cs", pads: [["U6", "64"], ["U11", "4"]]}, + {name: "rtc.clkout", pads: [["U11", "7"]]}, + {name: "rtc.int", pads: [["U11", "13"]]}, + {name: "rtc.ic.pwr", pads: [["U11", "16"], ["R12", "2"], ["C29", "1"], ["C30", "1"]]}, + {name: "rtc.ic.bbs", pads: [["U11", "14"], ["C32", "1"]]}, + {name: "eink.reset", pads: [["U6", "2"], ["J6", "10"]]}, + {name: "eink.cs", pads: [["U6", "4"], ["J6", "12"]]}, + {name: "eink.dc", pads: [["U6", "3"], ["J6", "11"]]}, + {name: "eink.busy", pads: [["U6", "1"], ["J6", "9"]]}, {name: "eink.device.vdd1v8", pads: [["J6", "18"], ["C34", "1"]]}, {name: "eink.device.gdr", pads: [["J6", "2"], ["Q2", "1"], ["R14", "2"]]}, {name: "eink.device.rese", pads: [["J6", "3"], ["Q2", "2"], ["R13", "1"]]}, @@ -614,10 +619,10 @@ board.setNetlist([ {name: "eink.device.vcom", pads: [["J6", "24"], ["C39", "1"]]}, {name: "eink.boost.fet.drain", pads: [["Q2", "3"], ["L2", "2"], ["D3", "2"], ["C41", "1"]]}, {name: "eink.boost.boot_neg_diode.cathode", pads: [["D4", "1"], ["D5", "2"], ["C41", "2"]]}, - {name: "ext.data.tx", pads: [["U5", "61"], ["U11", "4"]]}, - {name: "ext.data.rx", pads: [["U5", "60"], ["U11", "5"]]}, - {name: "ext.cts", pads: [["U5", "62"], ["U11", "1"]]}, - {name: "ext.rts", pads: [["U5", "59"], ["U11", "6"]]}, + {name: "ext.data.tx", pads: [["U6", "61"], ["U12", "4"]]}, + {name: "ext.data.rx", pads: [["U6", "60"], ["U12", "5"]]}, + {name: "ext.cts", pads: [["U6", "62"], ["U12", "1"]]}, + {name: "ext.rts", pads: [["U6", "59"], ["U12", "6"]]}, {name: "rgb1.package.k_red", pads: [["D6", "3"], ["R15", "1"]]}, {name: "rgb1.package.k_green", pads: [["D6", "4"], ["R16", "1"]]}, {name: "rgb1.package.k_blue", pads: [["D6", "1"], ["R17", "1"]]}, @@ -627,15 +632,15 @@ board.setNetlist([ {name: "rgb3.package.k_red", pads: [["D8", "3"], ["R21", "1"]]}, {name: "rgb3.package.k_green", pads: [["D8", "4"], ["R22", "1"]]}, {name: "rgb3.package.k_blue", pads: [["D8", "1"], ["R23", "1"]]}, - {name: "sw1.out", pads: [["U5", "33"], ["SW1", "1"], ["R24", "2"]]}, - {name: "sw2.out", pads: [["U5", "23"], ["SW2", "1"], ["R25", "2"]]}, - {name: "v12sense.output", pads: [["U5", "10"], ["R26", "2"], ["R27", "1"]]}, - {name: "v5sense.output", pads: [["U5", "9"], ["R28", "2"], ["R29", "1"]]}, - {name: "vscsense.output", pads: [["U5", "8"], ["R30", "2"], ["R31", "1"]]} + {name: "sw1.out", pads: [["U6", "33"], ["SW1", "1"], ["R24", "2"]]}, + {name: "sw2.out", pads: [["U6", "23"], ["SW2", "1"], ["R25", "2"]]}, + {name: "v12sense.output", pads: [["U6", "10"], ["R26", "2"], ["R27", "1"]]}, + {name: "v5sense.output", pads: [["U6", "9"], ["R28", "2"], ["R29", "1"]]}, + {name: "vscsense.output", pads: [["U6", "8"], ["R30", "2"], ["R31", "1"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(3.6070866141732285, 2.6814960629921263); +const limit1 = pt(3.797637795275591, 2.6814960629921263); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/EspLora/EspLora.net.ref b/examples/EspLora/EspLora.net.ref index 72e567a7c..96f348840 100644 --- a/examples/EspLora/EspLora.net.ref +++ b/examples/EspLora/EspLora.net.ref @@ -44,10 +44,22 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "LJ1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) +(comp (ref "LU1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "LU1")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "LR1") (value "usb.cc_pull.cc1") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -108,14 +120,14 @@ (property (name "edg_value") (value "pwr")) (sheetpath (names "/") (tstamps "/")) (tstamps "091a029d")) -(comp (ref "LU1") +(comp (ref "LU2") (value "reg_3v3.ic") (footprint "Package_TO_SOT_SMD:SOT-223-3_TabPin2") (property (name "Sheetname") (value "reg_3v3")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ldl1117")) (property (name "edg_path") (value "reg_3v3.ic")) (property (name "edg_short_path") (value "reg_3v3.ic")) - (property (name "edg_refdes") (value "LU1")) + (property (name "edg_refdes") (value "LU2")) (property (name "edg_part") (value "LDL1117S33R (STMicroelectronics)")) (property (name "edg_value") (value "LDL1117S33R")) (sheetpath (names "/reg_3v3/") (tstamps "/0aba027a/")) @@ -192,14 +204,14 @@ (property (name "edg_value") (value "5.1mm switch")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) (tstamps "042b01b5")) -(comp (ref "LU2") +(comp (ref "LU3") (value "mcu.ic") (footprint "RF_Module:ESP32-S3-WROOM-1") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Esp32s3.Esp32s3_Wroom_1")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "LU2")) + (property (name "edg_refdes") (value "LU3")) (property (name "edg_part") (value "ESP32-S3-WROOM-1-N16R8 (Espressif Systems)")) (property (name "edg_value") (value "ESP32-S3-WROOM-1-N16R8")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -252,18 +264,6 @@ (property (name "edg_value") (value "50V 1uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/mcu/en_pull/") (tstamps "/02850146/0b9c02f0/")) (tstamps "00640064")) -(comp (ref "LU3") - (value "usb_esd") - (footprint "Package_TO_SOT_SMD:SOT-23") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) - (property (name "edg_path") (value "usb_esd")) - (property (name "edg_short_path") (value "usb_esd")) - (property (name "edg_refdes") (value "LU3")) - (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) - (property (name "edg_value") (value "PESD5V0X1BT")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "0bcb02e6")) (comp (ref "LD2") (value "ledr.package") (footprint "LED_SMD:LED_0603_1608Metric") @@ -1267,22 +1267,22 @@ (node (ref LJ1) (pin B1)) (node (ref LJ1) (pin B12)) (node (ref LJ1) (pin S1)) + (node (ref LU1) (pin 3)) (node (ref LR1) (pin 1)) (node (ref LR2) (pin 1)) (node (ref LTP1) (pin 1)) - (node (ref LU1) (pin 1)) + (node (ref LU2) (pin 1)) (node (ref LC1) (pin 2)) (node (ref LC2) (pin 2)) (node (ref LD1) (pin 2)) (node (ref LJ2) (pin 5)) (node (ref LSW1) (pin 2)) - (node (ref LU2) (pin 1)) - (node (ref LU2) (pin 40)) - (node (ref LU2) (pin 41)) + (node (ref LU3) (pin 1)) + (node (ref LU3) (pin 40)) + (node (ref LU3) (pin 41)) (node (ref LC3) (pin 2)) (node (ref LC4) (pin 2)) (node (ref LC5) (pin 2)) - (node (ref LU3) (pin 3)) (node (ref LR4) (pin 2)) (node (ref LR5) (pin 2)) (node (ref LR6) (pin 2)) @@ -1354,7 +1354,7 @@ (net (code 2) (name "Lpwr") (node (ref LFB1) (pin 2)) (node (ref LTP2) (pin 1)) - (node (ref LU1) (pin 3)) + (node (ref LU2) (pin 3)) (node (ref LC1) (pin 1)) (node (ref LU8) (pin 12)) (node (ref LU8) (pin 13)) @@ -1363,12 +1363,12 @@ (node (ref LC26) (pin 1)) (node (ref LC27) (pin 1))) (net (code 3) (name "Lv3v3") - (node (ref LU1) (pin 2)) + (node (ref LU2) (pin 2)) (node (ref LC2) (pin 1)) (node (ref LTP3) (pin 1)) (node (ref LD1) (pin 1)) (node (ref LJ2) (pin 1)) - (node (ref LU2) (pin 2)) + (node (ref LU3) (pin 2)) (node (ref LC3) (pin 1)) (node (ref LC4) (pin 1)) (node (ref LR3) (pin 1)) @@ -1390,22 +1390,22 @@ (node (ref LJ5) (pin 4)) (node (ref LU8) (pin 6)) (node (ref LC32) (pin 1))) -(net (code 4) (name "Lusb_chain_0.d_P") - (node (ref LJ1) (pin A6)) - (node (ref LJ1) (pin B6)) - (node (ref LU2) (pin 14)) - (node (ref LU3) (pin 2))) -(net (code 5) (name "Lusb_chain_0.d_N") - (node (ref LJ1) (pin A7)) - (node (ref LJ1) (pin B7)) - (node (ref LU2) (pin 13)) - (node (ref LU3) (pin 1))) -(net (code 6) (name "Lusb.pwr") +(net (code 4) (name "Lusb.pwr") (node (ref LJ1) (pin A4)) (node (ref LJ1) (pin A9)) (node (ref LJ1) (pin B4)) (node (ref LJ1) (pin B9)) (node (ref LFB1) (pin 1))) +(net (code 5) (name "Lusb.usb.dp") + (node (ref LJ1) (pin A6)) + (node (ref LJ1) (pin B6)) + (node (ref LU1) (pin 2)) + (node (ref LU3) (pin 14))) +(net (code 6) (name "Lusb.usb.dm") + (node (ref LJ1) (pin A7)) + (node (ref LJ1) (pin B7)) + (node (ref LU1) (pin 1)) + (node (ref LU3) (pin 13))) (net (code 7) (name "Lusb.conn.cc.cc1") (node (ref LJ1) (pin A5)) (node (ref LR1) (pin 2))) @@ -1414,63 +1414,63 @@ (node (ref LR2) (pin 2))) (net (code 9) (name "Lmcu.program_uart_node.a_tx") (node (ref LJ2) (pin 4)) - (node (ref LU2) (pin 36))) + (node (ref LU3) (pin 36))) (net (code 10) (name "Lmcu.program_uart_node.b_tx") (node (ref LJ2) (pin 3)) - (node (ref LU2) (pin 37))) + (node (ref LU3) (pin 37))) (net (code 11) (name "Lmcu.program_en_node") (node (ref LJ2) (pin 6)) - (node (ref LU2) (pin 3)) + (node (ref LU3) (pin 3)) (node (ref LR3) (pin 2)) (node (ref LC5) (pin 1))) (net (code 12) (name "Lmcu.program_boot_node") (node (ref LJ2) (pin 2)) (node (ref LSW1) (pin 1)) - (node (ref LU2) (pin 27))) + (node (ref LU3) (pin 27))) (net (code 13) (name "Lledr.signal") - (node (ref LU2) (pin 34)) + (node (ref LU3) (pin 34)) (node (ref LD2) (pin 2))) (net (code 14) (name "Lledr.package.k") (node (ref LD2) (pin 1)) (node (ref LR4) (pin 1))) (net (code 15) (name "Lledg.signal") - (node (ref LU2) (pin 35)) + (node (ref LU3) (pin 35)) (node (ref LD3) (pin 2))) (net (code 16) (name "Lledg.package.k") (node (ref LD3) (pin 1)) (node (ref LR5) (pin 1))) (net (code 17) (name "Lledb.signal") - (node (ref LU2) (pin 39)) + (node (ref LU3) (pin 39)) (node (ref LD4) (pin 2))) (net (code 18) (name "Lledb.package.k") (node (ref LD4) (pin 1)) (node (ref LR6) (pin 1))) (net (code 19) (name "Llora.reset") - (node (ref LU2) (pin 12)) + (node (ref LU3) (pin 12)) (node (ref LU4) (pin 15)) (node (ref LTP8) (pin 1))) (net (code 20) (name "Llora.spi.sck") - (node (ref LU2) (pin 5)) + (node (ref LU3) (pin 5)) (node (ref LU4) (pin 18)) (node (ref LTP4) (pin 1))) (net (code 21) (name "Llora.spi.mosi") - (node (ref LU2) (pin 6)) + (node (ref LU3) (pin 6)) (node (ref LU4) (pin 17)) (node (ref LTP5) (pin 1))) (net (code 22) (name "Llora.spi.miso") - (node (ref LU2) (pin 15)) + (node (ref LU3) (pin 15)) (node (ref LU4) (pin 16)) (node (ref LTP6) (pin 1))) (net (code 23) (name "Llora.cs") - (node (ref LU2) (pin 7)) + (node (ref LU3) (pin 7)) (node (ref LU4) (pin 19)) (node (ref LTP7) (pin 1))) (net (code 24) (name "Llora.irq") - (node (ref LU2) (pin 31)) + (node (ref LU3) (pin 31)) (node (ref LU4) (pin 13)) (node (ref LTP9) (pin 1))) (net (code 25) (name "Llora.busy") - (node (ref LU2) (pin 33)) + (node (ref LU3) (pin 33)) (node (ref LU4) (pin 14)) (node (ref LTP10) (pin 1))) (net (code 26) (name "Llora.ic.vreg") @@ -1537,13 +1537,13 @@ (node (ref LL6) (pin 2)) (node (ref LJ3) (pin 1))) (net (code 44) (name "Li2c_pull.i2c.scl") - (node (ref LU2) (pin 10)) + (node (ref LU3) (pin 10)) (node (ref LR9) (pin 2)) (node (ref LTP11) (pin 1)) (node (ref LJ4) (pin 18)) (node (ref LU8) (pin 7))) (net (code 45) (name "Li2c_pull.i2c.sda") - (node (ref LU2) (pin 11)) + (node (ref LU3) (pin 11)) (node (ref LR10) (pin 2)) (node (ref LTP12) (pin 1)) (node (ref LJ4) (pin 19)) @@ -1575,22 +1575,22 @@ (node (ref LJ4) (pin 3)) (node (ref LC20) (pin 2))) (net (code 54) (name "Lsd.spi.sck") - (node (ref LU2) (pin 22)) + (node (ref LU3) (pin 22)) (node (ref LJ5) (pin 5))) (net (code 55) (name "Lsd.spi.mosi") - (node (ref LU2) (pin 19)) + (node (ref LU3) (pin 19)) (node (ref LJ5) (pin 3))) (net (code 56) (name "Lsd.spi.miso") - (node (ref LU2) (pin 38)) + (node (ref LU3) (pin 38)) (node (ref LJ5) (pin 7))) (net (code 57) (name "Lsd.cs") - (node (ref LU2) (pin 21)) + (node (ref LU3) (pin 21)) (node (ref LJ5) (pin 2))) (net (code 58) (name "Lnfc.reset") - (node (ref LU2) (pin 32)) + (node (ref LU3) (pin 32)) (node (ref LU8) (pin 10))) (net (code 59) (name "Lnfc.irq") - (node (ref LU2) (pin 24)) + (node (ref LU3) (pin 24)) (node (ref LU8) (pin 8))) (net (code 60) (name "Lnfc.ic.vdd") (node (ref LU8) (pin 26)) diff --git a/examples/EspLora/EspLora.svgpcb.js b/examples/EspLora/EspLora.svgpcb.js index 4517ac630..ae5dbe532 100644 --- a/examples/EspLora/EspLora.svgpcb.js +++ b/examples/EspLora/EspLora.svgpcb.js @@ -2,72 +2,77 @@ const board = new PCB(); // jlc_th.th1 const LH1 = board.add(JlcToolingHole_1_152mm, { - translate: pt(4.100, 2.597), rotate: 0, + translate: pt(0.000, 2.904), rotate: 0, id: 'LH1' }) // jlc_th.th2 const LH2 = board.add(JlcToolingHole_1_152mm, { - translate: pt(4.140, 2.597), rotate: 0, + translate: pt(0.039, 2.904), rotate: 0, id: 'LH2' }) // jlc_th.th3 const LH3 = board.add(JlcToolingHole_1_152mm, { - translate: pt(4.100, 2.636), rotate: 0, + translate: pt(0.000, 2.943), rotate: 0, id: 'LH3' }) // usb.conn const LJ1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(2.899, 1.905), rotate: 0, + translate: pt(3.364, 1.905), rotate: 0, id: 'LJ1' }) +// usb.esd +const LU1 = board.add(SOT_23, { + translate: pt(3.688, 1.807), rotate: 0, + id: 'LU1' +}) // usb.cc_pull.cc1 const LR1 = board.add(R_0603_1608Metric, { - translate: pt(2.748, 2.160), rotate: 0, + translate: pt(3.671, 1.942), rotate: 0, id: 'LR1' }) // usb.cc_pull.cc2 const LR2 = board.add(R_0603_1608Metric, { - translate: pt(2.904, 2.160), rotate: 0, + translate: pt(3.671, 2.039), rotate: 0, id: 'LR2' }) // tp_gnd.tp const LTP1 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.275, 2.634), rotate: 0, + translate: pt(1.525, 2.634), rotate: 0, id: 'LTP1' }) // choke.fb const LFB1 = board.add(L_0603_1608Metric, { - translate: pt(3.264, 2.626), rotate: 0, + translate: pt(3.514, 2.626), rotate: 0, id: 'LFB1' }) // tp_pwr.tp const LTP2 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.525, 2.634), rotate: 0, + translate: pt(1.775, 2.634), rotate: 0, id: 'LTP2' }) // reg_3v3.ic -const LU1 = board.add(SOT_223_3_TabPin2, { - translate: pt(3.400, 1.882), rotate: 0, - id: 'LU1' +const LU2 = board.add(SOT_223_3_TabPin2, { + translate: pt(2.863, 1.882), rotate: 0, + id: 'LU2' }) // reg_3v3.in_cap.cap const LC1 = board.add(C_0603_1608Metric, { - translate: pt(3.458, 2.092), rotate: 0, + translate: pt(2.921, 2.092), rotate: 0, id: 'LC1' }) // reg_3v3.out_cap.cap const LC2 = board.add(C_0805_2012Metric, { - translate: pt(3.294, 2.102), rotate: 0, + translate: pt(2.757, 2.102), rotate: 0, id: 'LC2' }) // tp_3v3.tp const LTP3 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.775, 2.634), rotate: 0, + translate: pt(2.026, 2.634), rotate: 0, id: 'LTP3' }) // prot_3v3.diode const LD1 = board.add(D_SOD_323, { - translate: pt(2.023, 2.634), rotate: 0, + translate: pt(2.273, 2.634), rotate: 0, id: 'LD1' }) // mcu.prog.conn @@ -81,9 +86,9 @@ const LSW1 = board.add(SW_SPST_SKQG_WithoutStem, { id: 'LSW1' }) // mcu.ic -const LU2 = board.add(ESP32_S3_WROOM_1, { +const LU3 = board.add(ESP32_S3_WROOM_1, { translate: pt(0.945, 0.530), rotate: 0, - id: 'LU2' + id: 'LU3' }) // mcu.vcc_cap0.cap const LC3 = board.add(C_1206_3216Metric, { @@ -105,39 +110,34 @@ const LC5 = board.add(C_0603_1608Metric, { translate: pt(1.987, 0.796), rotate: 0, id: 'LC5' }) -// usb_esd -const LU3 = board.add(SOT_23, { - translate: pt(3.985, 2.664), rotate: 0, - id: 'LU3' -}) // ledr.package const LD2 = board.add(LED_0603_1608Metric, { - translate: pt(0.058, 2.626), rotate: 0, + translate: pt(0.309, 2.626), rotate: 0, id: 'LD2' }) // ledr.res const LR4 = board.add(R_0603_1608Metric, { - translate: pt(0.058, 2.723), rotate: 0, + translate: pt(0.309, 2.723), rotate: 0, id: 'LR4' }) // ledg.package const LD3 = board.add(LED_0603_1608Metric, { - translate: pt(0.293, 2.626), rotate: 0, + translate: pt(0.544, 2.626), rotate: 0, id: 'LD3' }) // ledg.res const LR5 = board.add(R_0603_1608Metric, { - translate: pt(0.293, 2.723), rotate: 0, + translate: pt(0.544, 2.723), rotate: 0, id: 'LR5' }) // ledb.package const LD4 = board.add(LED_0603_1608Metric, { - translate: pt(0.528, 2.626), rotate: 0, + translate: pt(0.779, 2.626), rotate: 0, id: 'LD4' }) // ledb.res const LR6 = board.add(R_0603_1608Metric, { - translate: pt(0.528, 2.723), rotate: 0, + translate: pt(0.778, 2.723), rotate: 0, id: 'LR6' }) // lora.ic @@ -267,57 +267,57 @@ const LJ3 = board.add(SMA_Amphenol_901_143_Horizontal, { }) // tp_lora_spi.tp_sck.tp const LTP4 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(3.757, 1.778), rotate: 0, + translate: pt(3.948, 1.778), rotate: 0, id: 'LTP4' }) // tp_lora_spi.tp_mosi.tp const LTP5 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(3.757, 1.892), rotate: 0, + translate: pt(3.948, 1.892), rotate: 0, id: 'LTP5' }) // tp_lora_spi.tp_miso.tp const LTP6 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(3.757, 2.006), rotate: 0, + translate: pt(3.948, 2.006), rotate: 0, id: 'LTP6' }) // tp_lora_cs.tp const LTP7 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.270, 2.634), rotate: 0, + translate: pt(2.521, 2.634), rotate: 0, id: 'LTP7' }) // tp_lora_rst.tp const LTP8 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.521, 2.634), rotate: 0, + translate: pt(2.771, 2.634), rotate: 0, id: 'LTP8' }) // tp_lora_dio.tp const LTP9 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.771, 2.634), rotate: 0, + translate: pt(3.021, 2.634), rotate: 0, id: 'LTP9' }) // tp_lora_busy.tp const LTP10 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(3.021, 2.634), rotate: 0, + translate: pt(3.272, 2.634), rotate: 0, id: 'LTP10' }) // i2c_pull.scl_res.res const LR9 = board.add(R_0603_1608Metric, { - translate: pt(0.763, 2.626), rotate: 0, + translate: pt(1.013, 2.626), rotate: 0, id: 'LR9' }) // i2c_pull.sda_res.res const LR10 = board.add(R_0603_1608Metric, { - translate: pt(0.763, 2.722), rotate: 0, + translate: pt(1.013, 2.722), rotate: 0, id: 'LR10' }) // i2c_tp.tp_scl.tp const LTP11 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(4.008, 1.778), rotate: 0, + translate: pt(0.066, 2.634), rotate: 0, id: 'LTP11' }) // i2c_tp.tp_sda.tp const LTP12 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(4.008, 1.892), rotate: 0, + translate: pt(0.066, 2.748), rotate: 0, id: 'LTP12' }) // oled.device.conn @@ -367,12 +367,12 @@ const LC24 = board.add(C_0805_2012Metric, { }) // oled_rst.ic const LU7 = board.add(SOT_23, { - translate: pt(1.015, 2.664), rotate: 0, + translate: pt(1.265, 2.664), rotate: 0, id: 'LU7' }) // oled_pull.res const LR12 = board.add(R_0603_1608Metric, { - translate: pt(3.499, 2.626), rotate: 0, + translate: pt(3.749, 2.626), rotate: 0, id: 'LR12' }) // sd @@ -522,36 +522,36 @@ const LC43 = board.add(C_0603_1608Metric, { }) // tx_cpack.cap const LC44 = board.add(C_0603_1608Metric, { - translate: pt(3.733, 2.626), rotate: 0, + translate: pt(3.984, 2.626), rotate: 0, id: 'LC44' }) board.setNetlist([ - {name: "gnd", pads: [["LJ1", "A1"], ["LJ1", "A12"], ["LJ1", "B1"], ["LJ1", "B12"], ["LJ1", "S1"], ["LR1", "1"], ["LR2", "1"], ["LTP1", "1"], ["LU1", "1"], ["LC1", "2"], ["LC2", "2"], ["LD1", "2"], ["LJ2", "5"], ["LSW1", "2"], ["LU2", "1"], ["LU2", "40"], ["LU2", "41"], ["LC3", "2"], ["LC4", "2"], ["LC5", "2"], ["LU3", "3"], ["LR4", "2"], ["LR5", "2"], ["LR6", "2"], ["LU4", "2"], ["LU4", "20"], ["LU4", "25"], ["LU4", "5"], ["LU4", "8"], ["LX1", "2"], ["LX1", "4"], ["LC6", "2"], ["LC7", "2"], ["LC8", "2"], ["LC9", "2"], ["LC10", "2"], ["LU5", "2"], ["LC14", "2"], ["LC16", "2"], ["LC17", "2"], ["LC18", "2"], ["LJ3", "2"], ["LJ4", "1"], ["LJ4", "10"], ["LJ4", "12"], ["LJ4", "13"], ["LJ4", "15"], ["LJ4", "16"], ["LJ4", "17"], ["LJ4", "21"], ["LJ4", "22"], ["LJ4", "23"], ["LJ4", "24"], ["LJ4", "25"], ["LJ4", "29"], ["LJ4", "30"], ["LJ4", "8"], ["LR11", "1"], ["LC21", "2"], ["LC22", "2"], ["LC23", "2"], ["LC24", "2"], ["LU7", "1"], ["LJ5", "11"], ["LJ5", "6"], ["LU8", "1"], ["LU8", "20"], ["LU8", "3"], ["LU8", "4"], ["LU8", "41"], ["LU8", "9"], ["LC25", "2"], ["LC26", "2"], ["LC27", "2"], ["LC28", "2"], ["LC29", "2"], ["LC30", "2"], ["LC31", "2"], ["LC32", "2"], ["LC33", "2"], ["LX2", "2"], ["LX2", "4"], ["LC34", "2"], ["LC35", "2"], ["LC38", "2"], ["LC39", "2"], ["LC42", "2"], ["LC43", "2"], ["LC44", "2"]]}, - {name: "pwr", pads: [["LFB1", "2"], ["LTP2", "1"], ["LU1", "3"], ["LC1", "1"], ["LU8", "12"], ["LU8", "13"], ["LU8", "28"], ["LC25", "1"], ["LC26", "1"], ["LC27", "1"]]}, - {name: "v3v3", pads: [["LU1", "2"], ["LC2", "1"], ["LTP3", "1"], ["LD1", "1"], ["LJ2", "1"], ["LU2", "2"], ["LC3", "1"], ["LC4", "1"], ["LR3", "1"], ["LU4", "1"], ["LU4", "10"], ["LU4", "11"], ["LC7", "1"], ["LC8", "1"], ["LR7", "1"], ["LR9", "1"], ["LR10", "1"], ["LJ4", "11"], ["LJ4", "6"], ["LJ4", "9"], ["LC22", "1"], ["LC23", "1"], ["LU7", "3"], ["LR12", "1"], ["LJ5", "4"], ["LU8", "6"], ["LC32", "1"]]}, - {name: "usb_chain_0.d_P", pads: [["LJ1", "A6"], ["LJ1", "B6"], ["LU2", "14"], ["LU3", "2"]]}, - {name: "usb_chain_0.d_N", pads: [["LJ1", "A7"], ["LJ1", "B7"], ["LU2", "13"], ["LU3", "1"]]}, + {name: "gnd", pads: [["LJ1", "A1"], ["LJ1", "A12"], ["LJ1", "B1"], ["LJ1", "B12"], ["LJ1", "S1"], ["LU1", "3"], ["LR1", "1"], ["LR2", "1"], ["LTP1", "1"], ["LU2", "1"], ["LC1", "2"], ["LC2", "2"], ["LD1", "2"], ["LJ2", "5"], ["LSW1", "2"], ["LU3", "1"], ["LU3", "40"], ["LU3", "41"], ["LC3", "2"], ["LC4", "2"], ["LC5", "2"], ["LR4", "2"], ["LR5", "2"], ["LR6", "2"], ["LU4", "2"], ["LU4", "20"], ["LU4", "25"], ["LU4", "5"], ["LU4", "8"], ["LX1", "2"], ["LX1", "4"], ["LC6", "2"], ["LC7", "2"], ["LC8", "2"], ["LC9", "2"], ["LC10", "2"], ["LU5", "2"], ["LC14", "2"], ["LC16", "2"], ["LC17", "2"], ["LC18", "2"], ["LJ3", "2"], ["LJ4", "1"], ["LJ4", "10"], ["LJ4", "12"], ["LJ4", "13"], ["LJ4", "15"], ["LJ4", "16"], ["LJ4", "17"], ["LJ4", "21"], ["LJ4", "22"], ["LJ4", "23"], ["LJ4", "24"], ["LJ4", "25"], ["LJ4", "29"], ["LJ4", "30"], ["LJ4", "8"], ["LR11", "1"], ["LC21", "2"], ["LC22", "2"], ["LC23", "2"], ["LC24", "2"], ["LU7", "1"], ["LJ5", "11"], ["LJ5", "6"], ["LU8", "1"], ["LU8", "20"], ["LU8", "3"], ["LU8", "4"], ["LU8", "41"], ["LU8", "9"], ["LC25", "2"], ["LC26", "2"], ["LC27", "2"], ["LC28", "2"], ["LC29", "2"], ["LC30", "2"], ["LC31", "2"], ["LC32", "2"], ["LC33", "2"], ["LX2", "2"], ["LX2", "4"], ["LC34", "2"], ["LC35", "2"], ["LC38", "2"], ["LC39", "2"], ["LC42", "2"], ["LC43", "2"], ["LC44", "2"]]}, + {name: "pwr", pads: [["LFB1", "2"], ["LTP2", "1"], ["LU2", "3"], ["LC1", "1"], ["LU8", "12"], ["LU8", "13"], ["LU8", "28"], ["LC25", "1"], ["LC26", "1"], ["LC27", "1"]]}, + {name: "v3v3", pads: [["LU2", "2"], ["LC2", "1"], ["LTP3", "1"], ["LD1", "1"], ["LJ2", "1"], ["LU3", "2"], ["LC3", "1"], ["LC4", "1"], ["LR3", "1"], ["LU4", "1"], ["LU4", "10"], ["LU4", "11"], ["LC7", "1"], ["LC8", "1"], ["LR7", "1"], ["LR9", "1"], ["LR10", "1"], ["LJ4", "11"], ["LJ4", "6"], ["LJ4", "9"], ["LC22", "1"], ["LC23", "1"], ["LU7", "3"], ["LR12", "1"], ["LJ5", "4"], ["LU8", "6"], ["LC32", "1"]]}, {name: "usb.pwr", pads: [["LJ1", "A4"], ["LJ1", "A9"], ["LJ1", "B4"], ["LJ1", "B9"], ["LFB1", "1"]]}, + {name: "usb.usb.dp", pads: [["LJ1", "A6"], ["LJ1", "B6"], ["LU1", "2"], ["LU3", "14"]]}, + {name: "usb.usb.dm", pads: [["LJ1", "A7"], ["LJ1", "B7"], ["LU1", "1"], ["LU3", "13"]]}, {name: "usb.conn.cc.cc1", pads: [["LJ1", "A5"], ["LR1", "2"]]}, {name: "usb.conn.cc.cc2", pads: [["LJ1", "B5"], ["LR2", "2"]]}, - {name: "mcu.program_uart_node.a_tx", pads: [["LJ2", "4"], ["LU2", "36"]]}, - {name: "mcu.program_uart_node.b_tx", pads: [["LJ2", "3"], ["LU2", "37"]]}, - {name: "mcu.program_en_node", pads: [["LJ2", "6"], ["LU2", "3"], ["LR3", "2"], ["LC5", "1"]]}, - {name: "mcu.program_boot_node", pads: [["LJ2", "2"], ["LSW1", "1"], ["LU2", "27"]]}, - {name: "ledr.signal", pads: [["LU2", "34"], ["LD2", "2"]]}, + {name: "mcu.program_uart_node.a_tx", pads: [["LJ2", "4"], ["LU3", "36"]]}, + {name: "mcu.program_uart_node.b_tx", pads: [["LJ2", "3"], ["LU3", "37"]]}, + {name: "mcu.program_en_node", pads: [["LJ2", "6"], ["LU3", "3"], ["LR3", "2"], ["LC5", "1"]]}, + {name: "mcu.program_boot_node", pads: [["LJ2", "2"], ["LSW1", "1"], ["LU3", "27"]]}, + {name: "ledr.signal", pads: [["LU3", "34"], ["LD2", "2"]]}, {name: "ledr.package.k", pads: [["LD2", "1"], ["LR4", "1"]]}, - {name: "ledg.signal", pads: [["LU2", "35"], ["LD3", "2"]]}, + {name: "ledg.signal", pads: [["LU3", "35"], ["LD3", "2"]]}, {name: "ledg.package.k", pads: [["LD3", "1"], ["LR5", "1"]]}, - {name: "ledb.signal", pads: [["LU2", "39"], ["LD4", "2"]]}, + {name: "ledb.signal", pads: [["LU3", "39"], ["LD4", "2"]]}, {name: "ledb.package.k", pads: [["LD4", "1"], ["LR6", "1"]]}, - {name: "lora.reset", pads: [["LU2", "12"], ["LU4", "15"], ["LTP8", "1"]]}, - {name: "lora.spi.sck", pads: [["LU2", "5"], ["LU4", "18"], ["LTP4", "1"]]}, - {name: "lora.spi.mosi", pads: [["LU2", "6"], ["LU4", "17"], ["LTP5", "1"]]}, - {name: "lora.spi.miso", pads: [["LU2", "15"], ["LU4", "16"], ["LTP6", "1"]]}, - {name: "lora.cs", pads: [["LU2", "7"], ["LU4", "19"], ["LTP7", "1"]]}, - {name: "lora.irq", pads: [["LU2", "31"], ["LU4", "13"], ["LTP9", "1"]]}, - {name: "lora.busy", pads: [["LU2", "33"], ["LU4", "14"], ["LTP10", "1"]]}, + {name: "lora.reset", pads: [["LU3", "12"], ["LU4", "15"], ["LTP8", "1"]]}, + {name: "lora.spi.sck", pads: [["LU3", "5"], ["LU4", "18"], ["LTP4", "1"]]}, + {name: "lora.spi.mosi", pads: [["LU3", "6"], ["LU4", "17"], ["LTP5", "1"]]}, + {name: "lora.spi.miso", pads: [["LU3", "15"], ["LU4", "16"], ["LTP6", "1"]]}, + {name: "lora.cs", pads: [["LU3", "7"], ["LU4", "19"], ["LTP7", "1"]]}, + {name: "lora.irq", pads: [["LU3", "31"], ["LU4", "13"], ["LTP9", "1"]]}, + {name: "lora.busy", pads: [["LU3", "33"], ["LU4", "14"], ["LTP10", "1"]]}, {name: "lora.ic.vreg", pads: [["LU4", "7"], ["LC6", "1"], ["LL1", "2"]]}, {name: "lora.ic.dcc_sw", pads: [["LU4", "9"], ["LL1", "1"]]}, {name: "lora.ic.xtal.xtal_in", pads: [["LU4", "3"], ["LX1", "1"]]}, @@ -570,8 +570,8 @@ board.setNetlist([ {name: "lora.tx_dcblock.neg", pads: [["LC11", "2"], ["LC14", "1"], ["LL4", "2"]]}, {name: "lora.rfc_dcblock.pos", pads: [["LC12", "1"], ["LC17", "1"], ["LL6", "1"]]}, {name: "lora.ant_pi.output", pads: [["LC18", "1"], ["LL6", "2"], ["LJ3", "1"]]}, - {name: "i2c_pull.i2c.scl", pads: [["LU2", "10"], ["LR9", "2"], ["LTP11", "1"], ["LJ4", "18"], ["LU8", "7"]]}, - {name: "i2c_pull.i2c.sda", pads: [["LU2", "11"], ["LR10", "2"], ["LTP12", "1"], ["LJ4", "19"], ["LJ4", "20"], ["LU8", "5"]]}, + {name: "i2c_pull.i2c.scl", pads: [["LU3", "10"], ["LR9", "2"], ["LTP11", "1"], ["LJ4", "18"], ["LU8", "7"]]}, + {name: "i2c_pull.i2c.sda", pads: [["LU3", "11"], ["LR10", "2"], ["LTP12", "1"], ["LJ4", "19"], ["LJ4", "20"], ["LU8", "5"]]}, {name: "oled.reset", pads: [["LJ4", "14"], ["LU7", "2"], ["LR12", "2"]]}, {name: "oled.device.vcc", pads: [["LJ4", "28"], ["LC24", "1"]]}, {name: "oled.device.iref", pads: [["LJ4", "26"], ["LR11", "2"]]}, @@ -580,12 +580,12 @@ board.setNetlist([ {name: "oled.device.c1n", pads: [["LJ4", "5"], ["LC19", "2"]]}, {name: "oled.device.c2p", pads: [["LJ4", "2"], ["LC20", "1"]]}, {name: "oled.device.c2n", pads: [["LJ4", "3"], ["LC20", "2"]]}, - {name: "sd.spi.sck", pads: [["LU2", "22"], ["LJ5", "5"]]}, - {name: "sd.spi.mosi", pads: [["LU2", "19"], ["LJ5", "3"]]}, - {name: "sd.spi.miso", pads: [["LU2", "38"], ["LJ5", "7"]]}, - {name: "sd.cs", pads: [["LU2", "21"], ["LJ5", "2"]]}, - {name: "nfc.reset", pads: [["LU2", "32"], ["LU8", "10"]]}, - {name: "nfc.irq", pads: [["LU2", "24"], ["LU8", "8"]]}, + {name: "sd.spi.sck", pads: [["LU3", "22"], ["LJ5", "5"]]}, + {name: "sd.spi.mosi", pads: [["LU3", "19"], ["LJ5", "3"]]}, + {name: "sd.spi.miso", pads: [["LU3", "38"], ["LJ5", "7"]]}, + {name: "sd.cs", pads: [["LU3", "21"], ["LJ5", "2"]]}, + {name: "nfc.reset", pads: [["LU3", "32"], ["LU8", "10"]]}, + {name: "nfc.irq", pads: [["LU3", "24"], ["LU8", "8"]]}, {name: "nfc.ic.vdd", pads: [["LU8", "26"], ["LU8", "27"], ["LU8", "31"], ["LC28", "1"], ["LC29", "1"]]}, {name: "nfc.ic.vddmid", pads: [["LU8", "17"], ["LC33", "1"]]}, {name: "nfc.ic.vddtx", pads: [["LU8", "14"], ["LU8", "18"], ["LU8", "22"], ["LC30", "1"], ["LC31", "1"]]}, @@ -607,7 +607,7 @@ board.setNetlist([ ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(4.25767716535433, 2.8696850393700797); +const limit1 = pt(4.1600393700787395, 3.061417322834646); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/EspProgrammer/EspProgrammer.net.ref b/examples/EspProgrammer/EspProgrammer.net.ref index a3ea97663..795765589 100644 --- a/examples/EspProgrammer/EspProgrammer.net.ref +++ b/examples/EspProgrammer/EspProgrammer.net.ref @@ -44,10 +44,22 @@ (property (name "edg_path") (value "usb_uart.conn")) (property (name "edg_short_path") (value "usb_uart.conn")) (property (name "edg_refdes") (value "UJ1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb_uart/") (tstamps "/0f4b0366/")) (tstamps "042701af")) +(comp (ref "UU1") + (value "usb_uart.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb_uart")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb_uart.esd")) + (property (name "edg_short_path") (value "usb_uart.esd")) + (property (name "edg_refdes") (value "UU1")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/usb_uart/") (tstamps "/0f4b0366/")) + (tstamps "027c013d")) (comp (ref "UR1") (value "usb_uart.cc_pull.cc1") (footprint "Resistor_SMD:R_0402_1005Metric") @@ -84,14 +96,14 @@ (property (name "edg_value") (value "100nA@1V 40Ω Single 5.49V~5.71V 200mW 5.6V SOD-323 Zener Diodes ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "21a30521")) -(comp (ref "UU1") +(comp (ref "UU2") (value "usbconv.ic") (footprint "Package_DFN_QFN:QFN-28-1EP_5x5mm_P0.5mm_EP3.35x3.35mm") (property (name "Sheetname") (value "usbconv")) (property (name "Sheetfile") (value "edg.parts.interface.UsbUart_Cp2102.Cp2102")) (property (name "edg_path") (value "usbconv.ic")) (property (name "edg_short_path") (value "usbconv.ic")) - (property (name "edg_refdes") (value "UU1")) + (property (name "edg_refdes") (value "UU2")) (property (name "edg_part") (value "CP2102 (Silicon Labs)")) (property (name "edg_value") (value "CP2102")) (sheetpath (names "/usbconv/") (tstamps "/0c010301/")) @@ -132,18 +144,6 @@ (property (name "edg_value") (value "25V 1uF X5R ±10% 0402 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/usbconv/") (tstamps "/0c010301/")) (tstamps "0b6402d2")) -(comp (ref "UU2") - (value "usb_esd") - (footprint "Package_TO_SOT_SMD:SOT-23") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) - (property (name "edg_path") (value "usb_esd")) - (property (name "edg_short_path") (value "usb_esd")) - (property (name "edg_refdes") (value "UU2")) - (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) - (property (name "edg_value") (value "PESD5V0X1BT")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "0bcb02e6")) (comp (ref "UU3") (value "reg_3v3.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") @@ -295,8 +295,8 @@ (node (ref UJ1) (pin B4)) (node (ref UJ1) (pin B9)) (node (ref UD1) (pin 1)) - (node (ref UU1) (pin 7)) - (node (ref UU1) (pin 8)) + (node (ref UU2) (pin 7)) + (node (ref UU2) (pin 8)) (node (ref UC1) (pin 1)) (node (ref UC2) (pin 1)) (node (ref UU3) (pin 1)) @@ -308,15 +308,15 @@ (node (ref UJ1) (pin B1)) (node (ref UJ1) (pin B12)) (node (ref UJ1) (pin S1)) + (node (ref UU1) (pin 3)) (node (ref UR1) (pin 1)) (node (ref UR2) (pin 1)) (node (ref UD1) (pin 2)) - (node (ref UU1) (pin 29)) - (node (ref UU1) (pin 3)) + (node (ref UU2) (pin 29)) + (node (ref UU2) (pin 3)) (node (ref UC1) (pin 2)) (node (ref UC2) (pin 2)) (node (ref UC3) (pin 2)) - (node (ref UU2) (pin 3)) (node (ref UU3) (pin 2)) (node (ref UC4) (pin 2)) (node (ref UC5) (pin 2)) @@ -327,16 +327,16 @@ (node (ref UJ2) (pin 1)) (node (ref UD2) (pin 2)) (node (ref UD3) (pin 2))) -(net (code 4) (name "Uusb_chain_0.d_P") +(net (code 4) (name "Uusb_uart.usb.dp") (node (ref UJ1) (pin A6)) (node (ref UJ1) (pin B6)) - (node (ref UU1) (pin 4)) - (node (ref UU2) (pin 2))) -(net (code 5) (name "Uusb_chain_0.d_N") + (node (ref UU1) (pin 2)) + (node (ref UU2) (pin 4))) +(net (code 5) (name "Uusb_uart.usb.dm") (node (ref UJ1) (pin A7)) (node (ref UJ1) (pin B7)) - (node (ref UU1) (pin 5)) - (node (ref UU2) (pin 1))) + (node (ref UU1) (pin 1)) + (node (ref UU2) (pin 5))) (net (code 6) (name "Uusb_uart.conn.cc.cc1") (node (ref UJ1) (pin A5)) (node (ref UR1) (pin 2))) @@ -344,36 +344,36 @@ (node (ref UJ1) (pin B5)) (node (ref UR2) (pin 2))) (net (code 8) (name "Uusbconv.suspend") - (node (ref UU1) (pin 12)) + (node (ref UU2) (pin 12)) (node (ref UR5) (pin 2))) (net (code 9) (name "Uusbconv.nsuspend") - (node (ref UU1) (pin 11))) + (node (ref UU2) (pin 11))) (net (code 10) (name "Uusbconv.uart.tx") - (node (ref UU1) (pin 26)) + (node (ref UU2) (pin 26)) (node (ref UJ2) (pin 4))) (net (code 11) (name "Uusbconv.uart.rx") - (node (ref UU1) (pin 25)) + (node (ref UU2) (pin 25)) (node (ref UJ2) (pin 3))) (net (code 12) (name "Uusbconv.ri") - (node (ref UU1) (pin 2))) + (node (ref UU2) (pin 2))) (net (code 13) (name "Uusbconv.dcd") - (node (ref UU1) (pin 1))) + (node (ref UU2) (pin 1))) (net (code 14) (name "Uusbconv.dtr") - (node (ref UU1) (pin 28)) + (node (ref UU2) (pin 28)) (node (ref UQ2) (pin 2)) (node (ref UR3) (pin 1))) (net (code 15) (name "Uusbconv.dsr") - (node (ref UU1) (pin 27))) + (node (ref UU2) (pin 27))) (net (code 16) (name "Uusbconv.rts") - (node (ref UU1) (pin 24)) + (node (ref UU2) (pin 24)) (node (ref UQ1) (pin 2)) (node (ref UR4) (pin 1)) (node (ref UR6) (pin 2))) (net (code 17) (name "Uusbconv.cts") - (node (ref UU1) (pin 23))) + (node (ref UU2) (pin 23))) (net (code 18) (name "Uusbconv.ic.vdd") - (node (ref UU1) (pin 6)) - (node (ref UU1) (pin 9)) + (node (ref UU2) (pin 6)) + (node (ref UU2) (pin 9)) (node (ref UC3) (pin 1))) (net (code 19) (name "Uout.en") (node (ref UJ2) (pin 6)) diff --git a/examples/EspProgrammer/EspProgrammer.svgpcb.js b/examples/EspProgrammer/EspProgrammer.svgpcb.js index c7ba0a390..a7ac044fa 100644 --- a/examples/EspProgrammer/EspProgrammer.svgpcb.js +++ b/examples/EspProgrammer/EspProgrammer.svgpcb.js @@ -2,17 +2,17 @@ const board = new PCB(); // jlc_th.th1 const UH1 = board.add(JlcToolingHole_1_152mm, { - translate: pt(0.670, 1.198), rotate: 0, + translate: pt(0.000, 1.128), rotate: 0, id: 'UH1' }) // jlc_th.th2 const UH2 = board.add(JlcToolingHole_1_152mm, { - translate: pt(0.709, 1.198), rotate: 0, + translate: pt(0.039, 1.128), rotate: 0, id: 'UH2' }) // jlc_th.th3 const UH3 = board.add(JlcToolingHole_1_152mm, { - translate: pt(0.670, 1.237), rotate: 0, + translate: pt(0.000, 1.167), rotate: 0, id: 'UH3' }) // usb_uart.conn @@ -20,59 +20,59 @@ const UJ1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { translate: pt(0.857, 0.165), rotate: 0, id: 'UJ1' }) +// usb_uart.esd +const UU1 = board.add(SOT_23, { + translate: pt(0.723, 0.458), rotate: 0, + id: 'UU1' +}) // usb_uart.cc_pull.cc1 const UR1 = board.add(R_0402_1005Metric, { - translate: pt(1.142, 0.019), rotate: 0, + translate: pt(0.874, 0.409), rotate: 0, id: 'UR1' }) // usb_uart.cc_pull.cc2 const UR2 = board.add(R_0402_1005Metric, { - translate: pt(1.142, 0.095), rotate: 0, + translate: pt(0.987, 0.409), rotate: 0, id: 'UR2' }) // vusb_protect.diode const UD1 = board.add(D_SOD_323, { - translate: pt(0.298, 1.235), rotate: 0, + translate: pt(1.369, 0.797), rotate: 0, id: 'UD1' }) // usbconv.ic -const UU1 = board.add(QFN_28_1EP_5x5mm_P0_5mm_EP3_35x3_35mm, { - translate: pt(0.850, 0.881), rotate: 0, - id: 'UU1' +const UU2 = board.add(QFN_28_1EP_5x5mm_P0_5mm_EP3_35x3_35mm, { + translate: pt(0.485, 0.881), rotate: 0, + id: 'UU2' }) // usbconv.regin_cap0.cap const UC1 = board.add(C_0402_1005Metric, { - translate: pt(1.047, 0.778), rotate: 0, + translate: pt(0.682, 0.778), rotate: 0, id: 'UC1' }) // usbconv.regin_cap1.cap const UC2 = board.add(C_0402_1005Metric, { - translate: pt(1.047, 0.853), rotate: 0, + translate: pt(0.682, 0.853), rotate: 0, id: 'UC2' }) // usbconv.vdd_cap.cap const UC3 = board.add(C_0402_1005Metric, { - translate: pt(1.047, 0.929), rotate: 0, + translate: pt(0.682, 0.929), rotate: 0, id: 'UC3' }) -// usb_esd -const UU2 = board.add(SOT_23, { - translate: pt(0.555, 1.265), rotate: 0, - id: 'UU2' -}) // reg_3v3.ic const UU3 = board.add(SOT_23_5, { - translate: pt(0.445, 0.826), rotate: 0, + translate: pt(0.081, 0.826), rotate: 0, id: 'UU3' }) // reg_3v3.in_cap.cap const UC4 = board.add(C_0402_1005Metric, { - translate: pt(0.574, 0.951), rotate: 0, + translate: pt(0.209, 0.951), rotate: 0, id: 'UC4' }) // reg_3v3.out_cap.cap const UC5 = board.add(C_0805_2012Metric, { - translate: pt(0.431, 0.971), rotate: 0, + translate: pt(0.067, 0.971), rotate: 0, id: 'UC5' }) // out.conn @@ -82,64 +82,64 @@ const UJ2 = board.add(PinHeader_2x03_P2_54mm_EdgeInline, { }) // auto.q_en const UQ1 = board.add(SOT_323_SC_70, { - translate: pt(0.067, 0.811), rotate: 0, + translate: pt(1.251, 0.051), rotate: 0, id: 'UQ1' }) // auto.q_boot const UQ2 = board.add(SOT_323_SC_70, { - translate: pt(0.067, 0.952), rotate: 0, + translate: pt(1.251, 0.193), rotate: 0, id: 'UQ2' }) // auto.dtr_res const UR3 = board.add(R_0402_1005Metric, { - translate: pt(0.210, 0.920), rotate: 0, + translate: pt(1.394, 0.160), rotate: 0, id: 'UR3' }) // auto.rts_res const UR4 = board.add(R_0402_1005Metric, { - translate: pt(0.037, 1.061), rotate: 0, + translate: pt(1.221, 0.302), rotate: 0, id: 'UR4' }) // led.package const UD2 = board.add(LED_0603_1608Metric, { - translate: pt(1.259, 0.788), rotate: 0, + translate: pt(0.895, 0.788), rotate: 0, id: 'UD2' }) // led.res const UR5 = board.add(R_0402_1005Metric, { - translate: pt(1.237, 0.875), rotate: 0, + translate: pt(0.873, 0.875), rotate: 0, id: 'UR5' }) // led_en.package const UD3 = board.add(LED_0603_1608Metric, { - translate: pt(0.058, 1.227), rotate: 0, + translate: pt(1.130, 0.788), rotate: 0, id: 'UD3' }) // led_en.res const UR6 = board.add(R_0402_1005Metric, { - translate: pt(0.037, 1.314), rotate: 0, + translate: pt(1.108, 0.875), rotate: 0, id: 'UR6' }) board.setNetlist([ - {name: "vusb", pads: [["UJ1", "A4"], ["UJ1", "A9"], ["UJ1", "B4"], ["UJ1", "B9"], ["UD1", "1"], ["UU1", "7"], ["UU1", "8"], ["UC1", "1"], ["UC2", "1"], ["UU3", "1"], ["UU3", "3"], ["UC4", "1"]]}, - {name: "gnd", pads: [["UJ1", "A1"], ["UJ1", "A12"], ["UJ1", "B1"], ["UJ1", "B12"], ["UJ1", "S1"], ["UR1", "1"], ["UR2", "1"], ["UD1", "2"], ["UU1", "29"], ["UU1", "3"], ["UC1", "2"], ["UC2", "2"], ["UC3", "2"], ["UU2", "3"], ["UU3", "2"], ["UC4", "2"], ["UC5", "2"], ["UJ2", "5"]]}, + {name: "vusb", pads: [["UJ1", "A4"], ["UJ1", "A9"], ["UJ1", "B4"], ["UJ1", "B9"], ["UD1", "1"], ["UU2", "7"], ["UU2", "8"], ["UC1", "1"], ["UC2", "1"], ["UU3", "1"], ["UU3", "3"], ["UC4", "1"]]}, + {name: "gnd", pads: [["UJ1", "A1"], ["UJ1", "A12"], ["UJ1", "B1"], ["UJ1", "B12"], ["UJ1", "S1"], ["UU1", "3"], ["UR1", "1"], ["UR2", "1"], ["UD1", "2"], ["UU2", "29"], ["UU2", "3"], ["UC1", "2"], ["UC2", "2"], ["UC3", "2"], ["UU3", "2"], ["UC4", "2"], ["UC5", "2"], ["UJ2", "5"]]}, {name: "v3v3", pads: [["UU3", "5"], ["UC5", "1"], ["UJ2", "1"], ["UD2", "2"], ["UD3", "2"]]}, - {name: "usb_chain_0.d_P", pads: [["UJ1", "A6"], ["UJ1", "B6"], ["UU1", "4"], ["UU2", "2"]]}, - {name: "usb_chain_0.d_N", pads: [["UJ1", "A7"], ["UJ1", "B7"], ["UU1", "5"], ["UU2", "1"]]}, + {name: "usb_uart.usb.dp", pads: [["UJ1", "A6"], ["UJ1", "B6"], ["UU1", "2"], ["UU2", "4"]]}, + {name: "usb_uart.usb.dm", pads: [["UJ1", "A7"], ["UJ1", "B7"], ["UU1", "1"], ["UU2", "5"]]}, {name: "usb_uart.conn.cc.cc1", pads: [["UJ1", "A5"], ["UR1", "2"]]}, {name: "usb_uart.conn.cc.cc2", pads: [["UJ1", "B5"], ["UR2", "2"]]}, - {name: "usbconv.suspend", pads: [["UU1", "12"], ["UR5", "2"]]}, - {name: "usbconv.nsuspend", pads: [["UU1", "11"]]}, - {name: "usbconv.uart.tx", pads: [["UU1", "26"], ["UJ2", "4"]]}, - {name: "usbconv.uart.rx", pads: [["UU1", "25"], ["UJ2", "3"]]}, - {name: "usbconv.ri", pads: [["UU1", "2"]]}, - {name: "usbconv.dcd", pads: [["UU1", "1"]]}, - {name: "usbconv.dtr", pads: [["UU1", "28"], ["UQ2", "2"], ["UR3", "1"]]}, - {name: "usbconv.dsr", pads: [["UU1", "27"]]}, - {name: "usbconv.rts", pads: [["UU1", "24"], ["UQ1", "2"], ["UR4", "1"], ["UR6", "2"]]}, - {name: "usbconv.cts", pads: [["UU1", "23"]]}, - {name: "usbconv.ic.vdd", pads: [["UU1", "6"], ["UU1", "9"], ["UC3", "1"]]}, + {name: "usbconv.suspend", pads: [["UU2", "12"], ["UR5", "2"]]}, + {name: "usbconv.nsuspend", pads: [["UU2", "11"]]}, + {name: "usbconv.uart.tx", pads: [["UU2", "26"], ["UJ2", "4"]]}, + {name: "usbconv.uart.rx", pads: [["UU2", "25"], ["UJ2", "3"]]}, + {name: "usbconv.ri", pads: [["UU2", "2"]]}, + {name: "usbconv.dcd", pads: [["UU2", "1"]]}, + {name: "usbconv.dtr", pads: [["UU2", "28"], ["UQ2", "2"], ["UR3", "1"]]}, + {name: "usbconv.dsr", pads: [["UU2", "27"]]}, + {name: "usbconv.rts", pads: [["UU2", "24"], ["UQ1", "2"], ["UR4", "1"], ["UR6", "2"]]}, + {name: "usbconv.cts", pads: [["UU2", "23"]]}, + {name: "usbconv.ic.vdd", pads: [["UU2", "6"], ["UU2", "9"], ["UC3", "1"]]}, {name: "out.en", pads: [["UJ2", "6"], ["UQ1", "3"]]}, {name: "out.boot", pads: [["UJ2", "2"], ["UQ2", "3"]]}, {name: "auto.q_en.base", pads: [["UQ1", "1"], ["UR3", "2"]]}, @@ -149,7 +149,7 @@ board.setNetlist([ ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(1.4356299212598427, 1.4503937007874017); +const limit1 = pt(1.5503937007874018, 1.2854330708661417); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/Fcml/Fcml.net.ref b/examples/Fcml/Fcml.net.ref index a50690c83..aabf99d77 100644 --- a/examples/Fcml/Fcml.net.ref +++ b/examples/Fcml/Fcml.net.ref @@ -44,10 +44,22 @@ (property (name "edg_path") (value "usb_mcu.conn")) (property (name "edg_short_path") (value "usb_mcu.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb_mcu/") (tstamps "/0bd402ef/")) (tstamps "042701af")) +(comp (ref "U1") + (value "usb_mcu.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb_mcu")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb_mcu.esd")) + (property (name "edg_short_path") (value "usb_mcu.esd")) + (property (name "edg_refdes") (value "U1")) + (property (name "edg_part") (value "PGB102ST23 (Littelfuse)")) + (property (name "edg_value") (value "PGB102ST23")) + (sheetpath (names "/usb_mcu/") (tstamps "/0bd402ef/")) + (tstamps "027c013d")) (comp (ref "R1") (value "usb_mcu.cc_pull.cc1") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -80,10 +92,22 @@ (property (name "edg_path") (value "usb_fpga.conn")) (property (name "edg_short_path") (value "usb_fpga.conn")) (property (name "edg_refdes") (value "J2")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb_fpga/") (tstamps "/0f130348/")) (tstamps "042701af")) +(comp (ref "U2") + (value "usb_fpga.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb_fpga")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb_fpga.esd")) + (property (name "edg_short_path") (value "usb_fpga.esd")) + (property (name "edg_refdes") (value "U2")) + (property (name "edg_part") (value "PGB102ST23 (Littelfuse)")) + (property (name "edg_value") (value "PGB102ST23")) + (sheetpath (names "/usb_fpga/") (tstamps "/0f130348/")) + (tstamps "027c013d")) (comp (ref "R3") (value "usb_fpga.cc_pull.cc1") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -144,14 +168,14 @@ (property (name "edg_value") (value "gnd")) (sheetpath (names "/") (tstamps "/")) (tstamps "08df027d")) -(comp (ref "U1") +(comp (ref "U3") (value "reg_3v3.ic") (footprint "Package_TO_SOT_SMD:SOT-223-3_TabPin2") (property (name "Sheetname") (value "reg_3v3")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ldl1117")) (property (name "edg_path") (value "reg_3v3.ic")) (property (name "edg_short_path") (value "reg_3v3.ic")) - (property (name "edg_refdes") (value "U1")) + (property (name "edg_refdes") (value "U3")) (property (name "edg_part") (value "LDL1117S33R (STMicroelectronics)")) (property (name "edg_value") (value "LDL1117S33R")) (sheetpath (names "/reg_3v3/") (tstamps "/0aba027a/")) @@ -204,14 +228,14 @@ (property (name "edg_value") (value "5μA@1V 90Ω Single 3.53V~3.67V 200mW 3.6V SOD-323 Zener Diodes ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "0eb80301")) -(comp (ref "U2") +(comp (ref "U4") (value "reg_vgate.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "reg_vgate")) (property (name "Sheetfile") (value "edg.parts.power.converter.DiodesInc_Boost.Ap3012")) (property (name "edg_path") (value "reg_vgate.ic")) (property (name "edg_short_path") (value "reg_vgate.ic")) - (property (name "edg_refdes") (value "U2")) + (property (name "edg_refdes") (value "U4")) (property (name "edg_part") (value "AP3012K (Diodes Incorporated)")) (property (name "edg_value") (value "AP3012K")) (sheetpath (names "/reg_vgate/") (tstamps "/129803b5/")) @@ -408,14 +432,14 @@ (property (name "edg_value") (value "10V 22uF X5R ±10% 1206 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/conv/power_path/out_cap/") (tstamps "/042f01b7/1786043a/0be902ec/")) (tstamps "0362014e")) -(comp (ref "U3") +(comp (ref "U5") (value "conv.sw[0].driver.ic") (footprint "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm") (property (name "Sheetname") (value "driver")) (property (name "Sheetfile") (value "edg.parts.power.gate_driver.Ir2301.Ir2301")) (property (name "edg_path") (value "conv.sw[0].driver.ic")) (property (name "edg_short_path") (value "conv.sw[0].driver.ic")) - (property (name "edg_refdes") (value "U3")) + (property (name "edg_refdes") (value "U5")) (property (name "edg_part") (value "IR2301 (Infineon Technologies)")) (property (name "edg_value") (value "IR2301")) (sheetpath (names "/conv/sw[0]/driver/") (tstamps "/042f01b7/05ee01d3/08da028d/")) @@ -516,14 +540,14 @@ (property (name "edg_value") (value "40V 600mV@1A 1A SOD-323 Schottky Barrier Diodes (SBD) ROHS")) (sheetpath (names "/conv/sw[0]/") (tstamps "/042f01b7/05ee01d3/")) (tstamps "30c00618")) -(comp (ref "U4") +(comp (ref "U6") (value "conv.sw[1].ldo.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "ldo")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ap2204k")) (property (name "edg_path") (value "conv.sw[1].ldo.ic")) (property (name "edg_short_path") (value "conv.sw[1].ldo.ic")) - (property (name "edg_refdes") (value "U4")) + (property (name "edg_refdes") (value "U6")) (property (name "edg_part") (value "AP2204K-3.3 (Diodes Incorporated)")) (property (name "edg_value") (value "AP2204K-3.3")) (sheetpath (names "/conv/sw[1]/ldo/") (tstamps "/042f01b7/05f001d4/027e0140/")) @@ -552,14 +576,14 @@ (property (name "edg_value") (value "50V 2.2uF X7R ±10% 1206 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/conv/sw[1]/ldo/") (tstamps "/042f01b7/05f001d4/027e0140/")) (tstamps "0be902ec")) -(comp (ref "U5") +(comp (ref "U7") (value "conv.sw[1].iso.ic") (footprint "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm") (property (name "Sheetname") (value "iso")) (property (name "Sheetfile") (value "edg.parts.interface.Isolator_Cbmud1200.Cbmud1200l")) (property (name "edg_path") (value "conv.sw[1].iso.ic")) (property (name "edg_short_path") (value "conv.sw[1].iso.ic")) - (property (name "edg_refdes") (value "U5")) + (property (name "edg_refdes") (value "U7")) (property (name "edg_part") (value "CBMuD1200L (Corebai)")) (property (name "edg_value") (value "CBMuD1200L")) (sheetpath (names "/conv/sw[1]/iso/") (tstamps "/042f01b7/05f001d4/0293014c/")) @@ -588,14 +612,14 @@ (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/conv/sw[1]/iso/") (tstamps "/042f01b7/05f001d4/0293014c/")) (tstamps "05e801f6")) -(comp (ref "U6") +(comp (ref "U8") (value "conv.sw[1].driver.ic") (footprint "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm") (property (name "Sheetname") (value "driver")) (property (name "Sheetfile") (value "edg.parts.power.gate_driver.Ir2301.Ir2301")) (property (name "edg_path") (value "conv.sw[1].driver.ic")) (property (name "edg_short_path") (value "conv.sw[1].driver.ic")) - (property (name "edg_refdes") (value "U6")) + (property (name "edg_refdes") (value "U8")) (property (name "edg_part") (value "IR2301 (Infineon Technologies)")) (property (name "edg_value") (value "IR2301")) (sheetpath (names "/conv/sw[1]/driver/") (tstamps "/042f01b7/05f001d4/08da028d/")) @@ -744,14 +768,14 @@ (property (name "edg_value") (value "40V 600mV@1A 1A SOD-323 Schottky Barrier Diodes (SBD) ROHS")) (sheetpath (names "/conv/sw[1]/") (tstamps "/042f01b7/05f001d4/")) (tstamps "30c00618")) -(comp (ref "U7") +(comp (ref "U9") (value "conv.sw[2].ldo.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "ldo")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ap2204k")) (property (name "edg_path") (value "conv.sw[2].ldo.ic")) (property (name "edg_short_path") (value "conv.sw[2].ldo.ic")) - (property (name "edg_refdes") (value "U7")) + (property (name "edg_refdes") (value "U9")) (property (name "edg_part") (value "AP2204K-3.3 (Diodes Incorporated)")) (property (name "edg_value") (value "AP2204K-3.3")) (sheetpath (names "/conv/sw[2]/ldo/") (tstamps "/042f01b7/05f201d5/027e0140/")) @@ -780,14 +804,14 @@ (property (name "edg_value") (value "50V 2.2uF X7R ±10% 1206 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/conv/sw[2]/ldo/") (tstamps "/042f01b7/05f201d5/027e0140/")) (tstamps "0be902ec")) -(comp (ref "U8") +(comp (ref "U10") (value "conv.sw[2].iso.ic") (footprint "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm") (property (name "Sheetname") (value "iso")) (property (name "Sheetfile") (value "edg.parts.interface.Isolator_Cbmud1200.Cbmud1200l")) (property (name "edg_path") (value "conv.sw[2].iso.ic")) (property (name "edg_short_path") (value "conv.sw[2].iso.ic")) - (property (name "edg_refdes") (value "U8")) + (property (name "edg_refdes") (value "U10")) (property (name "edg_part") (value "CBMuD1200L (Corebai)")) (property (name "edg_value") (value "CBMuD1200L")) (sheetpath (names "/conv/sw[2]/iso/") (tstamps "/042f01b7/05f201d5/0293014c/")) @@ -816,14 +840,14 @@ (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/conv/sw[2]/iso/") (tstamps "/042f01b7/05f201d5/0293014c/")) (tstamps "05e801f6")) -(comp (ref "U9") +(comp (ref "U11") (value "conv.sw[2].driver.ic") (footprint "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm") (property (name "Sheetname") (value "driver")) (property (name "Sheetfile") (value "edg.parts.power.gate_driver.Ir2301.Ir2301")) (property (name "edg_path") (value "conv.sw[2].driver.ic")) (property (name "edg_short_path") (value "conv.sw[2].driver.ic")) - (property (name "edg_refdes") (value "U9")) + (property (name "edg_refdes") (value "U11")) (property (name "edg_part") (value "IR2301 (Infineon Technologies)")) (property (name "edg_value") (value "IR2301")) (sheetpath (names "/conv/sw[2]/driver/") (tstamps "/042f01b7/05f201d5/08da028d/")) @@ -1008,26 +1032,26 @@ (property (name "edg_value") (value "gnd")) (sheetpath (names "/") (tstamps "/")) (tstamps "1bb20492")) -(comp (ref "U10") +(comp (ref "U12") (value "fpga.ic") (footprint "Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.3x5.3mm") (property (name "Sheetname") (value "fpga")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Ice40up.Ice40up")) (property (name "edg_path") (value "fpga.ic")) (property (name "edg_short_path") (value "fpga.ic")) - (property (name "edg_refdes") (value "U10")) + (property (name "edg_refdes") (value "U12")) (property (name "edg_part") (value "ICE40UP5K-SG48 (Lattice Semiconductor Corporation)")) (property (name "edg_value") (value "ICE40UP5K-SG48")) (sheetpath (names "/fpga/") (tstamps "/041b019f/")) (tstamps "013700cd")) -(comp (ref "U11") +(comp (ref "U13") (value "fpga.vcc_reg.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "vcc_reg")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Lp5907")) (property (name "edg_path") (value "fpga.vcc_reg.ic")) (property (name "edg_short_path") (value "fpga.vcc_reg.ic")) - (property (name "edg_refdes") (value "U11")) + (property (name "edg_refdes") (value "U13")) (property (name "edg_part") (value "LP5907MFX-1.2/NOPB (Texas Instruments)")) (property (name "edg_value") (value "LP5907MFX-1.2/NOPB")) (sheetpath (names "/fpga/vcc_reg/") (tstamps "/041b019f/0b8502da/")) @@ -1068,14 +1092,14 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 10kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/fpga/") (tstamps "/041b019f/")) (tstamps "0f480368")) -(comp (ref "U12") +(comp (ref "U14") (value "fpga.mem.ic") (footprint "Package_SO:SOIC-8_5.23x5.23mm_P1.27mm") (property (name "Sheetname") (value "mem")) (property (name "Sheetfile") (value "edg.parts.logic.SpiMemory_W25q.W25q")) (property (name "edg_path") (value "fpga.mem.ic")) (property (name "edg_short_path") (value "fpga.mem.ic")) - (property (name "edg_refdes") (value "U12")) + (property (name "edg_refdes") (value "U14")) (property (name "edg_part") (value "W25Q128JVSIQ (Winbond Electronics)")) (property (name "edg_value") (value "W25Q128JVSIQ")) (sheetpath (names "/fpga/mem/") (tstamps "/041b019f/02810140/")) @@ -1416,26 +1440,26 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 68Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/usb_fpga_bitbang/") (tstamps "/37a1067e/")) (tstamps "088e027b")) -(comp (ref "U13") +(comp (ref "U15") (value "usb_fpga_esd") (footprint "Package_TO_SOT_SMD:SOT-23") (property (name "Sheetname") (value "")) (property (name "Sheetfile") (value "")) (property (name "edg_path") (value "usb_fpga_esd")) (property (name "edg_short_path") (value "usb_fpga_esd")) - (property (name "edg_refdes") (value "U13")) + (property (name "edg_refdes") (value "U15")) (property (name "edg_part") (value "PGB102ST23 (Littelfuse)")) (property (name "edg_value") (value "PGB102ST23")) (sheetpath (names "/") (tstamps "/")) (tstamps "202804e3")) -(comp (ref "U14") +(comp (ref "U16") (value "mcu.ic") (footprint "Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Rp2040.Rp2040")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "U14")) + (property (name "edg_refdes") (value "U16")) (property (name "edg_part") (value "RP2040 (Raspberry Pi)")) (property (name "edg_value") (value "RP2040")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -1536,14 +1560,14 @@ (property (name "edg_value") (value "50V 1uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) (tstamps "1b62047e")) -(comp (ref "U15") +(comp (ref "U17") (value "mcu.mem.ic") (footprint "Package_SO:SOIC-8_5.23x5.23mm_P1.27mm") (property (name "Sheetname") (value "mem")) (property (name "Sheetfile") (value "edg.parts.logic.SpiMemory_W25q.W25q")) (property (name "edg_path") (value "mcu.mem.ic")) (property (name "edg_short_path") (value "mcu.mem.ic")) - (property (name "edg_refdes") (value "U15")) + (property (name "edg_refdes") (value "U17")) (property (name "edg_part") (value "W25Q128JVSIQ (Winbond Electronics)")) (property (name "edg_value") (value "W25Q128JVSIQ")) (sheetpath (names "/mcu/mem/") (tstamps "/02850146/02810140/")) @@ -1776,14 +1800,14 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/mcu_leds/led[3]/") (tstamps "/0ed8034d/07eb0221/")) (tstamps "0296014b")) -(comp (ref "U16") +(comp (ref "U18") (value "usb_mcu_esd") (footprint "Package_TO_SOT_SMD:SOT-23") (property (name "Sheetname") (value "")) (property (name "Sheetfile") (value "")) (property (name "edg_path") (value "usb_mcu_esd")) (property (name "edg_short_path") (value "usb_mcu_esd")) - (property (name "edg_refdes") (value "U16")) + (property (name "edg_refdes") (value "U18")) (property (name "edg_part") (value "PGB102ST23 (Littelfuse)")) (property (name "edg_value") (value "PGB102ST23")) (sheetpath (names "/") (tstamps "/")) @@ -2111,10 +2135,10 @@ (node (ref J2) (pin B4)) (node (ref J2) (pin B9)) (node (ref TP1) (pin 1)) - (node (ref U1) (pin 3)) + (node (ref U3) (pin 3)) (node (ref C1) (pin 1)) - (node (ref U2) (pin 4)) - (node (ref U2) (pin 5)) + (node (ref U4) (pin 4)) + (node (ref U4) (pin 5)) (node (ref L1) (pin 1)) (node (ref C3) (pin 1))) (net (code 2) (name "gnd") @@ -2123,6 +2147,7 @@ (node (ref J1) (pin B1)) (node (ref J1) (pin B12)) (node (ref J1) (pin S1)) + (node (ref U1) (pin 3)) (node (ref R1) (pin 1)) (node (ref R2) (pin 1)) (node (ref J2) (pin A1)) @@ -2130,15 +2155,16 @@ (node (ref J2) (pin B1)) (node (ref J2) (pin B12)) (node (ref J2) (pin S1)) + (node (ref U2) (pin 3)) (node (ref R3) (pin 1)) (node (ref R4) (pin 1)) (node (ref J3) (pin 1)) (node (ref TP2) (pin 1)) - (node (ref U1) (pin 1)) + (node (ref U3) (pin 1)) (node (ref C1) (pin 2)) (node (ref C2) (pin 2)) (node (ref D1) (pin 2)) - (node (ref U2) (pin 2)) + (node (ref U4) (pin 2)) (node (ref R6) (pin 2)) (node (ref C3) (pin 2)) (node (ref C4) (pin 2)) @@ -2150,22 +2176,22 @@ (node (ref C10) (pin 2)) (node (ref C11) (pin 2)) (node (ref C12) (pin 2)) - (node (ref U3) (pin 4)) + (node (ref U5) (pin 4)) (node (ref C13) (pin 2)) (node (ref Q2) (pin 1)) (node (ref Q2) (pin 2)) (node (ref Q2) (pin 3)) - (node (ref U5) (pin 4)) + (node (ref U7) (pin 4)) (node (ref C18) (pin 2)) - (node (ref U8) (pin 4)) + (node (ref U10) (pin 4)) (node (ref C28) (pin 2)) (node (ref J4) (pin 1)) (node (ref TP6) (pin 1)) - (node (ref U10) (pin 49)) - (node (ref U11) (pin 2)) + (node (ref U12) (pin 49)) + (node (ref U13) (pin 2)) (node (ref C36) (pin 2)) (node (ref C37) (pin 2)) - (node (ref U12) (pin 4)) + (node (ref U14) (pin 4)) (node (ref C38) (pin 2)) (node (ref J5) (pin 3)) (node (ref J5) (pin 5)) @@ -2185,9 +2211,9 @@ (node (ref R18) (pin 2)) (node (ref R19) (pin 2)) (node (ref R20) (pin 2)) - (node (ref U13) (pin 3)) - (node (ref U14) (pin 19)) - (node (ref U14) (pin 57)) + (node (ref U15) (pin 3)) + (node (ref U16) (pin 19)) + (node (ref U16) (pin 57)) (node (ref C47) (pin 2)) (node (ref C48) (pin 2)) (node (ref C49) (pin 2)) @@ -2196,7 +2222,7 @@ (node (ref C52) (pin 2)) (node (ref C53) (pin 2)) (node (ref C54) (pin 2)) - (node (ref U15) (pin 4)) + (node (ref U17) (pin 4)) (node (ref C55) (pin 2)) (node (ref C56) (pin 2)) (node (ref C57) (pin 2)) @@ -2213,7 +2239,7 @@ (node (ref R27) (pin 2)) (node (ref R28) (pin 2)) (node (ref R29) (pin 2)) - (node (ref U16) (pin 3)) + (node (ref U18) (pin 3)) (node (ref C61) (pin 2)) (node (ref C62) (pin 2)) (node (ref C63) (pin 2)) @@ -2223,25 +2249,25 @@ (node (ref R37) (pin 2)) (node (ref R39) (pin 2))) (net (code 3) (name "v3v3") - (node (ref U1) (pin 2)) + (node (ref U3) (pin 2)) (node (ref C2) (pin 1)) (node (ref TP3) (pin 1)) (node (ref D1) (pin 1)) - (node (ref U5) (pin 1)) + (node (ref U7) (pin 1)) (node (ref C18) (pin 1)) - (node (ref U8) (pin 1)) - (node (ref C28) (pin 1)) (node (ref U10) (pin 1)) - (node (ref U10) (pin 22)) - (node (ref U10) (pin 24)) - (node (ref U10) (pin 33)) - (node (ref U11) (pin 1)) - (node (ref U11) (pin 3)) + (node (ref C28) (pin 1)) + (node (ref U12) (pin 1)) + (node (ref U12) (pin 22)) + (node (ref U12) (pin 24)) + (node (ref U12) (pin 33)) + (node (ref U13) (pin 1)) + (node (ref U13) (pin 3)) (node (ref C36) (pin 1)) (node (ref R13) (pin 1)) - (node (ref U12) (pin 3)) - (node (ref U12) (pin 7)) - (node (ref U12) (pin 8)) + (node (ref U14) (pin 3)) + (node (ref U14) (pin 7)) + (node (ref U14) (pin 8)) (node (ref C38) (pin 1)) (node (ref J5) (pin 1)) (node (ref R14) (pin 1)) @@ -2252,15 +2278,15 @@ (node (ref X1) (pin 1)) (node (ref X1) (pin 4)) (node (ref C46) (pin 1)) - (node (ref U14) (pin 1)) - (node (ref U14) (pin 10)) - (node (ref U14) (pin 22)) - (node (ref U14) (pin 33)) - (node (ref U14) (pin 42)) - (node (ref U14) (pin 43)) - (node (ref U14) (pin 44)) - (node (ref U14) (pin 48)) - (node (ref U14) (pin 49)) + (node (ref U16) (pin 1)) + (node (ref U16) (pin 10)) + (node (ref U16) (pin 22)) + (node (ref U16) (pin 33)) + (node (ref U16) (pin 42)) + (node (ref U16) (pin 43)) + (node (ref U16) (pin 44)) + (node (ref U16) (pin 48)) + (node (ref U16) (pin 49)) (node (ref C47) (pin 1)) (node (ref C48) (pin 1)) (node (ref C49) (pin 1)) @@ -2269,7 +2295,7 @@ (node (ref C52) (pin 1)) (node (ref C53) (pin 1)) (node (ref C54) (pin 1)) - (node (ref U15) (pin 8)) + (node (ref U17) (pin 8)) (node (ref C55) (pin 1)) (node (ref J6) (pin 1))) (net (code 4) (name "vgate") @@ -2277,30 +2303,34 @@ (node (ref C4) (pin 1)) (node (ref D2) (pin 1)) (node (ref TP4) (pin 1)) - (node (ref U3) (pin 1)) + (node (ref U5) (pin 1)) (node (ref C13) (pin 1)) (node (ref D4) (pin 2))) (net (code 5) (name "usb_fpga_chain_0.d_P") (node (ref J2) (pin A6)) (node (ref J2) (pin B6)) + (node (ref U2) (pin 2)) (node (ref R21) (pin 2)) (node (ref R22) (pin 1)) - (node (ref U13) (pin 2))) + (node (ref U15) (pin 2))) (net (code 6) (name "usb_fpga_chain_0.d_N") (node (ref J2) (pin A7)) (node (ref J2) (pin B7)) + (node (ref U2) (pin 1)) (node (ref R23) (pin 1)) - (node (ref U13) (pin 1))) + (node (ref U15) (pin 1))) (net (code 7) (name "usb_mcu_chain_0.d_P") (node (ref J1) (pin A6)) (node (ref J1) (pin B6)) + (node (ref U1) (pin 2)) (node (ref R24) (pin 1)) - (node (ref U16) (pin 2))) + (node (ref U18) (pin 2))) (net (code 8) (name "usb_mcu_chain_0.d_N") (node (ref J1) (pin A7)) (node (ref J1) (pin B7)) + (node (ref U1) (pin 1)) (node (ref R25) (pin 1)) - (node (ref U16) (pin 1))) + (node (ref U18) (pin 1))) (net (code 9) (name "usb_mcu.conn.cc.cc1") (node (ref J1) (pin A5)) (node (ref R1) (pin 2))) @@ -2326,11 +2356,11 @@ (node (ref Q1) (pin 8)) (node (ref R36) (pin 1))) (net (code 14) (name "reg_vgate.ic.sw") - (node (ref U2) (pin 1)) + (node (ref U4) (pin 1)) (node (ref L1) (pin 2)) (node (ref D2) (pin 2))) (net (code 15) (name "reg_vgate.ic.fb") - (node (ref U2) (pin 3)) + (node (ref U4) (pin 3)) (node (ref R5) (pin 2)) (node (ref R6) (pin 1))) (net (code 16) (name "conv.pwr_out") @@ -2342,32 +2372,32 @@ (node (ref TP5) (pin 1)) (node (ref R38) (pin 1))) (net (code 17) (name "conv.pwms.0L") - (node (ref U3) (pin 3)) + (node (ref U5) (pin 3)) (node (ref R30) (pin 2)) (node (ref C61) (pin 1))) (net (code 18) (name "conv.pwms.0H") - (node (ref U3) (pin 2)) + (node (ref U5) (pin 2)) (node (ref R31) (pin 2)) (node (ref C62) (pin 1))) (net (code 19) (name "conv.pwms.1L") - (node (ref U5) (pin 3)) + (node (ref U7) (pin 3)) (node (ref R32) (pin 2)) (node (ref C63) (pin 1))) (net (code 20) (name "conv.pwms.1H") - (node (ref U5) (pin 2)) + (node (ref U7) (pin 2)) (node (ref R33) (pin 2)) (node (ref C64) (pin 1))) (net (code 21) (name "conv.pwms.2L") - (node (ref U8) (pin 3)) + (node (ref U10) (pin 3)) (node (ref R34) (pin 2)) (node (ref C65) (pin 1))) (net (code 22) (name "conv.pwms.2H") - (node (ref U8) (pin 2)) + (node (ref U10) (pin 2)) (node (ref R35) (pin 2)) (node (ref C66) (pin 1))) (net (code 23) (name "conv.power_path.switch") (node (ref L2) (pin 1)) - (node (ref U9) (pin 6)) + (node (ref U11) (pin 6)) (node (ref C31) (pin 2)) (node (ref Q5) (pin 1)) (node (ref Q5) (pin 2)) @@ -2382,12 +2412,12 @@ (node (ref Q2) (pin 6)) (node (ref Q2) (pin 7)) (node (ref Q2) (pin 8)) - (node (ref U4) (pin 2)) + (node (ref U6) (pin 2)) (node (ref C16) (pin 2)) (node (ref C17) (pin 2)) - (node (ref U5) (pin 5)) + (node (ref U7) (pin 5)) (node (ref C19) (pin 2)) - (node (ref U6) (pin 4)) + (node (ref U8) (pin 4)) (node (ref C20) (pin 2)) (node (ref C22) (pin 2)) (node (ref C23) (pin 2)) @@ -2396,7 +2426,7 @@ (node (ref Q4) (pin 3)) (node (ref C25) (pin 2))) (net (code 25) (name "conv.sw[0].high_out") - (node (ref U3) (pin 6)) + (node (ref U5) (pin 6)) (node (ref C14) (pin 2)) (node (ref Q1) (pin 1)) (node (ref Q1) (pin 2)) @@ -2410,20 +2440,20 @@ (node (ref Q3) (pin 8))) (net (code 26) (name "conv.sw[0].high_boot_in") (node (ref D3) (pin 2)) - (node (ref U6) (pin 8)) + (node (ref U8) (pin 8)) (node (ref C21) (pin 1)) (node (ref C24) (pin 1)) (node (ref D5) (pin 1))) (net (code 27) (name "conv.sw[0].driver.low_out") - (node (ref U3) (pin 5)) + (node (ref U5) (pin 5)) (node (ref R8) (pin 1))) (net (code 28) (name "conv.sw[0].driver.high_pwr") - (node (ref U3) (pin 8)) + (node (ref U5) (pin 8)) (node (ref C14) (pin 1)) (node (ref C15) (pin 1)) (node (ref D3) (pin 1))) (net (code 29) (name "conv.sw[0].driver.high_out") - (node (ref U3) (pin 7)) + (node (ref U5) (pin 7)) (node (ref R7) (pin 1))) (net (code 30) (name "conv.sw[0].high_gate_res.b") (node (ref R7) (pin 2)) @@ -2436,12 +2466,12 @@ (node (ref Q4) (pin 6)) (node (ref Q4) (pin 7)) (node (ref Q4) (pin 8)) - (node (ref U7) (pin 2)) + (node (ref U9) (pin 2)) (node (ref C26) (pin 2)) (node (ref C27) (pin 2)) - (node (ref U8) (pin 5)) + (node (ref U10) (pin 5)) (node (ref C29) (pin 2)) - (node (ref U9) (pin 4)) + (node (ref U11) (pin 4)) (node (ref C30) (pin 2)) (node (ref C32) (pin 2)) (node (ref C33) (pin 2)) @@ -2450,16 +2480,16 @@ (node (ref Q6) (pin 3)) (node (ref C35) (pin 2))) (net (code 33) (name "conv.sw[1].low_boot_out") - (node (ref U4) (pin 1)) - (node (ref U4) (pin 3)) - (node (ref C16) (pin 1)) (node (ref U6) (pin 1)) + (node (ref U6) (pin 3)) + (node (ref C16) (pin 1)) + (node (ref U8) (pin 1)) (node (ref C20) (pin 1)) (node (ref D4) (pin 1)) (node (ref C25) (pin 1)) (node (ref D6) (pin 2))) (net (code 34) (name "conv.sw[1].high_out") - (node (ref U6) (pin 6)) + (node (ref U8) (pin 6)) (node (ref C21) (pin 2)) (node (ref Q3) (pin 1)) (node (ref Q3) (pin 2)) @@ -2473,26 +2503,26 @@ (node (ref Q5) (pin 8))) (net (code 35) (name "conv.sw[1].high_boot_in") (node (ref D5) (pin 2)) - (node (ref U9) (pin 8)) + (node (ref U11) (pin 8)) (node (ref C31) (pin 1)) (node (ref C34) (pin 1)) (node (ref D7) (pin 1))) (net (code 36) (name "conv.sw[1].ldo.pwr_out") - (node (ref U4) (pin 5)) + (node (ref U6) (pin 5)) (node (ref C17) (pin 1)) - (node (ref U5) (pin 8)) + (node (ref U7) (pin 8)) (node (ref C19) (pin 1))) (net (code 37) (name "conv.sw[1].driver.low_in") - (node (ref U5) (pin 6)) - (node (ref U6) (pin 3))) + (node (ref U7) (pin 6)) + (node (ref U8) (pin 3))) (net (code 38) (name "conv.sw[1].driver.high_in") - (node (ref U5) (pin 7)) - (node (ref U6) (pin 2))) + (node (ref U7) (pin 7)) + (node (ref U8) (pin 2))) (net (code 39) (name "conv.sw[1].driver.low_out") - (node (ref U6) (pin 5)) + (node (ref U8) (pin 5)) (node (ref R10) (pin 1))) (net (code 40) (name "conv.sw[1].driver.high_out") - (node (ref U6) (pin 7)) + (node (ref U8) (pin 7)) (node (ref R9) (pin 1))) (net (code 41) (name "conv.sw[1].high_gate_res.b") (node (ref R9) (pin 2)) @@ -2501,30 +2531,30 @@ (node (ref R10) (pin 2)) (node (ref Q4) (pin 4))) (net (code 43) (name "conv.sw[2].low_boot_out") - (node (ref U7) (pin 1)) - (node (ref U7) (pin 3)) - (node (ref C26) (pin 1)) (node (ref U9) (pin 1)) + (node (ref U9) (pin 3)) + (node (ref C26) (pin 1)) + (node (ref U11) (pin 1)) (node (ref C30) (pin 1)) (node (ref D6) (pin 1)) (node (ref C35) (pin 1)) (node (ref D7) (pin 2))) (net (code 44) (name "conv.sw[2].ldo.pwr_out") - (node (ref U7) (pin 5)) + (node (ref U9) (pin 5)) (node (ref C27) (pin 1)) - (node (ref U8) (pin 8)) + (node (ref U10) (pin 8)) (node (ref C29) (pin 1))) (net (code 45) (name "conv.sw[2].driver.low_in") - (node (ref U8) (pin 6)) - (node (ref U9) (pin 3))) + (node (ref U10) (pin 6)) + (node (ref U11) (pin 3))) (net (code 46) (name "conv.sw[2].driver.high_in") - (node (ref U8) (pin 7)) - (node (ref U9) (pin 2))) + (node (ref U10) (pin 7)) + (node (ref U11) (pin 2))) (net (code 47) (name "conv.sw[2].driver.low_out") - (node (ref U9) (pin 5)) + (node (ref U11) (pin 5)) (node (ref R12) (pin 1))) (net (code 48) (name "conv.sw[2].driver.high_out") - (node (ref U9) (pin 7)) + (node (ref U11) (pin 7)) (node (ref R11) (pin 1))) (net (code 49) (name "conv.sw[2].high_gate_res.b") (node (ref R11) (pin 2)) @@ -2533,88 +2563,88 @@ (node (ref R12) (pin 2)) (node (ref Q6) (pin 4))) (net (code 51) (name "fpga.gpio.led_0") - (node (ref U10) (pin 21)) + (node (ref U12) (pin 21)) (node (ref D9) (pin 2))) (net (code 52) (name "fpga.gpio.led_1") - (node (ref U10) (pin 20)) + (node (ref U12) (pin 20)) (node (ref D10) (pin 2))) (net (code 53) (name "fpga.gpio.led_2") - (node (ref U10) (pin 19)) + (node (ref U12) (pin 19)) (node (ref D11) (pin 2))) (net (code 54) (name "fpga.gpio.led_3") - (node (ref U10) (pin 18)) + (node (ref U12) (pin 18)) (node (ref D12) (pin 2))) (net (code 55) (name "fpga.gpio.pwm_0L") - (node (ref U10) (pin 47)) + (node (ref U12) (pin 47)) (node (ref TP11) (pin 1)) (node (ref R30) (pin 1))) (net (code 56) (name "fpga.gpio.pwm_0H") - (node (ref U10) (pin 48)) + (node (ref U12) (pin 48)) (node (ref TP12) (pin 1)) (node (ref R31) (pin 1))) (net (code 57) (name "fpga.gpio.pwm_1L") - (node (ref U10) (pin 45)) + (node (ref U12) (pin 45)) (node (ref TP13) (pin 1)) (node (ref R32) (pin 1))) (net (code 58) (name "fpga.gpio.pwm_1H") - (node (ref U10) (pin 46)) + (node (ref U12) (pin 46)) (node (ref TP14) (pin 1)) (node (ref R33) (pin 1))) (net (code 59) (name "fpga.gpio.pwm_2L") - (node (ref U10) (pin 43)) + (node (ref U12) (pin 43)) (node (ref TP15) (pin 1)) (node (ref R34) (pin 1))) (net (code 60) (name "fpga.gpio.pwm_2H") - (node (ref U10) (pin 44)) + (node (ref U12) (pin 44)) (node (ref TP16) (pin 1)) (node (ref R35) (pin 1))) (net (code 61) (name "fpga.cdone") - (node (ref U10) (pin 7)) + (node (ref U12) (pin 7)) (node (ref D8) (pin 2))) (net (code 62) (name "fpga.ic.vcc") - (node (ref U10) (pin 30)) - (node (ref U10) (pin 5)) - (node (ref U11) (pin 5)) + (node (ref U12) (pin 30)) + (node (ref U12) (pin 5)) + (node (ref U13) (pin 5)) (node (ref C37) (pin 1)) (node (ref R15) (pin 1)) (node (ref C43) (pin 1))) (net (code 63) (name "fpga.ic.vcc_pll") - (node (ref U10) (pin 29)) + (node (ref U12) (pin 29)) (node (ref R15) (pin 2)) (node (ref C44) (pin 1)) (node (ref C45) (pin 1))) (net (code 64) (name "fpga.ic.creset_b") - (node (ref U10) (pin 8)) + (node (ref U12) (pin 8)) (node (ref R13) (pin 2)) (node (ref J5) (pin 10))) (net (code 65) (name "fpga.ic.spi_config.sck") - (node (ref U10) (pin 15)) - (node (ref U12) (pin 6)) + (node (ref U12) (pin 15)) + (node (ref U14) (pin 6)) (node (ref J5) (pin 4))) (net (code 66) (name "fpga.ic.spi_config.mosi") - (node (ref U10) (pin 14)) - (node (ref U12) (pin 5)) + (node (ref U12) (pin 14)) + (node (ref U14) (pin 5)) (node (ref J5) (pin 6))) (net (code 67) (name "fpga.ic.spi_config.miso") - (node (ref U10) (pin 17)) - (node (ref U12) (pin 2)) + (node (ref U12) (pin 17)) + (node (ref U14) (pin 2)) (node (ref J5) (pin 8))) (net (code 68) (name "fpga.ic.spi_config_cs") - (node (ref U10) (pin 16)) + (node (ref U12) (pin 16)) (node (ref J5) (pin 2)) (node (ref JP1) (pin 1))) (net (code 69) (name "fpga.mem.cs") - (node (ref U12) (pin 1)) + (node (ref U14) (pin 1)) (node (ref JP1) (pin 2)) (node (ref R14) (pin 2))) (net (code 70) (name "cdone.package.k") (node (ref D8) (pin 1)) (node (ref R16) (pin 1))) (net (code 71) (name "fpga_osc.out") - (node (ref U10) (pin 37)) + (node (ref U12) (pin 37)) (node (ref X1) (pin 3))) (net (code 72) (name "fpga_sw.out") - (node (ref U10) (pin 32)) + (node (ref U12) (pin 32)) (node (ref SW1) (pin 1))) (net (code 73) (name "fpga_led.led[0].package.k") (node (ref D9) (pin 1)) @@ -2629,82 +2659,82 @@ (node (ref D12) (pin 1)) (node (ref R20) (pin 1))) (net (code 77) (name "usb_fpga_bitbang.dp") - (node (ref U10) (pin 26)) + (node (ref U12) (pin 26)) (node (ref R22) (pin 2))) (net (code 78) (name "usb_fpga_bitbang.dm") - (node (ref U10) (pin 25)) + (node (ref U12) (pin 25)) (node (ref R23) (pin 2))) (net (code 79) (name "usb_fpga_bitbang.dp_pull") - (node (ref U10) (pin 27)) + (node (ref U12) (pin 27)) (node (ref R21) (pin 1))) (net (code 80) (name "mcu.gpio.led_0") - (node (ref U14) (pin 34)) + (node (ref U16) (pin 34)) (node (ref D13) (pin 2))) (net (code 81) (name "mcu.gpio.led_1") - (node (ref U14) (pin 35)) + (node (ref U16) (pin 35)) (node (ref D14) (pin 2))) (net (code 82) (name "mcu.gpio.led_2") - (node (ref U14) (pin 36)) + (node (ref U16) (pin 36)) (node (ref D15) (pin 2))) (net (code 83) (name "mcu.gpio.led_3") - (node (ref U14) (pin 37)) + (node (ref U16) (pin 37)) (node (ref D16) (pin 2))) (net (code 84) (name "mcu.swd_node.swdio") - (node (ref U14) (pin 25)) + (node (ref U16) (pin 25)) (node (ref J6) (pin 2))) (net (code 85) (name "mcu.swd_node.swclk") - (node (ref U14) (pin 24)) + (node (ref U16) (pin 24)) (node (ref J6) (pin 4))) (net (code 86) (name "mcu.reset_node") - (node (ref U14) (pin 26)) + (node (ref U16) (pin 26)) (node (ref J6) (pin 10))) (net (code 87) (name "mcu.xtal_node.xi") - (node (ref U14) (pin 20)) + (node (ref U16) (pin 20)) (node (ref X2) (pin 1)) (node (ref C59) (pin 1))) (net (code 88) (name "mcu.xtal_node.xo") - (node (ref U14) (pin 21)) + (node (ref U16) (pin 21)) (node (ref X2) (pin 3)) (node (ref C60) (pin 1))) (net (code 89) (name "mcu.ic.dvdd") - (node (ref U14) (pin 23)) - (node (ref U14) (pin 45)) - (node (ref U14) (pin 50)) + (node (ref U16) (pin 23)) + (node (ref U16) (pin 45)) + (node (ref U16) (pin 50)) (node (ref C56) (pin 1)) (node (ref C57) (pin 1)) (node (ref C58) (pin 1))) (net (code 90) (name "mcu.ic.qspi.sck") - (node (ref U14) (pin 52)) - (node (ref U15) (pin 6))) + (node (ref U16) (pin 52)) + (node (ref U17) (pin 6))) (net (code 91) (name "mcu.ic.qspi.mosi") - (node (ref U14) (pin 53)) - (node (ref U15) (pin 5))) + (node (ref U16) (pin 53)) + (node (ref U17) (pin 5))) (net (code 92) (name "mcu.ic.qspi.miso") - (node (ref U14) (pin 55)) - (node (ref U15) (pin 2))) + (node (ref U16) (pin 55)) + (node (ref U17) (pin 2))) (net (code 93) (name "mcu.ic.qspi_cs") - (node (ref U14) (pin 56)) - (node (ref U15) (pin 1))) + (node (ref U16) (pin 56)) + (node (ref U17) (pin 1))) (net (code 94) (name "mcu.ic.qspi_sd2") - (node (ref U14) (pin 54)) - (node (ref U15) (pin 3))) + (node (ref U16) (pin 54)) + (node (ref U17) (pin 3))) (net (code 95) (name "mcu.ic.qspi_sd3") - (node (ref U14) (pin 51)) - (node (ref U15) (pin 7))) + (node (ref U16) (pin 51)) + (node (ref U17) (pin 7))) (net (code 96) (name "mcu.swd.tdi") - (node (ref U14) (pin 3)) + (node (ref U16) (pin 3)) (node (ref J6) (pin 8))) (net (code 97) (name "mcu.swd.swo") - (node (ref U14) (pin 2)) + (node (ref U16) (pin 2)) (node (ref J6) (pin 6))) (net (code 98) (name "mcu.usb_res.interior.dp") - (node (ref U14) (pin 47)) + (node (ref U16) (pin 47)) (node (ref R24) (pin 2))) (net (code 99) (name "mcu.usb_res.interior.dm") - (node (ref U14) (pin 46)) + (node (ref U16) (pin 46)) (node (ref R25) (pin 2))) (net (code 100) (name "mcu_sw.out") - (node (ref U14) (pin 29)) + (node (ref U16) (pin 29)) (node (ref SW2) (pin 1))) (net (code 101) (name "mcu_leds.led[0].package.k") (node (ref D13) (pin 1)) @@ -2719,27 +2749,27 @@ (node (ref D16) (pin 1)) (node (ref R29) (pin 1))) (net (code 105) (name "tp_fpga[0].io") - (node (ref U10) (pin 2)) - (node (ref U14) (pin 14)) + (node (ref U12) (pin 2)) + (node (ref U16) (pin 14)) (node (ref TP7) (pin 1))) (net (code 106) (name "tp_fpga[1].io") - (node (ref U10) (pin 3)) - (node (ref U14) (pin 13)) + (node (ref U12) (pin 3)) + (node (ref U16) (pin 13)) (node (ref TP8) (pin 1))) (net (code 107) (name "tp_fpga[2].io") - (node (ref U10) (pin 4)) - (node (ref U14) (pin 12)) + (node (ref U12) (pin 4)) + (node (ref U16) (pin 12)) (node (ref TP9) (pin 1))) (net (code 108) (name "tp_fpga[3].io") - (node (ref U10) (pin 6)) - (node (ref U14) (pin 11)) + (node (ref U12) (pin 6)) + (node (ref U16) (pin 11)) (node (ref TP10) (pin 1))) (net (code 109) (name "conv_in_sense.output") - (node (ref U14) (pin 38)) + (node (ref U16) (pin 38)) (node (ref R36) (pin 2)) (node (ref R37) (pin 1))) (net (code 110) (name "conv_out_sense.output") - (node (ref U14) (pin 39)) + (node (ref U16) (pin 39)) (node (ref R38) (pin 2)) (node (ref R39) (pin 1)))) ) \ No newline at end of file diff --git a/examples/Fcml/Fcml.svgpcb.js b/examples/Fcml/Fcml.svgpcb.js index 0aa93df95..b8b793319 100644 --- a/examples/Fcml/Fcml.svgpcb.js +++ b/examples/Fcml/Fcml.svgpcb.js @@ -2,127 +2,137 @@ const board = new PCB(); // jlc_th.th1 const H1 = board.add(JlcToolingHole_1_152mm, { - translate: pt(3.599, 2.702), rotate: 0, + translate: pt(0.381, 3.035), rotate: 0, id: 'H1' }) // jlc_th.th2 const H2 = board.add(JlcToolingHole_1_152mm, { - translate: pt(3.638, 2.702), rotate: 0, + translate: pt(0.420, 3.035), rotate: 0, id: 'H2' }) // jlc_th.th3 const H3 = board.add(JlcToolingHole_1_152mm, { - translate: pt(3.599, 2.742), rotate: 0, + translate: pt(0.381, 3.075), rotate: 0, id: 'H3' }) // usb_mcu.conn const J1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(1.237, 1.501), rotate: 0, + translate: pt(2.293, 1.501), rotate: 0, id: 'J1' }) +// usb_mcu.esd +const U1 = board.add(SOT_23, { + translate: pt(2.617, 1.403), rotate: 0, + id: 'U1' +}) // usb_mcu.cc_pull.cc1 const R1 = board.add(R_0603_1608Metric, { - translate: pt(1.086, 1.756), rotate: 0, + translate: pt(2.600, 1.538), rotate: 0, id: 'R1' }) // usb_mcu.cc_pull.cc2 const R2 = board.add(R_0603_1608Metric, { - translate: pt(1.242, 1.756), rotate: 0, + translate: pt(2.600, 1.635), rotate: 0, id: 'R2' }) // usb_fpga.conn const J2 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(1.774, 1.501), rotate: 0, + translate: pt(3.020, 1.501), rotate: 0, id: 'J2' }) +// usb_fpga.esd +const U2 = board.add(SOT_23, { + translate: pt(3.344, 1.403), rotate: 0, + id: 'U2' +}) // usb_fpga.cc_pull.cc1 const R3 = board.add(R_0603_1608Metric, { - translate: pt(1.623, 1.756), rotate: 0, + translate: pt(3.327, 1.538), rotate: 0, id: 'R3' }) // usb_fpga.cc_pull.cc2 const R4 = board.add(R_0603_1608Metric, { - translate: pt(1.779, 1.756), rotate: 0, + translate: pt(3.327, 1.635), rotate: 0, id: 'R4' }) // conv_in.conn const J3 = board.add(JST_PH_B2B_PH_K_1x02_P2_00mm_Vertical, { - translate: pt(2.596, 2.365), rotate: 0, + translate: pt(2.987, 2.365), rotate: 0, id: 'J3' }) // tp_vusb.tp const TP1 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(0.535, 2.740), rotate: 0, + translate: pt(1.022, 2.740), rotate: 0, id: 'TP1' }) // tp_gnd.tp const TP2 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(0.786, 2.740), rotate: 0, + translate: pt(1.273, 2.740), rotate: 0, id: 'TP2' }) // reg_3v3.ic -const U1 = board.add(SOT_223_3_TabPin2, { - translate: pt(2.275, 1.478), rotate: 0, - id: 'U1' +const U3 = board.add(SOT_223_3_TabPin2, { + translate: pt(1.201, 1.478), rotate: 0, + id: 'U3' }) // reg_3v3.in_cap.cap const C1 = board.add(C_0603_1608Metric, { - translate: pt(2.333, 1.688), rotate: 0, + translate: pt(1.259, 1.688), rotate: 0, id: 'C1' }) // reg_3v3.out_cap.cap const C2 = board.add(C_0805_2012Metric, { - translate: pt(2.169, 1.698), rotate: 0, + translate: pt(1.094, 1.698), rotate: 0, id: 'C2' }) // tp_3v3.tp const TP3 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.036, 2.740), rotate: 0, + translate: pt(1.523, 2.740), rotate: 0, id: 'TP3' }) // prot_3v3.diode const D1 = board.add(D_SOD_323, { - translate: pt(1.284, 2.740), rotate: 0, + translate: pt(1.771, 2.740), rotate: 0, id: 'D1' }) // reg_vgate.ic -const U2 = board.add(SOT_23_5, { - translate: pt(2.828, 1.403), rotate: 0, - id: 'U2' +const U4 = board.add(SOT_23_5, { + translate: pt(1.754, 1.403), rotate: 0, + id: 'U4' }) // reg_vgate.fb.div.top_res const R5 = board.add(R_0603_1608Metric, { - translate: pt(2.624, 1.659), rotate: 0, + translate: pt(1.550, 1.659), rotate: 0, id: 'R5' }) // reg_vgate.fb.div.bottom_res const R6 = board.add(R_0603_1608Metric, { - translate: pt(2.780, 1.659), rotate: 0, + translate: pt(1.706, 1.659), rotate: 0, id: 'R6' }) // reg_vgate.power_path.inductor const L1 = board.add(L_Sunlord_SWPA3015S, { - translate: pt(2.637, 1.406), rotate: 0, + translate: pt(1.563, 1.406), rotate: 0, id: 'L1' }) // reg_vgate.power_path.in_cap.cap const C3 = board.add(C_0805_2012Metric, { - translate: pt(2.633, 1.553), rotate: 0, + translate: pt(1.559, 1.553), rotate: 0, id: 'C3' }) // reg_vgate.power_path.out_cap.cap const C4 = board.add(C_0805_2012Metric, { - translate: pt(2.806, 1.553), rotate: 0, + translate: pt(1.732, 1.553), rotate: 0, id: 'C4' }) // reg_vgate.rect const D2 = board.add(D_SOD_323, { - translate: pt(2.976, 1.552), rotate: 0, + translate: pt(1.902, 1.552), rotate: 0, id: 'D2' }) // tp_vgate.tp const TP4 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.531, 2.740), rotate: 0, + translate: pt(2.018, 2.740), rotate: 0, id: 'TP4' }) // conv.power_path.inductor @@ -171,9 +181,9 @@ const C12 = board.add(C_1206_3216Metric, { id: 'C12' }) // conv.sw[0].driver.ic -const U3 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { +const U5 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { translate: pt(0.709, 0.106), rotate: 0, - id: 'U3' + id: 'U5' }) // conv.sw[0].driver.cap.cap const C13 = board.add(C_0603_1608Metric, { @@ -216,9 +226,9 @@ const D3 = board.add(D_SOD_323, { id: 'D3' }) // conv.sw[1].ldo.ic -const U4 = board.add(SOT_23_5, { +const U6 = board.add(SOT_23_5, { translate: pt(1.073, 0.619), rotate: 0, - id: 'U4' + id: 'U6' }) // conv.sw[1].ldo.in_cap.cap const C16 = board.add(C_0603_1608Metric, { @@ -231,9 +241,9 @@ const C17 = board.add(C_1206_3216Metric, { id: 'C17' }) // conv.sw[1].iso.ic -const U5 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { +const U7 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { translate: pt(1.701, 0.106), rotate: 0, - id: 'U5' + id: 'U7' }) // conv.sw[1].iso.cap_a.cap const C18 = board.add(C_0603_1608Metric, { @@ -246,9 +256,9 @@ const C19 = board.add(C_0603_1608Metric, { id: 'C19' }) // conv.sw[1].driver.ic -const U6 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { +const U8 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { translate: pt(0.709, 0.358), rotate: 0, - id: 'U6' + id: 'U8' }) // conv.sw[1].driver.cap.cap const C20 = board.add(C_0603_1608Metric, { @@ -311,9 +321,9 @@ const D5 = board.add(D_SOD_323, { id: 'D5' }) // conv.sw[2].ldo.ic -const U7 = board.add(SOT_23_5, { +const U9 = board.add(SOT_23_5, { translate: pt(1.274, 0.619), rotate: 0, - id: 'U7' + id: 'U9' }) // conv.sw[2].ldo.in_cap.cap const C26 = board.add(C_0603_1608Metric, { @@ -326,9 +336,9 @@ const C27 = board.add(C_1206_3216Metric, { id: 'C27' }) // conv.sw[2].iso.ic -const U8 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { +const U10 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { translate: pt(1.701, 0.358), rotate: 0, - id: 'U8' + id: 'U10' }) // conv.sw[2].iso.cap_a.cap const C28 = board.add(C_0603_1608Metric, { @@ -341,9 +351,9 @@ const C29 = board.add(C_0603_1608Metric, { id: 'C29' }) // conv.sw[2].driver.ic -const U9 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { +const U11 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { translate: pt(0.146, 0.658), rotate: 0, - id: 'U9' + id: 'U11' }) // conv.sw[2].driver.cap.cap const C30 = board.add(C_0603_1608Metric, { @@ -407,28 +417,28 @@ const D7 = board.add(D_SOD_323, { }) // conv_out.conn const J4 = board.add(JST_PH_B2B_PH_K_1x02_P2_00mm_Vertical, { - translate: pt(2.986, 2.365), rotate: 0, + translate: pt(3.377, 2.365), rotate: 0, id: 'J4' }) // tp_conv_out.tp const TP5 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.781, 2.740), rotate: 0, + translate: pt(2.268, 2.740), rotate: 0, id: 'TP5' }) // tp_conv_gnd.tp const TP6 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.032, 2.740), rotate: 0, + translate: pt(2.519, 2.740), rotate: 0, id: 'TP6' }) // fpga.ic -const U10 = board.add(QFN_48_1EP_7x7mm_P0_5mm_EP5_3x5_3mm, { +const U12 = board.add(QFN_48_1EP_7x7mm_P0_5mm_EP5_3x5_3mm, { translate: pt(0.161, 1.498), rotate: 0, - id: 'U10' + id: 'U12' }) // fpga.vcc_reg.ic -const U11 = board.add(SOT_23_5, { +const U13 = board.add(SOT_23_5, { translate: pt(0.486, 1.765), rotate: 0, - id: 'U11' + id: 'U13' }) // fpga.vcc_reg.in_cap.cap const C36 = board.add(C_0603_1608Metric, { @@ -446,9 +456,9 @@ const R13 = board.add(R_0603_1608Metric, { id: 'R13' }) // fpga.mem.ic -const U12 = board.add(SOIC_8_5_23x5_23mm_P1_27mm, { +const U14 = board.add(SOIC_8_5_23x5_23mm_P1_27mm, { translate: pt(0.183, 1.811), rotate: 0, - id: 'U12' + id: 'U14' }) // fpga.mem.vcc_cap.cap const C38 = board.add(C_0603_1608Metric, { @@ -512,93 +522,93 @@ const C45 = board.add(C_0603_1608Metric, { }) // cdone.package const D8 = board.add(LED_0603_1608Metric, { - translate: pt(3.590, 2.264), rotate: 0, + translate: pt(0.310, 2.731), rotate: 0, id: 'D8' }) // cdone.res const R16 = board.add(R_0603_1608Metric, { - translate: pt(3.589, 2.361), rotate: 0, + translate: pt(0.310, 2.828), rotate: 0, id: 'R16' }) // fpga_osc.device const X1 = board.add(Crystal_SMD_2520_4Pin_2_5x2_0mm, { - translate: pt(3.346, 2.294), rotate: 0, + translate: pt(0.067, 2.761), rotate: 0, id: 'X1' }) // fpga_osc.cap.cap const C46 = board.add(C_0603_1608Metric, { - translate: pt(3.337, 2.422), rotate: 0, + translate: pt(0.058, 2.889), rotate: 0, id: 'C46' }) // fpga_sw.package const SW1 = board.add(SW_SPST_SKQG_WithoutStem, { - translate: pt(1.761, 2.348), rotate: 0, + translate: pt(2.152, 2.348), rotate: 0, id: 'SW1' }) // fpga_led.led[0].package const D9 = board.add(LED_0603_1608Metric, { - translate: pt(3.216, 1.365), rotate: 0, + translate: pt(0.058, 2.264), rotate: 0, id: 'D9' }) // fpga_led.led[0].res const R17 = board.add(R_0603_1608Metric, { - translate: pt(3.215, 1.559), rotate: 0, + translate: pt(0.058, 2.459), rotate: 0, id: 'R17' }) // fpga_led.led[1].package const D10 = board.add(LED_0603_1608Metric, { - translate: pt(3.372, 1.365), rotate: 0, + translate: pt(0.215, 2.264), rotate: 0, id: 'D10' }) // fpga_led.led[1].res const R18 = board.add(R_0603_1608Metric, { - translate: pt(3.371, 1.559), rotate: 0, + translate: pt(0.214, 2.459), rotate: 0, id: 'R18' }) // fpga_led.led[2].package const D11 = board.add(LED_0603_1608Metric, { - translate: pt(3.216, 1.462), rotate: 0, + translate: pt(0.058, 2.362), rotate: 0, id: 'D11' }) // fpga_led.led[2].res const R19 = board.add(R_0603_1608Metric, { - translate: pt(3.215, 1.656), rotate: 0, + translate: pt(0.058, 2.556), rotate: 0, id: 'R19' }) // fpga_led.led[3].package const D12 = board.add(LED_0603_1608Metric, { - translate: pt(3.372, 1.462), rotate: 0, + translate: pt(0.215, 2.362), rotate: 0, id: 'D12' }) // fpga_led.led[3].res const R20 = board.add(R_0603_1608Metric, { - translate: pt(3.371, 1.656), rotate: 0, + translate: pt(0.214, 2.556), rotate: 0, id: 'R20' }) // usb_fpga_bitbang.dp_pull_res const R21 = board.add(R_0603_1608Metric, { - translate: pt(1.418, 2.264), rotate: 0, + translate: pt(1.809, 2.264), rotate: 0, id: 'R21' }) // usb_fpga_bitbang.dp_res const R22 = board.add(R_0603_1608Metric, { - translate: pt(1.418, 2.361), rotate: 0, + translate: pt(1.809, 2.361), rotate: 0, id: 'R22' }) // usb_fpga_bitbang.dm_res const R23 = board.add(R_0603_1608Metric, { - translate: pt(1.418, 2.458), rotate: 0, + translate: pt(1.809, 2.458), rotate: 0, id: 'R23' }) // usb_fpga_esd -const U13 = board.add(SOT_23, { - translate: pt(3.293, 2.769), rotate: 0, - id: 'U13' +const U15 = board.add(SOT_23, { + translate: pt(0.076, 3.102), rotate: 0, + id: 'U15' }) // mcu.ic -const U14 = board.add(QFN_56_1EP_7x7mm_P0_4mm_EP3_2x3_2mm, { +const U16 = board.add(QFN_56_1EP_7x7mm_P0_4mm_EP3_2x3_2mm, { translate: pt(2.127, 0.163), rotate: 0, - id: 'U14' + id: 'U16' }) // mcu.iovdd_cap[0].cap const C47 = board.add(C_0603_1608Metric, { @@ -641,9 +651,9 @@ const C54 = board.add(C_0603_1608Metric, { id: 'C54' }) // mcu.mem.ic -const U15 = board.add(SOIC_8_5_23x5_23mm_P1_27mm, { +const U17 = board.add(SOIC_8_5_23x5_23mm_P1_27mm, { translate: pt(2.148, 0.477), rotate: 0, - id: 'U15' + id: 'U17' }) // mcu.mem.vcc_cap.cap const C55 = board.add(C_0603_1608Metric, { @@ -697,300 +707,300 @@ const R25 = board.add(R_0603_1608Metric, { }) // mcu_sw.package const SW2 = board.add(SW_SPST_SKQG_WithoutStem, { - translate: pt(2.214, 2.348), rotate: 0, + translate: pt(2.605, 2.348), rotate: 0, id: 'SW2' }) // mcu_leds.led[0].package const D13 = board.add(LED_0603_1608Metric, { - translate: pt(0.058, 2.264), rotate: 0, + translate: pt(0.449, 2.264), rotate: 0, id: 'D13' }) // mcu_leds.led[0].res const R26 = board.add(R_0603_1608Metric, { - translate: pt(0.058, 2.459), rotate: 0, + translate: pt(0.449, 2.459), rotate: 0, id: 'R26' }) // mcu_leds.led[1].package const D14 = board.add(LED_0603_1608Metric, { - translate: pt(0.215, 2.264), rotate: 0, + translate: pt(0.606, 2.264), rotate: 0, id: 'D14' }) // mcu_leds.led[1].res const R27 = board.add(R_0603_1608Metric, { - translate: pt(0.214, 2.459), rotate: 0, + translate: pt(0.605, 2.459), rotate: 0, id: 'R27' }) // mcu_leds.led[2].package const D15 = board.add(LED_0603_1608Metric, { - translate: pt(0.058, 2.362), rotate: 0, + translate: pt(0.449, 2.362), rotate: 0, id: 'D15' }) // mcu_leds.led[2].res const R28 = board.add(R_0603_1608Metric, { - translate: pt(0.058, 2.556), rotate: 0, + translate: pt(0.449, 2.556), rotate: 0, id: 'R28' }) // mcu_leds.led[3].package const D16 = board.add(LED_0603_1608Metric, { - translate: pt(0.215, 2.362), rotate: 0, + translate: pt(0.606, 2.362), rotate: 0, id: 'D16' }) // mcu_leds.led[3].res const R29 = board.add(R_0603_1608Metric, { - translate: pt(0.214, 2.556), rotate: 0, + translate: pt(0.605, 2.556), rotate: 0, id: 'R29' }) // usb_mcu_esd -const U16 = board.add(SOT_23, { - translate: pt(3.484, 2.769), rotate: 0, - id: 'U16' +const U18 = board.add(SOT_23, { + translate: pt(0.266, 3.102), rotate: 0, + id: 'U18' }) // tp_fpga[0].tp const TP7 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.282, 2.740), rotate: 0, + translate: pt(2.769, 2.740), rotate: 0, id: 'TP7' }) // tp_fpga[1].tp const TP8 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.533, 2.740), rotate: 0, + translate: pt(3.019, 2.740), rotate: 0, id: 'TP8' }) // tp_fpga[2].tp const TP9 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.783, 2.740), rotate: 0, + translate: pt(3.270, 2.740), rotate: 0, id: 'TP9' }) // tp_fpga[3].tp const TP10 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(3.033, 2.740), rotate: 0, + translate: pt(3.520, 2.740), rotate: 0, id: 'TP10' }) // pwm_filter.tp[0L].tp const TP11 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.004, 2.273), rotate: 0, + translate: pt(1.394, 2.273), rotate: 0, id: 'TP11' }) // pwm_filter.tp[0H].tp const TP12 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.175, 2.273), rotate: 0, + translate: pt(1.566, 2.273), rotate: 0, id: 'TP12' }) // pwm_filter.tp[1L].tp const TP13 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.004, 2.387), rotate: 0, + translate: pt(1.394, 2.387), rotate: 0, id: 'TP13' }) // pwm_filter.tp[1H].tp const TP14 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.175, 2.387), rotate: 0, + translate: pt(1.566, 2.387), rotate: 0, id: 'TP14' }) // pwm_filter.tp[2L].tp const TP15 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.004, 2.501), rotate: 0, + translate: pt(1.394, 2.501), rotate: 0, id: 'TP15' }) // pwm_filter.tp[2H].tp const TP16 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.175, 2.501), rotate: 0, + translate: pt(1.566, 2.501), rotate: 0, id: 'TP16' }) // tp_pwm.elts[0L].rc.r const R30 = board.add(R_0603_1608Metric, { - translate: pt(0.449, 2.264), rotate: 0, + translate: pt(0.840, 2.264), rotate: 0, id: 'R30' }) // tp_pwm.elts[0L].rc.c const C61 = board.add(C_0603_1608Metric, { - translate: pt(0.605, 2.264), rotate: 0, + translate: pt(0.996, 2.264), rotate: 0, id: 'C61' }) // tp_pwm.elts[0H].rc.r const R31 = board.add(R_0603_1608Metric, { - translate: pt(0.761, 2.264), rotate: 0, + translate: pt(1.152, 2.264), rotate: 0, id: 'R31' }) // tp_pwm.elts[0H].rc.c const C62 = board.add(C_0603_1608Metric, { - translate: pt(0.449, 2.361), rotate: 0, + translate: pt(0.840, 2.361), rotate: 0, id: 'C62' }) // tp_pwm.elts[1L].rc.r const R32 = board.add(R_0603_1608Metric, { - translate: pt(0.605, 2.361), rotate: 0, + translate: pt(0.996, 2.361), rotate: 0, id: 'R32' }) // tp_pwm.elts[1L].rc.c const C63 = board.add(C_0603_1608Metric, { - translate: pt(0.761, 2.361), rotate: 0, + translate: pt(1.152, 2.361), rotate: 0, id: 'C63' }) // tp_pwm.elts[1H].rc.r const R33 = board.add(R_0603_1608Metric, { - translate: pt(0.449, 2.458), rotate: 0, + translate: pt(0.840, 2.458), rotate: 0, id: 'R33' }) // tp_pwm.elts[1H].rc.c const C64 = board.add(C_0603_1608Metric, { - translate: pt(0.605, 2.458), rotate: 0, + translate: pt(0.996, 2.458), rotate: 0, id: 'C64' }) // tp_pwm.elts[2L].rc.r const R34 = board.add(R_0603_1608Metric, { - translate: pt(0.761, 2.458), rotate: 0, + translate: pt(1.152, 2.458), rotate: 0, id: 'R34' }) // tp_pwm.elts[2L].rc.c const C65 = board.add(C_0603_1608Metric, { - translate: pt(0.449, 2.555), rotate: 0, + translate: pt(0.840, 2.555), rotate: 0, id: 'C65' }) // tp_pwm.elts[2H].rc.r const R35 = board.add(R_0603_1608Metric, { - translate: pt(0.605, 2.555), rotate: 0, + translate: pt(0.996, 2.555), rotate: 0, id: 'R35' }) // tp_pwm.elts[2H].rc.c const C66 = board.add(C_0603_1608Metric, { - translate: pt(0.761, 2.555), rotate: 0, + translate: pt(1.152, 2.555), rotate: 0, id: 'C66' }) // conv_in_sense.div.top_res const R36 = board.add(R_0603_1608Metric, { - translate: pt(0.058, 2.731), rotate: 0, + translate: pt(0.545, 2.731), rotate: 0, id: 'R36' }) // conv_in_sense.div.bottom_res const R37 = board.add(R_0603_1608Metric, { - translate: pt(0.058, 2.828), rotate: 0, + translate: pt(0.545, 2.828), rotate: 0, id: 'R37' }) // conv_out_sense.div.top_res const R38 = board.add(R_0603_1608Metric, { - translate: pt(0.293, 2.731), rotate: 0, + translate: pt(0.780, 2.731), rotate: 0, id: 'R38' }) // conv_out_sense.div.bottom_res const R39 = board.add(R_0603_1608Metric, { - translate: pt(0.293, 2.828), rotate: 0, + translate: pt(0.780, 2.828), rotate: 0, id: 'R39' }) board.setNetlist([ - {name: "vusb", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["J2", "A4"], ["J2", "A9"], ["J2", "B4"], ["J2", "B9"], ["TP1", "1"], ["U1", "3"], ["C1", "1"], ["U2", "4"], ["U2", "5"], ["L1", "1"], ["C3", "1"]]}, - {name: "gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["R1", "1"], ["R2", "1"], ["J2", "A1"], ["J2", "A12"], ["J2", "B1"], ["J2", "B12"], ["J2", "S1"], ["R3", "1"], ["R4", "1"], ["J3", "1"], ["TP2", "1"], ["U1", "1"], ["C1", "2"], ["C2", "2"], ["D1", "2"], ["U2", "2"], ["R6", "2"], ["C3", "2"], ["C4", "2"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["C8", "2"], ["C9", "2"], ["C10", "2"], ["C11", "2"], ["C12", "2"], ["U3", "4"], ["C13", "2"], ["Q2", "1"], ["Q2", "2"], ["Q2", "3"], ["U5", "4"], ["C18", "2"], ["U8", "4"], ["C28", "2"], ["J4", "1"], ["TP6", "1"], ["U10", "49"], ["U11", "2"], ["C36", "2"], ["C37", "2"], ["U12", "4"], ["C38", "2"], ["J5", "3"], ["J5", "5"], ["J5", "9"], ["C39", "2"], ["C40", "2"], ["C41", "2"], ["C42", "2"], ["C43", "2"], ["C44", "2"], ["C45", "2"], ["R16", "2"], ["X1", "2"], ["C46", "2"], ["SW1", "2"], ["R17", "2"], ["R18", "2"], ["R19", "2"], ["R20", "2"], ["U13", "3"], ["U14", "19"], ["U14", "57"], ["C47", "2"], ["C48", "2"], ["C49", "2"], ["C50", "2"], ["C51", "2"], ["C52", "2"], ["C53", "2"], ["C54", "2"], ["U15", "4"], ["C55", "2"], ["C56", "2"], ["C57", "2"], ["C58", "2"], ["J6", "3"], ["J6", "5"], ["J6", "9"], ["X2", "2"], ["X2", "4"], ["C59", "2"], ["C60", "2"], ["SW2", "2"], ["R26", "2"], ["R27", "2"], ["R28", "2"], ["R29", "2"], ["U16", "3"], ["C61", "2"], ["C62", "2"], ["C63", "2"], ["C64", "2"], ["C65", "2"], ["C66", "2"], ["R37", "2"], ["R39", "2"]]}, - {name: "v3v3", pads: [["U1", "2"], ["C2", "1"], ["TP3", "1"], ["D1", "1"], ["U5", "1"], ["C18", "1"], ["U8", "1"], ["C28", "1"], ["U10", "1"], ["U10", "22"], ["U10", "24"], ["U10", "33"], ["U11", "1"], ["U11", "3"], ["C36", "1"], ["R13", "1"], ["U12", "3"], ["U12", "7"], ["U12", "8"], ["C38", "1"], ["J5", "1"], ["R14", "1"], ["C39", "1"], ["C40", "1"], ["C41", "1"], ["C42", "1"], ["X1", "1"], ["X1", "4"], ["C46", "1"], ["U14", "1"], ["U14", "10"], ["U14", "22"], ["U14", "33"], ["U14", "42"], ["U14", "43"], ["U14", "44"], ["U14", "48"], ["U14", "49"], ["C47", "1"], ["C48", "1"], ["C49", "1"], ["C50", "1"], ["C51", "1"], ["C52", "1"], ["C53", "1"], ["C54", "1"], ["U15", "8"], ["C55", "1"], ["J6", "1"]]}, - {name: "vgate", pads: [["R5", "1"], ["C4", "1"], ["D2", "1"], ["TP4", "1"], ["U3", "1"], ["C13", "1"], ["D4", "2"]]}, - {name: "usb_fpga_chain_0.d_P", pads: [["J2", "A6"], ["J2", "B6"], ["R21", "2"], ["R22", "1"], ["U13", "2"]]}, - {name: "usb_fpga_chain_0.d_N", pads: [["J2", "A7"], ["J2", "B7"], ["R23", "1"], ["U13", "1"]]}, - {name: "usb_mcu_chain_0.d_P", pads: [["J1", "A6"], ["J1", "B6"], ["R24", "1"], ["U16", "2"]]}, - {name: "usb_mcu_chain_0.d_N", pads: [["J1", "A7"], ["J1", "B7"], ["R25", "1"], ["U16", "1"]]}, + {name: "vusb", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["J2", "A4"], ["J2", "A9"], ["J2", "B4"], ["J2", "B9"], ["TP1", "1"], ["U3", "3"], ["C1", "1"], ["U4", "4"], ["U4", "5"], ["L1", "1"], ["C3", "1"]]}, + {name: "gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["U1", "3"], ["R1", "1"], ["R2", "1"], ["J2", "A1"], ["J2", "A12"], ["J2", "B1"], ["J2", "B12"], ["J2", "S1"], ["U2", "3"], ["R3", "1"], ["R4", "1"], ["J3", "1"], ["TP2", "1"], ["U3", "1"], ["C1", "2"], ["C2", "2"], ["D1", "2"], ["U4", "2"], ["R6", "2"], ["C3", "2"], ["C4", "2"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["C8", "2"], ["C9", "2"], ["C10", "2"], ["C11", "2"], ["C12", "2"], ["U5", "4"], ["C13", "2"], ["Q2", "1"], ["Q2", "2"], ["Q2", "3"], ["U7", "4"], ["C18", "2"], ["U10", "4"], ["C28", "2"], ["J4", "1"], ["TP6", "1"], ["U12", "49"], ["U13", "2"], ["C36", "2"], ["C37", "2"], ["U14", "4"], ["C38", "2"], ["J5", "3"], ["J5", "5"], ["J5", "9"], ["C39", "2"], ["C40", "2"], ["C41", "2"], ["C42", "2"], ["C43", "2"], ["C44", "2"], ["C45", "2"], ["R16", "2"], ["X1", "2"], ["C46", "2"], ["SW1", "2"], ["R17", "2"], ["R18", "2"], ["R19", "2"], ["R20", "2"], ["U15", "3"], ["U16", "19"], ["U16", "57"], ["C47", "2"], ["C48", "2"], ["C49", "2"], ["C50", "2"], ["C51", "2"], ["C52", "2"], ["C53", "2"], ["C54", "2"], ["U17", "4"], ["C55", "2"], ["C56", "2"], ["C57", "2"], ["C58", "2"], ["J6", "3"], ["J6", "5"], ["J6", "9"], ["X2", "2"], ["X2", "4"], ["C59", "2"], ["C60", "2"], ["SW2", "2"], ["R26", "2"], ["R27", "2"], ["R28", "2"], ["R29", "2"], ["U18", "3"], ["C61", "2"], ["C62", "2"], ["C63", "2"], ["C64", "2"], ["C65", "2"], ["C66", "2"], ["R37", "2"], ["R39", "2"]]}, + {name: "v3v3", pads: [["U3", "2"], ["C2", "1"], ["TP3", "1"], ["D1", "1"], ["U7", "1"], ["C18", "1"], ["U10", "1"], ["C28", "1"], ["U12", "1"], ["U12", "22"], ["U12", "24"], ["U12", "33"], ["U13", "1"], ["U13", "3"], ["C36", "1"], ["R13", "1"], ["U14", "3"], ["U14", "7"], ["U14", "8"], ["C38", "1"], ["J5", "1"], ["R14", "1"], ["C39", "1"], ["C40", "1"], ["C41", "1"], ["C42", "1"], ["X1", "1"], ["X1", "4"], ["C46", "1"], ["U16", "1"], ["U16", "10"], ["U16", "22"], ["U16", "33"], ["U16", "42"], ["U16", "43"], ["U16", "44"], ["U16", "48"], ["U16", "49"], ["C47", "1"], ["C48", "1"], ["C49", "1"], ["C50", "1"], ["C51", "1"], ["C52", "1"], ["C53", "1"], ["C54", "1"], ["U17", "8"], ["C55", "1"], ["J6", "1"]]}, + {name: "vgate", pads: [["R5", "1"], ["C4", "1"], ["D2", "1"], ["TP4", "1"], ["U5", "1"], ["C13", "1"], ["D4", "2"]]}, + {name: "usb_fpga_chain_0.d_P", pads: [["J2", "A6"], ["J2", "B6"], ["U2", "2"], ["R21", "2"], ["R22", "1"], ["U15", "2"]]}, + {name: "usb_fpga_chain_0.d_N", pads: [["J2", "A7"], ["J2", "B7"], ["U2", "1"], ["R23", "1"], ["U15", "1"]]}, + {name: "usb_mcu_chain_0.d_P", pads: [["J1", "A6"], ["J1", "B6"], ["U1", "2"], ["R24", "1"], ["U18", "2"]]}, + {name: "usb_mcu_chain_0.d_N", pads: [["J1", "A7"], ["J1", "B7"], ["U1", "1"], ["R25", "1"], ["U18", "1"]]}, {name: "usb_mcu.conn.cc.cc1", pads: [["J1", "A5"], ["R1", "2"]]}, {name: "usb_mcu.conn.cc.cc2", pads: [["J1", "B5"], ["R2", "2"]]}, {name: "usb_fpga.conn.cc.cc1", pads: [["J2", "A5"], ["R3", "2"]]}, {name: "usb_fpga.conn.cc.cc2", pads: [["J2", "B5"], ["R4", "2"]]}, {name: "conv_in.pwr", pads: [["J3", "2"], ["C5", "1"], ["C6", "1"], ["C7", "1"], ["C8", "1"], ["C9", "1"], ["Q1", "5"], ["Q1", "6"], ["Q1", "7"], ["Q1", "8"], ["R36", "1"]]}, - {name: "reg_vgate.ic.sw", pads: [["U2", "1"], ["L1", "2"], ["D2", "2"]]}, - {name: "reg_vgate.ic.fb", pads: [["U2", "3"], ["R5", "2"], ["R6", "1"]]}, + {name: "reg_vgate.ic.sw", pads: [["U4", "1"], ["L1", "2"], ["D2", "2"]]}, + {name: "reg_vgate.ic.fb", pads: [["U4", "3"], ["R5", "2"], ["R6", "1"]]}, {name: "conv.pwr_out", pads: [["L2", "2"], ["C10", "1"], ["C11", "1"], ["C12", "1"], ["J4", "2"], ["TP5", "1"], ["R38", "1"]]}, - {name: "conv.pwms.0L", pads: [["U3", "3"], ["R30", "2"], ["C61", "1"]]}, - {name: "conv.pwms.0H", pads: [["U3", "2"], ["R31", "2"], ["C62", "1"]]}, - {name: "conv.pwms.1L", pads: [["U5", "3"], ["R32", "2"], ["C63", "1"]]}, - {name: "conv.pwms.1H", pads: [["U5", "2"], ["R33", "2"], ["C64", "1"]]}, - {name: "conv.pwms.2L", pads: [["U8", "3"], ["R34", "2"], ["C65", "1"]]}, - {name: "conv.pwms.2H", pads: [["U8", "2"], ["R35", "2"], ["C66", "1"]]}, - {name: "conv.power_path.switch", pads: [["L2", "1"], ["U9", "6"], ["C31", "2"], ["Q5", "1"], ["Q5", "2"], ["Q5", "3"], ["Q6", "5"], ["Q6", "6"], ["Q6", "7"], ["Q6", "8"], ["C34", "2"]]}, - {name: "conv.sw[0].low_out", pads: [["Q2", "5"], ["Q2", "6"], ["Q2", "7"], ["Q2", "8"], ["U4", "2"], ["C16", "2"], ["C17", "2"], ["U5", "5"], ["C19", "2"], ["U6", "4"], ["C20", "2"], ["C22", "2"], ["C23", "2"], ["Q4", "1"], ["Q4", "2"], ["Q4", "3"], ["C25", "2"]]}, - {name: "conv.sw[0].high_out", pads: [["U3", "6"], ["C14", "2"], ["Q1", "1"], ["Q1", "2"], ["Q1", "3"], ["C15", "2"], ["C22", "1"], ["C23", "1"], ["Q3", "5"], ["Q3", "6"], ["Q3", "7"], ["Q3", "8"]]}, - {name: "conv.sw[0].high_boot_in", pads: [["D3", "2"], ["U6", "8"], ["C21", "1"], ["C24", "1"], ["D5", "1"]]}, - {name: "conv.sw[0].driver.low_out", pads: [["U3", "5"], ["R8", "1"]]}, - {name: "conv.sw[0].driver.high_pwr", pads: [["U3", "8"], ["C14", "1"], ["C15", "1"], ["D3", "1"]]}, - {name: "conv.sw[0].driver.high_out", pads: [["U3", "7"], ["R7", "1"]]}, + {name: "conv.pwms.0L", pads: [["U5", "3"], ["R30", "2"], ["C61", "1"]]}, + {name: "conv.pwms.0H", pads: [["U5", "2"], ["R31", "2"], ["C62", "1"]]}, + {name: "conv.pwms.1L", pads: [["U7", "3"], ["R32", "2"], ["C63", "1"]]}, + {name: "conv.pwms.1H", pads: [["U7", "2"], ["R33", "2"], ["C64", "1"]]}, + {name: "conv.pwms.2L", pads: [["U10", "3"], ["R34", "2"], ["C65", "1"]]}, + {name: "conv.pwms.2H", pads: [["U10", "2"], ["R35", "2"], ["C66", "1"]]}, + {name: "conv.power_path.switch", pads: [["L2", "1"], ["U11", "6"], ["C31", "2"], ["Q5", "1"], ["Q5", "2"], ["Q5", "3"], ["Q6", "5"], ["Q6", "6"], ["Q6", "7"], ["Q6", "8"], ["C34", "2"]]}, + {name: "conv.sw[0].low_out", pads: [["Q2", "5"], ["Q2", "6"], ["Q2", "7"], ["Q2", "8"], ["U6", "2"], ["C16", "2"], ["C17", "2"], ["U7", "5"], ["C19", "2"], ["U8", "4"], ["C20", "2"], ["C22", "2"], ["C23", "2"], ["Q4", "1"], ["Q4", "2"], ["Q4", "3"], ["C25", "2"]]}, + {name: "conv.sw[0].high_out", pads: [["U5", "6"], ["C14", "2"], ["Q1", "1"], ["Q1", "2"], ["Q1", "3"], ["C15", "2"], ["C22", "1"], ["C23", "1"], ["Q3", "5"], ["Q3", "6"], ["Q3", "7"], ["Q3", "8"]]}, + {name: "conv.sw[0].high_boot_in", pads: [["D3", "2"], ["U8", "8"], ["C21", "1"], ["C24", "1"], ["D5", "1"]]}, + {name: "conv.sw[0].driver.low_out", pads: [["U5", "5"], ["R8", "1"]]}, + {name: "conv.sw[0].driver.high_pwr", pads: [["U5", "8"], ["C14", "1"], ["C15", "1"], ["D3", "1"]]}, + {name: "conv.sw[0].driver.high_out", pads: [["U5", "7"], ["R7", "1"]]}, {name: "conv.sw[0].high_gate_res.b", pads: [["R7", "2"], ["Q1", "4"]]}, {name: "conv.sw[0].low_gate_res.b", pads: [["R8", "2"], ["Q2", "4"]]}, - {name: "conv.sw[1].low_out", pads: [["Q4", "5"], ["Q4", "6"], ["Q4", "7"], ["Q4", "8"], ["U7", "2"], ["C26", "2"], ["C27", "2"], ["U8", "5"], ["C29", "2"], ["U9", "4"], ["C30", "2"], ["C32", "2"], ["C33", "2"], ["Q6", "1"], ["Q6", "2"], ["Q6", "3"], ["C35", "2"]]}, - {name: "conv.sw[1].low_boot_out", pads: [["U4", "1"], ["U4", "3"], ["C16", "1"], ["U6", "1"], ["C20", "1"], ["D4", "1"], ["C25", "1"], ["D6", "2"]]}, - {name: "conv.sw[1].high_out", pads: [["U6", "6"], ["C21", "2"], ["Q3", "1"], ["Q3", "2"], ["Q3", "3"], ["C24", "2"], ["C32", "1"], ["C33", "1"], ["Q5", "5"], ["Q5", "6"], ["Q5", "7"], ["Q5", "8"]]}, - {name: "conv.sw[1].high_boot_in", pads: [["D5", "2"], ["U9", "8"], ["C31", "1"], ["C34", "1"], ["D7", "1"]]}, - {name: "conv.sw[1].ldo.pwr_out", pads: [["U4", "5"], ["C17", "1"], ["U5", "8"], ["C19", "1"]]}, - {name: "conv.sw[1].driver.low_in", pads: [["U5", "6"], ["U6", "3"]]}, - {name: "conv.sw[1].driver.high_in", pads: [["U5", "7"], ["U6", "2"]]}, - {name: "conv.sw[1].driver.low_out", pads: [["U6", "5"], ["R10", "1"]]}, - {name: "conv.sw[1].driver.high_out", pads: [["U6", "7"], ["R9", "1"]]}, + {name: "conv.sw[1].low_out", pads: [["Q4", "5"], ["Q4", "6"], ["Q4", "7"], ["Q4", "8"], ["U9", "2"], ["C26", "2"], ["C27", "2"], ["U10", "5"], ["C29", "2"], ["U11", "4"], ["C30", "2"], ["C32", "2"], ["C33", "2"], ["Q6", "1"], ["Q6", "2"], ["Q6", "3"], ["C35", "2"]]}, + {name: "conv.sw[1].low_boot_out", pads: [["U6", "1"], ["U6", "3"], ["C16", "1"], ["U8", "1"], ["C20", "1"], ["D4", "1"], ["C25", "1"], ["D6", "2"]]}, + {name: "conv.sw[1].high_out", pads: [["U8", "6"], ["C21", "2"], ["Q3", "1"], ["Q3", "2"], ["Q3", "3"], ["C24", "2"], ["C32", "1"], ["C33", "1"], ["Q5", "5"], ["Q5", "6"], ["Q5", "7"], ["Q5", "8"]]}, + {name: "conv.sw[1].high_boot_in", pads: [["D5", "2"], ["U11", "8"], ["C31", "1"], ["C34", "1"], ["D7", "1"]]}, + {name: "conv.sw[1].ldo.pwr_out", pads: [["U6", "5"], ["C17", "1"], ["U7", "8"], ["C19", "1"]]}, + {name: "conv.sw[1].driver.low_in", pads: [["U7", "6"], ["U8", "3"]]}, + {name: "conv.sw[1].driver.high_in", pads: [["U7", "7"], ["U8", "2"]]}, + {name: "conv.sw[1].driver.low_out", pads: [["U8", "5"], ["R10", "1"]]}, + {name: "conv.sw[1].driver.high_out", pads: [["U8", "7"], ["R9", "1"]]}, {name: "conv.sw[1].high_gate_res.b", pads: [["R9", "2"], ["Q3", "4"]]}, {name: "conv.sw[1].low_gate_res.b", pads: [["R10", "2"], ["Q4", "4"]]}, - {name: "conv.sw[2].low_boot_out", pads: [["U7", "1"], ["U7", "3"], ["C26", "1"], ["U9", "1"], ["C30", "1"], ["D6", "1"], ["C35", "1"], ["D7", "2"]]}, - {name: "conv.sw[2].ldo.pwr_out", pads: [["U7", "5"], ["C27", "1"], ["U8", "8"], ["C29", "1"]]}, - {name: "conv.sw[2].driver.low_in", pads: [["U8", "6"], ["U9", "3"]]}, - {name: "conv.sw[2].driver.high_in", pads: [["U8", "7"], ["U9", "2"]]}, - {name: "conv.sw[2].driver.low_out", pads: [["U9", "5"], ["R12", "1"]]}, - {name: "conv.sw[2].driver.high_out", pads: [["U9", "7"], ["R11", "1"]]}, + {name: "conv.sw[2].low_boot_out", pads: [["U9", "1"], ["U9", "3"], ["C26", "1"], ["U11", "1"], ["C30", "1"], ["D6", "1"], ["C35", "1"], ["D7", "2"]]}, + {name: "conv.sw[2].ldo.pwr_out", pads: [["U9", "5"], ["C27", "1"], ["U10", "8"], ["C29", "1"]]}, + {name: "conv.sw[2].driver.low_in", pads: [["U10", "6"], ["U11", "3"]]}, + {name: "conv.sw[2].driver.high_in", pads: [["U10", "7"], ["U11", "2"]]}, + {name: "conv.sw[2].driver.low_out", pads: [["U11", "5"], ["R12", "1"]]}, + {name: "conv.sw[2].driver.high_out", pads: [["U11", "7"], ["R11", "1"]]}, {name: "conv.sw[2].high_gate_res.b", pads: [["R11", "2"], ["Q5", "4"]]}, {name: "conv.sw[2].low_gate_res.b", pads: [["R12", "2"], ["Q6", "4"]]}, - {name: "fpga.gpio.led_0", pads: [["U10", "21"], ["D9", "2"]]}, - {name: "fpga.gpio.led_1", pads: [["U10", "20"], ["D10", "2"]]}, - {name: "fpga.gpio.led_2", pads: [["U10", "19"], ["D11", "2"]]}, - {name: "fpga.gpio.led_3", pads: [["U10", "18"], ["D12", "2"]]}, - {name: "fpga.gpio.pwm_0L", pads: [["U10", "47"], ["TP11", "1"], ["R30", "1"]]}, - {name: "fpga.gpio.pwm_0H", pads: [["U10", "48"], ["TP12", "1"], ["R31", "1"]]}, - {name: "fpga.gpio.pwm_1L", pads: [["U10", "45"], ["TP13", "1"], ["R32", "1"]]}, - {name: "fpga.gpio.pwm_1H", pads: [["U10", "46"], ["TP14", "1"], ["R33", "1"]]}, - {name: "fpga.gpio.pwm_2L", pads: [["U10", "43"], ["TP15", "1"], ["R34", "1"]]}, - {name: "fpga.gpio.pwm_2H", pads: [["U10", "44"], ["TP16", "1"], ["R35", "1"]]}, - {name: "fpga.cdone", pads: [["U10", "7"], ["D8", "2"]]}, - {name: "fpga.ic.vcc", pads: [["U10", "30"], ["U10", "5"], ["U11", "5"], ["C37", "1"], ["R15", "1"], ["C43", "1"]]}, - {name: "fpga.ic.vcc_pll", pads: [["U10", "29"], ["R15", "2"], ["C44", "1"], ["C45", "1"]]}, - {name: "fpga.ic.creset_b", pads: [["U10", "8"], ["R13", "2"], ["J5", "10"]]}, - {name: "fpga.ic.spi_config.sck", pads: [["U10", "15"], ["U12", "6"], ["J5", "4"]]}, - {name: "fpga.ic.spi_config.mosi", pads: [["U10", "14"], ["U12", "5"], ["J5", "6"]]}, - {name: "fpga.ic.spi_config.miso", pads: [["U10", "17"], ["U12", "2"], ["J5", "8"]]}, - {name: "fpga.ic.spi_config_cs", pads: [["U10", "16"], ["J5", "2"], ["JP1", "1"]]}, - {name: "fpga.mem.cs", pads: [["U12", "1"], ["JP1", "2"], ["R14", "2"]]}, + {name: "fpga.gpio.led_0", pads: [["U12", "21"], ["D9", "2"]]}, + {name: "fpga.gpio.led_1", pads: [["U12", "20"], ["D10", "2"]]}, + {name: "fpga.gpio.led_2", pads: [["U12", "19"], ["D11", "2"]]}, + {name: "fpga.gpio.led_3", pads: [["U12", "18"], ["D12", "2"]]}, + {name: "fpga.gpio.pwm_0L", pads: [["U12", "47"], ["TP11", "1"], ["R30", "1"]]}, + {name: "fpga.gpio.pwm_0H", pads: [["U12", "48"], ["TP12", "1"], ["R31", "1"]]}, + {name: "fpga.gpio.pwm_1L", pads: [["U12", "45"], ["TP13", "1"], ["R32", "1"]]}, + {name: "fpga.gpio.pwm_1H", pads: [["U12", "46"], ["TP14", "1"], ["R33", "1"]]}, + {name: "fpga.gpio.pwm_2L", pads: [["U12", "43"], ["TP15", "1"], ["R34", "1"]]}, + {name: "fpga.gpio.pwm_2H", pads: [["U12", "44"], ["TP16", "1"], ["R35", "1"]]}, + {name: "fpga.cdone", pads: [["U12", "7"], ["D8", "2"]]}, + {name: "fpga.ic.vcc", pads: [["U12", "30"], ["U12", "5"], ["U13", "5"], ["C37", "1"], ["R15", "1"], ["C43", "1"]]}, + {name: "fpga.ic.vcc_pll", pads: [["U12", "29"], ["R15", "2"], ["C44", "1"], ["C45", "1"]]}, + {name: "fpga.ic.creset_b", pads: [["U12", "8"], ["R13", "2"], ["J5", "10"]]}, + {name: "fpga.ic.spi_config.sck", pads: [["U12", "15"], ["U14", "6"], ["J5", "4"]]}, + {name: "fpga.ic.spi_config.mosi", pads: [["U12", "14"], ["U14", "5"], ["J5", "6"]]}, + {name: "fpga.ic.spi_config.miso", pads: [["U12", "17"], ["U14", "2"], ["J5", "8"]]}, + {name: "fpga.ic.spi_config_cs", pads: [["U12", "16"], ["J5", "2"], ["JP1", "1"]]}, + {name: "fpga.mem.cs", pads: [["U14", "1"], ["JP1", "2"], ["R14", "2"]]}, {name: "cdone.package.k", pads: [["D8", "1"], ["R16", "1"]]}, - {name: "fpga_osc.out", pads: [["U10", "37"], ["X1", "3"]]}, - {name: "fpga_sw.out", pads: [["U10", "32"], ["SW1", "1"]]}, + {name: "fpga_osc.out", pads: [["U12", "37"], ["X1", "3"]]}, + {name: "fpga_sw.out", pads: [["U12", "32"], ["SW1", "1"]]}, {name: "fpga_led.led[0].package.k", pads: [["D9", "1"], ["R17", "1"]]}, {name: "fpga_led.led[1].package.k", pads: [["D10", "1"], ["R18", "1"]]}, {name: "fpga_led.led[2].package.k", pads: [["D11", "1"], ["R19", "1"]]}, {name: "fpga_led.led[3].package.k", pads: [["D12", "1"], ["R20", "1"]]}, - {name: "usb_fpga_bitbang.dp", pads: [["U10", "26"], ["R22", "2"]]}, - {name: "usb_fpga_bitbang.dm", pads: [["U10", "25"], ["R23", "2"]]}, - {name: "usb_fpga_bitbang.dp_pull", pads: [["U10", "27"], ["R21", "1"]]}, - {name: "mcu.gpio.led_0", pads: [["U14", "34"], ["D13", "2"]]}, - {name: "mcu.gpio.led_1", pads: [["U14", "35"], ["D14", "2"]]}, - {name: "mcu.gpio.led_2", pads: [["U14", "36"], ["D15", "2"]]}, - {name: "mcu.gpio.led_3", pads: [["U14", "37"], ["D16", "2"]]}, - {name: "mcu.swd_node.swdio", pads: [["U14", "25"], ["J6", "2"]]}, - {name: "mcu.swd_node.swclk", pads: [["U14", "24"], ["J6", "4"]]}, - {name: "mcu.reset_node", pads: [["U14", "26"], ["J6", "10"]]}, - {name: "mcu.xtal_node.xi", pads: [["U14", "20"], ["X2", "1"], ["C59", "1"]]}, - {name: "mcu.xtal_node.xo", pads: [["U14", "21"], ["X2", "3"], ["C60", "1"]]}, - {name: "mcu.ic.dvdd", pads: [["U14", "23"], ["U14", "45"], ["U14", "50"], ["C56", "1"], ["C57", "1"], ["C58", "1"]]}, - {name: "mcu.ic.qspi.sck", pads: [["U14", "52"], ["U15", "6"]]}, - {name: "mcu.ic.qspi.mosi", pads: [["U14", "53"], ["U15", "5"]]}, - {name: "mcu.ic.qspi.miso", pads: [["U14", "55"], ["U15", "2"]]}, - {name: "mcu.ic.qspi_cs", pads: [["U14", "56"], ["U15", "1"]]}, - {name: "mcu.ic.qspi_sd2", pads: [["U14", "54"], ["U15", "3"]]}, - {name: "mcu.ic.qspi_sd3", pads: [["U14", "51"], ["U15", "7"]]}, - {name: "mcu.swd.tdi", pads: [["U14", "3"], ["J6", "8"]]}, - {name: "mcu.swd.swo", pads: [["U14", "2"], ["J6", "6"]]}, - {name: "mcu.usb_res.interior.dp", pads: [["U14", "47"], ["R24", "2"]]}, - {name: "mcu.usb_res.interior.dm", pads: [["U14", "46"], ["R25", "2"]]}, - {name: "mcu_sw.out", pads: [["U14", "29"], ["SW2", "1"]]}, + {name: "usb_fpga_bitbang.dp", pads: [["U12", "26"], ["R22", "2"]]}, + {name: "usb_fpga_bitbang.dm", pads: [["U12", "25"], ["R23", "2"]]}, + {name: "usb_fpga_bitbang.dp_pull", pads: [["U12", "27"], ["R21", "1"]]}, + {name: "mcu.gpio.led_0", pads: [["U16", "34"], ["D13", "2"]]}, + {name: "mcu.gpio.led_1", pads: [["U16", "35"], ["D14", "2"]]}, + {name: "mcu.gpio.led_2", pads: [["U16", "36"], ["D15", "2"]]}, + {name: "mcu.gpio.led_3", pads: [["U16", "37"], ["D16", "2"]]}, + {name: "mcu.swd_node.swdio", pads: [["U16", "25"], ["J6", "2"]]}, + {name: "mcu.swd_node.swclk", pads: [["U16", "24"], ["J6", "4"]]}, + {name: "mcu.reset_node", pads: [["U16", "26"], ["J6", "10"]]}, + {name: "mcu.xtal_node.xi", pads: [["U16", "20"], ["X2", "1"], ["C59", "1"]]}, + {name: "mcu.xtal_node.xo", pads: [["U16", "21"], ["X2", "3"], ["C60", "1"]]}, + {name: "mcu.ic.dvdd", pads: [["U16", "23"], ["U16", "45"], ["U16", "50"], ["C56", "1"], ["C57", "1"], ["C58", "1"]]}, + {name: "mcu.ic.qspi.sck", pads: [["U16", "52"], ["U17", "6"]]}, + {name: "mcu.ic.qspi.mosi", pads: [["U16", "53"], ["U17", "5"]]}, + {name: "mcu.ic.qspi.miso", pads: [["U16", "55"], ["U17", "2"]]}, + {name: "mcu.ic.qspi_cs", pads: [["U16", "56"], ["U17", "1"]]}, + {name: "mcu.ic.qspi_sd2", pads: [["U16", "54"], ["U17", "3"]]}, + {name: "mcu.ic.qspi_sd3", pads: [["U16", "51"], ["U17", "7"]]}, + {name: "mcu.swd.tdi", pads: [["U16", "3"], ["J6", "8"]]}, + {name: "mcu.swd.swo", pads: [["U16", "2"], ["J6", "6"]]}, + {name: "mcu.usb_res.interior.dp", pads: [["U16", "47"], ["R24", "2"]]}, + {name: "mcu.usb_res.interior.dm", pads: [["U16", "46"], ["R25", "2"]]}, + {name: "mcu_sw.out", pads: [["U16", "29"], ["SW2", "1"]]}, {name: "mcu_leds.led[0].package.k", pads: [["D13", "1"], ["R26", "1"]]}, {name: "mcu_leds.led[1].package.k", pads: [["D14", "1"], ["R27", "1"]]}, {name: "mcu_leds.led[2].package.k", pads: [["D15", "1"], ["R28", "1"]]}, {name: "mcu_leds.led[3].package.k", pads: [["D16", "1"], ["R29", "1"]]}, - {name: "tp_fpga[0].io", pads: [["U10", "2"], ["U14", "14"], ["TP7", "1"]]}, - {name: "tp_fpga[1].io", pads: [["U10", "3"], ["U14", "13"], ["TP8", "1"]]}, - {name: "tp_fpga[2].io", pads: [["U10", "4"], ["U14", "12"], ["TP9", "1"]]}, - {name: "tp_fpga[3].io", pads: [["U10", "6"], ["U14", "11"], ["TP10", "1"]]}, - {name: "conv_in_sense.output", pads: [["U14", "38"], ["R36", "2"], ["R37", "1"]]}, - {name: "conv_out_sense.output", pads: [["U14", "39"], ["R38", "2"], ["R39", "1"]]} + {name: "tp_fpga[0].io", pads: [["U12", "2"], ["U16", "14"], ["TP7", "1"]]}, + {name: "tp_fpga[1].io", pads: [["U12", "3"], ["U16", "13"], ["TP8", "1"]]}, + {name: "tp_fpga[2].io", pads: [["U12", "4"], ["U16", "12"], ["TP9", "1"]]}, + {name: "tp_fpga[3].io", pads: [["U12", "6"], ["U16", "11"], ["TP10", "1"]]}, + {name: "conv_in_sense.output", pads: [["U16", "38"], ["R36", "2"], ["R37", "1"]]}, + {name: "conv_out_sense.output", pads: [["U16", "39"], ["R38", "2"], ["R39", "1"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(3.7659448818897645, 2.9748031496062994); +const limit1 = pt(3.7045275590551183, 3.2086614173228347); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/IotDisplay/IotDisplay.net.ref b/examples/IotDisplay/IotDisplay.net.ref index 3a66acae2..817db1541 100644 --- a/examples/IotDisplay/IotDisplay.net.ref +++ b/examples/IotDisplay/IotDisplay.net.ref @@ -37,17 +37,29 @@ (sheetpath (names "/jlc_th/") (tstamps "/08970275/")) (tstamps "02620110")) (comp (ref "J1") - (value "usb") + (value "usb.conn") (footprint "Connector_USB:USB_C_Receptacle_XKB_U262-16XN-4BVC11") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) (property (name "edg_path") (value "usb.conn")) - (property (name "edg_short_path") (value "usb")) + (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "02aa014b")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "042701af")) +(comp (ref "U1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "U1")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "J2") (value "batt") (footprint "Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal") @@ -96,14 +108,14 @@ (property (name "edg_value") (value "30V 4A 44mΩ@10V,4.3A 1.4W 1.3V@250μA P Channel SOT-23-3L MOSFETs ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "12e103d2")) -(comp (ref "U1") +(comp (ref "U2") (value "reg_3v3.ic") (footprint "Package_TO_SOT_SMD:SOT-23-6") (property (name "Sheetname") (value "reg_3v3")) (property (name "Sheetfile") (value "edg.parts.power.converter.TexasInstruments_Buck.Tps54202h")) (property (name "edg_path") (value "reg_3v3.ic")) (property (name "edg_short_path") (value "reg_3v3.ic")) - (property (name "edg_refdes") (value "U1")) + (property (name "edg_refdes") (value "U2")) (property (name "edg_part") (value "TPS54202H (Texas Instruments)")) (property (name "edg_value") (value "TPS54202H")) (sheetpath (names "/reg_3v3/") (tstamps "/0aba027a/")) @@ -276,14 +288,14 @@ (property (name "edg_value") (value "5.1mm switch")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) (tstamps "042b01b5")) -(comp (ref "U2") +(comp (ref "U3") (value "mcu.ic") (footprint "RF_Module:ESP32-S3-WROOM-1") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Esp32s3.Esp32s3_Wroom_1")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "U2")) + (property (name "edg_refdes") (value "U3")) (property (name "edg_part") (value "ESP32-S3-WROOM-1-N16R8 (Espressif Systems)")) (property (name "edg_value") (value "ESP32-S3-WROOM-1-N16R8")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -336,18 +348,6 @@ (property (name "edg_value") (value "50V 1uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/mcu/en_pull/") (tstamps "/02850146/0b9c02f0/")) (tstamps "00640064")) -(comp (ref "U3") - (value "usb_esd") - (footprint "Package_TO_SOT_SMD:SOT-23") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) - (property (name "edg_path") (value "usb_esd")) - (property (name "edg_short_path") (value "usb_esd")) - (property (name "edg_refdes") (value "U3")) - (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) - (property (name "edg_value") (value "PESD5V0X1BT")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "0bcb02e6")) (comp (ref "D1") (value "ledr.package") (footprint "LED_SMD:LED_0603_1608Metric") @@ -907,10 +907,11 @@ (node (ref J1) (pin B1)) (node (ref J1) (pin B12)) (node (ref J1) (pin S1)) + (node (ref U1) (pin 3)) (node (ref J2) (pin 1)) (node (ref TP2) (pin 1)) (node (ref Q1) (pin 1)) - (node (ref U1) (pin 1)) + (node (ref U2) (pin 1)) (node (ref R2) (pin 2)) (node (ref C1) (pin 2)) (node (ref C3) (pin 2)) @@ -918,13 +919,12 @@ (node (ref Q2) (pin 2)) (node (ref J3) (pin 5)) (node (ref SW1) (pin 2)) - (node (ref U2) (pin 1)) - (node (ref U2) (pin 40)) - (node (ref U2) (pin 41)) + (node (ref U3) (pin 1)) + (node (ref U3) (pin 40)) + (node (ref U3) (pin 41)) (node (ref C5) (pin 2)) (node (ref C6) (pin 2)) (node (ref C7) (pin 2)) - (node (ref U3) (pin 3)) (node (ref R6) (pin 2)) (node (ref R7) (pin 2)) (node (ref R8) (pin 2)) @@ -951,7 +951,7 @@ (node (ref C19) (pin 2))) (net (code 2) (name "vbat") (node (ref Q1) (pin 2)) - (node (ref U1) (pin 3)) + (node (ref U2) (pin 3)) (node (ref C1) (pin 1)) (node (ref C3) (pin 1)) (node (ref R3) (pin 1)) @@ -963,27 +963,27 @@ (node (ref C4) (pin 1)) (node (ref TP3) (pin 1)) (node (ref J3) (pin 1)) - (node (ref U2) (pin 2)) + (node (ref U3) (pin 2)) (node (ref C5) (pin 1)) (node (ref C6) (pin 1)) (node (ref R5) (pin 1)) (node (ref Q4) (pin 2)) (node (ref Q5) (pin 2))) -(net (code 4) (name "usb_chain_0.d_P") - (node (ref J1) (pin A6)) - (node (ref J1) (pin B6)) - (node (ref U2) (pin 14)) - (node (ref U3) (pin 2))) -(net (code 5) (name "usb_chain_0.d_N") - (node (ref J1) (pin A7)) - (node (ref J1) (pin B7)) - (node (ref U2) (pin 13)) - (node (ref U3) (pin 1))) -(net (code 6) (name "usb.pwr") +(net (code 4) (name "usb.pwr") (node (ref J1) (pin A4)) (node (ref J1) (pin A9)) (node (ref J1) (pin B4)) (node (ref J1) (pin B9))) +(net (code 5) (name "usb.usb.dp") + (node (ref J1) (pin A6)) + (node (ref J1) (pin B6)) + (node (ref U1) (pin 2)) + (node (ref U3) (pin 14))) +(net (code 6) (name "usb.usb.dm") + (node (ref J1) (pin A7)) + (node (ref J1) (pin B7)) + (node (ref U1) (pin 1)) + (node (ref U3) (pin 13))) (net (code 7) (name "usb.conn.cc.cc1") (node (ref J1) (pin A5))) (net (code 8) (name "usb.conn.cc.cc2") @@ -993,22 +993,22 @@ (node (ref TP1) (pin 1)) (node (ref Q1) (pin 3))) (net (code 10) (name "reg_3v3.ic.sw") - (node (ref U1) (pin 2)) + (node (ref U2) (pin 2)) (node (ref C2) (pin 2)) (node (ref L1) (pin 1))) (net (code 11) (name "reg_3v3.ic.fb") - (node (ref U1) (pin 4)) + (node (ref U2) (pin 4)) (node (ref R1) (pin 2)) (node (ref R2) (pin 1))) (net (code 12) (name "reg_3v3.ic.boot") - (node (ref U1) (pin 6)) + (node (ref U2) (pin 6)) (node (ref C2) (pin 1))) (net (code 13) (name "reg_3v3.ic.en") - (node (ref U1) (pin 5)) + (node (ref U2) (pin 5)) (node (ref R3) (pin 2))) (net (code 14) (name "vbat_sense_gate.control") (node (ref Q2) (pin 1)) - (node (ref U2) (pin 6))) + (node (ref U3) (pin 6))) (net (code 15) (name "vbat_sense_gate.output") (node (ref Q3) (pin 3)) (node (ref R9) (pin 1))) @@ -1018,49 +1018,49 @@ (node (ref Q3) (pin 1))) (net (code 17) (name "mcu.program_uart_node.a_tx") (node (ref J3) (pin 4)) - (node (ref U2) (pin 36))) + (node (ref U3) (pin 36))) (net (code 18) (name "mcu.program_uart_node.b_tx") (node (ref J3) (pin 3)) - (node (ref U2) (pin 37))) + (node (ref U3) (pin 37))) (net (code 19) (name "mcu.program_en_node") (node (ref J3) (pin 6)) - (node (ref U2) (pin 3)) + (node (ref U3) (pin 3)) (node (ref R5) (pin 2)) (node (ref C7) (pin 1))) (net (code 20) (name "mcu.program_boot_node") (node (ref J3) (pin 2)) (node (ref SW1) (pin 1)) - (node (ref U2) (pin 27))) + (node (ref U3) (pin 27))) (net (code 21) (name "ledr.signal") - (node (ref U2) (pin 39)) + (node (ref U3) (pin 39)) (node (ref D1) (pin 2))) (net (code 22) (name "ledr.package.k") (node (ref D1) (pin 1)) (node (ref R6) (pin 1))) (net (code 23) (name "ledg.signal") - (node (ref U2) (pin 38)) + (node (ref U3) (pin 38)) (node (ref D2) (pin 2))) (net (code 24) (name "ledg.package.k") (node (ref D2) (pin 1)) (node (ref R7) (pin 1))) (net (code 25) (name "ledb.signal") - (node (ref U2) (pin 4)) + (node (ref U3) (pin 4)) (node (ref D3) (pin 2))) (net (code 26) (name "ledb.package.k") (node (ref D3) (pin 1)) (node (ref R8) (pin 1))) (net (code 27) (name "sw.out") - (node (ref U2) (pin 5)) + (node (ref U3) (pin 5)) (node (ref SW2) (pin 1))) (net (code 28) (name "vbat_sense.output") - (node (ref U2) (pin 7)) + (node (ref U3) (pin 7)) (node (ref R9) (pin 2)) (node (ref R10) (pin 1))) (net (code 29) (name "touch_duck.pad") - (node (ref U2) (pin 21)) + (node (ref U3) (pin 21)) (node (ref U4) (pin 1))) (net (code 30) (name "touch_lemur.pad") - (node (ref U2) (pin 22)) + (node (ref U3) (pin 22)) (node (ref U5) (pin 1))) (net (code 31) (name "epd_gate.output") (node (ref Q4) (pin 3)) @@ -1070,7 +1070,7 @@ (node (ref L2) (pin 1)) (node (ref C15) (pin 1))) (net (code 32) (name "epd_gate.control") - (node (ref U2) (pin 10)) + (node (ref U3) (pin 10)) (node (ref Q4) (pin 1))) (net (code 33) (name "mem_gate.output") (node (ref Q5) (pin 3)) @@ -1080,32 +1080,32 @@ (node (ref U6) (pin 8)) (node (ref C19) (pin 1))) (net (code 34) (name "mem_gate.control") - (node (ref U2) (pin 23)) + (node (ref U3) (pin 23)) (node (ref Q5) (pin 1))) (net (code 35) (name "epd.reset") - (node (ref U2) (pin 8)) + (node (ref U3) (pin 8)) (node (ref J4) (pin 15)) (node (ref TP7) (pin 1))) (net (code 36) (name "epd.spi.sck") - (node (ref U2) (pin 33)) + (node (ref U3) (pin 33)) (node (ref J4) (pin 12)) (node (ref TP4) (pin 1))) (net (code 37) (name "epd.spi.mosi") - (node (ref U2) (pin 35)) + (node (ref U3) (pin 35)) (node (ref J4) (pin 11)) (node (ref TP5) (pin 1))) (net (code 38) (name "epd.spi.miso") (node (ref TP6) (pin 1))) (net (code 39) (name "epd.cs") - (node (ref U2) (pin 32)) + (node (ref U3) (pin 32)) (node (ref J4) (pin 13)) (node (ref TP9) (pin 1))) (net (code 40) (name "epd.dc") - (node (ref U2) (pin 31)) + (node (ref U3) (pin 31)) (node (ref J4) (pin 14)) (node (ref TP8) (pin 1))) (net (code 41) (name "epd.busy") - (node (ref U2) (pin 9)) + (node (ref U3) (pin 9)) (node (ref J4) (pin 16)) (node (ref TP10) (pin 1))) (net (code 42) (name "epd.device.vdd1v8") @@ -1152,25 +1152,25 @@ (node (ref D6) (pin 2)) (node (ref C16) (pin 2))) (net (code 54) (name "sd.spi.sck") - (node (ref U2) (pin 17)) + (node (ref U3) (pin 17)) (node (ref J5) (pin 5)) (node (ref U6) (pin 6)) (node (ref TP11) (pin 1))) (net (code 55) (name "sd.spi.mosi") - (node (ref U2) (pin 18)) + (node (ref U3) (pin 18)) (node (ref J5) (pin 3)) (node (ref U6) (pin 5)) (node (ref TP12) (pin 1))) (net (code 56) (name "sd.spi.miso") - (node (ref U2) (pin 15)) + (node (ref U3) (pin 15)) (node (ref J5) (pin 7)) (node (ref U6) (pin 2)) (node (ref TP13) (pin 1))) (net (code 57) (name "sd.cs") - (node (ref U2) (pin 19)) + (node (ref U3) (pin 19)) (node (ref J5) (pin 2)) (node (ref TP14) (pin 1))) (net (code 58) (name "flash.cs") - (node (ref U2) (pin 20)) + (node (ref U3) (pin 20)) (node (ref U6) (pin 1)))) ) \ No newline at end of file diff --git a/examples/IotDisplay/IotDisplay.svgpcb.js b/examples/IotDisplay/IotDisplay.svgpcb.js index c0a5bbff7..62a1be5ad 100644 --- a/examples/IotDisplay/IotDisplay.svgpcb.js +++ b/examples/IotDisplay/IotDisplay.svgpcb.js @@ -2,107 +2,112 @@ const board = new PCB(); // jlc_th.th1 const H1 = board.add(JlcToolingHole_1_152mm, { - translate: pt(3.002, 2.210), rotate: 0, + translate: pt(3.046, 2.360), rotate: 0, id: 'H1' }) // jlc_th.th2 const H2 = board.add(JlcToolingHole_1_152mm, { - translate: pt(3.041, 2.210), rotate: 0, + translate: pt(3.085, 2.360), rotate: 0, id: 'H2' }) // jlc_th.th3 const H3 = board.add(JlcToolingHole_1_152mm, { - translate: pt(3.002, 2.249), rotate: 0, + translate: pt(3.046, 2.399), rotate: 0, id: 'H3' }) // usb.conn const J1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(0.209, 1.905), rotate: 0, + translate: pt(3.328, 1.049), rotate: 0, id: 'J1' }) +// usb.esd +const U1 = board.add(SOT_23, { + translate: pt(3.194, 1.343), rotate: 0, + id: 'U1' +}) // batt.conn const J2 = board.add(JST_PH_S2B_PH_K_1x02_P2_00mm_Horizontal, { - translate: pt(0.633, 2.006), rotate: 0, + translate: pt(0.772, 2.006), rotate: 0, id: 'J2' }) // tp_pwr.tp const TP1 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(0.874, 2.247), rotate: 0, + translate: pt(1.109, 2.397), rotate: 0, id: 'TP1' }) // tp_gnd.tp const TP2 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.124, 2.247), rotate: 0, + translate: pt(1.359, 2.397), rotate: 0, id: 'TP2' }) // vbat_prot.fet const Q1 = board.add(SOT_23, { - translate: pt(0.076, 2.277), rotate: 0, + translate: pt(0.310, 2.427), rotate: 0, id: 'Q1' }) // reg_3v3.ic -const U1 = board.add(SOT_23_6, { - translate: pt(3.419, 0.952), rotate: 0, - id: 'U1' +const U2 = board.add(SOT_23_6, { + translate: pt(0.301, 1.807), rotate: 0, + id: 'U2' }) // reg_3v3.fb.div.top_res const R1 = board.add(R_0603_1608Metric, { - translate: pt(3.617, 1.131), rotate: 0, + translate: pt(0.499, 1.986), rotate: 0, id: 'R1' }) // reg_3v3.fb.div.bottom_res const R2 = board.add(R_0603_1608Metric, { - translate: pt(3.176, 1.261), rotate: 0, + translate: pt(0.058, 2.116), rotate: 0, id: 'R2' }) // reg_3v3.hf_in_cap.cap const C1 = board.add(C_0603_1608Metric, { - translate: pt(3.332, 1.261), rotate: 0, + translate: pt(0.214, 2.116), rotate: 0, id: 'C1' }) // reg_3v3.boot_cap.cap const C2 = board.add(C_0603_1608Metric, { - translate: pt(3.488, 1.261), rotate: 0, + translate: pt(0.370, 2.116), rotate: 0, id: 'C2' }) // reg_3v3.power_path.inductor const L1 = board.add(L_Sunlord_SWPA4030S, { - translate: pt(3.209, 0.974), rotate: 0, + translate: pt(0.091, 1.829), rotate: 0, id: 'L1' }) // reg_3v3.power_path.in_cap.cap const C3 = board.add(C_1206_3216Metric, { - translate: pt(3.209, 1.147), rotate: 0, + translate: pt(0.091, 2.003), rotate: 0, id: 'C3' }) // reg_3v3.power_path.out_cap.cap const C4 = board.add(C_1206_3216Metric, { - translate: pt(3.429, 1.147), rotate: 0, + translate: pt(0.311, 2.003), rotate: 0, id: 'C4' }) // reg_3v3.en_res.res const R3 = board.add(R_0603_1608Metric, { - translate: pt(3.176, 1.357), rotate: 0, + translate: pt(0.058, 2.213), rotate: 0, id: 'R3' }) // tp_3v3.tp const TP3 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.375, 2.247), rotate: 0, + translate: pt(1.609, 2.397), rotate: 0, id: 'TP3' }) // vbat_sense_gate.pre const Q2 = board.add(SOT_23, { - translate: pt(1.487, 1.807), rotate: 0, + translate: pt(1.625, 1.807), rotate: 0, id: 'Q2' }) // vbat_sense_gate.pull const R4 = board.add(R_0603_1608Metric, { - translate: pt(1.660, 1.942), rotate: 0, + translate: pt(1.798, 1.942), rotate: 0, id: 'R4' }) // vbat_sense_gate.drv const Q3 = board.add(SOT_23, { - translate: pt(1.487, 1.980), rotate: 0, + translate: pt(1.625, 1.980), rotate: 0, id: 'Q3' }) // mcu.prog.conn @@ -116,9 +121,9 @@ const SW1 = board.add(SW_SPST_SKQG_WithoutStem, { id: 'SW1' }) // mcu.ic -const U2 = board.add(ESP32_S3_WROOM_1, { +const U3 = board.add(ESP32_S3_WROOM_1, { translate: pt(0.945, 0.530), rotate: 0, - id: 'U2' + id: 'U3' }) // mcu.vcc_cap0.cap const C5 = board.add(C_1206_3216Metric, { @@ -140,74 +145,69 @@ const C7 = board.add(C_0603_1608Metric, { translate: pt(1.987, 0.796), rotate: 0, id: 'C7' }) -// usb_esd -const U3 = board.add(SOT_23, { - translate: pt(2.887, 2.277), rotate: 0, - id: 'U3' -}) // ledr.package const D1 = board.add(LED_0603_1608Metric, { - translate: pt(2.848, 1.769), rotate: 0, + translate: pt(2.987, 1.769), rotate: 0, id: 'D1' }) // ledr.res const R6 = board.add(R_0603_1608Metric, { - translate: pt(2.848, 1.866), rotate: 0, + translate: pt(2.987, 1.866), rotate: 0, id: 'R6' }) // ledg.package const D2 = board.add(LED_0603_1608Metric, { - translate: pt(3.083, 1.769), rotate: 0, + translate: pt(3.222, 1.769), rotate: 0, id: 'D2' }) // ledg.res const R7 = board.add(R_0603_1608Metric, { - translate: pt(3.083, 1.866), rotate: 0, + translate: pt(3.221, 1.866), rotate: 0, id: 'R7' }) // ledb.package const D3 = board.add(LED_0603_1608Metric, { - translate: pt(3.318, 1.769), rotate: 0, + translate: pt(3.456, 1.769), rotate: 0, id: 'D3' }) // ledb.res const R8 = board.add(R_0603_1608Metric, { - translate: pt(3.318, 1.866), rotate: 0, + translate: pt(3.456, 1.866), rotate: 0, id: 'R8' }) // sw.package const SW2 = board.add(SW_SPST_SKQG_WithoutStem, { - translate: pt(2.504, 1.852), rotate: 0, + translate: pt(2.643, 1.852), rotate: 0, id: 'SW2' }) // vbat_sense.div.top_res const R9 = board.add(R_0603_1608Metric, { - translate: pt(3.553, 1.769), rotate: 0, + translate: pt(0.058, 2.389), rotate: 0, id: 'R9' }) // vbat_sense.div.bottom_res const R10 = board.add(R_0603_1608Metric, { - translate: pt(3.553, 1.866), rotate: 0, + translate: pt(0.058, 2.485), rotate: 0, id: 'R10' }) // touch_duck const U4 = board.add(Symbol_DucklingSolid, { - translate: pt(3.159, 2.210), rotate: 0, + translate: pt(3.203, 2.360), rotate: 0, id: 'U4' }) // touch_lemur const U5 = board.add(Symbol_LemurSolid, { - translate: pt(3.198, 2.210), rotate: 0, + translate: pt(3.243, 2.360), rotate: 0, id: 'U5' }) // epd_gate.drv const Q4 = board.add(SOT_23, { - translate: pt(0.345, 2.277), rotate: 0, + translate: pt(0.580, 2.427), rotate: 0, id: 'Q4' }) // mem_gate.drv const Q5 = board.add(SOT_23, { - translate: pt(0.614, 2.277), rotate: 0, + translate: pt(0.849, 2.427), rotate: 0, id: 'Q5' }) // epd.device.conn.conn @@ -307,37 +307,37 @@ const R12 = board.add(R_0603_1608Metric, { }) // tp_epd.tp_sck.tp const TP4 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.902, 1.778), rotate: 0, + translate: pt(2.041, 1.778), rotate: 0, id: 'TP4' }) // tp_epd.tp_mosi.tp const TP5 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.902, 1.892), rotate: 0, + translate: pt(2.041, 1.892), rotate: 0, id: 'TP5' }) // tp_epd.tp_miso.tp const TP6 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.902, 2.006), rotate: 0, + translate: pt(2.041, 2.006), rotate: 0, id: 'TP6' }) // tp_erst.tp const TP7 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.625, 2.247), rotate: 0, + translate: pt(1.860, 2.397), rotate: 0, id: 'TP7' }) // tp_dc.tp const TP8 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(1.876, 2.247), rotate: 0, + translate: pt(2.110, 2.397), rotate: 0, id: 'TP8' }) // tp_epd_cs.tp const TP9 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.126, 2.247), rotate: 0, + translate: pt(2.361, 2.397), rotate: 0, id: 'TP9' }) // tp_busy.tp const TP10 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.376, 2.247), rotate: 0, + translate: pt(2.611, 2.397), rotate: 0, id: 'TP10' }) // sd @@ -347,77 +347,77 @@ const J5 = board.add(microSD_HC_Molex_104031_0811, { }) // flash.ic const U6 = board.add(SOIC_8_5_23x5_23mm_P1_27mm, { - translate: pt(1.110, 1.853), rotate: 0, + translate: pt(1.248, 1.853), rotate: 0, id: 'U6' }) // flash.vcc_cap.cap const C19 = board.add(C_0603_1608Metric, { - translate: pt(0.985, 2.033), rotate: 0, + translate: pt(1.124, 2.033), rotate: 0, id: 'C19' }) // tp_sd.tp_sck.tp const TP11 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.153, 1.778), rotate: 0, + translate: pt(2.291, 1.778), rotate: 0, id: 'TP11' }) // tp_sd.tp_mosi.tp const TP12 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.153, 1.892), rotate: 0, + translate: pt(2.291, 1.892), rotate: 0, id: 'TP12' }) // tp_sd.tp_miso.tp const TP13 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.153, 2.006), rotate: 0, + translate: pt(2.291, 2.006), rotate: 0, id: 'TP13' }) // tp_sd_cs.tp const TP14 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.627, 2.247), rotate: 0, + translate: pt(2.861, 2.397), rotate: 0, id: 'TP14' }) board.setNetlist([ - {name: "gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["J2", "1"], ["TP2", "1"], ["Q1", "1"], ["U1", "1"], ["R2", "2"], ["C1", "2"], ["C3", "2"], ["C4", "2"], ["Q2", "2"], ["J3", "5"], ["SW1", "2"], ["U2", "1"], ["U2", "40"], ["U2", "41"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["U3", "3"], ["R6", "2"], ["R7", "2"], ["R8", "2"], ["SW2", "2"], ["R10", "2"], ["J4", "17"], ["J4", "8"], ["C8", "2"], ["C9", "2"], ["C10", "2"], ["C11", "2"], ["C12", "2"], ["C13", "2"], ["C14", "2"], ["R11", "2"], ["C15", "2"], ["D6", "1"], ["C17", "2"], ["C18", "2"], ["R12", "1"], ["J5", "11"], ["J5", "6"], ["U6", "4"], ["C19", "2"]]}, - {name: "vbat", pads: [["Q1", "2"], ["U1", "3"], ["C1", "1"], ["C3", "1"], ["R3", "1"], ["R4", "1"], ["Q3", "2"]]}, - {name: "v3v3", pads: [["R1", "1"], ["L1", "2"], ["C4", "1"], ["TP3", "1"], ["J3", "1"], ["U2", "2"], ["C5", "1"], ["C6", "1"], ["R5", "1"], ["Q4", "2"], ["Q5", "2"]]}, - {name: "usb_chain_0.d_P", pads: [["J1", "A6"], ["J1", "B6"], ["U2", "14"], ["U3", "2"]]}, - {name: "usb_chain_0.d_N", pads: [["J1", "A7"], ["J1", "B7"], ["U2", "13"], ["U3", "1"]]}, + {name: "gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["U1", "3"], ["J2", "1"], ["TP2", "1"], ["Q1", "1"], ["U2", "1"], ["R2", "2"], ["C1", "2"], ["C3", "2"], ["C4", "2"], ["Q2", "2"], ["J3", "5"], ["SW1", "2"], ["U3", "1"], ["U3", "40"], ["U3", "41"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["R6", "2"], ["R7", "2"], ["R8", "2"], ["SW2", "2"], ["R10", "2"], ["J4", "17"], ["J4", "8"], ["C8", "2"], ["C9", "2"], ["C10", "2"], ["C11", "2"], ["C12", "2"], ["C13", "2"], ["C14", "2"], ["R11", "2"], ["C15", "2"], ["D6", "1"], ["C17", "2"], ["C18", "2"], ["R12", "1"], ["J5", "11"], ["J5", "6"], ["U6", "4"], ["C19", "2"]]}, + {name: "vbat", pads: [["Q1", "2"], ["U2", "3"], ["C1", "1"], ["C3", "1"], ["R3", "1"], ["R4", "1"], ["Q3", "2"]]}, + {name: "v3v3", pads: [["R1", "1"], ["L1", "2"], ["C4", "1"], ["TP3", "1"], ["J3", "1"], ["U3", "2"], ["C5", "1"], ["C6", "1"], ["R5", "1"], ["Q4", "2"], ["Q5", "2"]]}, {name: "usb.pwr", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"]]}, + {name: "usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["U1", "2"], ["U3", "14"]]}, + {name: "usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["U1", "1"], ["U3", "13"]]}, {name: "usb.conn.cc.cc1", pads: [["J1", "A5"]]}, {name: "usb.conn.cc.cc2", pads: [["J1", "B5"]]}, {name: "batt.pwr", pads: [["J2", "2"], ["TP1", "1"], ["Q1", "3"]]}, - {name: "reg_3v3.ic.sw", pads: [["U1", "2"], ["C2", "2"], ["L1", "1"]]}, - {name: "reg_3v3.ic.fb", pads: [["U1", "4"], ["R1", "2"], ["R2", "1"]]}, - {name: "reg_3v3.ic.boot", pads: [["U1", "6"], ["C2", "1"]]}, - {name: "reg_3v3.ic.en", pads: [["U1", "5"], ["R3", "2"]]}, - {name: "vbat_sense_gate.control", pads: [["Q2", "1"], ["U2", "6"]]}, + {name: "reg_3v3.ic.sw", pads: [["U2", "2"], ["C2", "2"], ["L1", "1"]]}, + {name: "reg_3v3.ic.fb", pads: [["U2", "4"], ["R1", "2"], ["R2", "1"]]}, + {name: "reg_3v3.ic.boot", pads: [["U2", "6"], ["C2", "1"]]}, + {name: "reg_3v3.ic.en", pads: [["U2", "5"], ["R3", "2"]]}, + {name: "vbat_sense_gate.control", pads: [["Q2", "1"], ["U3", "6"]]}, {name: "vbat_sense_gate.output", pads: [["Q3", "3"], ["R9", "1"]]}, {name: "vbat_sense_gate.pre.drain", pads: [["Q2", "3"], ["R4", "2"], ["Q3", "1"]]}, - {name: "mcu.program_uart_node.a_tx", pads: [["J3", "4"], ["U2", "36"]]}, - {name: "mcu.program_uart_node.b_tx", pads: [["J3", "3"], ["U2", "37"]]}, - {name: "mcu.program_en_node", pads: [["J3", "6"], ["U2", "3"], ["R5", "2"], ["C7", "1"]]}, - {name: "mcu.program_boot_node", pads: [["J3", "2"], ["SW1", "1"], ["U2", "27"]]}, - {name: "ledr.signal", pads: [["U2", "39"], ["D1", "2"]]}, + {name: "mcu.program_uart_node.a_tx", pads: [["J3", "4"], ["U3", "36"]]}, + {name: "mcu.program_uart_node.b_tx", pads: [["J3", "3"], ["U3", "37"]]}, + {name: "mcu.program_en_node", pads: [["J3", "6"], ["U3", "3"], ["R5", "2"], ["C7", "1"]]}, + {name: "mcu.program_boot_node", pads: [["J3", "2"], ["SW1", "1"], ["U3", "27"]]}, + {name: "ledr.signal", pads: [["U3", "39"], ["D1", "2"]]}, {name: "ledr.package.k", pads: [["D1", "1"], ["R6", "1"]]}, - {name: "ledg.signal", pads: [["U2", "38"], ["D2", "2"]]}, + {name: "ledg.signal", pads: [["U3", "38"], ["D2", "2"]]}, {name: "ledg.package.k", pads: [["D2", "1"], ["R7", "1"]]}, - {name: "ledb.signal", pads: [["U2", "4"], ["D3", "2"]]}, + {name: "ledb.signal", pads: [["U3", "4"], ["D3", "2"]]}, {name: "ledb.package.k", pads: [["D3", "1"], ["R8", "1"]]}, - {name: "sw.out", pads: [["U2", "5"], ["SW2", "1"]]}, - {name: "vbat_sense.output", pads: [["U2", "7"], ["R9", "2"], ["R10", "1"]]}, - {name: "touch_duck.pad", pads: [["U2", "21"], ["U4", "1"]]}, - {name: "touch_lemur.pad", pads: [["U2", "22"], ["U5", "1"]]}, + {name: "sw.out", pads: [["U3", "5"], ["SW2", "1"]]}, + {name: "vbat_sense.output", pads: [["U3", "7"], ["R9", "2"], ["R10", "1"]]}, + {name: "touch_duck.pad", pads: [["U3", "21"], ["U4", "1"]]}, + {name: "touch_lemur.pad", pads: [["U3", "22"], ["U5", "1"]]}, {name: "epd_gate.output", pads: [["Q4", "3"], ["J4", "10"], ["J4", "9"], ["C8", "1"], ["L2", "1"], ["C15", "1"]]}, - {name: "epd_gate.control", pads: [["U2", "10"], ["Q4", "1"]]}, + {name: "epd_gate.control", pads: [["U3", "10"], ["Q4", "1"]]}, {name: "mem_gate.output", pads: [["Q5", "3"], ["J5", "4"], ["U6", "3"], ["U6", "7"], ["U6", "8"], ["C19", "1"]]}, - {name: "mem_gate.control", pads: [["U2", "23"], ["Q5", "1"]]}, - {name: "epd.reset", pads: [["U2", "8"], ["J4", "15"], ["TP7", "1"]]}, - {name: "epd.spi.sck", pads: [["U2", "33"], ["J4", "12"], ["TP4", "1"]]}, - {name: "epd.spi.mosi", pads: [["U2", "35"], ["J4", "11"], ["TP5", "1"]]}, + {name: "mem_gate.control", pads: [["U3", "23"], ["Q5", "1"]]}, + {name: "epd.reset", pads: [["U3", "8"], ["J4", "15"], ["TP7", "1"]]}, + {name: "epd.spi.sck", pads: [["U3", "33"], ["J4", "12"], ["TP4", "1"]]}, + {name: "epd.spi.mosi", pads: [["U3", "35"], ["J4", "11"], ["TP5", "1"]]}, {name: "epd.spi.miso", pads: [["TP6", "1"]]}, - {name: "epd.cs", pads: [["U2", "32"], ["J4", "13"], ["TP9", "1"]]}, - {name: "epd.dc", pads: [["U2", "31"], ["J4", "14"], ["TP8", "1"]]}, - {name: "epd.busy", pads: [["U2", "9"], ["J4", "16"], ["TP10", "1"]]}, + {name: "epd.cs", pads: [["U3", "32"], ["J4", "13"], ["TP9", "1"]]}, + {name: "epd.dc", pads: [["U3", "31"], ["J4", "14"], ["TP8", "1"]]}, + {name: "epd.busy", pads: [["U3", "9"], ["J4", "16"], ["TP10", "1"]]}, {name: "epd.device.vdd1v8", pads: [["J4", "7"], ["C9", "1"]]}, {name: "epd.device.gdr", pads: [["J4", "23"], ["Q6", "1"], ["R12", "2"]]}, {name: "epd.device.rese", pads: [["J4", "22"], ["Q6", "2"], ["R11", "1"]]}, @@ -430,15 +430,15 @@ board.setNetlist([ {name: "epd.device.vcom", pads: [["J4", "1"], ["C14", "1"]]}, {name: "epd.boost.fet.drain", pads: [["Q6", "3"], ["L2", "2"], ["D4", "2"], ["C16", "1"]]}, {name: "epd.boost.boot_neg_diode.cathode", pads: [["D5", "1"], ["D6", "2"], ["C16", "2"]]}, - {name: "sd.spi.sck", pads: [["U2", "17"], ["J5", "5"], ["U6", "6"], ["TP11", "1"]]}, - {name: "sd.spi.mosi", pads: [["U2", "18"], ["J5", "3"], ["U6", "5"], ["TP12", "1"]]}, - {name: "sd.spi.miso", pads: [["U2", "15"], ["J5", "7"], ["U6", "2"], ["TP13", "1"]]}, - {name: "sd.cs", pads: [["U2", "19"], ["J5", "2"], ["TP14", "1"]]}, - {name: "flash.cs", pads: [["U2", "20"], ["U6", "1"]]} + {name: "sd.spi.sck", pads: [["U3", "17"], ["J5", "5"], ["U6", "6"], ["TP11", "1"]]}, + {name: "sd.spi.mosi", pads: [["U3", "18"], ["J5", "3"], ["U6", "5"], ["TP12", "1"]]}, + {name: "sd.spi.miso", pads: [["U3", "15"], ["J5", "7"], ["U6", "2"], ["TP13", "1"]]}, + {name: "sd.cs", pads: [["U3", "19"], ["J5", "2"], ["TP14", "1"]]}, + {name: "flash.cs", pads: [["U3", "20"], ["U6", "1"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(3.7937007874015753, 2.4618110236220474); +const limit1 = pt(3.6551181102362214, 2.632283464566929); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/IotFan/IotFan.net.ref b/examples/IotFan/IotFan.net.ref index c39b01ef2..8b50969bd 100644 --- a/examples/IotFan/IotFan.net.ref +++ b/examples/IotFan/IotFan.net.ref @@ -56,8 +56,8 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb")) (property (name "edg_refdes") (value "FJ2")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/") (tstamps "/")) (tstamps "02aa014b")) (comp (ref "FTP1") diff --git a/examples/IotIron/IotIron.net.ref b/examples/IotIron/IotIron.net.ref index fd465c377..43c9170a1 100644 --- a/examples/IotIron/IotIron.net.ref +++ b/examples/IotIron/IotIron.net.ref @@ -37,17 +37,29 @@ (sheetpath (names "/jlc_th/") (tstamps "/08970275/")) (tstamps "02620110")) (comp (ref "IJ1") - (value "usb") + (value "usb.conn") (footprint "Connector_USB:USB_C_Receptacle_XKB_U262-16XN-4BVC11") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) (property (name "edg_path") (value "usb.conn")) - (property (name "edg_short_path") (value "usb")) + (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "IJ1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "02aa014b")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "042701af")) +(comp (ref "IU1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "IU1")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "ITP1") (value "vusb") (footprint "edg:TestPoint_TE_RCT_0805") @@ -72,14 +84,14 @@ (property (name "edg_value") (value "gnd")) (sheetpath (names "/") (tstamps "/")) (tstamps "08df027d")) -(comp (ref "IU1") +(comp (ref "IU2") (value "reg_3v3.ic") (footprint "Package_TO_SOT_SMD:SOT-23-6") (property (name "Sheetname") (value "reg_3v3")) (property (name "Sheetfile") (value "edg.parts.power.converter.TexasInstruments_Buck.Tps54202h")) (property (name "edg_path") (value "reg_3v3.ic")) (property (name "edg_short_path") (value "reg_3v3.ic")) - (property (name "edg_refdes") (value "IU1")) + (property (name "edg_refdes") (value "IU2")) (property (name "edg_part") (value "TPS54202H (Texas Instruments)")) (property (name "edg_value") (value "TPS54202H")) (sheetpath (names "/reg_3v3/") (tstamps "/0aba027a/")) @@ -216,14 +228,14 @@ (property (name "edg_value") (value "5μA@1V 90Ω Single 3.53V~3.67V 200mW 3.6V SOD-323 Zener Diodes ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "0eb80301")) -(comp (ref "IU2") +(comp (ref "IU3") (value "reg_gate.ic") (footprint "Package_TO_SOT_SMD:SOT-89-3") (property (name "Sheetname") (value "reg_gate")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.L78l")) (property (name "edg_path") (value "reg_gate.ic")) (property (name "edg_short_path") (value "reg_gate.ic")) - (property (name "edg_refdes") (value "IU2")) + (property (name "edg_refdes") (value "IU3")) (property (name "edg_part") (value "L78L12AC (STMicroelectronics)")) (property (name "edg_value") (value "L78L12AC")) (sheetpath (names "/reg_gate/") (tstamps "/0eac033f/")) @@ -276,14 +288,14 @@ (property (name "edg_value") (value "")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) (tstamps "045f01b9")) -(comp (ref "IU3") +(comp (ref "IU4") (value "mcu.ic") (footprint "RF_Module:ESP32-S3-WROOM-1") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Esp32s3.Esp32s3_Wroom_1")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "IU3")) + (property (name "edg_refdes") (value "IU4")) (property (name "edg_part") (value "ESP32-S3-WROOM-1-N16R8 (Espressif Systems)")) (property (name "edg_value") (value "ESP32-S3-WROOM-1-N16R8")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -360,14 +372,14 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 4.7kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/i2c_pull/") (tstamps "/0d3e031b/")) (tstamps "0b7802e2")) -(comp (ref "IU4") +(comp (ref "IU5") (value "pd.ic") (footprint "Package_DFN_QFN:WQFN-14-1EP_2.5x2.5mm_P0.5mm_EP1.45x1.45mm") (property (name "Sheetname") (value "pd")) (property (name "Sheetfile") (value "edg.parts.interface.UsbPd_Fusb302b.Fusb302b")) (property (name "edg_path") (value "pd.ic")) (property (name "edg_short_path") (value "pd.ic")) - (property (name "edg_refdes") (value "IU4")) + (property (name "edg_refdes") (value "IU5")) (property (name "edg_part") (value "FUSB302B11MPX (ON Semiconductor)")) (property (name "edg_value") (value "FUSB302B11MPX")) (sheetpath (names "/pd/") (tstamps "/014600d5/")) @@ -396,18 +408,6 @@ (property (name "edg_value") (value "50V 1uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/pd/") (tstamps "/014600d5/")) (tstamps "15aa03bb")) -(comp (ref "IU5") - (value "usb_esd") - (footprint "Package_TO_SOT_SMD:SOT-23") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) - (property (name "edg_path") (value "usb_esd")) - (property (name "edg_short_path") (value "usb_esd")) - (property (name "edg_refdes") (value "IU5")) - (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) - (property (name "edg_value") (value "PESD5V0X1BT")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "0bcb02e6")) (comp (ref "IR7") (value "vusb_sense.top_res") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -1135,14 +1135,14 @@ (node (ref IJ1) (pin B4)) (node (ref IJ1) (pin B9)) (node (ref ITP1) (pin 1)) - (node (ref IU1) (pin 3)) + (node (ref IU2) (pin 3)) (node (ref IC1) (pin 1)) (node (ref IC3) (pin 1)) (node (ref IC4) (pin 1)) (node (ref IR3) (pin 1)) - (node (ref IU2) (pin 3)) + (node (ref IU3) (pin 3)) (node (ref IC6) (pin 1)) - (node (ref IU4) (pin 2)) + (node (ref IU5) (pin 2)) (node (ref IR7) (pin 1)) (node (ref IC22) (pin 1)) (node (ref IC23) (pin 1)) @@ -1156,30 +1156,30 @@ (node (ref IJ1) (pin B1)) (node (ref IJ1) (pin B12)) (node (ref IJ1) (pin S1)) + (node (ref IU1) (pin 3)) (node (ref ITP2) (pin 1)) - (node (ref IU1) (pin 1)) + (node (ref IU2) (pin 1)) (node (ref IR2) (pin 2)) (node (ref IC1) (pin 2)) (node (ref IC3) (pin 2)) (node (ref IC4) (pin 2)) (node (ref IC5) (pin 2)) (node (ref ID1) (pin 2)) - (node (ref IU2) (pin 2)) + (node (ref IU3) (pin 2)) (node (ref IC6) (pin 2)) (node (ref IC7) (pin 2)) (node (ref IJ2) (pin 5)) - (node (ref IU3) (pin 1)) - (node (ref IU3) (pin 40)) - (node (ref IU3) (pin 41)) + (node (ref IU4) (pin 1)) + (node (ref IU4) (pin 40)) + (node (ref IU4) (pin 41)) (node (ref IC8) (pin 2)) (node (ref IC9) (pin 2)) (node (ref IC10) (pin 2)) - (node (ref IU4) (pin 15)) - (node (ref IU4) (pin 8)) - (node (ref IU4) (pin 9)) + (node (ref IU5) (pin 15)) + (node (ref IU5) (pin 8)) + (node (ref IU5) (pin 9)) (node (ref IC11) (pin 2)) (node (ref IC12) (pin 2)) - (node (ref IU5) (pin 3)) (node (ref IR8) (pin 2)) (node (ref IU6) (pin 2)) (node (ref IC13) (pin 2)) @@ -1238,14 +1238,14 @@ (node (ref ITP3) (pin 1)) (node (ref ID1) (pin 1)) (node (ref IJ2) (pin 1)) - (node (ref IU3) (pin 2)) + (node (ref IU4) (pin 2)) (node (ref IC8) (pin 1)) (node (ref IC9) (pin 1)) (node (ref IR4) (pin 1)) (node (ref IR5) (pin 1)) (node (ref IR6) (pin 1)) - (node (ref IU4) (pin 3)) - (node (ref IU4) (pin 4)) + (node (ref IU5) (pin 3)) + (node (ref IU5) (pin 4)) (node (ref IC11) (pin 1)) (node (ref IC12) (pin 1)) (node (ref IU6) (pin 5)) @@ -1264,7 +1264,7 @@ (node (ref IU11) (pin 8)) (node (ref IC31) (pin 1))) (net (code 4) (name "Ivgate") - (node (ref IU2) (pin 1)) + (node (ref IU3) (pin 1)) (node (ref IC7) (pin 1)) (node (ref ITP4) (pin 1)) (node (ref IU9) (pin 1)) @@ -1275,87 +1275,87 @@ (node (ref ITP5) (pin 1)) (node (ref IJ5) (pin 2)) (node (ref IR18) (pin 1))) -(net (code 6) (name "Iusb_chain_0.d_P") +(net (code 6) (name "Iusb.usb.dp") (node (ref IJ1) (pin A6)) (node (ref IJ1) (pin B6)) - (node (ref IU3) (pin 14)) - (node (ref IU5) (pin 2))) -(net (code 7) (name "Iusb_chain_0.d_N") + (node (ref IU1) (pin 2)) + (node (ref IU4) (pin 14))) +(net (code 7) (name "Iusb.usb.dm") (node (ref IJ1) (pin A7)) (node (ref IJ1) (pin B7)) - (node (ref IU3) (pin 13)) - (node (ref IU5) (pin 1))) + (node (ref IU1) (pin 1)) + (node (ref IU4) (pin 13))) (net (code 8) (name "Iusb.cc.cc1") (node (ref IJ1) (pin A5)) - (node (ref IU4) (pin 10)) - (node (ref IU4) (pin 11))) + (node (ref IU5) (pin 10)) + (node (ref IU5) (pin 11))) (net (code 9) (name "Iusb.cc.cc2") (node (ref IJ1) (pin B5)) - (node (ref IU4) (pin 1)) - (node (ref IU4) (pin 14))) + (node (ref IU5) (pin 1)) + (node (ref IU5) (pin 14))) (net (code 10) (name "Ireg_3v3.ic.sw") - (node (ref IU1) (pin 2)) + (node (ref IU2) (pin 2)) (node (ref IC2) (pin 2)) (node (ref IL1) (pin 1))) (net (code 11) (name "Ireg_3v3.ic.fb") - (node (ref IU1) (pin 4)) + (node (ref IU2) (pin 4)) (node (ref IR1) (pin 2)) (node (ref IR2) (pin 1))) (net (code 12) (name "Ireg_3v3.ic.boot") - (node (ref IU1) (pin 6)) + (node (ref IU2) (pin 6)) (node (ref IC2) (pin 1))) (net (code 13) (name "Ireg_3v3.ic.en") - (node (ref IU1) (pin 5)) + (node (ref IU2) (pin 5)) (node (ref IR3) (pin 2))) (net (code 14) (name "Imcu.program_uart_node.a_tx") (node (ref IJ2) (pin 4)) - (node (ref IU3) (pin 36))) + (node (ref IU4) (pin 36))) (net (code 15) (name "Imcu.program_uart_node.b_tx") (node (ref IJ2) (pin 3)) - (node (ref IU3) (pin 37))) + (node (ref IU4) (pin 37))) (net (code 16) (name "Imcu.program_en_node") (node (ref IJ2) (pin 6)) - (node (ref IU3) (pin 3)) + (node (ref IU4) (pin 3)) (node (ref IR4) (pin 2)) (node (ref IC10) (pin 1))) (net (code 17) (name "Imcu.program_boot_node") (node (ref IJ2) (pin 2)) - (node (ref IU3) (pin 27)) + (node (ref IU4) (pin 27)) (node (ref IR10) (pin 2))) (net (code 18) (name "Ii2c_pull.i2c.scl") - (node (ref IU3) (pin 35)) + (node (ref IU4) (pin 35)) (node (ref IR5) (pin 2)) - (node (ref IU4) (pin 6)) + (node (ref IU5) (pin 6)) (node (ref IU6) (pin 6)) (node (ref IJ3) (pin 18))) (net (code 19) (name "Ii2c_pull.i2c.sda") - (node (ref IU3) (pin 34)) + (node (ref IU4) (pin 34)) (node (ref IR6) (pin 2)) - (node (ref IU4) (pin 7)) + (node (ref IU5) (pin 7)) (node (ref IU6) (pin 1)) (node (ref IJ3) (pin 19)) (node (ref IJ3) (pin 20))) (net (code 20) (name "Ipd.int") - (node (ref IU3) (pin 38)) - (node (ref IU4) (pin 5))) + (node (ref IU4) (pin 38)) + (node (ref IU5) (pin 5))) (net (code 21) (name "Ipd.ic.vconn") - (node (ref IU4) (pin 12)) - (node (ref IU4) (pin 13))) + (node (ref IU5) (pin 12)) + (node (ref IU5) (pin 13))) (net (code 22) (name "Ivusb_sense.output") - (node (ref IU3) (pin 39)) + (node (ref IU4) (pin 39)) (node (ref IR7) (pin 2)) (node (ref IR8) (pin 1))) (net (code 23) (name "Ienc.a") - (node (ref IU3) (pin 10)) + (node (ref IU4) (pin 10)) (node (ref ISW1) (pin A))) (net (code 24) (name "Ienc.b") - (node (ref IU3) (pin 9)) + (node (ref IU4) (pin 9)) (node (ref ISW1) (pin B))) (net (code 25) (name "Ienc.sw") - (node (ref IU3) (pin 8)) + (node (ref IU4) (pin 8)) (node (ref ISW1) (pin S1))) (net (code 26) (name "Ioled.reset") - (node (ref IU3) (pin 11)) + (node (ref IU4) (pin 11)) (node (ref IJ3) (pin 14))) (net (code 27) (name "Ioled.device.vcc") (node (ref IJ3) (pin 28)) @@ -1379,13 +1379,13 @@ (node (ref IJ3) (pin 3)) (node (ref IC15) (pin 2))) (net (code 34) (name "Ispk_drv.i2s.sck") - (node (ref IU3) (pin 32)) + (node (ref IU4) (pin 32)) (node (ref IU8) (pin 16))) (net (code 35) (name "Ispk_drv.i2s.ws") - (node (ref IU3) (pin 31)) + (node (ref IU4) (pin 31)) (node (ref IU8) (pin 14))) (net (code 36) (name "Ispk_drv.i2s.sd") - (node (ref IU3) (pin 33)) + (node (ref IU4) (pin 33)) (node (ref IU8) (pin 1))) (net (code 37) (name "Ispk_drv.out.a") (node (ref IU8) (pin 9)) @@ -1433,15 +1433,15 @@ (node (ref IQ2) (pin 4)) (node (ref IR12) (pin 2))) (net (code 48) (name "Ilow_pull.io") - (node (ref IU3) (pin 4)) + (node (ref IU4) (pin 4)) (node (ref IR13) (pin 2)) (node (ref IR14) (pin 1))) (net (code 49) (name "Ihigh_pull.io") - (node (ref IU3) (pin 5)) + (node (ref IU4) (pin 5)) (node (ref IR15) (pin 2)) (node (ref IR16) (pin 1))) (net (code 50) (name "Itouch_sink.pad") - (node (ref IU3) (pin 15)) + (node (ref IU4) (pin 15)) (node (ref IU10) (pin 1))) (net (code 51) (name "Iiron.thermocouple") (node (ref IJ5) (pin 3)) @@ -1458,7 +1458,7 @@ (node (ref ITP8) (pin 1)) (node (ref IR20) (pin 1))) (net (code 54) (name "Ivfilt.output") - (node (ref IU3) (pin 6)) + (node (ref IU4) (pin 6)) (node (ref IR20) (pin 2)) (node (ref IC29) (pin 1))) (net (code 55) (name "Iifilt.output") @@ -1466,12 +1466,12 @@ (node (ref IR23) (pin 1)) (node (ref IU11) (pin 1))) (net (code 56) (name "Itp_i.output") - (node (ref IU3) (pin 7)) + (node (ref IU4) (pin 7)) (node (ref IR23) (pin 2)) (node (ref IC30) (pin 1)) (node (ref ITP9) (pin 1))) (net (code 57) (name "Itamp.output") - (node (ref IU3) (pin 12)) + (node (ref IU4) (pin 12)) (node (ref IR26) (pin 1)) (node (ref IU11) (pin 7))) (net (code 58) (name "Ipacked_opamp.inp.1") diff --git a/examples/IotIron/IotIron.svgpcb.js b/examples/IotIron/IotIron.svgpcb.js index 4818f0e09..cf857eae4 100644 --- a/examples/IotIron/IotIron.svgpcb.js +++ b/examples/IotIron/IotIron.svgpcb.js @@ -2,17 +2,17 @@ const board = new PCB(); // jlc_th.th1 const IH1 = board.add(JlcToolingHole_1_152mm, { - translate: pt(3.408, 3.059), rotate: 0, + translate: pt(3.218, 3.059), rotate: 0, id: 'IH1' }) // jlc_th.th2 const IH2 = board.add(JlcToolingHole_1_152mm, { - translate: pt(3.448, 3.059), rotate: 0, + translate: pt(3.257, 3.059), rotate: 0, id: 'IH2' }) // jlc_th.th3 const IH3 = board.add(JlcToolingHole_1_152mm, { - translate: pt(3.408, 3.099), rotate: 0, + translate: pt(3.218, 3.099), rotate: 0, id: 'IH3' }) // usb.conn @@ -20,6 +20,11 @@ const IJ1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { translate: pt(3.321, 1.905), rotate: 0, id: 'IJ1' }) +// usb.esd +const IU1 = board.add(SOT_23, { + translate: pt(3.187, 2.198), rotate: 0, + id: 'IU1' +}) // tp_pwr.tp const ITP1 = board.add(TestPoint_TE_RCT_0805, { translate: pt(0.066, 3.097), rotate: 0, @@ -31,9 +36,9 @@ const ITP2 = board.add(TestPoint_TE_RCT_0805, { id: 'ITP2' }) // reg_3v3.ic -const IU1 = board.add(SOT_23_6, { +const IU2 = board.add(SOT_23_6, { translate: pt(2.331, 1.807), rotate: 0, - id: 'IU1' + id: 'IU2' }) // reg_3v3.fb.div.top_res const IR1 = board.add(R_0603_1608Metric, { @@ -91,9 +96,9 @@ const ID1 = board.add(D_SOD_323, { id: 'ID1' }) // reg_gate.ic -const IU2 = board.add(SOT_89_3, { +const IU3 = board.add(SOT_89_3, { translate: pt(3.761, 1.839), rotate: 0, - id: 'IU2' + id: 'IU3' }) // reg_gate.in_cap.cap const IC6 = board.add(C_0805_2012Metric, { @@ -116,9 +121,9 @@ const IJ2 = board.add(Tag_Connect_TC2030_IDC_NL_2x03_P1_27mm_Vertical, { id: 'IJ2' }) // mcu.ic -const IU3 = board.add(ESP32_S3_WROOM_1, { +const IU4 = board.add(ESP32_S3_WROOM_1, { translate: pt(0.945, 0.530), rotate: 0, - id: 'IU3' + id: 'IU4' }) // mcu.vcc_cap0.cap const IC8 = board.add(C_1206_3216Metric, { @@ -151,9 +156,9 @@ const IR6 = board.add(R_0603_1608Metric, { id: 'IR6' }) // pd.ic -const IU4 = board.add(WQFN_14_1EP_2_5x2_5mm_P0_5mm_EP1_45x1_45mm, { +const IU5 = board.add(WQFN_14_1EP_2_5x2_5mm_P0_5mm_EP1_45x1_45mm, { translate: pt(0.890, 2.705), rotate: 0, - id: 'IU4' + id: 'IU5' }) // pd.vdd_cap[0].cap const IC11 = board.add(C_0603_1608Metric, { @@ -165,11 +170,6 @@ const IC12 = board.add(C_0603_1608Metric, { translate: pt(1.031, 2.846), rotate: 0, id: 'IC12' }) -// usb_esd -const IU5 = board.add(SOT_23, { - translate: pt(3.293, 3.126), rotate: 0, - id: 'IU5' -}) // vusb_sense.div.top_res const IR7 = board.add(R_0603_1608Metric, { translate: pt(2.393, 2.661), rotate: 0, @@ -372,7 +372,7 @@ const ITP7 = board.add(TestPoint_TE_RCT_0805, { }) // touch_sink const IU10 = board.add(Symbol_DucklingSolid, { - translate: pt(3.566, 3.059), rotate: 0, + translate: pt(3.375, 3.059), rotate: 0, id: 'IU10' }) // iron.conn @@ -472,32 +472,32 @@ const IC31 = board.add(C_0603_1608Metric, { }) board.setNetlist([ - {name: "vusb", pads: [["IJ1", "A4"], ["IJ1", "A9"], ["IJ1", "B4"], ["IJ1", "B9"], ["ITP1", "1"], ["IU1", "3"], ["IC1", "1"], ["IC3", "1"], ["IC4", "1"], ["IR3", "1"], ["IU2", "3"], ["IC6", "1"], ["IU4", "2"], ["IR7", "1"], ["IC22", "1"], ["IC23", "1"], ["IQ2", "5"], ["IQ2", "6"], ["IQ2", "7"], ["IQ2", "8"]]}, - {name: "gnd", pads: [["IJ1", "A1"], ["IJ1", "A12"], ["IJ1", "B1"], ["IJ1", "B12"], ["IJ1", "S1"], ["ITP2", "1"], ["IU1", "1"], ["IR2", "2"], ["IC1", "2"], ["IC3", "2"], ["IC4", "2"], ["IC5", "2"], ["ID1", "2"], ["IU2", "2"], ["IC6", "2"], ["IC7", "2"], ["IJ2", "5"], ["IU3", "1"], ["IU3", "40"], ["IU3", "41"], ["IC8", "2"], ["IC9", "2"], ["IC10", "2"], ["IU4", "15"], ["IU4", "8"], ["IU4", "9"], ["IC11", "2"], ["IC12", "2"], ["IU5", "3"], ["IR8", "2"], ["IU6", "2"], ["IC13", "2"], ["ISW1", "C"], ["ISW1", "S2"], ["IJ3", "1"], ["IJ3", "10"], ["IJ3", "12"], ["IJ3", "13"], ["IJ3", "15"], ["IJ3", "16"], ["IJ3", "17"], ["IJ3", "21"], ["IJ3", "22"], ["IJ3", "23"], ["IJ3", "24"], ["IJ3", "25"], ["IJ3", "29"], ["IJ3", "30"], ["IJ3", "8"], ["IR9", "1"], ["IC16", "2"], ["IC17", "2"], ["IC18", "2"], ["IC19", "2"], ["IU8", "11"], ["IU8", "15"], ["IU8", "17"], ["IU8", "3"], ["IC20", "2"], ["IC21", "2"], ["IC22", "2"], ["IC23", "2"], ["IC24", "2"], ["IU9", "7"], ["IC25", "2"], ["IQ1", "1"], ["IQ1", "2"], ["IQ1", "3"], ["IR13", "1"], ["IC27", "2"], ["IR15", "1"], ["IC28", "2"], ["IR17", "1"], ["IR19", "2"], ["IC29", "2"], ["IR22", "2"], ["IC30", "2"], ["IR27", "1"], ["IU11", "4"], ["IC31", "2"]]}, - {name: "v3v3", pads: [["IR1", "1"], ["IL1", "2"], ["IC5", "1"], ["ITP3", "1"], ["ID1", "1"], ["IJ2", "1"], ["IU3", "2"], ["IC8", "1"], ["IC9", "1"], ["IR4", "1"], ["IR5", "1"], ["IR6", "1"], ["IU4", "3"], ["IU4", "4"], ["IC11", "1"], ["IC12", "1"], ["IU6", "5"], ["IC13", "1"], ["IJ3", "11"], ["IJ3", "6"], ["IJ3", "9"], ["IC17", "1"], ["IC18", "1"], ["IU8", "4"], ["IU8", "7"], ["IU8", "8"], ["IC20", "1"], ["IC21", "1"], ["ID2", "2"], ["IU11", "8"], ["IC31", "1"]]}, - {name: "vgate", pads: [["IU2", "1"], ["IC7", "1"], ["ITP4", "1"], ["IU9", "1"], ["IC25", "1"]]}, + {name: "vusb", pads: [["IJ1", "A4"], ["IJ1", "A9"], ["IJ1", "B4"], ["IJ1", "B9"], ["ITP1", "1"], ["IU2", "3"], ["IC1", "1"], ["IC3", "1"], ["IC4", "1"], ["IR3", "1"], ["IU3", "3"], ["IC6", "1"], ["IU5", "2"], ["IR7", "1"], ["IC22", "1"], ["IC23", "1"], ["IQ2", "5"], ["IQ2", "6"], ["IQ2", "7"], ["IQ2", "8"]]}, + {name: "gnd", pads: [["IJ1", "A1"], ["IJ1", "A12"], ["IJ1", "B1"], ["IJ1", "B12"], ["IJ1", "S1"], ["IU1", "3"], ["ITP2", "1"], ["IU2", "1"], ["IR2", "2"], ["IC1", "2"], ["IC3", "2"], ["IC4", "2"], ["IC5", "2"], ["ID1", "2"], ["IU3", "2"], ["IC6", "2"], ["IC7", "2"], ["IJ2", "5"], ["IU4", "1"], ["IU4", "40"], ["IU4", "41"], ["IC8", "2"], ["IC9", "2"], ["IC10", "2"], ["IU5", "15"], ["IU5", "8"], ["IU5", "9"], ["IC11", "2"], ["IC12", "2"], ["IR8", "2"], ["IU6", "2"], ["IC13", "2"], ["ISW1", "C"], ["ISW1", "S2"], ["IJ3", "1"], ["IJ3", "10"], ["IJ3", "12"], ["IJ3", "13"], ["IJ3", "15"], ["IJ3", "16"], ["IJ3", "17"], ["IJ3", "21"], ["IJ3", "22"], ["IJ3", "23"], ["IJ3", "24"], ["IJ3", "25"], ["IJ3", "29"], ["IJ3", "30"], ["IJ3", "8"], ["IR9", "1"], ["IC16", "2"], ["IC17", "2"], ["IC18", "2"], ["IC19", "2"], ["IU8", "11"], ["IU8", "15"], ["IU8", "17"], ["IU8", "3"], ["IC20", "2"], ["IC21", "2"], ["IC22", "2"], ["IC23", "2"], ["IC24", "2"], ["IU9", "7"], ["IC25", "2"], ["IQ1", "1"], ["IQ1", "2"], ["IQ1", "3"], ["IR13", "1"], ["IC27", "2"], ["IR15", "1"], ["IC28", "2"], ["IR17", "1"], ["IR19", "2"], ["IC29", "2"], ["IR22", "2"], ["IC30", "2"], ["IR27", "1"], ["IU11", "4"], ["IC31", "2"]]}, + {name: "v3v3", pads: [["IR1", "1"], ["IL1", "2"], ["IC5", "1"], ["ITP3", "1"], ["ID1", "1"], ["IJ2", "1"], ["IU4", "2"], ["IC8", "1"], ["IC9", "1"], ["IR4", "1"], ["IR5", "1"], ["IR6", "1"], ["IU5", "3"], ["IU5", "4"], ["IC11", "1"], ["IC12", "1"], ["IU6", "5"], ["IC13", "1"], ["IJ3", "11"], ["IJ3", "6"], ["IJ3", "9"], ["IC17", "1"], ["IC18", "1"], ["IU8", "4"], ["IU8", "7"], ["IU8", "8"], ["IC20", "1"], ["IC21", "1"], ["ID2", "2"], ["IU11", "8"], ["IC31", "1"]]}, + {name: "vgate", pads: [["IU3", "1"], ["IC7", "1"], ["ITP4", "1"], ["IU9", "1"], ["IC25", "1"]]}, {name: "conv_out", pads: [["IL2", "2"], ["IC24", "1"], ["ITP5", "1"], ["IJ5", "2"], ["IR18", "1"]]}, - {name: "usb_chain_0.d_P", pads: [["IJ1", "A6"], ["IJ1", "B6"], ["IU3", "14"], ["IU5", "2"]]}, - {name: "usb_chain_0.d_N", pads: [["IJ1", "A7"], ["IJ1", "B7"], ["IU3", "13"], ["IU5", "1"]]}, - {name: "usb.cc.cc1", pads: [["IJ1", "A5"], ["IU4", "10"], ["IU4", "11"]]}, - {name: "usb.cc.cc2", pads: [["IJ1", "B5"], ["IU4", "1"], ["IU4", "14"]]}, - {name: "reg_3v3.ic.sw", pads: [["IU1", "2"], ["IC2", "2"], ["IL1", "1"]]}, - {name: "reg_3v3.ic.fb", pads: [["IU1", "4"], ["IR1", "2"], ["IR2", "1"]]}, - {name: "reg_3v3.ic.boot", pads: [["IU1", "6"], ["IC2", "1"]]}, - {name: "reg_3v3.ic.en", pads: [["IU1", "5"], ["IR3", "2"]]}, - {name: "mcu.program_uart_node.a_tx", pads: [["IJ2", "4"], ["IU3", "36"]]}, - {name: "mcu.program_uart_node.b_tx", pads: [["IJ2", "3"], ["IU3", "37"]]}, - {name: "mcu.program_en_node", pads: [["IJ2", "6"], ["IU3", "3"], ["IR4", "2"], ["IC10", "1"]]}, - {name: "mcu.program_boot_node", pads: [["IJ2", "2"], ["IU3", "27"], ["IR10", "2"]]}, - {name: "i2c_pull.i2c.scl", pads: [["IU3", "35"], ["IR5", "2"], ["IU4", "6"], ["IU6", "6"], ["IJ3", "18"]]}, - {name: "i2c_pull.i2c.sda", pads: [["IU3", "34"], ["IR6", "2"], ["IU4", "7"], ["IU6", "1"], ["IJ3", "19"], ["IJ3", "20"]]}, - {name: "pd.int", pads: [["IU3", "38"], ["IU4", "5"]]}, - {name: "pd.ic.vconn", pads: [["IU4", "12"], ["IU4", "13"]]}, - {name: "vusb_sense.output", pads: [["IU3", "39"], ["IR7", "2"], ["IR8", "1"]]}, - {name: "enc.a", pads: [["IU3", "10"], ["ISW1", "A"]]}, - {name: "enc.b", pads: [["IU3", "9"], ["ISW1", "B"]]}, - {name: "enc.sw", pads: [["IU3", "8"], ["ISW1", "S1"]]}, - {name: "oled.reset", pads: [["IU3", "11"], ["IJ3", "14"]]}, + {name: "usb.usb.dp", pads: [["IJ1", "A6"], ["IJ1", "B6"], ["IU1", "2"], ["IU4", "14"]]}, + {name: "usb.usb.dm", pads: [["IJ1", "A7"], ["IJ1", "B7"], ["IU1", "1"], ["IU4", "13"]]}, + {name: "usb.cc.cc1", pads: [["IJ1", "A5"], ["IU5", "10"], ["IU5", "11"]]}, + {name: "usb.cc.cc2", pads: [["IJ1", "B5"], ["IU5", "1"], ["IU5", "14"]]}, + {name: "reg_3v3.ic.sw", pads: [["IU2", "2"], ["IC2", "2"], ["IL1", "1"]]}, + {name: "reg_3v3.ic.fb", pads: [["IU2", "4"], ["IR1", "2"], ["IR2", "1"]]}, + {name: "reg_3v3.ic.boot", pads: [["IU2", "6"], ["IC2", "1"]]}, + {name: "reg_3v3.ic.en", pads: [["IU2", "5"], ["IR3", "2"]]}, + {name: "mcu.program_uart_node.a_tx", pads: [["IJ2", "4"], ["IU4", "36"]]}, + {name: "mcu.program_uart_node.b_tx", pads: [["IJ2", "3"], ["IU4", "37"]]}, + {name: "mcu.program_en_node", pads: [["IJ2", "6"], ["IU4", "3"], ["IR4", "2"], ["IC10", "1"]]}, + {name: "mcu.program_boot_node", pads: [["IJ2", "2"], ["IU4", "27"], ["IR10", "2"]]}, + {name: "i2c_pull.i2c.scl", pads: [["IU4", "35"], ["IR5", "2"], ["IU5", "6"], ["IU6", "6"], ["IJ3", "18"]]}, + {name: "i2c_pull.i2c.sda", pads: [["IU4", "34"], ["IR6", "2"], ["IU5", "7"], ["IU6", "1"], ["IJ3", "19"], ["IJ3", "20"]]}, + {name: "pd.int", pads: [["IU4", "38"], ["IU5", "5"]]}, + {name: "pd.ic.vconn", pads: [["IU5", "12"], ["IU5", "13"]]}, + {name: "vusb_sense.output", pads: [["IU4", "39"], ["IR7", "2"], ["IR8", "1"]]}, + {name: "enc.a", pads: [["IU4", "10"], ["ISW1", "A"]]}, + {name: "enc.b", pads: [["IU4", "9"], ["ISW1", "B"]]}, + {name: "enc.sw", pads: [["IU4", "8"], ["ISW1", "S1"]]}, + {name: "oled.reset", pads: [["IU4", "11"], ["IJ3", "14"]]}, {name: "oled.device.vcc", pads: [["IJ3", "28"], ["IC19", "1"]]}, {name: "oled.device.iref", pads: [["IJ3", "26"], ["IR9", "2"]]}, {name: "oled.device.vcomh", pads: [["IJ3", "27"], ["IC16", "1"]]}, @@ -505,9 +505,9 @@ board.setNetlist([ {name: "oled.device.c1n", pads: [["IJ3", "5"], ["IC14", "2"]]}, {name: "oled.device.c2p", pads: [["IJ3", "2"], ["IC15", "1"]]}, {name: "oled.device.c2n", pads: [["IJ3", "3"], ["IC15", "2"]]}, - {name: "spk_drv.i2s.sck", pads: [["IU3", "32"], ["IU8", "16"]]}, - {name: "spk_drv.i2s.ws", pads: [["IU3", "31"], ["IU8", "14"]]}, - {name: "spk_drv.i2s.sd", pads: [["IU3", "33"], ["IU8", "1"]]}, + {name: "spk_drv.i2s.sck", pads: [["IU4", "32"], ["IU8", "16"]]}, + {name: "spk_drv.i2s.ws", pads: [["IU4", "31"], ["IU8", "14"]]}, + {name: "spk_drv.i2s.sd", pads: [["IU4", "33"], ["IU8", "1"]]}, {name: "spk_drv.out.a", pads: [["IU8", "9"], ["IJ4", "1"]]}, {name: "spk_drv.out.b", pads: [["IU8", "10"], ["IJ4", "2"]]}, {name: "ledr.package.k", pads: [["ID2", "1"], ["IR10", "1"]]}, @@ -519,16 +519,16 @@ board.setNetlist([ {name: "conv.sw.driver.ic.hb", pads: [["IU9", "2"], ["IC26", "1"]]}, {name: "conv.sw.low_fet.gate", pads: [["IQ1", "4"], ["IR11", "2"]]}, {name: "conv.sw.high_fet.gate", pads: [["IQ2", "4"], ["IR12", "2"]]}, - {name: "low_pull.io", pads: [["IU3", "4"], ["IR13", "2"], ["IR14", "1"]]}, - {name: "high_pull.io", pads: [["IU3", "5"], ["IR15", "2"], ["IR16", "1"]]}, - {name: "touch_sink.pad", pads: [["IU3", "15"], ["IU10", "1"]]}, + {name: "low_pull.io", pads: [["IU4", "4"], ["IR13", "2"], ["IR14", "1"]]}, + {name: "high_pull.io", pads: [["IU4", "5"], ["IR15", "2"], ["IR16", "1"]]}, + {name: "touch_sink.pad", pads: [["IU4", "15"], ["IU10", "1"]]}, {name: "iron.thermocouple", pads: [["IJ5", "3"], ["IR25", "1"], ["ITP10", "1"]]}, {name: "iron.isense", pads: [["IJ5", "1"], ["IR17", "2"], ["IR24", "1"], ["IU11", "3"]]}, {name: "vsense.output", pads: [["IR18", "2"], ["IR19", "1"], ["ITP8", "1"], ["IR20", "1"]]}, - {name: "vfilt.output", pads: [["IU3", "6"], ["IR20", "2"], ["IC29", "1"]]}, + {name: "vfilt.output", pads: [["IU4", "6"], ["IR20", "2"], ["IC29", "1"]]}, {name: "ifilt.output", pads: [["IR21", "1"], ["IR23", "1"], ["IU11", "1"]]}, - {name: "tp_i.output", pads: [["IU3", "7"], ["IR23", "2"], ["IC30", "1"], ["ITP9", "1"]]}, - {name: "tamp.output", pads: [["IU3", "12"], ["IR26", "1"], ["IU11", "7"]]}, + {name: "tp_i.output", pads: [["IU4", "7"], ["IR23", "2"], ["IC30", "1"], ["ITP9", "1"]]}, + {name: "tamp.output", pads: [["IU4", "12"], ["IR26", "1"], ["IU11", "7"]]}, {name: "packed_opamp.inp.1", pads: [["IR25", "2"], ["IR27", "2"], ["IU11", "5"]]}, {name: "packed_opamp.inn.0", pads: [["IR21", "2"], ["IR22", "1"], ["IU11", "2"]]}, {name: "packed_opamp.inn.1", pads: [["IR24", "2"], ["IR26", "2"], ["IU11", "6"]]} diff --git a/examples/IotThermalCamera/IotThermalCamera.net.ref b/examples/IotThermalCamera/IotThermalCamera.net.ref index 9de85fec2..8ace1d26b 100644 --- a/examples/IotThermalCamera/IotThermalCamera.net.ref +++ b/examples/IotThermalCamera/IotThermalCamera.net.ref @@ -37,17 +37,29 @@ (sheetpath (names "/jlc_th/") (tstamps "/08970275/")) (tstamps "02620110")) (comp (ref "TJ1") - (value "usb") + (value "usb.conn") (footprint "Connector_USB:USB_C_Receptacle_XKB_U262-16XN-4BVC11") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) (property (name "edg_path") (value "usb.conn")) - (property (name "edg_short_path") (value "usb")) + (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "TJ1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "02aa014b")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "042701af")) +(comp (ref "TU1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "TU1")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "TJ2") (value "eth.conn") (footprint "Connector_RJ:RJ45_Wuerth_7499111446_Horizontal") @@ -96,14 +108,14 @@ (property (name "edg_value") (value "2kV 1nF X7R ±10% 1206 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/eth/") (tstamps "/02820142/")) (tstamps "025e0135")) -(comp (ref "TU1") +(comp (ref "TU2") (value "poe.ic") (footprint "Package_SO:HSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.41x3.1mm_ThermalVias") (property (name "Sheetname") (value "poe")) (property (name "Sheetfile") (value "examples.test_iot_thermal_camera.Tps2378")) (property (name "edg_path") (value "poe.ic")) (property (name "edg_short_path") (value "poe.ic")) - (property (name "edg_refdes") (value "TU1")) + (property (name "edg_refdes") (value "TU2")) (property (name "edg_part") (value "TPS2378 (Texas Instruments)")) (property (name "edg_value") (value "TPS2378")) (sheetpath (names "/poe/") (tstamps "/02960145/")) @@ -204,14 +216,14 @@ (property (name "edg_value") (value "_poe_pwr_out_link")) (sheetpath (names "/") (tstamps "/")) (tstamps "08fd0288")) -(comp (ref "TU2") +(comp (ref "TU3") (value "reg_poe.ic") (footprint "Package_SO:HSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.41x3.1mm_ThermalVias") (property (name "Sheetname") (value "reg_poe")) (property (name "Sheetfile") (value "edg.parts.power.converter.TexasInstruments_Buck.Lmr38020")) (property (name "edg_path") (value "reg_poe.ic")) (property (name "edg_short_path") (value "reg_poe.ic")) - (property (name "edg_refdes") (value "TU2")) + (property (name "edg_refdes") (value "TU3")) (property (name "edg_part") (value "LMR38020SDDAR (Texas Instruments)")) (property (name "edg_value") (value "LMR38020SDDAR")) (sheetpath (names "/reg_poe/") (tstamps "/0b9502e2/")) @@ -360,14 +372,14 @@ (property (name "edg_value") (value "pwr")) (sheetpath (names "/") (tstamps "/")) (tstamps "091a029d")) -(comp (ref "TU3") +(comp (ref "TU4") (value "reg_3v3.ic") (footprint "Package_TO_SOT_SMD:SOT-23-6") (property (name "Sheetname") (value "reg_3v3")) (property (name "Sheetfile") (value "edg.parts.power.converter.TexasInstruments_Buck.Tps54202h")) (property (name "edg_path") (value "reg_3v3.ic")) (property (name "edg_short_path") (value "reg_3v3.ic")) - (property (name "edg_refdes") (value "TU3")) + (property (name "edg_refdes") (value "TU4")) (property (name "edg_part") (value "TPS54202H (Texas Instruments)")) (property (name "edg_value") (value "TPS54202H")) (sheetpath (names "/reg_3v3/") (tstamps "/0aba027a/")) @@ -492,14 +504,14 @@ (property (name "edg_value") (value "5μA@1V 90Ω Single 3.6V~3.8V 350mW 3.4V SOD-123 Zener Diodes ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "0eb80301")) -(comp (ref "TU4") +(comp (ref "TU5") (value "reg_3v0.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "reg_3v0")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Tlv757p")) (property (name "edg_path") (value "reg_3v0.ic")) (property (name "edg_short_path") (value "reg_3v0.ic")) - (property (name "edg_refdes") (value "TU4")) + (property (name "edg_refdes") (value "TU5")) (property (name "edg_part") (value "TLV75730PDBVR (Texas Instruments)")) (property (name "edg_value") (value "TLV75730PDBVR")) (sheetpath (names "/reg_3v0/") (tstamps "/0ab70277/")) @@ -528,14 +540,14 @@ (property (name "edg_value") (value "50V 1uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/reg_3v0/") (tstamps "/0ab70277/")) (tstamps "0be902ec")) -(comp (ref "TU5") +(comp (ref "TU6") (value "reg_2v8.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "reg_2v8")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Tlv757p")) (property (name "edg_path") (value "reg_2v8.ic")) (property (name "edg_short_path") (value "reg_2v8.ic")) - (property (name "edg_refdes") (value "TU5")) + (property (name "edg_refdes") (value "TU6")) (property (name "edg_part") (value "TLV75728PDBVR (Texas Instruments)")) (property (name "edg_value") (value "TLV75728PDBVR")) (sheetpath (names "/reg_2v8/") (tstamps "/0abc027e/")) @@ -564,14 +576,14 @@ (property (name "edg_value") (value "50V 1uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/reg_2v8/") (tstamps "/0abc027e/")) (tstamps "0be902ec")) -(comp (ref "TU6") +(comp (ref "TU7") (value "reg_1v2.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "reg_1v2")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Tlv757p")) (property (name "edg_path") (value "reg_1v2.ic")) (property (name "edg_short_path") (value "reg_1v2.ic")) - (property (name "edg_refdes") (value "TU6")) + (property (name "edg_refdes") (value "TU7")) (property (name "edg_part") (value "TLV75712PDBVR (Texas Instruments)")) (property (name "edg_value") (value "TLV75712PDBVR")) (sheetpath (names "/reg_1v2/") (tstamps "/0ab30277/")) @@ -612,14 +624,14 @@ (property (name "edg_value") (value "")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) (tstamps "045f01b9")) -(comp (ref "TU7") +(comp (ref "TU8") (value "mcu.ic") (footprint "RF_Module:ESP32-S3-WROOM-1") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Esp32s3.Esp32s3_Wroom_1")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "TU7")) + (property (name "edg_refdes") (value "TU8")) (property (name "edg_part") (value "ESP32-S3-WROOM-1-N16R8 (Espressif Systems)")) (property (name "edg_value") (value "ESP32-S3-WROOM-1-N16R8")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -696,14 +708,14 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/ledr/") (tstamps "/041d01a8/")) (tstamps "0296014b")) -(comp (ref "TU8") +(comp (ref "TU9") (value "phy.ic") (footprint "Package_QFP:LQFP-48_7x7mm_P0.5mm") (property (name "Sheetname") (value "phy")) (property (name "Sheetfile") (value "examples.test_iot_thermal_camera.W5500")) (property (name "edg_path") (value "phy.ic")) (property (name "edg_short_path") (value "phy.ic")) - (property (name "edg_refdes") (value "TU8")) + (property (name "edg_refdes") (value "TU9")) (property (name "edg_part") (value "W5500 (Wiznet)")) (property (name "edg_value") (value "W5500")) (sheetpath (names "/phy/") (tstamps "/029c0152/")) @@ -1056,18 +1068,6 @@ (property (name "edg_value") (value "50V 10nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/phy/") (tstamps "/029c0152/")) (tstamps "0bbb02e1")) -(comp (ref "TU9") - (value "usb_esd") - (footprint "Package_TO_SOT_SMD:SOT-23") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) - (property (name "edg_path") (value "usb_esd")) - (property (name "edg_short_path") (value "usb_esd")) - (property (name "edg_refdes") (value "TU9")) - (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) - (property (name "edg_value") (value "PESD5V0X1BT")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "0bcb02e6")) (comp (ref "TR23") (value "i2c_pull.scl_res") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -1435,12 +1435,13 @@ (node (ref TJ1) (pin B1)) (node (ref TJ1) (pin B12)) (node (ref TJ1) (pin S1)) + (node (ref TU1) (pin 3)) (node (ref TC1) (pin 2)) - (node (ref TU1) (pin 5)) - (node (ref TU1) (pin 8)) + (node (ref TU2) (pin 5)) + (node (ref TU2) (pin 8)) (node (ref TTP1) (pin 1)) - (node (ref TU2) (pin 1)) - (node (ref TU2) (pin 9)) + (node (ref TU3) (pin 1)) + (node (ref TU3) (pin 9)) (node (ref TR6) (pin 2)) (node (ref TC3) (pin 2)) (node (ref TR7) (pin 1)) @@ -1448,37 +1449,37 @@ (node (ref TC6) (pin 2)) (node (ref TC7) (pin 2)) (node (ref TD2) (pin 2)) - (node (ref TU3) (pin 1)) + (node (ref TU4) (pin 1)) (node (ref TR9) (pin 2)) (node (ref TC8) (pin 2)) (node (ref TC10) (pin 2)) (node (ref TC11) (pin 2)) (node (ref TD3) (pin 2)) - (node (ref TU4) (pin 2)) + (node (ref TU5) (pin 2)) (node (ref TC12) (pin 2)) (node (ref TC13) (pin 2)) - (node (ref TU5) (pin 2)) + (node (ref TU6) (pin 2)) (node (ref TC14) (pin 2)) (node (ref TC15) (pin 2)) - (node (ref TU6) (pin 2)) + (node (ref TU7) (pin 2)) (node (ref TC16) (pin 2)) (node (ref TC17) (pin 2)) (node (ref TJ3) (pin 5)) - (node (ref TU7) (pin 1)) - (node (ref TU7) (pin 40)) - (node (ref TU7) (pin 41)) + (node (ref TU8) (pin 1)) + (node (ref TU8) (pin 40)) + (node (ref TU8) (pin 41)) (node (ref TC18) (pin 2)) (node (ref TC19) (pin 2)) (node (ref TC20) (pin 2)) (node (ref TR12) (pin 2)) - (node (ref TU8) (pin 14)) - (node (ref TU8) (pin 16)) - (node (ref TU8) (pin 19)) - (node (ref TU8) (pin 23)) - (node (ref TU8) (pin 29)) - (node (ref TU8) (pin 3)) - (node (ref TU8) (pin 48)) - (node (ref TU8) (pin 9)) + (node (ref TU9) (pin 14)) + (node (ref TU9) (pin 16)) + (node (ref TU9) (pin 19)) + (node (ref TU9) (pin 23)) + (node (ref TU9) (pin 29)) + (node (ref TU9) (pin 3)) + (node (ref TU9) (pin 48)) + (node (ref TU9) (pin 9)) (node (ref TX1) (pin 2)) (node (ref TX1) (pin 4)) (node (ref TC21) (pin 2)) @@ -1497,7 +1498,6 @@ (node (ref TC33) (pin 2)) (node (ref TC34) (pin 2)) (node (ref TC37) (pin 2)) - (node (ref TU9) (pin 3)) (node (ref TU10) (pin A2)) (node (ref TU10) (pin A6)) (node (ref TU10) (pin A7)) @@ -1544,7 +1544,7 @@ (net (code 2) (name "Tpwr") (node (ref TFB1) (pin 2)) (node (ref TTP3) (pin 1)) - (node (ref TU3) (pin 3)) + (node (ref TU4) (pin 3)) (node (ref TC8) (pin 1)) (node (ref TC10) (pin 1)) (node (ref TR10) (pin 1)) @@ -1557,24 +1557,24 @@ (node (ref TC11) (pin 1)) (node (ref TTP4) (pin 1)) (node (ref TD3) (pin 1)) - (node (ref TU4) (pin 1)) - (node (ref TU4) (pin 3)) - (node (ref TC12) (pin 1)) (node (ref TU5) (pin 1)) (node (ref TU5) (pin 3)) - (node (ref TC14) (pin 1)) + (node (ref TC12) (pin 1)) (node (ref TU6) (pin 1)) (node (ref TU6) (pin 3)) + (node (ref TC14) (pin 1)) + (node (ref TU7) (pin 1)) + (node (ref TU7) (pin 3)) (node (ref TC16) (pin 1)) (node (ref TJ3) (pin 1)) - (node (ref TU7) (pin 2)) + (node (ref TU8) (pin 2)) (node (ref TC18) (pin 1)) (node (ref TC19) (pin 1)) (node (ref TR11) (pin 1)) - (node (ref TU8) (pin 28)) - (node (ref TU8) (pin 43)) - (node (ref TU8) (pin 44)) - (node (ref TU8) (pin 45)) + (node (ref TU9) (pin 28)) + (node (ref TU9) (pin 43)) + (node (ref TU9) (pin 44)) + (node (ref TU9) (pin 45)) (node (ref TFB2) (pin 1)) (node (ref TC25) (pin 1)) (node (ref TC26) (pin 1)) @@ -1596,7 +1596,7 @@ (node (ref TJ4) (pin 1)) (node (ref TC42) (pin 1))) (net (code 4) (name "Tv3v0") - (node (ref TU4) (pin 5)) + (node (ref TU5) (pin 5)) (node (ref TC13) (pin 1)) (node (ref TJ5) (pin 11)) (node (ref TC44) (pin 1)) @@ -1606,29 +1606,19 @@ (node (ref TX2) (pin 4)) (node (ref TC50) (pin 1))) (net (code 5) (name "Tv2v8") - (node (ref TU5) (pin 5)) + (node (ref TU6) (pin 5)) (node (ref TC15) (pin 1)) (node (ref TJ5) (pin 4)) (node (ref TU13) (pin 19)) (node (ref TC49) (pin 1))) (net (code 6) (name "Tv1v2") - (node (ref TU6) (pin 5)) + (node (ref TU7) (pin 5)) (node (ref TC17) (pin 1)) (node (ref TJ5) (pin 10)) (node (ref TU13) (pin 7)) (node (ref TC47) (pin 1))) -(net (code 7) (name "Tusb_chain_0.d_P") - (node (ref TJ1) (pin A6)) - (node (ref TJ1) (pin B6)) - (node (ref TU7) (pin 14)) - (node (ref TU9) (pin 2))) -(net (code 8) (name "Tusb_chain_0.d_N") - (node (ref TJ1) (pin A7)) - (node (ref TJ1) (pin B7)) - (node (ref TU7) (pin 13)) - (node (ref TU9) (pin 1))) -(net (code 9) (name "Ti2c_chain_0.scl") - (node (ref TU7) (pin 33)) +(net (code 7) (name "Ti2c_chain_0.scl") + (node (ref TU8) (pin 33)) (node (ref TR23) (pin 2)) (node (ref TTP5) (pin 1)) (node (ref TU10) (pin C4)) @@ -1636,8 +1626,8 @@ (node (ref TU12) (pin 12)) (node (ref TJ5) (pin 5)) (node (ref TU13) (pin 21))) -(net (code 10) (name "Ti2c_chain_0.sda") - (node (ref TU7) (pin 32)) +(net (code 8) (name "Ti2c_chain_0.sda") + (node (ref TU8) (pin 32)) (node (ref TR24) (pin 2)) (node (ref TTP6) (pin 1)) (node (ref TU10) (pin C3)) @@ -1645,7 +1635,7 @@ (node (ref TU12) (pin 11)) (node (ref TJ5) (pin 3)) (node (ref TU13) (pin 22))) -(net (code 11) (name "Tusb.pwr") +(net (code 9) (name "Tusb.pwr") (node (ref TJ1) (pin A4)) (node (ref TJ1) (pin A9)) (node (ref TJ1) (pin B4)) @@ -1656,6 +1646,16 @@ (node (ref TD2) (pin 1)) (node (ref TFB1) (pin 1)) (node (ref TU11) (pin 2))) +(net (code 10) (name "Tusb.usb.dp") + (node (ref TJ1) (pin A6)) + (node (ref TJ1) (pin B6)) + (node (ref TU1) (pin 2)) + (node (ref TU8) (pin 14))) +(net (code 11) (name "Tusb.usb.dm") + (node (ref TJ1) (pin A7)) + (node (ref TJ1) (pin B7)) + (node (ref TU1) (pin 1)) + (node (ref TU8) (pin 13))) (net (code 12) (name "Tusb.cc.cc1") (node (ref TJ1) (pin A5)) (node (ref TU11) (pin 10)) @@ -1709,107 +1709,107 @@ (node (ref TJ2) (pin SH)) (node (ref TC1) (pin 1))) (net (code 27) (name "Tpoe.pwr_out") - (node (ref TU1) (pin 1)) + (node (ref TU2) (pin 1)) (node (ref TR4) (pin 1)) (node (ref TC2) (pin 1)) (node (ref TD1) (pin 1)) (node (ref TJP1) (pin 2)) (node (ref TTP2) (pin 1)) - (node (ref TU2) (pin 2)) - (node (ref TU2) (pin 3)) + (node (ref TU3) (pin 2)) + (node (ref TU3) (pin 3)) (node (ref TC3) (pin 1)) (node (ref TC5) (pin 1)) (node (ref TC6) (pin 1))) (net (code 28) (name "Tpoe.poe.neg") - (node (ref TU1) (pin 4)) - (node (ref TU1) (pin 9)) + (node (ref TU2) (pin 4)) + (node (ref TU2) (pin 9)) (node (ref TR3) (pin 1)) (node (ref TC2) (pin 2)) (node (ref TD1) (pin 2)) (node (ref TJP2) (pin 2))) (net (code 29) (name "Tpoe.cdb") - (node (ref TU1) (pin 6))) + (node (ref TU2) (pin 6))) (net (code 30) (name "Tpoe.t2p") - (node (ref TU1) (pin 7))) + (node (ref TU2) (pin 7))) (net (code 31) (name "Tpoe.ic.den") - (node (ref TU1) (pin 2)) + (node (ref TU2) (pin 2)) (node (ref TR4) (pin 2))) (net (code 32) (name "Tpoe.ic.cls") - (node (ref TU1) (pin 3)) + (node (ref TU2) (pin 3)) (node (ref TR3) (pin 2))) (net (code 33) (name "Treg_poe.pg") - (node (ref TU2) (pin 6))) + (node (ref TU3) (pin 6))) (net (code 34) (name "Treg_poe.ic.sw") - (node (ref TU2) (pin 8)) + (node (ref TU3) (pin 8)) (node (ref TC4) (pin 2)) (node (ref TL1) (pin 1))) (net (code 35) (name "Treg_poe.ic.fb") - (node (ref TU2) (pin 5)) + (node (ref TU3) (pin 5)) (node (ref TR5) (pin 2)) (node (ref TR6) (pin 1))) (net (code 36) (name "Treg_poe.ic.boot") - (node (ref TU2) (pin 7)) + (node (ref TU3) (pin 7)) (node (ref TC4) (pin 1))) (net (code 37) (name "Treg_poe.ic.rt") - (node (ref TU2) (pin 4)) + (node (ref TU3) (pin 4)) (node (ref TR7) (pin 2))) (net (code 38) (name "Treg_3v3.ic.sw") - (node (ref TU3) (pin 2)) + (node (ref TU4) (pin 2)) (node (ref TC9) (pin 2)) (node (ref TL2) (pin 1))) (net (code 39) (name "Treg_3v3.ic.fb") - (node (ref TU3) (pin 4)) + (node (ref TU4) (pin 4)) (node (ref TR8) (pin 2)) (node (ref TR9) (pin 1))) (net (code 40) (name "Treg_3v3.ic.boot") - (node (ref TU3) (pin 6)) + (node (ref TU4) (pin 6)) (node (ref TC9) (pin 1))) (net (code 41) (name "Treg_3v3.ic.en") - (node (ref TU3) (pin 5)) + (node (ref TU4) (pin 5)) (node (ref TR10) (pin 2))) (net (code 42) (name "Tmcu.program_uart_node.a_tx") (node (ref TJ3) (pin 4)) - (node (ref TU7) (pin 36))) + (node (ref TU8) (pin 36))) (net (code 43) (name "Tmcu.program_uart_node.b_tx") (node (ref TJ3) (pin 3)) - (node (ref TU7) (pin 37))) + (node (ref TU8) (pin 37))) (net (code 44) (name "Tmcu.program_en_node") (node (ref TJ3) (pin 6)) - (node (ref TU7) (pin 3)) + (node (ref TU8) (pin 3)) (node (ref TR11) (pin 2)) (node (ref TC20) (pin 1))) (net (code 45) (name "Tmcu.program_boot_node") (node (ref TJ3) (pin 2)) - (node (ref TU7) (pin 27)) + (node (ref TU8) (pin 27)) (node (ref TD4) (pin 2))) (net (code 46) (name "Tledr.package.k") (node (ref TD4) (pin 1)) (node (ref TR12) (pin 1))) (net (code 47) (name "Tphy.reset") - (node (ref TU8) (pin 37))) + (node (ref TU9) (pin 37))) (net (code 48) (name "Tphy.spi.sck") - (node (ref TU7) (pin 9)) - (node (ref TU8) (pin 33))) + (node (ref TU8) (pin 9)) + (node (ref TU9) (pin 33))) (net (code 49) (name "Tphy.spi.mosi") - (node (ref TU7) (pin 8)) - (node (ref TU8) (pin 35))) + (node (ref TU8) (pin 8)) + (node (ref TU9) (pin 35))) (net (code 50) (name "Tphy.spi.miso") - (node (ref TU7) (pin 7)) - (node (ref TU8) (pin 34))) + (node (ref TU8) (pin 7)) + (node (ref TU9) (pin 34))) (net (code 51) (name "Tphy.cs") - (node (ref TU7) (pin 35)) - (node (ref TU8) (pin 32))) + (node (ref TU8) (pin 35)) + (node (ref TU9) (pin 32))) (net (code 52) (name "Tphy.int") - (node (ref TU7) (pin 31)) - (node (ref TU8) (pin 36)) + (node (ref TU8) (pin 31)) + (node (ref TU9) (pin 36)) (node (ref TU11) (pin 5))) (net (code 53) (name "Tphy.ic.avdd") - (node (ref TU8) (pin 11)) - (node (ref TU8) (pin 15)) - (node (ref TU8) (pin 17)) - (node (ref TU8) (pin 21)) - (node (ref TU8) (pin 4)) - (node (ref TU8) (pin 8)) + (node (ref TU9) (pin 11)) + (node (ref TU9) (pin 15)) + (node (ref TU9) (pin 17)) + (node (ref TU9) (pin 21)) + (node (ref TU9) (pin 4)) + (node (ref TU9) (pin 8)) (node (ref TFB2) (pin 2)) (node (ref TC27) (pin 1)) (node (ref TC28) (pin 1)) @@ -1822,33 +1822,33 @@ (node (ref TR19) (pin 1)) (node (ref TR20) (pin 1))) (net (code 54) (name "Tphy.ic.v1v20") - (node (ref TU8) (pin 22)) + (node (ref TU9) (pin 22)) (node (ref TC23) (pin 1))) (net (code 55) (name "Tphy.ic.tocap") - (node (ref TU8) (pin 20)) + (node (ref TU9) (pin 20)) (node (ref TC24) (pin 1))) (net (code 56) (name "Tphy.ic.exres1") - (node (ref TU8) (pin 10)) + (node (ref TU9) (pin 10)) (node (ref TR13) (pin 2))) (net (code 57) (name "Tphy.ic.crystal.xtal_in") - (node (ref TU8) (pin 30)) + (node (ref TU9) (pin 30)) (node (ref TX1) (pin 1)) (node (ref TC21) (pin 1))) (net (code 58) (name "Tphy.ic.crystal.xtal_out") - (node (ref TU8) (pin 31)) + (node (ref TU9) (pin 31)) (node (ref TX1) (pin 3)) (node (ref TC22) (pin 1))) (net (code 59) (name "Tphy.ic.txp") - (node (ref TU8) (pin 2)) + (node (ref TU9) (pin 2)) (node (ref TR14) (pin 1))) (net (code 60) (name "Tphy.ic.txn") - (node (ref TU8) (pin 1)) + (node (ref TU9) (pin 1)) (node (ref TR15) (pin 1))) (net (code 61) (name "Tphy.ic.rxp") - (node (ref TU8) (pin 6)) + (node (ref TU9) (pin 6)) (node (ref TR16) (pin 1))) (net (code 62) (name "Tphy.ic.rxn") - (node (ref TU8) (pin 5)) + (node (ref TU9) (pin 5)) (node (ref TR17) (pin 1))) (net (code 63) (name "Tphy.rxp_damp.b") (node (ref TR16) (pin 2)) @@ -1889,44 +1889,44 @@ (node (ref TR29) (pin 2)) (node (ref TR30) (pin 1))) (net (code 75) (name "Tcam.dvp8.xclk") - (node (ref TU7) (pin 21)) + (node (ref TU8) (pin 21)) (node (ref TJ5) (pin 13))) (net (code 76) (name "Tcam.dvp8.pclk") - (node (ref TU7) (pin 19)) + (node (ref TU8) (pin 19)) (node (ref TJ5) (pin 17)) (node (ref TC46) (pin 1))) (net (code 77) (name "Tcam.dvp8.href") - (node (ref TU7) (pin 23)) + (node (ref TU8) (pin 23)) (node (ref TJ5) (pin 9))) (net (code 78) (name "Tcam.dvp8.vsync") - (node (ref TU7) (pin 24)) + (node (ref TU8) (pin 24)) (node (ref TJ5) (pin 7))) (net (code 79) (name "Tcam.dvp8.y0") - (node (ref TU7) (pin 18)) + (node (ref TU8) (pin 18)) (node (ref TJ5) (pin 19))) (net (code 80) (name "Tcam.dvp8.y1") - (node (ref TU7) (pin 17)) + (node (ref TU8) (pin 17)) (node (ref TJ5) (pin 21))) (net (code 81) (name "Tcam.dvp8.y2") - (node (ref TU7) (pin 12)) + (node (ref TU8) (pin 12)) (node (ref TJ5) (pin 22))) (net (code 82) (name "Tcam.dvp8.y3") - (node (ref TU7) (pin 11)) + (node (ref TU8) (pin 11)) (node (ref TJ5) (pin 20))) (net (code 83) (name "Tcam.dvp8.y4") - (node (ref TU7) (pin 10)) + (node (ref TU8) (pin 10)) (node (ref TJ5) (pin 18))) (net (code 84) (name "Tcam.dvp8.y5") - (node (ref TU7) (pin 15)) + (node (ref TU8) (pin 15)) (node (ref TJ5) (pin 16))) (net (code 85) (name "Tcam.dvp8.y6") - (node (ref TU7) (pin 20)) + (node (ref TU8) (pin 20)) (node (ref TJ5) (pin 14))) (net (code 86) (name "Tcam.dvp8.y7") - (node (ref TU7) (pin 22)) + (node (ref TU8) (pin 22)) (node (ref TJ5) (pin 12))) (net (code 87) (name "Tcam.reset") - (node (ref TU7) (pin 25)) + (node (ref TU8) (pin 25)) (node (ref TJ5) (pin 6)) (node (ref TC45) (pin 1)) (node (ref TU13) (pin 24))) @@ -1935,22 +1935,22 @@ (net (code 89) (name "Tcam.device.y.1") (node (ref TJ5) (pin 23))) (net (code 90) (name "Tflir.shutdown") - (node (ref TU7) (pin 34)) + (node (ref TU8) (pin 34)) (node (ref TU13) (pin 23))) (net (code 91) (name "Tflir.spi.sck") - (node (ref TU7) (pin 39)) + (node (ref TU8) (pin 39)) (node (ref TU13) (pin 13))) (net (code 92) (name "Tflir.spi.mosi") - (node (ref TU7) (pin 5)) + (node (ref TU8) (pin 5)) (node (ref TU13) (pin 11))) (net (code 93) (name "Tflir.spi.miso") - (node (ref TU7) (pin 4)) + (node (ref TU8) (pin 4)) (node (ref TU13) (pin 12))) (net (code 94) (name "Tflir.cs") - (node (ref TU7) (pin 38)) + (node (ref TU8) (pin 38)) (node (ref TU13) (pin 14))) (net (code 95) (name "Tflir.vsync") - (node (ref TU7) (pin 6)) + (node (ref TU8) (pin 6)) (node (ref TU13) (pin 2))) (net (code 96) (name "Tflir.ic.master_clk") (node (ref TU13) (pin 26)) diff --git a/examples/IotThermalCamera/IotThermalCamera.svgpcb.js b/examples/IotThermalCamera/IotThermalCamera.svgpcb.js index 561bd0db3..0a80bfc23 100644 --- a/examples/IotThermalCamera/IotThermalCamera.svgpcb.js +++ b/examples/IotThermalCamera/IotThermalCamera.svgpcb.js @@ -2,24 +2,29 @@ const board = new PCB(); // jlc_th.th1 const TH1 = board.add(JlcToolingHole_1_152mm, { - translate: pt(3.379, 3.103), rotate: 0, + translate: pt(2.313, 3.103), rotate: 0, id: 'TH1' }) // jlc_th.th2 const TH2 = board.add(JlcToolingHole_1_152mm, { - translate: pt(3.418, 3.103), rotate: 0, + translate: pt(2.352, 3.103), rotate: 0, id: 'TH2' }) // jlc_th.th3 const TH3 = board.add(JlcToolingHole_1_152mm, { - translate: pt(3.379, 3.143), rotate: 0, + translate: pt(2.313, 3.143), rotate: 0, id: 'TH3' }) // usb.conn const TJ1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(1.825, 2.719), rotate: 0, + translate: pt(2.167, 1.905), rotate: 0, id: 'TJ1' }) +// usb.esd +const TU1 = board.add(SOT_23, { + translate: pt(2.033, 2.198), rotate: 0, + id: 'TU1' +}) // eth.conn const TJ2 = board.add(RJ45_Wuerth_7499111446_Horizontal, { translate: pt(2.527, 0.798), rotate: 0, @@ -41,54 +46,54 @@ const TC1 = board.add(C_1206_3216Metric, { id: 'TC1' }) // poe.ic -const TU1 = board.add(HSOP_8_1EP_3_9x4_9mm_P1_27mm_EP2_41x3_1mm_ThermalVias, { - translate: pt(2.779, 1.846), rotate: 0, - id: 'TU1' +const TU2 = board.add(HSOP_8_1EP_3_9x4_9mm_P1_27mm_EP2_41x3_1mm_ThermalVias, { + translate: pt(3.316, 1.846), rotate: 0, + id: 'TU2' }) // poe.cls.res const TR3 = board.add(R_0603_1608Metric, { - translate: pt(2.691, 2.198), rotate: 0, + translate: pt(3.228, 2.198), rotate: 0, id: 'TR3' }) // poe.den const TR4 = board.add(R_0603_1608Metric, { - translate: pt(2.847, 2.198), rotate: 0, + translate: pt(3.384, 2.198), rotate: 0, id: 'TR4' }) // poe.vdd_cap.cap const TC2 = board.add(C_0805_2012Metric, { - translate: pt(3.015, 2.031), rotate: 0, + translate: pt(3.552, 2.031), rotate: 0, id: 'TC2' }) // poe.prot.diode const TD1 = board.add(D_SMA, { - translate: pt(2.771, 2.061), rotate: 0, + translate: pt(3.308, 2.061), rotate: 0, id: 'TD1' }) // poe_jmp.pos const TJP1 = board.add(SolderJumper_2_P1_3mm_Open_TrianglePad1_0x1_5mm, { - translate: pt(3.038, 2.604), rotate: 0, + translate: pt(2.501, 2.604), rotate: 0, id: 'TJP1' }) // poe_jmp.neg const TJP2 = board.add(SolderJumper_2_P1_3mm_Open_TrianglePad1_0x1_5mm, { - translate: pt(3.038, 2.741), rotate: 0, + translate: pt(2.501, 2.741), rotate: 0, id: 'TJP2' }) // tp_gnd.tp const TTP1 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.018, 3.141), rotate: 0, + translate: pt(1.143, 3.141), rotate: 0, id: 'TTP1' }) // tp_poe.tp const TTP2 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.269, 3.141), rotate: 0, + translate: pt(1.393, 3.141), rotate: 0, id: 'TTP2' }) // reg_poe.ic -const TU2 = board.add(HSOP_8_1EP_3_9x4_9mm_P1_27mm_EP2_41x3_1mm_ThermalVias, { +const TU3 = board.add(HSOP_8_1EP_3_9x4_9mm_P1_27mm_EP2_41x3_1mm_ThermalVias, { translate: pt(0.406, 2.661), rotate: 0, - id: 'TU2' + id: 'TU3' }) // reg_poe.fb.div.top_res const TR5 = board.add(R_0603_1608Metric, { @@ -137,117 +142,117 @@ const TC7 = board.add(C_0805_2012Metric, { }) // prot_v5.diode const TD2 = board.add(D_SOD_123, { - translate: pt(1.438, 3.148), rotate: 0, + translate: pt(0.562, 3.148), rotate: 0, id: 'TD2' }) // choke.fb const TFB1 = board.add(L_0603_1608Metric, { - translate: pt(3.012, 3.132), rotate: 0, + translate: pt(2.136, 3.132), rotate: 0, id: 'TFB1' }) // tp_pwr.tp const TTP3 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.519, 3.141), rotate: 0, + translate: pt(1.643, 3.141), rotate: 0, id: 'TTP3' }) // reg_3v3.ic -const TU3 = board.add(SOT_23_6, { - translate: pt(2.259, 1.807), rotate: 0, - id: 'TU3' +const TU4 = board.add(SOT_23_6, { + translate: pt(2.796, 1.807), rotate: 0, + id: 'TU4' }) // reg_3v3.fb.div.top_res const TR8 = board.add(R_0603_1608Metric, { - translate: pt(2.457, 1.986), rotate: 0, + translate: pt(2.994, 1.986), rotate: 0, id: 'TR8' }) // reg_3v3.fb.div.bottom_res const TR9 = board.add(R_0603_1608Metric, { - translate: pt(2.016, 2.116), rotate: 0, + translate: pt(2.553, 2.116), rotate: 0, id: 'TR9' }) // reg_3v3.hf_in_cap.cap const TC8 = board.add(C_0603_1608Metric, { - translate: pt(2.172, 2.116), rotate: 0, + translate: pt(2.709, 2.116), rotate: 0, id: 'TC8' }) // reg_3v3.boot_cap.cap const TC9 = board.add(C_0603_1608Metric, { - translate: pt(2.328, 2.116), rotate: 0, + translate: pt(2.865, 2.116), rotate: 0, id: 'TC9' }) // reg_3v3.power_path.inductor const TL2 = board.add(L_Sunlord_SWPA4030S, { - translate: pt(2.048, 1.829), rotate: 0, + translate: pt(2.585, 1.829), rotate: 0, id: 'TL2' }) // reg_3v3.power_path.in_cap.cap const TC10 = board.add(C_1206_3216Metric, { - translate: pt(2.048, 2.003), rotate: 0, + translate: pt(2.585, 2.003), rotate: 0, id: 'TC10' }) // reg_3v3.power_path.out_cap.cap const TC11 = board.add(C_1206_3216Metric, { - translate: pt(2.269, 2.003), rotate: 0, + translate: pt(2.806, 2.003), rotate: 0, id: 'TC11' }) // reg_3v3.en_res.res const TR10 = board.add(R_0603_1608Metric, { - translate: pt(2.016, 2.213), rotate: 0, + translate: pt(2.553, 2.213), rotate: 0, id: 'TR10' }) // tp_3v3.tp const TTP4 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.769, 3.141), rotate: 0, + translate: pt(1.894, 3.141), rotate: 0, id: 'TTP4' }) // prot_3v3.diode const TD3 = board.add(D_SOD_123, { - translate: pt(1.742, 3.148), rotate: 0, + translate: pt(0.866, 3.148), rotate: 0, id: 'TD3' }) // reg_3v0.ic -const TU4 = board.add(SOT_23_5, { - translate: pt(3.302, 2.621), rotate: 0, - id: 'TU4' +const TU5 = board.add(SOT_23_5, { + translate: pt(2.765, 2.621), rotate: 0, + id: 'TU5' }) // reg_3v0.in_cap.cap const TC12 = board.add(C_0603_1608Metric, { - translate: pt(3.280, 2.756), rotate: 0, + translate: pt(2.743, 2.756), rotate: 0, id: 'TC12' }) // reg_3v0.out_cap.cap const TC13 = board.add(C_0603_1608Metric, { - translate: pt(3.435, 2.756), rotate: 0, + translate: pt(2.898, 2.756), rotate: 0, id: 'TC13' }) // reg_2v8.ic -const TU5 = board.add(SOT_23_5, { - translate: pt(3.693, 2.621), rotate: 0, - id: 'TU5' +const TU6 = board.add(SOT_23_5, { + translate: pt(3.156, 2.621), rotate: 0, + id: 'TU6' }) // reg_2v8.in_cap.cap const TC14 = board.add(C_0603_1608Metric, { - translate: pt(3.670, 2.756), rotate: 0, + translate: pt(3.133, 2.756), rotate: 0, id: 'TC14' }) // reg_2v8.out_cap.cap const TC15 = board.add(C_0603_1608Metric, { - translate: pt(3.826, 2.756), rotate: 0, + translate: pt(3.289, 2.756), rotate: 0, id: 'TC15' }) // reg_1v2.ic -const TU6 = board.add(SOT_23_5, { - translate: pt(0.081, 3.170), rotate: 0, - id: 'TU6' +const TU7 = board.add(SOT_23_5, { + translate: pt(3.546, 2.621), rotate: 0, + id: 'TU7' }) // reg_1v2.in_cap.cap const TC16 = board.add(C_0603_1608Metric, { - translate: pt(0.058, 3.305), rotate: 0, + translate: pt(3.524, 2.756), rotate: 0, id: 'TC16' }) // reg_1v2.out_cap.cap const TC17 = board.add(C_0603_1608Metric, { - translate: pt(0.214, 3.305), rotate: 0, + translate: pt(3.680, 2.756), rotate: 0, id: 'TC17' }) // mcu.prog.conn @@ -256,9 +261,9 @@ const TJ3 = board.add(Tag_Connect_TC2030_IDC_NL_2x03_P1_27mm_Vertical, { id: 'TJ3' }) // mcu.ic -const TU7 = board.add(ESP32_S3_WROOM_1, { +const TU8 = board.add(ESP32_S3_WROOM_1, { translate: pt(0.945, 0.530), rotate: 0, - id: 'TU7' + id: 'TU8' }) // mcu.vcc_cap0.cap const TC18 = board.add(C_1206_3216Metric, { @@ -282,18 +287,18 @@ const TC20 = board.add(C_0603_1608Metric, { }) // ledr.package const TD4 = board.add(LED_0603_1608Metric, { - translate: pt(0.699, 3.132), rotate: 0, + translate: pt(4.165, 2.583), rotate: 0, id: 'TD4' }) // ledr.res const TR12 = board.add(R_0603_1608Metric, { - translate: pt(0.699, 3.229), rotate: 0, + translate: pt(4.165, 2.680), rotate: 0, id: 'TR12' }) // phy.ic -const TU8 = board.add(LQFP_48_7x7mm_P0_5mm, { +const TU9 = board.add(LQFP_48_7x7mm_P0_5mm, { translate: pt(0.203, 1.943), rotate: 0, - id: 'TU8' + id: 'TU9' }) // phy.l.fb const TFB2 = board.add(L_0603_1608Metric, { @@ -440,109 +445,104 @@ const TC37 = board.add(C_0603_1608Metric, { translate: pt(0.526, 2.407), rotate: 0, id: 'TC37' }) -// usb_esd -const TU9 = board.add(SOT_23, { - translate: pt(3.264, 3.170), rotate: 0, - id: 'TU9' -}) // i2c_pull.scl_res.res const TR23 = board.add(R_0603_1608Metric, { - translate: pt(0.934, 3.132), rotate: 0, + translate: pt(0.058, 3.132), rotate: 0, id: 'TR23' }) // i2c_pull.sda_res.res const TR24 = board.add(R_0603_1608Metric, { - translate: pt(0.934, 3.229), rotate: 0, + translate: pt(0.058, 3.229), rotate: 0, id: 'TR24' }) // i2c_tp.tp_scl.tp const TTP5 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(0.457, 3.141), rotate: 0, + translate: pt(3.922, 2.592), rotate: 0, id: 'TTP5' }) // i2c_tp.tp_sda.tp const TTP6 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(0.457, 3.255), rotate: 0, + translate: pt(3.922, 2.706), rotate: 0, id: 'TTP6' }) // dist.ic const TU10 = board.add(ST_VL53L5x, { - translate: pt(2.465, 2.768), rotate: 0, + translate: pt(1.928, 2.768), rotate: 0, id: 'TU10' }) // dist.avdd_cap.cap const TC38 = board.add(C_0805_2012Metric, { - translate: pt(2.220, 2.593), rotate: 0, + translate: pt(1.683, 2.593), rotate: 0, id: 'TC38' }) // dist.iovdd_cap.cap const TC39 = board.add(C_0603_1608Metric, { - translate: pt(2.384, 2.583), rotate: 0, + translate: pt(1.847, 2.583), rotate: 0, id: 'TC39' }) // dist.lpn_pull.res const TR25 = board.add(R_0603_1608Metric, { - translate: pt(2.211, 2.700), rotate: 0, + translate: pt(1.674, 2.700), rotate: 0, id: 'TR25' }) // dist.rsvd6_pull.res const TR26 = board.add(R_0603_1608Metric, { - translate: pt(2.367, 2.700), rotate: 0, + translate: pt(1.830, 2.700), rotate: 0, id: 'TR26' }) // dist.i2c_rst_pull.res const TR27 = board.add(R_0603_1608Metric, { - translate: pt(2.211, 2.796), rotate: 0, + translate: pt(1.674, 2.796), rotate: 0, id: 'TR27' }) // dist.int_pull.res const TR28 = board.add(R_0603_1608Metric, { - translate: pt(2.367, 2.796), rotate: 0, + translate: pt(1.830, 2.796), rotate: 0, id: 'TR28' }) // pd.ic const TU11 = board.add(WQFN_14_1EP_2_5x2_5mm_P0_5mm_EP1_45x1_45mm, { - translate: pt(2.656, 2.627), rotate: 0, + translate: pt(2.119, 2.627), rotate: 0, id: 'TU11' }) // pd.vdd_cap[0].cap const TC40 = board.add(C_0603_1608Metric, { - translate: pt(2.641, 2.768), rotate: 0, + translate: pt(2.104, 2.768), rotate: 0, id: 'TC40' }) // pd.vdd_cap[1].cap const TC41 = board.add(C_0603_1608Metric, { - translate: pt(2.797, 2.768), rotate: 0, + translate: pt(2.260, 2.768), rotate: 0, id: 'TC41' }) // ioe.ic const TU12 = board.add(TSSOP_20_4_4x6_5mm_P0_65mm, { - translate: pt(3.352, 1.878), rotate: 0, + translate: pt(3.889, 1.878), rotate: 0, id: 'TU12' }) // ioe.sdi.conn const TJ4 = board.add(Tag_Connect_TC2030_IDC_NL_2x03_P1_27mm_Vertical, { - translate: pt(3.338, 2.134), rotate: 0, + translate: pt(3.875, 2.134), rotate: 0, id: 'TJ4' }) // ioe.vdd_cap.cap const TC42 = board.add(C_0603_1608Metric, { - translate: pt(3.574, 2.084), rotate: 0, + translate: pt(4.111, 2.084), rotate: 0, id: 'TC42' }) // ioe.reset_cap.cap const TC43 = board.add(C_0603_1608Metric, { - translate: pt(3.574, 2.181), rotate: 0, + translate: pt(4.111, 2.181), rotate: 0, id: 'TC43' }) // poe_sense.div.top_res const TR29 = board.add(R_0603_1608Metric, { - translate: pt(1.169, 3.132), rotate: 0, + translate: pt(0.293, 3.132), rotate: 0, id: 'TR29' }) // poe_sense.div.bottom_res const TR30 = board.add(R_0603_1608Metric, { - translate: pt(1.169, 3.229), rotate: 0, + translate: pt(0.293, 3.229), rotate: 0, id: 'TR30' }) // cam.device.conn.conn @@ -597,17 +597,17 @@ const TC50 = board.add(C_0603_1608Metric, { }) board.setNetlist([ - {name: "gnd", pads: [["TJ1", "A1"], ["TJ1", "A12"], ["TJ1", "B1"], ["TJ1", "B12"], ["TJ1", "S1"], ["TC1", "2"], ["TU1", "5"], ["TU1", "8"], ["TTP1", "1"], ["TU2", "1"], ["TU2", "9"], ["TR6", "2"], ["TC3", "2"], ["TR7", "1"], ["TC5", "2"], ["TC6", "2"], ["TC7", "2"], ["TD2", "2"], ["TU3", "1"], ["TR9", "2"], ["TC8", "2"], ["TC10", "2"], ["TC11", "2"], ["TD3", "2"], ["TU4", "2"], ["TC12", "2"], ["TC13", "2"], ["TU5", "2"], ["TC14", "2"], ["TC15", "2"], ["TU6", "2"], ["TC16", "2"], ["TC17", "2"], ["TJ3", "5"], ["TU7", "1"], ["TU7", "40"], ["TU7", "41"], ["TC18", "2"], ["TC19", "2"], ["TC20", "2"], ["TR12", "2"], ["TU8", "14"], ["TU8", "16"], ["TU8", "19"], ["TU8", "23"], ["TU8", "29"], ["TU8", "3"], ["TU8", "48"], ["TU8", "9"], ["TX1", "2"], ["TX1", "4"], ["TC21", "2"], ["TC22", "2"], ["TR13", "1"], ["TC23", "2"], ["TC24", "2"], ["TC25", "2"], ["TC26", "2"], ["TC27", "2"], ["TC28", "2"], ["TC29", "2"], ["TC30", "2"], ["TC31", "2"], ["TC32", "2"], ["TC33", "2"], ["TC34", "2"], ["TC37", "2"], ["TU9", "3"], ["TU10", "A2"], ["TU10", "A6"], ["TU10", "A7"], ["TU10", "B4"], ["TU10", "C1"], ["TU10", "C6"], ["TU10", "C7"], ["TC38", "2"], ["TC39", "2"], ["TR27", "1"], ["TU11", "15"], ["TU11", "8"], ["TU11", "9"], ["TC40", "2"], ["TC41", "2"], ["TU12", "7"], ["TJ4", "5"], ["TC42", "2"], ["TC43", "2"], ["TR30", "2"], ["TJ5", "15"], ["TJ5", "2"], ["TJ5", "8"], ["TC44", "2"], ["TC45", "2"], ["TC46", "2"], ["TU13", "1"], ["TU13", "10"], ["TU13", "15"], ["TU13", "18"], ["TU13", "20"], ["TU13", "25"], ["TU13", "27"], ["TU13", "30"], ["TU13", "33"], ["TU13", "6"], ["TU13", "8"], ["TU13", "9"], ["TC47", "2"], ["TC48", "2"], ["TC49", "2"], ["TX2", "2"], ["TC50", "2"]]}, - {name: "pwr", pads: [["TFB1", "2"], ["TTP3", "1"], ["TU3", "3"], ["TC8", "1"], ["TC10", "1"], ["TR10", "1"], ["TR29", "1"]]}, - {name: "v3v3", pads: [["TJ2", "11"], ["TJ2", "13"], ["TR8", "1"], ["TL2", "2"], ["TC11", "1"], ["TTP4", "1"], ["TD3", "1"], ["TU4", "1"], ["TU4", "3"], ["TC12", "1"], ["TU5", "1"], ["TU5", "3"], ["TC14", "1"], ["TU6", "1"], ["TU6", "3"], ["TC16", "1"], ["TJ3", "1"], ["TU7", "2"], ["TC18", "1"], ["TC19", "1"], ["TR11", "1"], ["TU8", "28"], ["TU8", "43"], ["TU8", "44"], ["TU8", "45"], ["TFB2", "1"], ["TC25", "1"], ["TC26", "1"], ["TR23", "1"], ["TR24", "1"], ["TU10", "A4"], ["TU10", "B1"], ["TU10", "B7"], ["TC38", "1"], ["TC39", "1"], ["TR25", "1"], ["TR26", "1"], ["TR28", "1"], ["TU11", "3"], ["TU11", "4"], ["TC40", "1"], ["TC41", "1"], ["TU12", "9"], ["TJ4", "1"], ["TC42", "1"]]}, - {name: "v3v0", pads: [["TU4", "5"], ["TC13", "1"], ["TJ5", "11"], ["TC44", "1"], ["TU13", "16"], ["TC48", "1"], ["TX2", "1"], ["TX2", "4"], ["TC50", "1"]]}, - {name: "v2v8", pads: [["TU5", "5"], ["TC15", "1"], ["TJ5", "4"], ["TU13", "19"], ["TC49", "1"]]}, - {name: "v1v2", pads: [["TU6", "5"], ["TC17", "1"], ["TJ5", "10"], ["TU13", "7"], ["TC47", "1"]]}, - {name: "usb_chain_0.d_P", pads: [["TJ1", "A6"], ["TJ1", "B6"], ["TU7", "14"], ["TU9", "2"]]}, - {name: "usb_chain_0.d_N", pads: [["TJ1", "A7"], ["TJ1", "B7"], ["TU7", "13"], ["TU9", "1"]]}, - {name: "i2c_chain_0.scl", pads: [["TU7", "33"], ["TR23", "2"], ["TTP5", "1"], ["TU10", "C4"], ["TU11", "6"], ["TU12", "12"], ["TJ5", "5"], ["TU13", "21"]]}, - {name: "i2c_chain_0.sda", pads: [["TU7", "32"], ["TR24", "2"], ["TTP6", "1"], ["TU10", "C3"], ["TU11", "7"], ["TU12", "11"], ["TJ5", "3"], ["TU13", "22"]]}, + {name: "gnd", pads: [["TJ1", "A1"], ["TJ1", "A12"], ["TJ1", "B1"], ["TJ1", "B12"], ["TJ1", "S1"], ["TU1", "3"], ["TC1", "2"], ["TU2", "5"], ["TU2", "8"], ["TTP1", "1"], ["TU3", "1"], ["TU3", "9"], ["TR6", "2"], ["TC3", "2"], ["TR7", "1"], ["TC5", "2"], ["TC6", "2"], ["TC7", "2"], ["TD2", "2"], ["TU4", "1"], ["TR9", "2"], ["TC8", "2"], ["TC10", "2"], ["TC11", "2"], ["TD3", "2"], ["TU5", "2"], ["TC12", "2"], ["TC13", "2"], ["TU6", "2"], ["TC14", "2"], ["TC15", "2"], ["TU7", "2"], ["TC16", "2"], ["TC17", "2"], ["TJ3", "5"], ["TU8", "1"], ["TU8", "40"], ["TU8", "41"], ["TC18", "2"], ["TC19", "2"], ["TC20", "2"], ["TR12", "2"], ["TU9", "14"], ["TU9", "16"], ["TU9", "19"], ["TU9", "23"], ["TU9", "29"], ["TU9", "3"], ["TU9", "48"], ["TU9", "9"], ["TX1", "2"], ["TX1", "4"], ["TC21", "2"], ["TC22", "2"], ["TR13", "1"], ["TC23", "2"], ["TC24", "2"], ["TC25", "2"], ["TC26", "2"], ["TC27", "2"], ["TC28", "2"], ["TC29", "2"], ["TC30", "2"], ["TC31", "2"], ["TC32", "2"], ["TC33", "2"], ["TC34", "2"], ["TC37", "2"], ["TU10", "A2"], ["TU10", "A6"], ["TU10", "A7"], ["TU10", "B4"], ["TU10", "C1"], ["TU10", "C6"], ["TU10", "C7"], ["TC38", "2"], ["TC39", "2"], ["TR27", "1"], ["TU11", "15"], ["TU11", "8"], ["TU11", "9"], ["TC40", "2"], ["TC41", "2"], ["TU12", "7"], ["TJ4", "5"], ["TC42", "2"], ["TC43", "2"], ["TR30", "2"], ["TJ5", "15"], ["TJ5", "2"], ["TJ5", "8"], ["TC44", "2"], ["TC45", "2"], ["TC46", "2"], ["TU13", "1"], ["TU13", "10"], ["TU13", "15"], ["TU13", "18"], ["TU13", "20"], ["TU13", "25"], ["TU13", "27"], ["TU13", "30"], ["TU13", "33"], ["TU13", "6"], ["TU13", "8"], ["TU13", "9"], ["TC47", "2"], ["TC48", "2"], ["TC49", "2"], ["TX2", "2"], ["TC50", "2"]]}, + {name: "pwr", pads: [["TFB1", "2"], ["TTP3", "1"], ["TU4", "3"], ["TC8", "1"], ["TC10", "1"], ["TR10", "1"], ["TR29", "1"]]}, + {name: "v3v3", pads: [["TJ2", "11"], ["TJ2", "13"], ["TR8", "1"], ["TL2", "2"], ["TC11", "1"], ["TTP4", "1"], ["TD3", "1"], ["TU5", "1"], ["TU5", "3"], ["TC12", "1"], ["TU6", "1"], ["TU6", "3"], ["TC14", "1"], ["TU7", "1"], ["TU7", "3"], ["TC16", "1"], ["TJ3", "1"], ["TU8", "2"], ["TC18", "1"], ["TC19", "1"], ["TR11", "1"], ["TU9", "28"], ["TU9", "43"], ["TU9", "44"], ["TU9", "45"], ["TFB2", "1"], ["TC25", "1"], ["TC26", "1"], ["TR23", "1"], ["TR24", "1"], ["TU10", "A4"], ["TU10", "B1"], ["TU10", "B7"], ["TC38", "1"], ["TC39", "1"], ["TR25", "1"], ["TR26", "1"], ["TR28", "1"], ["TU11", "3"], ["TU11", "4"], ["TC40", "1"], ["TC41", "1"], ["TU12", "9"], ["TJ4", "1"], ["TC42", "1"]]}, + {name: "v3v0", pads: [["TU5", "5"], ["TC13", "1"], ["TJ5", "11"], ["TC44", "1"], ["TU13", "16"], ["TC48", "1"], ["TX2", "1"], ["TX2", "4"], ["TC50", "1"]]}, + {name: "v2v8", pads: [["TU6", "5"], ["TC15", "1"], ["TJ5", "4"], ["TU13", "19"], ["TC49", "1"]]}, + {name: "v1v2", pads: [["TU7", "5"], ["TC17", "1"], ["TJ5", "10"], ["TU13", "7"], ["TC47", "1"]]}, + {name: "i2c_chain_0.scl", pads: [["TU8", "33"], ["TR23", "2"], ["TTP5", "1"], ["TU10", "C4"], ["TU11", "6"], ["TU12", "12"], ["TJ5", "5"], ["TU13", "21"]]}, + {name: "i2c_chain_0.sda", pads: [["TU8", "32"], ["TR24", "2"], ["TTP6", "1"], ["TU10", "C3"], ["TU11", "7"], ["TU12", "11"], ["TJ5", "3"], ["TU13", "22"]]}, {name: "usb.pwr", pads: [["TJ1", "A4"], ["TJ1", "A9"], ["TJ1", "B4"], ["TJ1", "B9"], ["TR5", "1"], ["TL1", "2"], ["TC7", "1"], ["TD2", "1"], ["TFB1", "1"], ["TU11", "2"]]}, + {name: "usb.usb.dp", pads: [["TJ1", "A6"], ["TJ1", "B6"], ["TU1", "2"], ["TU8", "14"]]}, + {name: "usb.usb.dm", pads: [["TJ1", "A7"], ["TJ1", "B7"], ["TU1", "1"], ["TU8", "13"]]}, {name: "usb.cc.cc1", pads: [["TJ1", "A5"], ["TU11", "10"], ["TU11", "11"]]}, {name: "usb.cc.cc2", pads: [["TJ1", "B5"], ["TU11", "1"], ["TU11", "14"]]}, {name: "eth.eth.tx.pos", pads: [["TJ2", "5"], ["TR14", "2"], ["TR18", "2"]]}, @@ -623,42 +623,42 @@ board.setNetlist([ {name: "eth.conn.led_grn_cathode", pads: [["TJ2", "14"], ["TR2", "1"]]}, {name: "eth.conn.led_yel_cathode", pads: [["TJ2", "12"], ["TR1", "1"]]}, {name: "eth.conn.shield", pads: [["TJ2", "SH"], ["TC1", "1"]]}, - {name: "poe.pwr_out", pads: [["TU1", "1"], ["TR4", "1"], ["TC2", "1"], ["TD1", "1"], ["TJP1", "2"], ["TTP2", "1"], ["TU2", "2"], ["TU2", "3"], ["TC3", "1"], ["TC5", "1"], ["TC6", "1"]]}, - {name: "poe.poe.neg", pads: [["TU1", "4"], ["TU1", "9"], ["TR3", "1"], ["TC2", "2"], ["TD1", "2"], ["TJP2", "2"]]}, - {name: "poe.cdb", pads: [["TU1", "6"]]}, - {name: "poe.t2p", pads: [["TU1", "7"]]}, - {name: "poe.ic.den", pads: [["TU1", "2"], ["TR4", "2"]]}, - {name: "poe.ic.cls", pads: [["TU1", "3"], ["TR3", "2"]]}, - {name: "reg_poe.pg", pads: [["TU2", "6"]]}, - {name: "reg_poe.ic.sw", pads: [["TU2", "8"], ["TC4", "2"], ["TL1", "1"]]}, - {name: "reg_poe.ic.fb", pads: [["TU2", "5"], ["TR5", "2"], ["TR6", "1"]]}, - {name: "reg_poe.ic.boot", pads: [["TU2", "7"], ["TC4", "1"]]}, - {name: "reg_poe.ic.rt", pads: [["TU2", "4"], ["TR7", "2"]]}, - {name: "reg_3v3.ic.sw", pads: [["TU3", "2"], ["TC9", "2"], ["TL2", "1"]]}, - {name: "reg_3v3.ic.fb", pads: [["TU3", "4"], ["TR8", "2"], ["TR9", "1"]]}, - {name: "reg_3v3.ic.boot", pads: [["TU3", "6"], ["TC9", "1"]]}, - {name: "reg_3v3.ic.en", pads: [["TU3", "5"], ["TR10", "2"]]}, - {name: "mcu.program_uart_node.a_tx", pads: [["TJ3", "4"], ["TU7", "36"]]}, - {name: "mcu.program_uart_node.b_tx", pads: [["TJ3", "3"], ["TU7", "37"]]}, - {name: "mcu.program_en_node", pads: [["TJ3", "6"], ["TU7", "3"], ["TR11", "2"], ["TC20", "1"]]}, - {name: "mcu.program_boot_node", pads: [["TJ3", "2"], ["TU7", "27"], ["TD4", "2"]]}, + {name: "poe.pwr_out", pads: [["TU2", "1"], ["TR4", "1"], ["TC2", "1"], ["TD1", "1"], ["TJP1", "2"], ["TTP2", "1"], ["TU3", "2"], ["TU3", "3"], ["TC3", "1"], ["TC5", "1"], ["TC6", "1"]]}, + {name: "poe.poe.neg", pads: [["TU2", "4"], ["TU2", "9"], ["TR3", "1"], ["TC2", "2"], ["TD1", "2"], ["TJP2", "2"]]}, + {name: "poe.cdb", pads: [["TU2", "6"]]}, + {name: "poe.t2p", pads: [["TU2", "7"]]}, + {name: "poe.ic.den", pads: [["TU2", "2"], ["TR4", "2"]]}, + {name: "poe.ic.cls", pads: [["TU2", "3"], ["TR3", "2"]]}, + {name: "reg_poe.pg", pads: [["TU3", "6"]]}, + {name: "reg_poe.ic.sw", pads: [["TU3", "8"], ["TC4", "2"], ["TL1", "1"]]}, + {name: "reg_poe.ic.fb", pads: [["TU3", "5"], ["TR5", "2"], ["TR6", "1"]]}, + {name: "reg_poe.ic.boot", pads: [["TU3", "7"], ["TC4", "1"]]}, + {name: "reg_poe.ic.rt", pads: [["TU3", "4"], ["TR7", "2"]]}, + {name: "reg_3v3.ic.sw", pads: [["TU4", "2"], ["TC9", "2"], ["TL2", "1"]]}, + {name: "reg_3v3.ic.fb", pads: [["TU4", "4"], ["TR8", "2"], ["TR9", "1"]]}, + {name: "reg_3v3.ic.boot", pads: [["TU4", "6"], ["TC9", "1"]]}, + {name: "reg_3v3.ic.en", pads: [["TU4", "5"], ["TR10", "2"]]}, + {name: "mcu.program_uart_node.a_tx", pads: [["TJ3", "4"], ["TU8", "36"]]}, + {name: "mcu.program_uart_node.b_tx", pads: [["TJ3", "3"], ["TU8", "37"]]}, + {name: "mcu.program_en_node", pads: [["TJ3", "6"], ["TU8", "3"], ["TR11", "2"], ["TC20", "1"]]}, + {name: "mcu.program_boot_node", pads: [["TJ3", "2"], ["TU8", "27"], ["TD4", "2"]]}, {name: "ledr.package.k", pads: [["TD4", "1"], ["TR12", "1"]]}, - {name: "phy.reset", pads: [["TU8", "37"]]}, - {name: "phy.spi.sck", pads: [["TU7", "9"], ["TU8", "33"]]}, - {name: "phy.spi.mosi", pads: [["TU7", "8"], ["TU8", "35"]]}, - {name: "phy.spi.miso", pads: [["TU7", "7"], ["TU8", "34"]]}, - {name: "phy.cs", pads: [["TU7", "35"], ["TU8", "32"]]}, - {name: "phy.int", pads: [["TU7", "31"], ["TU8", "36"], ["TU11", "5"]]}, - {name: "phy.ic.avdd", pads: [["TU8", "11"], ["TU8", "15"], ["TU8", "17"], ["TU8", "21"], ["TU8", "4"], ["TU8", "8"], ["TFB2", "2"], ["TC27", "1"], ["TC28", "1"], ["TC29", "1"], ["TC30", "1"], ["TC31", "1"], ["TC32", "1"], ["TC33", "1"], ["TR18", "1"], ["TR19", "1"], ["TR20", "1"]]}, - {name: "phy.ic.v1v20", pads: [["TU8", "22"], ["TC23", "1"]]}, - {name: "phy.ic.tocap", pads: [["TU8", "20"], ["TC24", "1"]]}, - {name: "phy.ic.exres1", pads: [["TU8", "10"], ["TR13", "2"]]}, - {name: "phy.ic.crystal.xtal_in", pads: [["TU8", "30"], ["TX1", "1"], ["TC21", "1"]]}, - {name: "phy.ic.crystal.xtal_out", pads: [["TU8", "31"], ["TX1", "3"], ["TC22", "1"]]}, - {name: "phy.ic.txp", pads: [["TU8", "2"], ["TR14", "1"]]}, - {name: "phy.ic.txn", pads: [["TU8", "1"], ["TR15", "1"]]}, - {name: "phy.ic.rxp", pads: [["TU8", "6"], ["TR16", "1"]]}, - {name: "phy.ic.rxn", pads: [["TU8", "5"], ["TR17", "1"]]}, + {name: "phy.reset", pads: [["TU9", "37"]]}, + {name: "phy.spi.sck", pads: [["TU8", "9"], ["TU9", "33"]]}, + {name: "phy.spi.mosi", pads: [["TU8", "8"], ["TU9", "35"]]}, + {name: "phy.spi.miso", pads: [["TU8", "7"], ["TU9", "34"]]}, + {name: "phy.cs", pads: [["TU8", "35"], ["TU9", "32"]]}, + {name: "phy.int", pads: [["TU8", "31"], ["TU9", "36"], ["TU11", "5"]]}, + {name: "phy.ic.avdd", pads: [["TU9", "11"], ["TU9", "15"], ["TU9", "17"], ["TU9", "21"], ["TU9", "4"], ["TU9", "8"], ["TFB2", "2"], ["TC27", "1"], ["TC28", "1"], ["TC29", "1"], ["TC30", "1"], ["TC31", "1"], ["TC32", "1"], ["TC33", "1"], ["TR18", "1"], ["TR19", "1"], ["TR20", "1"]]}, + {name: "phy.ic.v1v20", pads: [["TU9", "22"], ["TC23", "1"]]}, + {name: "phy.ic.tocap", pads: [["TU9", "20"], ["TC24", "1"]]}, + {name: "phy.ic.exres1", pads: [["TU9", "10"], ["TR13", "2"]]}, + {name: "phy.ic.crystal.xtal_in", pads: [["TU9", "30"], ["TX1", "1"], ["TC21", "1"]]}, + {name: "phy.ic.crystal.xtal_out", pads: [["TU9", "31"], ["TX1", "3"], ["TC22", "1"]]}, + {name: "phy.ic.txp", pads: [["TU9", "2"], ["TR14", "1"]]}, + {name: "phy.ic.txn", pads: [["TU9", "1"], ["TR15", "1"]]}, + {name: "phy.ic.rxp", pads: [["TU9", "6"], ["TR16", "1"]]}, + {name: "phy.ic.rxn", pads: [["TU9", "5"], ["TR17", "1"]]}, {name: "phy.rxp_damp.b", pads: [["TR16", "2"], ["TC35", "2"], ["TR21", "1"]]}, {name: "phy.rxn_damp.b", pads: [["TR17", "2"], ["TC36", "2"], ["TR22", "1"]]}, {name: "dist.ic.i2c_rst", pads: [["TU10", "A1"], ["TR27", "2"]]}, @@ -671,32 +671,32 @@ board.setNetlist([ {name: "ioe.ic.osc.xtal_out", pads: [["TU12", "6"]]}, {name: "ioe.ic.swio", pads: [["TU12", "18"], ["TJ4", "2"]]}, {name: "poe_sense.output", pads: [["TU12", "14"], ["TR29", "2"], ["TR30", "1"]]}, - {name: "cam.dvp8.xclk", pads: [["TU7", "21"], ["TJ5", "13"]]}, - {name: "cam.dvp8.pclk", pads: [["TU7", "19"], ["TJ5", "17"], ["TC46", "1"]]}, - {name: "cam.dvp8.href", pads: [["TU7", "23"], ["TJ5", "9"]]}, - {name: "cam.dvp8.vsync", pads: [["TU7", "24"], ["TJ5", "7"]]}, - {name: "cam.dvp8.y0", pads: [["TU7", "18"], ["TJ5", "19"]]}, - {name: "cam.dvp8.y1", pads: [["TU7", "17"], ["TJ5", "21"]]}, - {name: "cam.dvp8.y2", pads: [["TU7", "12"], ["TJ5", "22"]]}, - {name: "cam.dvp8.y3", pads: [["TU7", "11"], ["TJ5", "20"]]}, - {name: "cam.dvp8.y4", pads: [["TU7", "10"], ["TJ5", "18"]]}, - {name: "cam.dvp8.y5", pads: [["TU7", "15"], ["TJ5", "16"]]}, - {name: "cam.dvp8.y6", pads: [["TU7", "20"], ["TJ5", "14"]]}, - {name: "cam.dvp8.y7", pads: [["TU7", "22"], ["TJ5", "12"]]}, - {name: "cam.reset", pads: [["TU7", "25"], ["TJ5", "6"], ["TC45", "1"], ["TU13", "24"]]}, + {name: "cam.dvp8.xclk", pads: [["TU8", "21"], ["TJ5", "13"]]}, + {name: "cam.dvp8.pclk", pads: [["TU8", "19"], ["TJ5", "17"], ["TC46", "1"]]}, + {name: "cam.dvp8.href", pads: [["TU8", "23"], ["TJ5", "9"]]}, + {name: "cam.dvp8.vsync", pads: [["TU8", "24"], ["TJ5", "7"]]}, + {name: "cam.dvp8.y0", pads: [["TU8", "18"], ["TJ5", "19"]]}, + {name: "cam.dvp8.y1", pads: [["TU8", "17"], ["TJ5", "21"]]}, + {name: "cam.dvp8.y2", pads: [["TU8", "12"], ["TJ5", "22"]]}, + {name: "cam.dvp8.y3", pads: [["TU8", "11"], ["TJ5", "20"]]}, + {name: "cam.dvp8.y4", pads: [["TU8", "10"], ["TJ5", "18"]]}, + {name: "cam.dvp8.y5", pads: [["TU8", "15"], ["TJ5", "16"]]}, + {name: "cam.dvp8.y6", pads: [["TU8", "20"], ["TJ5", "14"]]}, + {name: "cam.dvp8.y7", pads: [["TU8", "22"], ["TJ5", "12"]]}, + {name: "cam.reset", pads: [["TU8", "25"], ["TJ5", "6"], ["TC45", "1"], ["TU13", "24"]]}, {name: "cam.device.y.0", pads: [["TJ5", "24"]]}, {name: "cam.device.y.1", pads: [["TJ5", "23"]]}, - {name: "flir.shutdown", pads: [["TU7", "34"], ["TU13", "23"]]}, - {name: "flir.spi.sck", pads: [["TU7", "39"], ["TU13", "13"]]}, - {name: "flir.spi.mosi", pads: [["TU7", "5"], ["TU13", "11"]]}, - {name: "flir.spi.miso", pads: [["TU7", "4"], ["TU13", "12"]]}, - {name: "flir.cs", pads: [["TU7", "38"], ["TU13", "14"]]}, - {name: "flir.vsync", pads: [["TU7", "6"], ["TU13", "2"]]}, + {name: "flir.shutdown", pads: [["TU8", "34"], ["TU13", "23"]]}, + {name: "flir.spi.sck", pads: [["TU8", "39"], ["TU13", "13"]]}, + {name: "flir.spi.mosi", pads: [["TU8", "5"], ["TU13", "11"]]}, + {name: "flir.spi.miso", pads: [["TU8", "4"], ["TU13", "12"]]}, + {name: "flir.cs", pads: [["TU8", "38"], ["TU13", "14"]]}, + {name: "flir.vsync", pads: [["TU8", "6"], ["TU13", "2"]]}, {name: "flir.ic.master_clk", pads: [["TU13", "26"], ["TX2", "3"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(4.0023622047244105, 3.4519685039370085); +const limit1 = pt(4.341141732283465, 3.375590551181103); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/Keyboard/Keyboard.net.ref b/examples/Keyboard/Keyboard.net.ref index fb875de81..c1cd0b3a1 100644 --- a/examples/Keyboard/Keyboard.net.ref +++ b/examples/Keyboard/Keyboard.net.ref @@ -8,10 +8,22 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) +(comp (ref "U1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "U1")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "R1") (value "usb.cc_pull.cc1") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -36,14 +48,14 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 5.1kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/usb/cc_pull/") (tstamps "/02aa014b/0b4c02e3/")) (tstamps "022400f9")) -(comp (ref "U1") +(comp (ref "U2") (value "reg.ic") (footprint "Package_TO_SOT_SMD:SOT-223-3_TabPin2") (property (name "Sheetname") (value "reg")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ams1117")) (property (name "edg_path") (value "reg.ic")) (property (name "edg_short_path") (value "reg.ic")) - (property (name "edg_refdes") (value "U1")) + (property (name "edg_refdes") (value "U2")) (property (name "edg_part") (value "AMS1117-3.3 (Advanced Monolithic Systems)")) (property (name "edg_value") (value "AMS1117-3.3")) (sheetpath (names "/reg/") (tstamps "/028a013f/")) @@ -108,14 +120,14 @@ (property (name "edg_value") (value "50V 10pF C0G ±5% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/mcu/crystal/") (tstamps "/02850146/0c1b0303/")) (tstamps "05e801f6")) -(comp (ref "U2") +(comp (ref "U3") (value "mcu.ic") (footprint "Package_QFP:LQFP-32_7x7mm_P0.8mm") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Ch32v203.Ch32v203")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "U2")) + (property (name "edg_refdes") (value "U3")) (property (name "edg_part") (value "CH32V203K8T6 (WCH)")) (property (name "edg_value") (value "CH32V203K8T6")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -180,18 +192,6 @@ (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) (tstamps "12d103b7")) -(comp (ref "U3") - (value "usb_esd") - (footprint "Package_TO_SOT_SMD:SOT-23") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) - (property (name "edg_path") (value "usb_esd")) - (property (name "edg_short_path") (value "usb_esd")) - (property (name "edg_refdes") (value "U3")) - (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) - (property (name "edg_value") (value "PESD5V0X1BT")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "0bcb02e6")) (comp (ref "D1") (value "ledr.package") (footprint "LED_SMD:LED_0603_1608Metric") @@ -966,7 +966,7 @@ (node (ref J1) (pin A9)) (node (ref J1) (pin B4)) (node (ref J1) (pin B9)) - (node (ref U1) (pin 3)) + (node (ref U2) (pin 3)) (node (ref C1) (pin 1)) (node (ref D3) (pin 1)) (node (ref C9) (pin 1)) @@ -1000,24 +1000,24 @@ (node (ref J1) (pin B1)) (node (ref J1) (pin B12)) (node (ref J1) (pin S1)) + (node (ref U1) (pin 3)) (node (ref R1) (pin 1)) (node (ref R2) (pin 1)) - (node (ref U1) (pin 1)) + (node (ref U2) (pin 1)) (node (ref C1) (pin 2)) (node (ref C2) (pin 2)) (node (ref X1) (pin 2)) (node (ref X1) (pin 4)) (node (ref C3) (pin 2)) (node (ref C4) (pin 2)) - (node (ref U2) (pin 16)) - (node (ref U2) (pin 31)) - (node (ref U2) (pin 32)) + (node (ref U3) (pin 16)) + (node (ref U3) (pin 31)) + (node (ref U3) (pin 32)) (node (ref J2) (pin 2)) (node (ref C5) (pin 2)) (node (ref C6) (pin 2)) (node (ref C7) (pin 2)) (node (ref C8) (pin 2)) - (node (ref U3) (pin 3)) (node (ref D3) (pin 3)) (node (ref C9) (pin 2)) (node (ref D5) (pin 3)) @@ -1070,13 +1070,13 @@ (net (code 3) (name "usb.usb.dp") (node (ref J1) (pin A6)) (node (ref J1) (pin B6)) - (node (ref U2) (pin 22)) - (node (ref U3) (pin 2))) + (node (ref U1) (pin 2)) + (node (ref U3) (pin 22))) (net (code 4) (name "usb.usb.dm") (node (ref J1) (pin A7)) (node (ref J1) (pin B7)) - (node (ref U2) (pin 21)) - (node (ref U3) (pin 1))) + (node (ref U1) (pin 1)) + (node (ref U3) (pin 21))) (net (code 5) (name "usb.conn.cc.cc1") (node (ref J1) (pin A5)) (node (ref R1) (pin 2))) @@ -1084,11 +1084,11 @@ (node (ref J1) (pin B5)) (node (ref R2) (pin 2))) (net (code 7) (name "reg.pwr_out") - (node (ref U1) (pin 2)) + (node (ref U2) (pin 2)) (node (ref C2) (pin 1)) - (node (ref U2) (pin 1)) - (node (ref U2) (pin 17)) - (node (ref U2) (pin 5)) + (node (ref U3) (pin 1)) + (node (ref U3) (pin 17)) + (node (ref U3) (pin 5)) (node (ref J2) (pin 1)) (node (ref C5) (pin 1)) (node (ref C6) (pin 1)) @@ -1102,62 +1102,62 @@ (node (ref R5) (pin 1)) (node (ref R6) (pin 1))) (net (code 8) (name "mcu.gpio.sw_col_0") - (node (ref U2) (pin 18)) + (node (ref U3) (pin 18)) (node (ref SW1) (pin 1)) (node (ref SW4) (pin 1)) (node (ref SW7) (pin 1)) (node (ref SW10) (pin 1))) (net (code 9) (name "mcu.gpio.sw_col_1") - (node (ref U2) (pin 12)) + (node (ref U3) (pin 12)) (node (ref SW2) (pin 1)) (node (ref SW5) (pin 1)) (node (ref SW8) (pin 1)) (node (ref SW11) (pin 1))) (net (code 10) (name "mcu.gpio.sw_col_2") - (node (ref U2) (pin 10)) + (node (ref U3) (pin 10)) (node (ref SW3) (pin 1)) (node (ref SW6) (pin 1)) (node (ref SW9) (pin 1)) (node (ref SW12) (pin 1))) (net (code 11) (name "mcu.gpio.sw_row_0") - (node (ref U2) (pin 20)) + (node (ref U3) (pin 20)) (node (ref D2) (pin 1)) (node (ref D4) (pin 1)) (node (ref D6) (pin 1))) (net (code 12) (name "mcu.gpio.sw_row_1") - (node (ref U2) (pin 19)) + (node (ref U3) (pin 19)) (node (ref D8) (pin 1)) (node (ref D10) (pin 1)) (node (ref D12) (pin 1))) (net (code 13) (name "mcu.gpio.sw_row_2") - (node (ref U2) (pin 13)) + (node (ref U3) (pin 13)) (node (ref D14) (pin 1)) (node (ref D16) (pin 1)) (node (ref D18) (pin 1))) (net (code 14) (name "mcu.gpio.sw_row_3") - (node (ref U2) (pin 11)) + (node (ref U3) (pin 11)) (node (ref D20) (pin 1)) (node (ref D22) (pin 1)) (node (ref D24) (pin 1))) (net (code 15) (name "mcu.xtal_node.xi") (node (ref X1) (pin 1)) (node (ref C3) (pin 1)) - (node (ref U2) (pin 2))) + (node (ref U3) (pin 2))) (net (code 16) (name "mcu.xtal_node.xo") (node (ref X1) (pin 3)) (node (ref C4) (pin 1)) - (node (ref U2) (pin 3))) + (node (ref U3) (pin 3))) (net (code 17) (name "mcu.ic.nrst") - (node (ref U2) (pin 4)) + (node (ref U3) (pin 4)) (node (ref C8) (pin 1))) (net (code 18) (name "mcu.ic.swdio") - (node (ref U2) (pin 23)) + (node (ref U3) (pin 23)) (node (ref J2) (pin 3))) (net (code 19) (name "mcu.ic.swclk") - (node (ref U2) (pin 24)) + (node (ref U3) (pin 24)) (node (ref J2) (pin 4))) (net (code 20) (name "ledr.signal") - (node (ref U2) (pin 27)) + (node (ref U3) (pin 27)) (node (ref R3) (pin 2))) (net (code 21) (name "ledr.package.k") (node (ref D1) (pin 1)) @@ -1237,23 +1237,23 @@ (node (ref SW12) (pin 2)) (node (ref D24) (pin 2))) (net (code 47) (name "enc.a") - (node (ref U2) (pin 9)) + (node (ref U3) (pin 9)) (node (ref SW13) (pin A))) (net (code 48) (name "enc.b") - (node (ref U2) (pin 8)) + (node (ref U3) (pin 8)) (node (ref SW13) (pin B))) (net (code 49) (name "enc.sw") - (node (ref U2) (pin 7)) + (node (ref U3) (pin 7)) (node (ref SW13) (pin S1))) (net (code 50) (name "oled.reset") - (node (ref U2) (pin 15)) + (node (ref U3) (pin 15)) (node (ref J3) (pin 14))) (net (code 51) (name "oled.i2c.scl") - (node (ref U2) (pin 29)) + (node (ref U3) (pin 29)) (node (ref J3) (pin 18)) (node (ref R5) (pin 2))) (net (code 52) (name "oled.i2c.sda") - (node (ref U2) (pin 30)) + (node (ref U3) (pin 30)) (node (ref J3) (pin 19)) (node (ref J3) (pin 20)) (node (ref R6) (pin 2))) @@ -1279,6 +1279,6 @@ (node (ref J3) (pin 3)) (node (ref C22) (pin 2))) (net (code 60) (name "npx_shift.input") - (node (ref U2) (pin 28)) + (node (ref U3) (pin 28)) (node (ref U5) (pin 2)))) ) \ No newline at end of file diff --git a/examples/Keyboard/Keyboard.svgpcb.js b/examples/Keyboard/Keyboard.svgpcb.js index 437bec5dc..ac10bc667 100644 --- a/examples/Keyboard/Keyboard.svgpcb.js +++ b/examples/Keyboard/Keyboard.svgpcb.js @@ -3,32 +3,37 @@ const board = new PCB(); const sw = SwitchDiodeMatrixNeopixels_3_4_sw(pt(0.039, 0.039)) // usb.conn const J1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(0.209, 2.783), rotate: 0, + translate: pt(0.674, 2.783), rotate: 0, id: 'J1' }) +// usb.esd +const U1 = board.add(SOT_23, { + translate: pt(0.998, 2.685), rotate: 0, + id: 'U1' +}) // usb.cc_pull.cc1 const R1 = board.add(R_0603_1608Metric, { - translate: pt(0.058, 3.038), rotate: 0, + translate: pt(0.981, 2.820), rotate: 0, id: 'R1' }) // usb.cc_pull.cc2 const R2 = board.add(R_0603_1608Metric, { - translate: pt(0.214, 3.038), rotate: 0, + translate: pt(0.981, 2.917), rotate: 0, id: 'R2' }) // reg.ic -const U1 = board.add(SOT_223_3_TabPin2, { - translate: pt(0.710, 2.760), rotate: 0, - id: 'U1' +const U2 = board.add(SOT_223_3_TabPin2, { + translate: pt(0.173, 2.760), rotate: 0, + id: 'U2' }) // reg.in_cap.cap const C1 = board.add(C_0603_1608Metric, { - translate: pt(0.816, 2.970), rotate: 0, + translate: pt(0.279, 2.970), rotate: 0, id: 'C1' }) // reg.out_cap.cap const C2 = board.add(C_1206_3216Metric, { - translate: pt(0.628, 2.986), rotate: 0, + translate: pt(0.091, 2.986), rotate: 0, id: 'C2' }) // mcu.crystal.package @@ -47,9 +52,9 @@ const C4 = board.add(C_0603_1608Metric, { id: 'C4' }) // mcu.ic -const U2 = board.add(LQFP_32_7x7mm_P0_8mm, { +const U3 = board.add(LQFP_32_7x7mm_P0_8mm, { translate: pt(2.909, 1.494), rotate: 0, - id: 'U2' + id: 'U3' }) // mcu.sdi.conn const J2 = board.add(PinHeader_1x04_P2_54mm_Vertical, { @@ -76,19 +81,14 @@ const C8 = board.add(C_0603_1608Metric, { translate: pt(3.050, 1.799), rotate: 0, id: 'C8' }) -// usb_esd -const U3 = board.add(SOT_23, { - translate: pt(1.826, 2.685), rotate: 0, - id: 'U3' -}) // ledr.package const D1 = board.add(LED_0603_1608Metric, { - translate: pt(1.340, 2.647), rotate: 0, + translate: pt(1.530, 2.647), rotate: 0, id: 'D1' }) // ledr.res const R3 = board.add(R_0603_1608Metric, { - translate: pt(1.339, 2.744), rotate: 0, + translate: pt(1.530, 2.744), rotate: 0, id: 'R3' }) // enc.package @@ -143,46 +143,46 @@ const C26 = board.add(C_0805_2012Metric, { }) // i2c_pull.scl_res.res const R5 = board.add(R_0603_1608Metric, { - translate: pt(1.574, 2.647), rotate: 0, + translate: pt(1.765, 2.647), rotate: 0, id: 'R5' }) // i2c_pull.sda_res.res const R6 = board.add(R_0603_1608Metric, { - translate: pt(1.574, 2.744), rotate: 0, + translate: pt(1.765, 2.744), rotate: 0, id: 'R6' }) // npx_shift.ic const U5 = board.add(SOT_23_5, { - translate: pt(1.082, 2.685), rotate: 0, + translate: pt(1.273, 2.685), rotate: 0, id: 'U5' }) // npx_shift.vdd_cap.cap const C27 = board.add(C_0603_1608Metric, { - translate: pt(1.060, 2.820), rotate: 0, + translate: pt(1.250, 2.820), rotate: 0, id: 'C27' }) board.setNetlist([ - {name: "usb.pwr", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["U1", "3"], ["C1", "1"], ["D3", "1"], ["C9", "1"], ["D5", "1"], ["C10", "1"], ["D7", "1"], ["C11", "1"], ["D9", "1"], ["C12", "1"], ["D11", "1"], ["C13", "1"], ["D13", "1"], ["C14", "1"], ["D15", "1"], ["C15", "1"], ["D17", "1"], ["C16", "1"], ["D19", "1"], ["C17", "1"], ["D21", "1"], ["C18", "1"], ["D23", "1"], ["C19", "1"], ["D25", "1"], ["C20", "1"], ["U5", "5"], ["C27", "1"]]}, - {name: "usb.gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["R1", "1"], ["R2", "1"], ["U1", "1"], ["C1", "2"], ["C2", "2"], ["X1", "2"], ["X1", "4"], ["C3", "2"], ["C4", "2"], ["U2", "16"], ["U2", "31"], ["U2", "32"], ["J2", "2"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["C8", "2"], ["U3", "3"], ["D3", "3"], ["C9", "2"], ["D5", "3"], ["C10", "2"], ["D7", "3"], ["C11", "2"], ["D9", "3"], ["C12", "2"], ["D11", "3"], ["C13", "2"], ["D13", "3"], ["C14", "2"], ["D15", "3"], ["C15", "2"], ["D17", "3"], ["C16", "2"], ["D19", "3"], ["C17", "2"], ["D21", "3"], ["C18", "2"], ["D23", "3"], ["C19", "2"], ["D25", "3"], ["C20", "2"], ["SW13", "C"], ["SW13", "S2"], ["J3", "1"], ["J3", "10"], ["J3", "12"], ["J3", "13"], ["J3", "15"], ["J3", "16"], ["J3", "17"], ["J3", "21"], ["J3", "22"], ["J3", "23"], ["J3", "24"], ["J3", "25"], ["J3", "29"], ["J3", "30"], ["J3", "8"], ["R4", "1"], ["C23", "2"], ["C24", "2"], ["C25", "2"], ["C26", "2"], ["U5", "1"], ["U5", "3"], ["C27", "2"]]}, - {name: "usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["U2", "22"], ["U3", "2"]]}, - {name: "usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["U2", "21"], ["U3", "1"]]}, + {name: "usb.pwr", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["U2", "3"], ["C1", "1"], ["D3", "1"], ["C9", "1"], ["D5", "1"], ["C10", "1"], ["D7", "1"], ["C11", "1"], ["D9", "1"], ["C12", "1"], ["D11", "1"], ["C13", "1"], ["D13", "1"], ["C14", "1"], ["D15", "1"], ["C15", "1"], ["D17", "1"], ["C16", "1"], ["D19", "1"], ["C17", "1"], ["D21", "1"], ["C18", "1"], ["D23", "1"], ["C19", "1"], ["D25", "1"], ["C20", "1"], ["U5", "5"], ["C27", "1"]]}, + {name: "usb.gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["U1", "3"], ["R1", "1"], ["R2", "1"], ["U2", "1"], ["C1", "2"], ["C2", "2"], ["X1", "2"], ["X1", "4"], ["C3", "2"], ["C4", "2"], ["U3", "16"], ["U3", "31"], ["U3", "32"], ["J2", "2"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["C8", "2"], ["D3", "3"], ["C9", "2"], ["D5", "3"], ["C10", "2"], ["D7", "3"], ["C11", "2"], ["D9", "3"], ["C12", "2"], ["D11", "3"], ["C13", "2"], ["D13", "3"], ["C14", "2"], ["D15", "3"], ["C15", "2"], ["D17", "3"], ["C16", "2"], ["D19", "3"], ["C17", "2"], ["D21", "3"], ["C18", "2"], ["D23", "3"], ["C19", "2"], ["D25", "3"], ["C20", "2"], ["SW13", "C"], ["SW13", "S2"], ["J3", "1"], ["J3", "10"], ["J3", "12"], ["J3", "13"], ["J3", "15"], ["J3", "16"], ["J3", "17"], ["J3", "21"], ["J3", "22"], ["J3", "23"], ["J3", "24"], ["J3", "25"], ["J3", "29"], ["J3", "30"], ["J3", "8"], ["R4", "1"], ["C23", "2"], ["C24", "2"], ["C25", "2"], ["C26", "2"], ["U5", "1"], ["U5", "3"], ["C27", "2"]]}, + {name: "usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["U1", "2"], ["U3", "22"]]}, + {name: "usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["U1", "1"], ["U3", "21"]]}, {name: "usb.conn.cc.cc1", pads: [["J1", "A5"], ["R1", "2"]]}, {name: "usb.conn.cc.cc2", pads: [["J1", "B5"], ["R2", "2"]]}, - {name: "reg.pwr_out", pads: [["U1", "2"], ["C2", "1"], ["U2", "1"], ["U2", "17"], ["U2", "5"], ["J2", "1"], ["C5", "1"], ["C6", "1"], ["C7", "1"], ["D1", "2"], ["J3", "11"], ["J3", "6"], ["J3", "9"], ["C24", "1"], ["C25", "1"], ["R5", "1"], ["R6", "1"]]}, - {name: "mcu.gpio.sw_col_0", pads: [["U2", "18"], ["SW1", "1"], ["SW4", "1"], ["SW7", "1"], ["SW10", "1"]]}, - {name: "mcu.gpio.sw_col_1", pads: [["U2", "12"], ["SW2", "1"], ["SW5", "1"], ["SW8", "1"], ["SW11", "1"]]}, - {name: "mcu.gpio.sw_col_2", pads: [["U2", "10"], ["SW3", "1"], ["SW6", "1"], ["SW9", "1"], ["SW12", "1"]]}, - {name: "mcu.gpio.sw_row_0", pads: [["U2", "20"], ["D2", "1"], ["D4", "1"], ["D6", "1"]]}, - {name: "mcu.gpio.sw_row_1", pads: [["U2", "19"], ["D8", "1"], ["D10", "1"], ["D12", "1"]]}, - {name: "mcu.gpio.sw_row_2", pads: [["U2", "13"], ["D14", "1"], ["D16", "1"], ["D18", "1"]]}, - {name: "mcu.gpio.sw_row_3", pads: [["U2", "11"], ["D20", "1"], ["D22", "1"], ["D24", "1"]]}, - {name: "mcu.xtal_node.xi", pads: [["X1", "1"], ["C3", "1"], ["U2", "2"]]}, - {name: "mcu.xtal_node.xo", pads: [["X1", "3"], ["C4", "1"], ["U2", "3"]]}, - {name: "mcu.ic.nrst", pads: [["U2", "4"], ["C8", "1"]]}, - {name: "mcu.ic.swdio", pads: [["U2", "23"], ["J2", "3"]]}, - {name: "mcu.ic.swclk", pads: [["U2", "24"], ["J2", "4"]]}, - {name: "ledr.signal", pads: [["U2", "27"], ["R3", "2"]]}, + {name: "reg.pwr_out", pads: [["U2", "2"], ["C2", "1"], ["U3", "1"], ["U3", "17"], ["U3", "5"], ["J2", "1"], ["C5", "1"], ["C6", "1"], ["C7", "1"], ["D1", "2"], ["J3", "11"], ["J3", "6"], ["J3", "9"], ["C24", "1"], ["C25", "1"], ["R5", "1"], ["R6", "1"]]}, + {name: "mcu.gpio.sw_col_0", pads: [["U3", "18"], ["SW1", "1"], ["SW4", "1"], ["SW7", "1"], ["SW10", "1"]]}, + {name: "mcu.gpio.sw_col_1", pads: [["U3", "12"], ["SW2", "1"], ["SW5", "1"], ["SW8", "1"], ["SW11", "1"]]}, + {name: "mcu.gpio.sw_col_2", pads: [["U3", "10"], ["SW3", "1"], ["SW6", "1"], ["SW9", "1"], ["SW12", "1"]]}, + {name: "mcu.gpio.sw_row_0", pads: [["U3", "20"], ["D2", "1"], ["D4", "1"], ["D6", "1"]]}, + {name: "mcu.gpio.sw_row_1", pads: [["U3", "19"], ["D8", "1"], ["D10", "1"], ["D12", "1"]]}, + {name: "mcu.gpio.sw_row_2", pads: [["U3", "13"], ["D14", "1"], ["D16", "1"], ["D18", "1"]]}, + {name: "mcu.gpio.sw_row_3", pads: [["U3", "11"], ["D20", "1"], ["D22", "1"], ["D24", "1"]]}, + {name: "mcu.xtal_node.xi", pads: [["X1", "1"], ["C3", "1"], ["U3", "2"]]}, + {name: "mcu.xtal_node.xo", pads: [["X1", "3"], ["C4", "1"], ["U3", "3"]]}, + {name: "mcu.ic.nrst", pads: [["U3", "4"], ["C8", "1"]]}, + {name: "mcu.ic.swdio", pads: [["U3", "23"], ["J2", "3"]]}, + {name: "mcu.ic.swclk", pads: [["U3", "24"], ["J2", "4"]]}, + {name: "ledr.signal", pads: [["U3", "27"], ["R3", "2"]]}, {name: "ledr.package.k", pads: [["D1", "1"], ["R3", "1"]]}, {name: "sw.npx_din", pads: [["D3", "4"], ["U5", "4"]]}, {name: "sw.npx_dout", pads: [["D21", "2"]]}, @@ -209,12 +209,12 @@ board.setNetlist([ {name: "sw.sw[1,3].npx_din", pads: [["D23", "4"], ["D25", "2"]]}, {name: "sw.sw[1,3].sw.com", pads: [["SW11", "2"], ["D22", "2"]]}, {name: "sw.sw[2,3].sw.com", pads: [["SW12", "2"], ["D24", "2"]]}, - {name: "enc.a", pads: [["U2", "9"], ["SW13", "A"]]}, - {name: "enc.b", pads: [["U2", "8"], ["SW13", "B"]]}, - {name: "enc.sw", pads: [["U2", "7"], ["SW13", "S1"]]}, - {name: "oled.reset", pads: [["U2", "15"], ["J3", "14"]]}, - {name: "oled.i2c.scl", pads: [["U2", "29"], ["J3", "18"], ["R5", "2"]]}, - {name: "oled.i2c.sda", pads: [["U2", "30"], ["J3", "19"], ["J3", "20"], ["R6", "2"]]}, + {name: "enc.a", pads: [["U3", "9"], ["SW13", "A"]]}, + {name: "enc.b", pads: [["U3", "8"], ["SW13", "B"]]}, + {name: "enc.sw", pads: [["U3", "7"], ["SW13", "S1"]]}, + {name: "oled.reset", pads: [["U3", "15"], ["J3", "14"]]}, + {name: "oled.i2c.scl", pads: [["U3", "29"], ["J3", "18"], ["R5", "2"]]}, + {name: "oled.i2c.sda", pads: [["U3", "30"], ["J3", "19"], ["J3", "20"], ["R6", "2"]]}, {name: "oled.device.vcc", pads: [["J3", "28"], ["C26", "1"]]}, {name: "oled.device.iref", pads: [["J3", "26"], ["R4", "2"]]}, {name: "oled.device.vcomh", pads: [["J3", "27"], ["C23", "1"]]}, @@ -222,11 +222,11 @@ board.setNetlist([ {name: "oled.device.c1n", pads: [["J3", "5"], ["C21", "2"]]}, {name: "oled.device.c2p", pads: [["J3", "2"], ["C22", "1"]]}, {name: "oled.device.c2n", pads: [["J3", "3"], ["C22", "2"]]}, - {name: "npx_shift.input", pads: [["U2", "28"], ["U5", "2"]]} + {name: "npx_shift.input", pads: [["U3", "28"], ["U5", "2"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(3.4354330708661416, 3.184645669291339); +const limit1 = pt(3.4354330708661416, 3.1496062992125986); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/LedMatrix/LedMatrix.net.ref b/examples/LedMatrix/LedMatrix.net.ref index 2a20a90e2..99b8a2509 100644 --- a/examples/LedMatrix/LedMatrix.net.ref +++ b/examples/LedMatrix/LedMatrix.net.ref @@ -44,8 +44,8 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) (comp (ref "R1") diff --git a/examples/Multimeter/Multimeter.net.ref b/examples/Multimeter/Multimeter.net.ref index 860a12070..0f9ec7cb4 100644 --- a/examples/Multimeter/Multimeter.net.ref +++ b/examples/Multimeter/Multimeter.net.ref @@ -56,10 +56,22 @@ (property (name "edg_path") (value "data_usb.conn")) (property (name "edg_short_path") (value "data_usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/data_usb/") (tstamps "/0e8f0344/")) (tstamps "042701af")) +(comp (ref "U2") + (value "data_usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "data_usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "data_usb.esd")) + (property (name "edg_short_path") (value "data_usb.esd")) + (property (name "edg_refdes") (value "U2")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/data_usb/") (tstamps "/0e8f0344/")) + (tstamps "027c013d")) (comp (ref "R1") (value "data_usb.cc_pull.cc1") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -168,14 +180,14 @@ (property (name "edg_value") (value "5.1mm switch")) (sheetpath (names "/gate/") (tstamps "/041001a2/")) (tstamps "027f0145")) -(comp (ref "U2") +(comp (ref "U3") (value "reg_5v.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "reg_5v")) (property (name "Sheetfile") (value "edg.parts.power.converter.Torex_Boost.Xc9142")) (property (name "edg_path") (value "reg_5v.ic")) (property (name "edg_short_path") (value "reg_5v.ic")) - (property (name "edg_refdes") (value "U2")) + (property (name "edg_refdes") (value "U3")) (property (name "edg_part") (value "XC9142*50CMR-G (Torex Semiconductor Ltd)")) (property (name "edg_value") (value "XC9142*50CMR-G")) (sheetpath (names "/reg_5v/") (tstamps "/08440249/")) @@ -252,14 +264,14 @@ (property (name "edg_value") (value "100nA@1V 25Ω Single 5.2V~6V 500mW 5.6V LL-34 Zener Diodes ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "0bbb02d0")) -(comp (ref "U3") +(comp (ref "U4") (value "reg_3v3.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "reg_3v3")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Lp5907")) (property (name "edg_path") (value "reg_3v3.ic")) (property (name "edg_short_path") (value "reg_3v3.ic")) - (property (name "edg_refdes") (value "U3")) + (property (name "edg_refdes") (value "U4")) (property (name "edg_part") (value "LP5907MFX-3.3/NOPB (Texas Instruments)")) (property (name "edg_value") (value "LP5907MFX-3.3/NOPB")) (sheetpath (names "/reg_3v3/") (tstamps "/0aba027a/")) @@ -312,14 +324,14 @@ (property (name "edg_value") (value "5μA@1V 90Ω Single 3.53V~3.67V 200mW 3.6V SOD-323 Zener Diodes ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "0eb80301")) -(comp (ref "U4") +(comp (ref "U5") (value "reg_analog.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "reg_analog")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Lp5907")) (property (name "edg_path") (value "reg_analog.ic")) (property (name "edg_short_path") (value "reg_analog.ic")) - (property (name "edg_refdes") (value "U4")) + (property (name "edg_refdes") (value "U5")) (property (name "edg_part") (value "LP5907MFX-3.3/NOPB (Texas Instruments)")) (property (name "edg_value") (value "LP5907MFX-3.3/NOPB")) (sheetpath (names "/reg_analog/") (tstamps "/16550410/")) @@ -372,14 +384,14 @@ (property (name "edg_value") (value "5μA@1V 90Ω Single 3.53V~3.67V 200mW 3.6V SOD-323 Zener Diodes ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "1be80497")) -(comp (ref "U5") +(comp (ref "U6") (value "mcu.ic") (footprint "RF_Module:Raytac_MDBT50Q") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.nRF52840.Mdbt50q_1mv2")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "U5")) + (property (name "edg_refdes") (value "U6")) (property (name "edg_part") (value "MDBT50Q-1MV2 (Raytac)")) (property (name "edg_value") (value "MDBT50Q-1MV2")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -468,18 +480,6 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 2.2kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/vbatsense/") (tstamps "/130603cc/")) (tstamps "175b043f")) -(comp (ref "U6") - (value "usb_esd") - (footprint "Package_TO_SOT_SMD:SOT-23") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) - (property (name "edg_path") (value "usb_esd")) - (property (name "edg_short_path") (value "usb_esd")) - (property (name "edg_refdes") (value "U6")) - (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) - (property (name "edg_value") (value "PESD5V0X1BT")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "0bcb02e6")) (comp (ref "D6") (value "rgb.package") (footprint "LED_SMD:LED_LiteOn_LTST-C19HE1WT") @@ -1292,33 +1292,33 @@ (node (ref J1) (pin B1)) (node (ref J1) (pin B12)) (node (ref J1) (pin S1)) + (node (ref U2) (pin 3)) (node (ref R1) (pin 1)) (node (ref R2) (pin 1)) (node (ref R4) (pin 1)) (node (ref Q2) (pin 2)) (node (ref SW1) (pin 2)) - (node (ref U2) (pin 2)) + (node (ref U3) (pin 2)) (node (ref C1) (pin 2)) (node (ref C2) (pin 2)) (node (ref D3) (pin 2)) - (node (ref U3) (pin 2)) + (node (ref U4) (pin 2)) (node (ref C3) (pin 2)) (node (ref C4) (pin 2)) (node (ref D4) (pin 2)) - (node (ref U4) (pin 2)) + (node (ref U5) (pin 2)) (node (ref C5) (pin 2)) (node (ref C6) (pin 2)) (node (ref D5) (pin 2)) - (node (ref U5) (pin 1)) - (node (ref U5) (pin 15)) - (node (ref U5) (pin 2)) - (node (ref U5) (pin 33)) - (node (ref U5) (pin 55)) + (node (ref U6) (pin 1)) + (node (ref U6) (pin 15)) + (node (ref U6) (pin 2)) + (node (ref U6) (pin 33)) + (node (ref U6) (pin 55)) (node (ref C7) (pin 2)) (node (ref J2) (pin 5)) (node (ref C8) (pin 2)) (node (ref R9) (pin 2)) - (node (ref U6) (pin 3)) (node (ref SW2) (pin 2)) (node (ref SW3) (pin 2)) (node (ref J3) (pin 2)) @@ -1367,27 +1367,27 @@ (node (ref R3) (pin 1)) (node (ref Q1) (pin 2))) (net (code 3) (name "v5v") - (node (ref U2) (pin 4)) + (node (ref U3) (pin 4)) (node (ref C2) (pin 1)) (node (ref TP1) (pin 1)) (node (ref D3) (pin 1)) - (node (ref U3) (pin 1)) - (node (ref U3) (pin 3)) - (node (ref C3) (pin 1)) (node (ref U4) (pin 1)) (node (ref U4) (pin 3)) + (node (ref C3) (pin 1)) + (node (ref U5) (pin 1)) + (node (ref U5) (pin 3)) (node (ref C5) (pin 1)) (node (ref U7) (pin 1)) (node (ref U7) (pin 6)) (node (ref C11) (pin 1)) (node (ref C12) (pin 1))) (net (code 4) (name "v3v3") - (node (ref U3) (pin 5)) + (node (ref U4) (pin 5)) (node (ref C4) (pin 1)) (node (ref TP2) (pin 1)) (node (ref D4) (pin 1)) - (node (ref U5) (pin 28)) - (node (ref U5) (pin 30)) + (node (ref U6) (pin 28)) + (node (ref U6) (pin 30)) (node (ref C7) (pin 1)) (node (ref J2) (pin 1)) (node (ref D6) (pin 2)) @@ -1396,7 +1396,7 @@ (node (ref C9) (pin 1)) (node (ref R24) (pin 1))) (net (code 5) (name "vanalog") - (node (ref U4) (pin 5)) + (node (ref U5) (pin 5)) (node (ref C6) (pin 1)) (node (ref TP3) (pin 1)) (node (ref D5) (pin 1)) @@ -1436,7 +1436,7 @@ (node (ref U8) (pin 4)) (node (ref U9) (pin 1))) (net (code 7) (name "spk_chain_0") - (node (ref U5) (pin 36)) + (node (ref U6) (pin 36)) (node (ref R14) (pin 1))) (net (code 8) (name "spk_chain_1") (node (ref R14) (pin 2)) @@ -1465,18 +1465,18 @@ (node (ref J1) (pin A9)) (node (ref J1) (pin B4)) (node (ref J1) (pin B9)) - (node (ref U5) (pin 32)) + (node (ref U6) (pin 32)) (node (ref C8) (pin 1))) (net (code 14) (name "data_usb.usb.dp") (node (ref J1) (pin A6)) (node (ref J1) (pin B6)) - (node (ref R6) (pin 1)) - (node (ref U6) (pin 2))) + (node (ref U2) (pin 2)) + (node (ref R6) (pin 1))) (net (code 15) (name "data_usb.usb.dm") (node (ref J1) (pin A7)) (node (ref J1) (pin B7)) - (node (ref R7) (pin 1)) - (node (ref U6) (pin 1))) + (node (ref U2) (pin 1)) + (node (ref R7) (pin 1))) (net (code 16) (name "data_usb.conn.cc.cc1") (node (ref J1) (pin A5)) (node (ref R1) (pin 2))) @@ -1485,18 +1485,18 @@ (node (ref R2) (pin 2))) (net (code 18) (name "gate.pwr_out") (node (ref Q1) (pin 3)) - (node (ref U2) (pin 3)) + (node (ref U3) (pin 3)) (node (ref L1) (pin 1)) (node (ref C1) (pin 1)) (node (ref R5) (pin 1)) (node (ref R8) (pin 1))) (net (code 19) (name "gate.btn_out") (node (ref D2) (pin 2)) - (node (ref U5) (pin 50))) + (node (ref U6) (pin 50))) (net (code 20) (name "gate.control") (node (ref R4) (pin 2)) (node (ref Q2) (pin 1)) - (node (ref U5) (pin 49))) + (node (ref U6) (pin 49))) (net (code 21) (name "gate.pwr_gate.btn_in") (node (ref D1) (pin 1)) (node (ref D2) (pin 1)) @@ -1507,57 +1507,57 @@ (node (ref Q2) (pin 3)) (node (ref D1) (pin 2))) (net (code 23) (name "reg_5v.ic.ce") - (node (ref U2) (pin 1)) + (node (ref U3) (pin 1)) (node (ref R5) (pin 2))) (net (code 24) (name "reg_5v.ic.sw") - (node (ref U2) (pin 5)) + (node (ref U3) (pin 5)) (node (ref L1) (pin 2))) (net (code 25) (name "mcu.gpio.rgb_red") - (node (ref U5) (pin 4)) + (node (ref U6) (pin 4)) (node (ref R10) (pin 2))) (net (code 26) (name "mcu.gpio.rgb_green") - (node (ref U5) (pin 5)) + (node (ref U6) (pin 5)) (node (ref R11) (pin 2))) (net (code 27) (name "mcu.gpio.rgb_blue") - (node (ref U5) (pin 6)) + (node (ref U6) (pin 6)) (node (ref R12) (pin 2))) (net (code 28) (name "mcu.gpio.inn_control_0") - (node (ref U5) (pin 41)) + (node (ref U6) (pin 41)) (node (ref U9) (pin 6))) (net (code 29) (name "mcu.gpio.measure_select_0_0") - (node (ref U5) (pin 42)) + (node (ref U6) (pin 42)) (node (ref U10) (pin 6)) (node (ref U11) (pin 6))) (net (code 30) (name "mcu.gpio.measure_select_1_0") - (node (ref U5) (pin 43)) + (node (ref U6) (pin 43)) (node (ref U12) (pin 6))) (net (code 31) (name "mcu.gpio.driver_select_0_0") - (node (ref U5) (pin 46)) + (node (ref U6) (pin 46)) (node (ref U16) (pin 6)) (node (ref U17) (pin 6))) (net (code 32) (name "mcu.gpio.driver_select_1_0") - (node (ref U5) (pin 44)) + (node (ref U6) (pin 44)) (node (ref U18) (pin 6))) (net (code 33) (name "mcu.swd_node.swdio") - (node (ref U5) (pin 51)) + (node (ref U6) (pin 51)) (node (ref J2) (pin 2))) (net (code 34) (name "mcu.swd_node.swclk") - (node (ref U5) (pin 53)) + (node (ref U6) (pin 53)) (node (ref J2) (pin 4))) (net (code 35) (name "mcu.reset_node") - (node (ref U5) (pin 40)) + (node (ref U6) (pin 40)) (node (ref J2) (pin 3))) (net (code 36) (name "mcu.swd.swo") - (node (ref U5) (pin 47)) + (node (ref U6) (pin 47)) (node (ref J2) (pin 6))) (net (code 37) (name "mcu.usb_res.interior.dp") - (node (ref U5) (pin 35)) + (node (ref U6) (pin 35)) (node (ref R6) (pin 2))) (net (code 38) (name "mcu.usb_res.interior.dm") - (node (ref U5) (pin 34)) + (node (ref U6) (pin 34)) (node (ref R7) (pin 2))) (net (code 39) (name "vbatsense.output") - (node (ref U5) (pin 9)) + (node (ref U6) (pin 9)) (node (ref R8) (pin 2)) (node (ref R9) (pin 1))) (net (code 40) (name "rgb.package.k_red") @@ -1570,25 +1570,25 @@ (node (ref D6) (pin 1)) (node (ref R12) (pin 1))) (net (code 43) (name "sw1.out") - (node (ref U5) (pin 16)) + (node (ref U6) (pin 16)) (node (ref SW2) (pin 1))) (net (code 44) (name "sw2.out") - (node (ref U5) (pin 3)) + (node (ref U6) (pin 3)) (node (ref SW3) (pin 1))) (net (code 45) (name "lcd.reset") - (node (ref U5) (pin 8)) + (node (ref U6) (pin 8)) (node (ref J3) (pin 3))) (net (code 46) (name "lcd.rs") - (node (ref U5) (pin 10)) + (node (ref U6) (pin 10)) (node (ref J3) (pin 4))) (net (code 47) (name "lcd.cs") - (node (ref U5) (pin 17)) + (node (ref U6) (pin 17)) (node (ref J3) (pin 8))) (net (code 48) (name "lcd.spi.sck") - (node (ref U5) (pin 18)) + (node (ref U6) (pin 18)) (node (ref J3) (pin 6))) (net (code 49) (name "lcd.spi.mosi") - (node (ref U5) (pin 19)) + (node (ref U6) (pin 19)) (node (ref J3) (pin 5))) (net (code 50) (name "lcd.device.leda") (node (ref J3) (pin 1)) @@ -1650,16 +1650,16 @@ (net (code 70) (name "adc.vins.7") (node (ref U14) (pin 12))) (net (code 71) (name "adc.spi.sck") - (node (ref U5) (pin 37)) + (node (ref U6) (pin 37)) (node (ref U14) (pin 14))) (net (code 72) (name "adc.spi.mosi") - (node (ref U5) (pin 26)) + (node (ref U6) (pin 26)) (node (ref U14) (pin 15))) (net (code 73) (name "adc.spi.miso") - (node (ref U5) (pin 24)) + (node (ref U6) (pin 24)) (node (ref U14) (pin 16))) (net (code 74) (name "adc.cs") - (node (ref U5) (pin 39)) + (node (ref U6) (pin 39)) (node (ref U14) (pin 13))) (net (code 75) (name "adc.ic.avdd") (node (ref U14) (pin 1)) @@ -1679,7 +1679,7 @@ (node (ref R29) (pin 2)) (node (ref C31) (pin 1))) (net (code 79) (name "driver.enable") - (node (ref U5) (pin 48)) + (node (ref U6) (pin 48)) (node (ref U19) (pin 6))) (net (code 80) (name "driver.fet.source") (node (ref Q3) (pin 2)) @@ -1714,6 +1714,6 @@ (node (ref U17) (pin 1)) (node (ref R28) (pin 2))) (net (code 90) (name "driver_dac.input") - (node (ref U5) (pin 45)) + (node (ref U6) (pin 45)) (node (ref R29) (pin 1)))) ) \ No newline at end of file diff --git a/examples/Multimeter/Multimeter.svgpcb.js b/examples/Multimeter/Multimeter.svgpcb.js index 670a0e236..7c174973f 100644 --- a/examples/Multimeter/Multimeter.svgpcb.js +++ b/examples/Multimeter/Multimeter.svgpcb.js @@ -2,17 +2,17 @@ const board = new PCB(); // jlc_th.th1 const H1 = board.add(JlcToolingHole_1_152mm, { - translate: pt(2.913, 2.253), rotate: 0, + translate: pt(3.256, 2.354), rotate: 0, id: 'H1' }) // jlc_th.th2 const H2 = board.add(JlcToolingHole_1_152mm, { - translate: pt(2.952, 2.253), rotate: 0, + translate: pt(3.296, 2.354), rotate: 0, id: 'H2' }) // jlc_th.th3 const H3 = board.add(JlcToolingHole_1_152mm, { - translate: pt(2.913, 2.292), rotate: 0, + translate: pt(3.256, 2.393), rotate: 0, id: 'H3' }) // bat @@ -22,17 +22,22 @@ const U1 = board.add(BatteryHolder_Keystone_2460_1xAA, { }) // data_usb.conn const J1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(2.365, 0.932), rotate: 0, + translate: pt(2.898, 1.545), rotate: 0, id: 'J1' }) +// data_usb.esd +const U2 = board.add(SOT_23, { + translate: pt(3.223, 1.447), rotate: 0, + id: 'U2' +}) // data_usb.cc_pull.cc1 const R1 = board.add(R_0603_1608Metric, { - translate: pt(2.213, 1.187), rotate: 0, + translate: pt(3.206, 1.582), rotate: 0, id: 'R1' }) // data_usb.cc_pull.cc2 const R2 = board.add(R_0603_1608Metric, { - translate: pt(2.369, 1.187), rotate: 0, + translate: pt(3.206, 1.679), rotate: 0, id: 'R2' }) // gate.pwr_gate.pull_res @@ -71,94 +76,94 @@ const SW1 = board.add(SW_SPST_SKQG_WithoutStem, { id: 'SW1' }) // reg_5v.ic -const U2 = board.add(SOT_23_5, { - translate: pt(2.770, 1.447), rotate: 0, - id: 'U2' +const U3 = board.add(SOT_23_5, { + translate: pt(3.497, 1.447), rotate: 0, + id: 'U3' }) // reg_5v.power_path.inductor const L1 = board.add(L_0603_1608Metric, { - translate: pt(2.920, 1.582), rotate: 0, + translate: pt(3.648, 1.582), rotate: 0, id: 'L1' }) // reg_5v.power_path.in_cap.cap const C1 = board.add(C_0805_2012Metric, { - translate: pt(2.957, 1.419), rotate: 0, + translate: pt(3.684, 1.419), rotate: 0, id: 'C1' }) // reg_5v.power_path.out_cap.cap const C2 = board.add(C_0805_2012Metric, { - translate: pt(2.756, 1.592), rotate: 0, + translate: pt(3.483, 1.592), rotate: 0, id: 'C2' }) // reg_5v.ce_res.res const R5 = board.add(R_0603_1608Metric, { - translate: pt(2.747, 1.699), rotate: 0, + translate: pt(3.475, 1.699), rotate: 0, id: 'R5' }) // tp_5v.tp const TP1 = board.add(TestPoint_Keystone_5015_Micro_Minature, { - translate: pt(0.554, 2.306), rotate: 0, + translate: pt(1.088, 2.407), rotate: 0, id: 'TP1' }) // prot_5v.diode const D3 = board.add(D_MiniMELF, { - translate: pt(2.011, 2.296), rotate: 0, + translate: pt(2.545, 2.397), rotate: 0, id: 'D3' }) // reg_3v3.ic -const U3 = board.add(SOT_23_5, { - translate: pt(0.081, 1.971), rotate: 0, - id: 'U3' +const U4 = board.add(SOT_23_5, { + translate: pt(0.627, 1.971), rotate: 0, + id: 'U4' }) // reg_3v3.in_cap.cap const C3 = board.add(C_0603_1608Metric, { - translate: pt(0.058, 2.106), rotate: 0, + translate: pt(0.605, 2.106), rotate: 0, id: 'C3' }) // reg_3v3.out_cap.cap const C4 = board.add(C_0603_1608Metric, { - translate: pt(0.214, 2.106), rotate: 0, + translate: pt(0.761, 2.106), rotate: 0, id: 'C4' }) // tp_3v3.tp const TP2 = board.add(TestPoint_Keystone_5015_Micro_Minature, { - translate: pt(0.841, 2.306), rotate: 0, + translate: pt(1.375, 2.407), rotate: 0, id: 'TP2' }) // prot_3v3.diode const D4 = board.add(D_SOD_323, { - translate: pt(2.297, 2.290), rotate: 0, + translate: pt(2.831, 2.391), rotate: 0, id: 'D4' }) // reg_analog.ic -const U4 = board.add(SOT_23_5, { - translate: pt(0.471, 1.971), rotate: 0, - id: 'U4' +const U5 = board.add(SOT_23_5, { + translate: pt(1.018, 1.971), rotate: 0, + id: 'U5' }) // reg_analog.in_cap.cap const C5 = board.add(C_0603_1608Metric, { - translate: pt(0.449, 2.106), rotate: 0, + translate: pt(0.995, 2.106), rotate: 0, id: 'C5' }) // reg_analog.out_cap.cap const C6 = board.add(C_0603_1608Metric, { - translate: pt(0.605, 2.106), rotate: 0, + translate: pt(1.151, 2.106), rotate: 0, id: 'C6' }) // tp_analog.tp const TP3 = board.add(TestPoint_Keystone_5015_Micro_Minature, { - translate: pt(1.129, 2.306), rotate: 0, + translate: pt(1.663, 2.407), rotate: 0, id: 'TP3' }) // prot_analog.diode const D5 = board.add(D_SOD_323, { - translate: pt(2.541, 2.290), rotate: 0, + translate: pt(3.075, 2.391), rotate: 0, id: 'D5' }) // mcu.ic -const U5 = board.add(Raytac_MDBT50Q, { +const U6 = board.add(Raytac_MDBT50Q, { translate: pt(0.226, 0.325), rotate: 0, - id: 'U5' + id: 'U6' }) // mcu.vcc_cap.cap const C7 = board.add(C_0805_2012Metric, { @@ -187,137 +192,132 @@ const R7 = board.add(R_0603_1608Metric, { }) // vbatsense.div.top_res const R8 = board.add(R_0603_1608Metric, { - translate: pt(3.628, 1.933), rotate: 0, + translate: pt(0.357, 2.382), rotate: 0, id: 'R8' }) // vbatsense.div.bottom_res const R9 = board.add(R_0603_1608Metric, { - translate: pt(3.628, 2.030), rotate: 0, + translate: pt(0.357, 2.479), rotate: 0, id: 'R9' }) -// usb_esd -const U6 = board.add(SOT_23, { - translate: pt(2.798, 2.320), rotate: 0, - id: 'U6' -}) // rgb.package const D6 = board.add(LED_LiteOn_LTST_C19HE1WT, { - translate: pt(2.677, 1.959), rotate: 0, + translate: pt(3.223, 1.959), rotate: 0, id: 'D6' }) // rgb.red_res const R10 = board.add(R_0603_1608Metric, { - translate: pt(2.816, 1.933), rotate: 0, + translate: pt(3.362, 1.933), rotate: 0, id: 'R10' }) // rgb.green_res const R11 = board.add(R_0603_1608Metric, { - translate: pt(2.694, 2.082), rotate: 0, + translate: pt(3.240, 2.082), rotate: 0, id: 'R11' }) // rgb.blue_res const R12 = board.add(R_0603_1608Metric, { - translate: pt(2.850, 2.082), rotate: 0, + translate: pt(3.396, 2.082), rotate: 0, id: 'R12' }) // sw1.package const SW2 = board.add(SW_SPST_SKQG_WithoutStem, { - translate: pt(1.507, 2.016), rotate: 0, + translate: pt(2.054, 2.016), rotate: 0, id: 'SW2' }) // sw2.package const SW3 = board.add(SW_SPST_SKQG_WithoutStem, { - translate: pt(1.960, 2.016), rotate: 0, + translate: pt(2.507, 2.016), rotate: 0, id: 'SW3' }) // lcd.device.conn const J3 = board.add(Hirose_FH12_8S_0_5SH_1x08_1MP_P0_50mm_Horizontal, { - translate: pt(2.891, 0.961), rotate: 0, + translate: pt(2.354, 0.961), rotate: 0, id: 'J3' }) // lcd.led_res const R13 = board.add(R_0603_1608Metric, { - translate: pt(2.750, 1.147), rotate: 0, + translate: pt(2.213, 1.147), rotate: 0, id: 'R13' }) // lcd.vdd_cap.cap const C9 = board.add(C_0603_1608Metric, { - translate: pt(2.906, 1.147), rotate: 0, + translate: pt(2.369, 1.147), rotate: 0, id: 'C9' }) // spk_dac.rc.r const R14 = board.add(R_0603_1608Metric, { - translate: pt(0.058, 2.281), rotate: 0, + translate: pt(0.592, 2.382), rotate: 0, id: 'R14' }) // spk_dac.rc.c const C10 = board.add(C_0603_1608Metric, { - translate: pt(0.058, 2.378), rotate: 0, + translate: pt(0.592, 2.479), rotate: 0, id: 'C10' }) // spk_tp.tp const TP4 = board.add(TestPoint_Keystone_5015_Micro_Minature, { - translate: pt(1.416, 2.306), rotate: 0, + translate: pt(1.950, 2.407), rotate: 0, id: 'TP4' }) // spk_drv.ic const U7 = board.add(MSOP_8_1EP_3x3mm_P0_65mm_EP1_68x1_88mm_ThermalVias, { - translate: pt(3.265, 1.449), rotate: 0, + translate: pt(0.123, 1.973), rotate: 0, id: 'U7' }) // spk_drv.pwr_cap.cap const C11 = board.add(C_0603_1608Metric, { - translate: pt(3.200, 1.586), rotate: 0, + translate: pt(0.058, 2.110), rotate: 0, id: 'C11' }) // spk_drv.bulk_cap.cap const C12 = board.add(C_0805_2012Metric, { - translate: pt(3.494, 1.419), rotate: 0, + translate: pt(0.352, 1.943), rotate: 0, id: 'C12' }) // spk_drv.inp_res.res const R15 = board.add(R_0603_1608Metric, { - translate: pt(3.356, 1.586), rotate: 0, + translate: pt(0.214, 2.110), rotate: 0, id: 'R15' }) // spk_drv.inp_cap.cap const C13 = board.add(C_0603_1608Metric, { - translate: pt(3.512, 1.586), rotate: 0, + translate: pt(0.370, 2.110), rotate: 0, id: 'C13' }) // spk_drv.inn_res.res const R16 = board.add(R_0603_1608Metric, { - translate: pt(3.200, 1.683), rotate: 0, + translate: pt(0.058, 2.207), rotate: 0, id: 'R16' }) // spk_drv.inn_cap.cap const C14 = board.add(C_0603_1608Metric, { - translate: pt(3.356, 1.683), rotate: 0, + translate: pt(0.214, 2.207), rotate: 0, id: 'C14' }) // spk.conn const J4 = board.add(JST_PH_B2B_PH_K_1x02_P2_00mm_Vertical, { - translate: pt(2.342, 2.034), rotate: 0, + translate: pt(2.889, 2.034), rotate: 0, id: 'J4' }) // ref_div.div.top_res const R17 = board.add(R_0603_1608Metric, { - translate: pt(0.293, 2.281), rotate: 0, + translate: pt(0.827, 2.382), rotate: 0, id: 'R17' }) // ref_div.div.bottom_res const R18 = board.add(R_0603_1608Metric, { - translate: pt(0.293, 2.378), rotate: 0, + translate: pt(0.827, 2.479), rotate: 0, id: 'R18' }) // ref_buf.amp.ic const U8 = board.add(SOT_23_6, { - translate: pt(0.862, 1.971), rotate: 0, + translate: pt(1.408, 1.971), rotate: 0, id: 'U8' }) // ref_buf.amp.vdd_cap.cap const C15 = board.add(C_0603_1608Metric, { - translate: pt(0.839, 2.106), rotate: 0, + translate: pt(1.386, 2.106), rotate: 0, id: 'C15' }) // inn @@ -327,12 +327,12 @@ const J5 = board.add(CLIFF_FCR7350, { }) // inn_mux.device.ic const U9 = board.add(SOT_363_SC_70_6, { - translate: pt(3.089, 1.959), rotate: 0, + translate: pt(3.635, 1.959), rotate: 0, id: 'U9' }) // inn_mux.device.vdd_cap.cap const C16 = board.add(C_0603_1608Metric, { - translate: pt(3.084, 2.082), rotate: 0, + translate: pt(3.631, 2.082), rotate: 0, id: 'C16' }) // inp @@ -392,17 +392,17 @@ const R22 = board.add(R_0603_1608Metric, { }) // measure_buffer.amp.ic const U13 = board.add(SOT_23_6, { - translate: pt(1.141, 1.971), rotate: 0, + translate: pt(1.688, 1.971), rotate: 0, id: 'U13' }) // measure_buffer.amp.vdd_cap.cap const C20 = board.add(C_0603_1608Metric, { - translate: pt(1.119, 2.106), rotate: 0, + translate: pt(1.665, 2.106), rotate: 0, id: 'C20' }) // tp_measure.tp const TP5 = board.add(TestPoint_Keystone_5015_Micro_Minature, { - translate: pt(1.704, 2.306), rotate: 0, + translate: pt(2.237, 2.407), rotate: 0, id: 'TP5' }) // adc.ic @@ -527,65 +527,65 @@ const D7 = board.add(D_SMA, { }) // driver_dac.rc.r const R29 = board.add(R_0603_1608Metric, { - translate: pt(3.328, 2.063), rotate: 0, + translate: pt(0.058, 2.512), rotate: 0, id: 'R29' }) // driver_dac.rc.c const C31 = board.add(C_1206_3216Metric, { - translate: pt(3.361, 1.949), rotate: 0, + translate: pt(0.091, 2.399), rotate: 0, id: 'C31' }) board.setNetlist([ - {name: "gnd", pads: [["U1", "2"], ["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["R1", "1"], ["R2", "1"], ["R4", "1"], ["Q2", "2"], ["SW1", "2"], ["U2", "2"], ["C1", "2"], ["C2", "2"], ["D3", "2"], ["U3", "2"], ["C3", "2"], ["C4", "2"], ["D4", "2"], ["U4", "2"], ["C5", "2"], ["C6", "2"], ["D5", "2"], ["U5", "1"], ["U5", "15"], ["U5", "2"], ["U5", "33"], ["U5", "55"], ["C7", "2"], ["J2", "5"], ["C8", "2"], ["R9", "2"], ["U6", "3"], ["SW2", "2"], ["SW3", "2"], ["J3", "2"], ["C9", "2"], ["C10", "2"], ["U7", "7"], ["U7", "9"], ["C11", "2"], ["C12", "2"], ["C14", "2"], ["R18", "2"], ["U8", "2"], ["C15", "2"], ["U9", "2"], ["U9", "3"], ["C16", "2"], ["U10", "2"], ["C17", "2"], ["U11", "2"], ["C18", "2"], ["U12", "2"], ["C19", "2"], ["U13", "2"], ["C20", "2"], ["U14", "19"], ["U14", "2"], ["U14", "3"], ["C21", "2"], ["C22", "2"], ["C23", "2"], ["C24", "2"], ["C25", "2"], ["U15", "2"], ["C26", "2"], ["U16", "2"], ["C27", "2"], ["U17", "2"], ["C28", "2"], ["U18", "2"], ["C29", "2"], ["U19", "2"], ["C30", "2"], ["C31", "2"]]}, + {name: "gnd", pads: [["U1", "2"], ["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["U2", "3"], ["R1", "1"], ["R2", "1"], ["R4", "1"], ["Q2", "2"], ["SW1", "2"], ["U3", "2"], ["C1", "2"], ["C2", "2"], ["D3", "2"], ["U4", "2"], ["C3", "2"], ["C4", "2"], ["D4", "2"], ["U5", "2"], ["C5", "2"], ["C6", "2"], ["D5", "2"], ["U6", "1"], ["U6", "15"], ["U6", "2"], ["U6", "33"], ["U6", "55"], ["C7", "2"], ["J2", "5"], ["C8", "2"], ["R9", "2"], ["SW2", "2"], ["SW3", "2"], ["J3", "2"], ["C9", "2"], ["C10", "2"], ["U7", "7"], ["U7", "9"], ["C11", "2"], ["C12", "2"], ["C14", "2"], ["R18", "2"], ["U8", "2"], ["C15", "2"], ["U9", "2"], ["U9", "3"], ["C16", "2"], ["U10", "2"], ["C17", "2"], ["U11", "2"], ["C18", "2"], ["U12", "2"], ["C19", "2"], ["U13", "2"], ["C20", "2"], ["U14", "19"], ["U14", "2"], ["U14", "3"], ["C21", "2"], ["C22", "2"], ["C23", "2"], ["C24", "2"], ["C25", "2"], ["U15", "2"], ["C26", "2"], ["U16", "2"], ["C27", "2"], ["U17", "2"], ["C28", "2"], ["U18", "2"], ["C29", "2"], ["U19", "2"], ["C30", "2"], ["C31", "2"]]}, {name: "vbat", pads: [["U1", "1"], ["R3", "1"], ["Q1", "2"]]}, - {name: "v5v", pads: [["U2", "4"], ["C2", "1"], ["TP1", "1"], ["D3", "1"], ["U3", "1"], ["U3", "3"], ["C3", "1"], ["U4", "1"], ["U4", "3"], ["C5", "1"], ["U7", "1"], ["U7", "6"], ["C11", "1"], ["C12", "1"]]}, - {name: "v3v3", pads: [["U3", "5"], ["C4", "1"], ["TP2", "1"], ["D4", "1"], ["U5", "28"], ["U5", "30"], ["C7", "1"], ["J2", "1"], ["D6", "2"], ["J3", "7"], ["R13", "1"], ["C9", "1"], ["R24", "1"]]}, - {name: "vanalog", pads: [["U4", "5"], ["C6", "1"], ["TP3", "1"], ["D5", "1"], ["R17", "1"], ["U8", "5"], ["U8", "6"], ["C15", "1"], ["U9", "5"], ["C16", "1"], ["U10", "5"], ["C17", "1"], ["U11", "5"], ["C18", "1"], ["U12", "5"], ["C19", "1"], ["U13", "5"], ["U13", "6"], ["C20", "1"], ["R23", "1"], ["U15", "5"], ["U15", "6"], ["C26", "1"], ["U16", "5"], ["C27", "1"], ["U17", "5"], ["C28", "1"], ["U18", "5"], ["C29", "1"], ["R25", "1"], ["R26", "1"], ["R27", "1"], ["R28", "1"], ["U19", "5"], ["C30", "1"]]}, + {name: "v5v", pads: [["U3", "4"], ["C2", "1"], ["TP1", "1"], ["D3", "1"], ["U4", "1"], ["U4", "3"], ["C3", "1"], ["U5", "1"], ["U5", "3"], ["C5", "1"], ["U7", "1"], ["U7", "6"], ["C11", "1"], ["C12", "1"]]}, + {name: "v3v3", pads: [["U4", "5"], ["C4", "1"], ["TP2", "1"], ["D4", "1"], ["U6", "28"], ["U6", "30"], ["C7", "1"], ["J2", "1"], ["D6", "2"], ["J3", "7"], ["R13", "1"], ["C9", "1"], ["R24", "1"]]}, + {name: "vanalog", pads: [["U5", "5"], ["C6", "1"], ["TP3", "1"], ["D5", "1"], ["R17", "1"], ["U8", "5"], ["U8", "6"], ["C15", "1"], ["U9", "5"], ["C16", "1"], ["U10", "5"], ["C17", "1"], ["U11", "5"], ["C18", "1"], ["U12", "5"], ["C19", "1"], ["U13", "5"], ["U13", "6"], ["C20", "1"], ["R23", "1"], ["U15", "5"], ["U15", "6"], ["C26", "1"], ["U16", "5"], ["C27", "1"], ["U17", "5"], ["C28", "1"], ["U18", "5"], ["C29", "1"], ["R25", "1"], ["R26", "1"], ["R27", "1"], ["R28", "1"], ["U19", "5"], ["C30", "1"]]}, {name: "vcenter", pads: [["U8", "1"], ["U8", "4"], ["U9", "1"]]}, - {name: "spk_chain_0", pads: [["U5", "36"], ["R14", "1"]]}, + {name: "spk_chain_0", pads: [["U6", "36"], ["R14", "1"]]}, {name: "spk_chain_1", pads: [["R14", "2"], ["C10", "1"], ["TP4", "1"], ["C13", "2"]]}, {name: "spk_chain_2.a", pads: [["U7", "8"], ["J4", "1"]]}, {name: "spk_chain_2.b", pads: [["U7", "5"], ["J4", "2"]]}, {name: "meas_chain_0", pads: [["R19", "2"], ["R20", "1"], ["R21", "1"], ["R22", "1"], ["U13", "3"]]}, {name: "meas_chain_1", pads: [["U13", "1"], ["U13", "4"], ["TP5", "1"], ["U14", "5"]]}, - {name: "data_usb.pwr", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["U5", "32"], ["C8", "1"]]}, - {name: "data_usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["R6", "1"], ["U6", "2"]]}, - {name: "data_usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["R7", "1"], ["U6", "1"]]}, + {name: "data_usb.pwr", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["U6", "32"], ["C8", "1"]]}, + {name: "data_usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["U2", "2"], ["R6", "1"]]}, + {name: "data_usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["U2", "1"], ["R7", "1"]]}, {name: "data_usb.conn.cc.cc1", pads: [["J1", "A5"], ["R1", "2"]]}, {name: "data_usb.conn.cc.cc2", pads: [["J1", "B5"], ["R2", "2"]]}, - {name: "gate.pwr_out", pads: [["Q1", "3"], ["U2", "3"], ["L1", "1"], ["C1", "1"], ["R5", "1"], ["R8", "1"]]}, - {name: "gate.btn_out", pads: [["D2", "2"], ["U5", "50"]]}, - {name: "gate.control", pads: [["R4", "2"], ["Q2", "1"], ["U5", "49"]]}, + {name: "gate.pwr_out", pads: [["Q1", "3"], ["U3", "3"], ["L1", "1"], ["C1", "1"], ["R5", "1"], ["R8", "1"]]}, + {name: "gate.btn_out", pads: [["D2", "2"], ["U6", "50"]]}, + {name: "gate.control", pads: [["R4", "2"], ["Q2", "1"], ["U6", "49"]]}, {name: "gate.pwr_gate.btn_in", pads: [["D1", "1"], ["D2", "1"], ["SW1", "1"]]}, {name: "gate.pwr_gate.pull_res.b", pads: [["R3", "2"], ["Q1", "1"], ["Q2", "3"], ["D1", "2"]]}, - {name: "reg_5v.ic.ce", pads: [["U2", "1"], ["R5", "2"]]}, - {name: "reg_5v.ic.sw", pads: [["U2", "5"], ["L1", "2"]]}, - {name: "mcu.gpio.rgb_red", pads: [["U5", "4"], ["R10", "2"]]}, - {name: "mcu.gpio.rgb_green", pads: [["U5", "5"], ["R11", "2"]]}, - {name: "mcu.gpio.rgb_blue", pads: [["U5", "6"], ["R12", "2"]]}, - {name: "mcu.gpio.inn_control_0", pads: [["U5", "41"], ["U9", "6"]]}, - {name: "mcu.gpio.measure_select_0_0", pads: [["U5", "42"], ["U10", "6"], ["U11", "6"]]}, - {name: "mcu.gpio.measure_select_1_0", pads: [["U5", "43"], ["U12", "6"]]}, - {name: "mcu.gpio.driver_select_0_0", pads: [["U5", "46"], ["U16", "6"], ["U17", "6"]]}, - {name: "mcu.gpio.driver_select_1_0", pads: [["U5", "44"], ["U18", "6"]]}, - {name: "mcu.swd_node.swdio", pads: [["U5", "51"], ["J2", "2"]]}, - {name: "mcu.swd_node.swclk", pads: [["U5", "53"], ["J2", "4"]]}, - {name: "mcu.reset_node", pads: [["U5", "40"], ["J2", "3"]]}, - {name: "mcu.swd.swo", pads: [["U5", "47"], ["J2", "6"]]}, - {name: "mcu.usb_res.interior.dp", pads: [["U5", "35"], ["R6", "2"]]}, - {name: "mcu.usb_res.interior.dm", pads: [["U5", "34"], ["R7", "2"]]}, - {name: "vbatsense.output", pads: [["U5", "9"], ["R8", "2"], ["R9", "1"]]}, + {name: "reg_5v.ic.ce", pads: [["U3", "1"], ["R5", "2"]]}, + {name: "reg_5v.ic.sw", pads: [["U3", "5"], ["L1", "2"]]}, + {name: "mcu.gpio.rgb_red", pads: [["U6", "4"], ["R10", "2"]]}, + {name: "mcu.gpio.rgb_green", pads: [["U6", "5"], ["R11", "2"]]}, + {name: "mcu.gpio.rgb_blue", pads: [["U6", "6"], ["R12", "2"]]}, + {name: "mcu.gpio.inn_control_0", pads: [["U6", "41"], ["U9", "6"]]}, + {name: "mcu.gpio.measure_select_0_0", pads: [["U6", "42"], ["U10", "6"], ["U11", "6"]]}, + {name: "mcu.gpio.measure_select_1_0", pads: [["U6", "43"], ["U12", "6"]]}, + {name: "mcu.gpio.driver_select_0_0", pads: [["U6", "46"], ["U16", "6"], ["U17", "6"]]}, + {name: "mcu.gpio.driver_select_1_0", pads: [["U6", "44"], ["U18", "6"]]}, + {name: "mcu.swd_node.swdio", pads: [["U6", "51"], ["J2", "2"]]}, + {name: "mcu.swd_node.swclk", pads: [["U6", "53"], ["J2", "4"]]}, + {name: "mcu.reset_node", pads: [["U6", "40"], ["J2", "3"]]}, + {name: "mcu.swd.swo", pads: [["U6", "47"], ["J2", "6"]]}, + {name: "mcu.usb_res.interior.dp", pads: [["U6", "35"], ["R6", "2"]]}, + {name: "mcu.usb_res.interior.dm", pads: [["U6", "34"], ["R7", "2"]]}, + {name: "vbatsense.output", pads: [["U6", "9"], ["R8", "2"], ["R9", "1"]]}, {name: "rgb.package.k_red", pads: [["D6", "3"], ["R10", "1"]]}, {name: "rgb.package.k_green", pads: [["D6", "4"], ["R11", "1"]]}, {name: "rgb.package.k_blue", pads: [["D6", "1"], ["R12", "1"]]}, - {name: "sw1.out", pads: [["U5", "16"], ["SW2", "1"]]}, - {name: "sw2.out", pads: [["U5", "3"], ["SW3", "1"]]}, - {name: "lcd.reset", pads: [["U5", "8"], ["J3", "3"]]}, - {name: "lcd.rs", pads: [["U5", "10"], ["J3", "4"]]}, - {name: "lcd.cs", pads: [["U5", "17"], ["J3", "8"]]}, - {name: "lcd.spi.sck", pads: [["U5", "18"], ["J3", "6"]]}, - {name: "lcd.spi.mosi", pads: [["U5", "19"], ["J3", "5"]]}, + {name: "sw1.out", pads: [["U6", "16"], ["SW2", "1"]]}, + {name: "sw2.out", pads: [["U6", "3"], ["SW3", "1"]]}, + {name: "lcd.reset", pads: [["U6", "8"], ["J3", "3"]]}, + {name: "lcd.rs", pads: [["U6", "10"], ["J3", "4"]]}, + {name: "lcd.cs", pads: [["U6", "17"], ["J3", "8"]]}, + {name: "lcd.spi.sck", pads: [["U6", "18"], ["J3", "6"]]}, + {name: "lcd.spi.mosi", pads: [["U6", "19"], ["J3", "5"]]}, {name: "lcd.device.leda", pads: [["J3", "1"], ["R13", "2"]]}, {name: "spk_drv.ic.inp", pads: [["U7", "4"], ["R15", "2"]]}, {name: "spk_drv.ic.inn", pads: [["U7", "3"], ["R16", "2"]]}, @@ -607,15 +607,15 @@ board.setNetlist([ {name: "adc.vins.5", pads: [["U14", "10"]]}, {name: "adc.vins.6", pads: [["U14", "11"]]}, {name: "adc.vins.7", pads: [["U14", "12"]]}, - {name: "adc.spi.sck", pads: [["U5", "37"], ["U14", "14"]]}, - {name: "adc.spi.mosi", pads: [["U5", "26"], ["U14", "15"]]}, - {name: "adc.spi.miso", pads: [["U5", "24"], ["U14", "16"]]}, - {name: "adc.cs", pads: [["U5", "39"], ["U14", "13"]]}, + {name: "adc.spi.sck", pads: [["U6", "37"], ["U14", "14"]]}, + {name: "adc.spi.mosi", pads: [["U6", "26"], ["U14", "15"]]}, + {name: "adc.spi.miso", pads: [["U6", "24"], ["U14", "16"]]}, + {name: "adc.cs", pads: [["U6", "39"], ["U14", "13"]]}, {name: "adc.ic.avdd", pads: [["U14", "1"], ["R23", "2"], ["C21", "1"], ["C22", "1"]]}, {name: "adc.ic.dvdd", pads: [["U14", "20"], ["R24", "2"], ["C23", "1"], ["C24", "1"]]}, {name: "adc.ic.vrefp", pads: [["U14", "4"], ["C25", "1"]]}, {name: "driver.control", pads: [["U15", "3"], ["R29", "2"], ["C31", "1"]]}, - {name: "driver.enable", pads: [["U5", "48"], ["U19", "6"]]}, + {name: "driver.enable", pads: [["U6", "48"], ["U19", "6"]]}, {name: "driver.fet.source", pads: [["Q3", "2"], ["U15", "4"], ["U18", "4"], ["U19", "3"]]}, {name: "driver.fet.drain", pads: [["Q3", "3"], ["D7", "2"]]}, {name: "driver.fet.gate", pads: [["Q3", "1"], ["U19", "4"]]}, @@ -626,11 +626,11 @@ board.setNetlist([ {name: "driver.range.res[1].b", pads: [["U16", "1"], ["R26", "2"]]}, {name: "driver.range.res[2].b", pads: [["U17", "3"], ["R27", "2"]]}, {name: "driver.range.res[3].b", pads: [["U17", "1"], ["R28", "2"]]}, - {name: "driver_dac.input", pads: [["U5", "45"], ["R29", "1"]]} + {name: "driver_dac.input", pads: [["U6", "45"], ["R29", "1"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(3.863779527559055, 2.525196850393701); +const limit1 = pt(3.8692913385826775, 2.6590551181102366); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/PcbBot/PcbBot.net.ref b/examples/PcbBot/PcbBot.net.ref index c6b41329e..d9b885d9f 100644 --- a/examples/PcbBot/PcbBot.net.ref +++ b/examples/PcbBot/PcbBot.net.ref @@ -44,10 +44,22 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) +(comp (ref "U1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "U1")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "R1") (value "usb.cc_pull.cc1") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -252,14 +264,14 @@ (property (name "edg_value") (value "30V 4A 44mΩ@10V,4.3A 1.4W 1.3V@250μA P Channel SOT-23-3L MOSFETs ROHS")) (sheetpath (names "/pwr_or/") (tstamps "/092e029a/")) (tstamps "02730140")) -(comp (ref "U1") +(comp (ref "U2") (value "reg_3v3.ic") (footprint "Package_TO_SOT_SMD:SOT-223-3_TabPin2") (property (name "Sheetname") (value "reg_3v3")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ldl1117")) (property (name "edg_path") (value "reg_3v3.ic")) (property (name "edg_short_path") (value "reg_3v3.ic")) - (property (name "edg_refdes") (value "U1")) + (property (name "edg_refdes") (value "U2")) (property (name "edg_part") (value "LDL1117S33R (STMicroelectronics)")) (property (name "edg_value") (value "LDL1117S33R")) (sheetpath (names "/reg_3v3/") (tstamps "/0aba027a/")) @@ -312,14 +324,14 @@ (property (name "edg_value") (value "v3v3")) (sheetpath (names "/") (tstamps "/")) (tstamps "08220220")) -(comp (ref "U2") +(comp (ref "U3") (value "charger.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "charger")) (property (name "Sheetfile") (value "edg.parts.power.BatteryCharger_Mcp73831.Mcp73831")) (property (name "edg_path") (value "charger.ic")) (property (name "edg_short_path") (value "charger.ic")) - (property (name "edg_refdes") (value "U2")) + (property (name "edg_refdes") (value "U3")) (property (name "edg_part") (value "MCP73831T-2ACI/OT (Microchip Technology)")) (property (name "edg_value") (value "MCP73831T-2ACI/OT")) (sheetpath (names "/charger/") (tstamps "/0b4a02dd/")) @@ -408,14 +420,14 @@ (property (name "edg_value") (value "5.1mm switch")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) (tstamps "042b01b5")) -(comp (ref "U3") +(comp (ref "U4") (value "mcu.ic") (footprint "RF_Module:ESP32-S3-WROOM-1") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Esp32s3.Esp32s3_Wroom_1")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "U3")) + (property (name "edg_refdes") (value "U4")) (property (name "edg_part") (value "ESP32-S3-WROOM-1-N16R8 (Espressif Systems)")) (property (name "edg_value") (value "ESP32-S3-WROOM-1-N16R8")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -468,18 +480,6 @@ (property (name "edg_value") (value "50V 1uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/mcu/en_pull/") (tstamps "/02850146/0b9c02f0/")) (tstamps "00640064")) -(comp (ref "U4") - (value "usb_esd") - (footprint "Package_TO_SOT_SMD:SOT-23") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) - (property (name "edg_path") (value "usb_esd")) - (property (name "edg_short_path") (value "usb_esd")) - (property (name "edg_refdes") (value "U4")) - (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) - (property (name "edg_value") (value "PESD5V0X1BT")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "0bcb02e6")) (comp (ref "D7") (value "led.package") (footprint "LED_SMD:LED_0603_1608Metric") @@ -1305,7 +1305,7 @@ (node (ref R5) (pin 1)) (node (ref D4) (pin 2)) (node (ref Q3) (pin 1)) - (node (ref U2) (pin 4)) + (node (ref U3) (pin 4)) (node (ref C3) (pin 1)) (node (ref D6) (pin 2))) (net (code 2) (name "gnd") @@ -1314,6 +1314,7 @@ (node (ref J1) (pin B1)) (node (ref J1) (pin B12)) (node (ref J1) (pin S1)) + (node (ref U1) (pin 3)) (node (ref R1) (pin 1)) (node (ref R2) (pin 1)) (node (ref J2) (pin 1)) @@ -1323,23 +1324,22 @@ (node (ref SW1) (pin 2)) (node (ref D3) (pin 2)) (node (ref R5) (pin 2)) - (node (ref U1) (pin 1)) + (node (ref U2) (pin 1)) (node (ref C1) (pin 2)) (node (ref C2) (pin 2)) (node (ref D5) (pin 2)) - (node (ref U2) (pin 2)) + (node (ref U3) (pin 2)) (node (ref C3) (pin 2)) (node (ref C4) (pin 2)) (node (ref R6) (pin 1)) (node (ref J3) (pin 4)) (node (ref SW2) (pin 2)) - (node (ref U3) (pin 1)) - (node (ref U3) (pin 40)) - (node (ref U3) (pin 41)) + (node (ref U4) (pin 1)) + (node (ref U4) (pin 40)) + (node (ref U4) (pin 41)) (node (ref C5) (pin 2)) (node (ref C6) (pin 2)) (node (ref C7) (pin 2)) - (node (ref U4) (pin 3)) (node (ref R9) (pin 2)) (node (ref J4) (pin 2)) (node (ref J5) (pin 2)) @@ -1448,19 +1448,19 @@ (net (code 4) (name "pwr") (node (ref D4) (pin 1)) (node (ref Q3) (pin 2)) - (node (ref U1) (pin 3)) + (node (ref U2) (pin 3)) (node (ref C1) (pin 1)) (node (ref U9) (pin 3)) (node (ref C21) (pin 1)) (node (ref U10) (pin 3)) (node (ref C23) (pin 1))) (net (code 5) (name "v3v3") - (node (ref U1) (pin 2)) + (node (ref U2) (pin 2)) (node (ref C2) (pin 1)) (node (ref D5) (pin 1)) (node (ref TP3) (pin 1)) (node (ref J3) (pin 1)) - (node (ref U3) (pin 2)) + (node (ref U4) (pin 2)) (node (ref C5) (pin 1)) (node (ref C6) (pin 1)) (node (ref R8) (pin 1)) @@ -1499,20 +1499,10 @@ (node (ref U10) (pin 2)) (node (ref C24) (pin 1)) (node (ref J13) (pin 15))) -(net (code 8) (name "usb_chain_0.d_P") - (node (ref J1) (pin A6)) - (node (ref J1) (pin B6)) - (node (ref U3) (pin 14)) - (node (ref U4) (pin 2))) -(net (code 9) (name "usb_chain_0.d_N") - (node (ref J1) (pin A7)) - (node (ref J1) (pin B7)) - (node (ref U3) (pin 13)) - (node (ref U4) (pin 1))) -(net (code 10) (name "touch_0") - (node (ref U3) (pin 7))) -(net (code 11) (name "i2c_chain_0.scl") - (node (ref U3) (pin 38)) +(net (code 8) (name "touch_0") + (node (ref U4) (pin 7))) +(net (code 9) (name "i2c_chain_0.scl") + (node (ref U4) (pin 38)) (node (ref J4) (pin 3)) (node (ref J5) (pin 3)) (node (ref J6) (pin 3)) @@ -1524,8 +1514,8 @@ (node (ref U7) (pin 14)) (node (ref J8) (pin 18)) (node (ref J13) (pin 20))) -(net (code 12) (name "i2c_chain_0.sda") - (node (ref U3) (pin 4)) +(net (code 10) (name "i2c_chain_0.sda") + (node (ref U4) (pin 4)) (node (ref J4) (pin 4)) (node (ref J5) (pin 4)) (node (ref J6) (pin 4)) @@ -1538,6 +1528,16 @@ (node (ref J8) (pin 19)) (node (ref J8) (pin 20)) (node (ref J13) (pin 22))) +(net (code 11) (name "usb.usb.dp") + (node (ref J1) (pin A6)) + (node (ref J1) (pin B6)) + (node (ref U1) (pin 2)) + (node (ref U4) (pin 14))) +(net (code 12) (name "usb.usb.dm") + (node (ref J1) (pin A7)) + (node (ref J1) (pin B7)) + (node (ref U1) (pin 1)) + (node (ref U4) (pin 13))) (net (code 13) (name "usb.conn.cc.cc1") (node (ref J1) (pin A5)) (node (ref R1) (pin 2))) @@ -1547,7 +1547,7 @@ (net (code 15) (name "batt.pwr") (node (ref J2) (pin 2)) (node (ref F1) (pin 1)) - (node (ref U2) (pin 3)) + (node (ref U3) (pin 3)) (node (ref C4) (pin 1))) (net (code 16) (name "fuse.pwr_out") (node (ref F1) (pin 2)) @@ -1555,11 +1555,11 @@ (node (ref Q1) (pin 2))) (net (code 17) (name "gate.btn_out") (node (ref D2) (pin 2)) - (node (ref U3) (pin 32))) + (node (ref U4) (pin 32))) (net (code 18) (name "gate.control") (node (ref R4) (pin 2)) (node (ref Q2) (pin 1)) - (node (ref U3) (pin 33))) + (node (ref U4) (pin 33))) (net (code 19) (name "gate.pwr_gate.btn_in") (node (ref D1) (pin 1)) (node (ref D2) (pin 1)) @@ -1570,27 +1570,27 @@ (node (ref Q2) (pin 3)) (node (ref D1) (pin 2))) (net (code 21) (name "charger.stat") - (node (ref U2) (pin 1)) + (node (ref U3) (pin 1)) (node (ref R7) (pin 2))) (net (code 22) (name "charger.ic.prog") - (node (ref U2) (pin 5)) + (node (ref U3) (pin 5)) (node (ref R6) (pin 2))) (net (code 23) (name "charge_led.package.k") (node (ref D6) (pin 1)) (node (ref R7) (pin 1))) (net (code 24) (name "mcu.program_uart_node.a_tx") (node (ref J3) (pin 3)) - (node (ref U3) (pin 36))) + (node (ref U4) (pin 36))) (net (code 25) (name "mcu.program_uart_node.b_tx") (node (ref J3) (pin 2)) - (node (ref U3) (pin 37))) + (node (ref U4) (pin 37))) (net (code 26) (name "mcu.program_en_node") - (node (ref U3) (pin 3)) + (node (ref U4) (pin 3)) (node (ref R8) (pin 2)) (node (ref C7) (pin 1))) (net (code 27) (name "mcu.program_boot_node") (node (ref SW2) (pin 1)) - (node (ref U3) (pin 27)) + (node (ref U4) (pin 27)) (node (ref D7) (pin 2))) (net (code 28) (name "led.package.k") (node (ref D7) (pin 1)) @@ -1646,7 +1646,7 @@ (node (ref D8) (pin 4)) (node (ref R14) (pin 1))) (net (code 48) (name "oled.reset") - (node (ref U3) (pin 31)) + (node (ref U4) (pin 31)) (node (ref J8) (pin 14))) (net (code 49) (name "oled.device.vcc") (node (ref J8) (pin 28)) @@ -1670,23 +1670,23 @@ (node (ref J8) (pin 3)) (node (ref C15) (pin 2))) (net (code 56) (name "batt_sense.output") - (node (ref U3) (pin 39)) + (node (ref U4) (pin 39)) (node (ref R16) (pin 2)) (node (ref R17) (pin 1))) (net (code 57) (name "servo[0].pwm") - (node (ref U3) (pin 5)) + (node (ref U4) (pin 5)) (node (ref J9) (pin 1))) (net (code 58) (name "servo[1].pwm") - (node (ref U3) (pin 6)) + (node (ref U4) (pin 6)) (node (ref J10) (pin 1))) (net (code 59) (name "servo[2].pwm") - (node (ref U3) (pin 8)) + (node (ref U4) (pin 8)) (node (ref J11) (pin 1))) (net (code 60) (name "servo[3].pwm") - (node (ref U3) (pin 10)) + (node (ref U4) (pin 10)) (node (ref J12) (pin 1))) (net (code 61) (name "npx.din") - (node (ref U3) (pin 9)) + (node (ref U4) (pin 9)) (node (ref D9) (pin 4))) (net (code 62) (name "npx.dout") (node (ref D24) (pin 2)) @@ -1739,41 +1739,41 @@ (net (code 78) (name "npx_key.dout") (node (ref D25) (pin 2))) (net (code 79) (name "cam.dvp8.xclk") - (node (ref U3) (pin 17)) + (node (ref U4) (pin 17)) (node (ref J13) (pin 12))) (net (code 80) (name "cam.dvp8.pclk") - (node (ref U3) (pin 20)) + (node (ref U4) (pin 20)) (node (ref J13) (pin 8)) (node (ref C27) (pin 1))) (net (code 81) (name "cam.dvp8.href") - (node (ref U3) (pin 12)) + (node (ref U4) (pin 12)) (node (ref J13) (pin 16))) (net (code 82) (name "cam.dvp8.vsync") - (node (ref U3) (pin 11)) + (node (ref U4) (pin 11)) (node (ref J13) (pin 18))) (net (code 83) (name "cam.dvp8.y0") - (node (ref U3) (pin 22)) + (node (ref U4) (pin 22)) (node (ref J13) (pin 6))) (net (code 84) (name "cam.dvp8.y1") - (node (ref U3) (pin 24)) + (node (ref U4) (pin 24)) (node (ref J13) (pin 4))) (net (code 85) (name "cam.dvp8.y2") - (node (ref U3) (pin 25)) + (node (ref U4) (pin 25)) (node (ref J13) (pin 3))) (net (code 86) (name "cam.dvp8.y3") - (node (ref U3) (pin 23)) + (node (ref U4) (pin 23)) (node (ref J13) (pin 5))) (net (code 87) (name "cam.dvp8.y4") - (node (ref U3) (pin 21)) + (node (ref U4) (pin 21)) (node (ref J13) (pin 7))) (net (code 88) (name "cam.dvp8.y5") - (node (ref U3) (pin 19)) + (node (ref U4) (pin 19)) (node (ref J13) (pin 9))) (net (code 89) (name "cam.dvp8.y6") - (node (ref U3) (pin 18)) + (node (ref U4) (pin 18)) (node (ref J13) (pin 11))) (net (code 90) (name "cam.dvp8.y7") - (node (ref U3) (pin 15)) + (node (ref U4) (pin 15)) (node (ref J13) (pin 13))) (net (code 91) (name "cam.device.y.0") (node (ref J13) (pin 1))) @@ -1784,6 +1784,6 @@ (node (ref C26) (pin 1)) (node (ref R18) (pin 2))) (net (code 94) (name "switch.out") - (node (ref U3) (pin 34)) + (node (ref U4) (pin 34)) (node (ref SW3) (pin 1)))) ) \ No newline at end of file diff --git a/examples/PcbBot/PcbBot.svgpcb.js b/examples/PcbBot/PcbBot.svgpcb.js index 3deed6500..5fbc6bd43 100644 --- a/examples/PcbBot/PcbBot.svgpcb.js +++ b/examples/PcbBot/PcbBot.svgpcb.js @@ -2,47 +2,52 @@ const board = new PCB(); // jlc_th.th1 const H1 = board.add(JlcToolingHole_1_152mm, { - translate: pt(3.848, 3.301), rotate: 0, + translate: pt(4.453, 3.312), rotate: 0, id: 'H1' }) // jlc_th.th2 const H2 = board.add(JlcToolingHole_1_152mm, { - translate: pt(3.887, 3.301), rotate: 0, + translate: pt(4.493, 3.312), rotate: 0, id: 'H2' }) // jlc_th.th3 const H3 = board.add(JlcToolingHole_1_152mm, { - translate: pt(3.848, 3.341), rotate: 0, + translate: pt(4.453, 3.352), rotate: 0, id: 'H3' }) // usb.conn const J1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(3.034, 1.905), rotate: 0, + translate: pt(0.209, 3.007), rotate: 0, id: 'J1' }) +// usb.esd +const U1 = board.add(SOT_23, { + translate: pt(0.534, 2.909), rotate: 0, + id: 'U1' +}) // usb.cc_pull.cc1 const R1 = board.add(R_0603_1608Metric, { - translate: pt(2.883, 2.160), rotate: 0, + translate: pt(0.517, 3.044), rotate: 0, id: 'R1' }) // usb.cc_pull.cc2 const R2 = board.add(R_0603_1608Metric, { - translate: pt(3.039, 2.160), rotate: 0, + translate: pt(0.517, 3.141), rotate: 0, id: 'R2' }) // batt.conn const J2 = board.add(JST_PH_B2B_PH_K_1x02_P2_00mm_Vertical, { - translate: pt(0.487, 3.431), rotate: 0, + translate: pt(1.283, 3.442), rotate: 0, id: 'J2' }) // tp_gnd.tp const TP1 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.728, 3.339), rotate: 0, + translate: pt(3.524, 3.350), rotate: 0, id: 'TP1' }) // fuse.fuse const F1 = board.add(R_1206_3216Metric, { - translate: pt(2.454, 3.345), rotate: 0, + translate: pt(3.250, 3.356), rotate: 0, id: 'F1' }) // gate.pwr_gate.pull_res @@ -82,82 +87,82 @@ const SW1 = board.add(SW_SPST_SKQG_WithoutStem, { }) // prot_batt.diode const D3 = board.add(D_SMA, { - translate: pt(2.108, 3.370), rotate: 0, + translate: pt(2.904, 3.381), rotate: 0, id: 'D3' }) // tp_batt.tp const TP2 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(2.978, 3.339), rotate: 0, + translate: pt(3.774, 3.350), rotate: 0, id: 'TP2' }) // pwr_or.pdr const R5 = board.add(R_0603_1608Metric, { - translate: pt(2.681, 3.044), rotate: 0, + translate: pt(3.409, 3.044), rotate: 0, id: 'R5' }) // pwr_or.diode const D4 = board.add(D_SOD_323, { - translate: pt(2.521, 3.053), rotate: 0, + translate: pt(3.248, 3.053), rotate: 0, id: 'D4' }) // pwr_or.fet const Q3 = board.add(SOT_23, { - translate: pt(2.533, 2.909), rotate: 0, + translate: pt(3.261, 2.909), rotate: 0, id: 'Q3' }) // reg_3v3.ic -const U1 = board.add(SOT_223_3_TabPin2, { - translate: pt(4.365, 1.882), rotate: 0, - id: 'U1' +const U2 = board.add(SOT_223_3_TabPin2, { + translate: pt(3.828, 1.882), rotate: 0, + id: 'U2' }) // reg_3v3.in_cap.cap const C1 = board.add(C_0603_1608Metric, { - translate: pt(4.424, 2.092), rotate: 0, + translate: pt(3.887, 2.092), rotate: 0, id: 'C1' }) // reg_3v3.out_cap.cap const C2 = board.add(C_0805_2012Metric, { - translate: pt(4.259, 2.102), rotate: 0, + translate: pt(3.722, 2.102), rotate: 0, id: 'C2' }) // prot_3v3.diode const D5 = board.add(D_SOD_323, { - translate: pt(3.226, 3.339), rotate: 0, + translate: pt(4.022, 3.350), rotate: 0, id: 'D5' }) // tp_3v3.tp const TP3 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(3.473, 3.339), rotate: 0, + translate: pt(4.269, 3.350), rotate: 0, id: 'TP3' }) // charger.ic -const U2 = board.add(SOT_23_5, { - translate: pt(2.085, 2.909), rotate: 0, - id: 'U2' +const U3 = board.add(SOT_23_5, { + translate: pt(2.813, 2.909), rotate: 0, + id: 'U3' }) // charger.vdd_cap.cap const C3 = board.add(C_0805_2012Metric, { - translate: pt(2.272, 2.881), rotate: 0, + translate: pt(3.000, 2.881), rotate: 0, id: 'C3' }) // charger.vbat_cap.cap const C4 = board.add(C_0805_2012Metric, { - translate: pt(2.072, 3.054), rotate: 0, + translate: pt(2.799, 3.054), rotate: 0, id: 'C4' }) // charger.prog_res.res const R6 = board.add(R_0603_1608Metric, { - translate: pt(2.236, 3.044), rotate: 0, + translate: pt(2.964, 3.044), rotate: 0, id: 'R6' }) // charge_led.package const D6 = board.add(LED_0603_1608Metric, { - translate: pt(1.089, 3.330), rotate: 0, + translate: pt(1.885, 3.341), rotate: 0, id: 'D6' }) // charge_led.res const R7 = board.add(R_0603_1608Metric, { - translate: pt(1.089, 3.427), rotate: 0, + translate: pt(1.885, 3.438), rotate: 0, id: 'R7' }) // mcu.prog.conn @@ -171,9 +176,9 @@ const SW2 = board.add(SW_SPST_SKQG_WithoutStem, { id: 'SW2' }) // mcu.ic -const U3 = board.add(ESP32_S3_WROOM_1, { +const U4 = board.add(ESP32_S3_WROOM_1, { translate: pt(0.945, 0.530), rotate: 0, - id: 'U3' + id: 'U4' }) // mcu.vcc_cap0.cap const C5 = board.add(C_1206_3216Metric, { @@ -195,19 +200,14 @@ const C7 = board.add(C_0603_1608Metric, { translate: pt(1.987, 0.903), rotate: 0, id: 'C7' }) -// usb_esd -const U4 = board.add(SOT_23, { - translate: pt(3.733, 3.368), rotate: 0, - id: 'U4' -}) // led.package const D7 = board.add(LED_0603_1608Metric, { - translate: pt(1.324, 3.330), rotate: 0, + translate: pt(2.120, 3.341), rotate: 0, id: 'D7' }) // led.res const R9 = board.add(R_0603_1608Metric, { - translate: pt(1.324, 3.427), rotate: 0, + translate: pt(2.120, 3.438), rotate: 0, id: 'R9' }) // tof.elt[0].conn @@ -232,87 +232,87 @@ const J7 = board.add(PinSocket_1x06_P2_54mm_Vertical, { }) // i2c_pull.scl_res.res const R10 = board.add(R_0603_1608Metric, { - translate: pt(1.559, 3.330), rotate: 0, + translate: pt(2.355, 3.341), rotate: 0, id: 'R10' }) // i2c_pull.sda_res.res const R11 = board.add(R_0603_1608Metric, { - translate: pt(1.559, 3.427), rotate: 0, + translate: pt(2.355, 3.438), rotate: 0, id: 'R11' }) // i2c_tp.tp_scl.tp const TP4 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(0.846, 3.339), rotate: 0, + translate: pt(1.643, 3.350), rotate: 0, id: 'TP4' }) // i2c_tp.tp_sda.tp const TP5 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(0.846, 3.453), rotate: 0, + translate: pt(1.643, 3.464), rotate: 0, id: 'TP5' }) // imu.ic const U5 = board.add(Bosch_LGA_14_3x2_5mm_P0_5mm, { - translate: pt(0.073, 3.364), rotate: 0, + translate: pt(0.869, 3.375), rotate: 0, id: 'U5' }) // imu.vdd_cap.cap const C8 = board.add(C_0603_1608Metric, { - translate: pt(0.058, 3.495), rotate: 0, + translate: pt(0.854, 3.506), rotate: 0, id: 'C8' }) // imu.vddio_cap.cap const C9 = board.add(C_0603_1608Metric, { - translate: pt(0.214, 3.495), rotate: 0, + translate: pt(1.010, 3.506), rotate: 0, id: 'C9' }) // mag.ic const U6 = board.add(LGA_16_3x3mm_P0_5mm, { - translate: pt(2.927, 2.911), rotate: 0, + translate: pt(3.654, 2.911), rotate: 0, id: 'U6' }) // mag.vdd_cap.cap const C10 = board.add(C_0603_1608Metric, { - translate: pt(2.916, 3.048), rotate: 0, + translate: pt(3.644, 3.048), rotate: 0, id: 'C10' }) // mag.set_cap const C11 = board.add(C_0603_1608Metric, { - translate: pt(3.072, 3.048), rotate: 0, + translate: pt(3.800, 3.048), rotate: 0, id: 'C11' }) // mag.c1.cap const C12 = board.add(C_0805_2012Metric, { - translate: pt(3.102, 2.881), rotate: 0, + translate: pt(3.830, 2.881), rotate: 0, id: 'C12' }) // expander.ic const U7 = board.add(TSSOP_16_4_4x5mm_P0_65mm, { - translate: pt(1.191, 2.951), rotate: 0, + translate: pt(1.919, 2.951), rotate: 0, id: 'U7' }) // expander.vdd_cap.cap const C13 = board.add(C_0603_1608Metric, { - translate: pt(1.098, 3.127), rotate: 0, + translate: pt(1.825, 3.127), rotate: 0, id: 'C13' }) // rgb.package const D8 = board.add(LED_D5_0mm_4_RGB_Staggered_Pins, { - translate: pt(1.501, 3.000), rotate: 0, + translate: pt(2.228, 3.000), rotate: 0, id: 'D8' }) // rgb.red_res const R12 = board.add(R_0603_1608Metric, { - translate: pt(1.828, 2.871), rotate: 0, + translate: pt(2.556, 2.871), rotate: 0, id: 'R12' }) // rgb.green_res const R13 = board.add(R_0603_1608Metric, { - translate: pt(1.828, 2.968), rotate: 0, + translate: pt(2.556, 2.968), rotate: 0, id: 'R13' }) // rgb.blue_res const R14 = board.add(R_0603_1608Metric, { - translate: pt(1.828, 3.065), rotate: 0, + translate: pt(2.556, 3.065), rotate: 0, id: 'R14' }) // oled.device.conn @@ -362,32 +362,32 @@ const C19 = board.add(C_0805_2012Metric, { }) // batt_sense.div.top_res const R16 = board.add(R_0603_1608Metric, { - translate: pt(1.793, 3.330), rotate: 0, + translate: pt(2.589, 3.341), rotate: 0, id: 'R16' }) // batt_sense.div.bottom_res const R17 = board.add(R_0603_1608Metric, { - translate: pt(1.793, 3.427), rotate: 0, + translate: pt(2.589, 3.438), rotate: 0, id: 'R17' }) // servo[0].conn const J9 = board.add(PinHeader_1x03_P2_54mm_Vertical, { - translate: pt(0.071, 3.112), rotate: 0, + translate: pt(0.798, 3.112), rotate: 0, id: 'J9' }) // servo[1].conn const J10 = board.add(PinHeader_1x03_P2_54mm_Vertical, { - translate: pt(0.331, 3.112), rotate: 0, + translate: pt(1.058, 3.112), rotate: 0, id: 'J10' }) // servo[2].conn const J11 = board.add(PinHeader_1x03_P2_54mm_Vertical, { - translate: pt(0.591, 3.112), rotate: 0, + translate: pt(1.318, 3.112), rotate: 0, id: 'J11' }) // servo[3].conn const J12 = board.add(PinHeader_1x03_P2_54mm_Vertical, { - translate: pt(0.850, 3.112), rotate: 0, + translate: pt(1.578, 3.112), rotate: 0, id: 'J12' }) // npx.led[0] @@ -472,103 +472,103 @@ const D24 = board.add(LED_WS2812B_PLCC4_5_0x5_0mm_P3_2mm, { }) // npx_key.device const D25 = board.add(LED_SK6812MINI_E, { - translate: pt(4.212, 2.907), rotate: 0, + translate: pt(0.534, 3.377), rotate: 0, id: 'D25' }) // npx_key.cap.cap const C20 = board.add(C_0603_1608Metric, { - translate: pt(4.126, 3.041), rotate: 0, + translate: pt(0.449, 3.510), rotate: 0, id: 'C20' }) // reg_2v5.ic const U9 = board.add(SOT_23, { - translate: pt(3.363, 2.909), rotate: 0, + translate: pt(4.090, 2.909), rotate: 0, id: 'U9' }) // reg_2v5.in_cap.cap const C21 = board.add(C_0603_1608Metric, { - translate: pt(3.345, 3.044), rotate: 0, + translate: pt(4.073, 3.044), rotate: 0, id: 'C21' }) // reg_2v5.out_cap.cap const C22 = board.add(C_0603_1608Metric, { - translate: pt(3.501, 3.044), rotate: 0, + translate: pt(4.229, 3.044), rotate: 0, id: 'C22' }) // reg_1v2.ic const U10 = board.add(SOT_23, { - translate: pt(3.753, 2.909), rotate: 0, + translate: pt(0.076, 3.379), rotate: 0, id: 'U10' }) // reg_1v2.in_cap.cap const C23 = board.add(C_0603_1608Metric, { - translate: pt(3.736, 3.044), rotate: 0, + translate: pt(0.058, 3.514), rotate: 0, id: 'C23' }) // reg_1v2.out_cap.cap const C24 = board.add(C_0603_1608Metric, { - translate: pt(3.892, 3.044), rotate: 0, + translate: pt(0.214, 3.514), rotate: 0, id: 'C24' }) // cam.device.conn const J13 = board.add(Hirose_FH12_24S_0_5SH_1x24_1MP_P0_50mm_Horizontal, { - translate: pt(3.718, 1.933), rotate: 0, + translate: pt(3.181, 1.933), rotate: 0, id: 'J13' }) // cam.dovdd_cap.cap const C25 = board.add(C_0603_1608Metric, { - translate: pt(3.420, 2.119), rotate: 0, + translate: pt(2.883, 2.119), rotate: 0, id: 'C25' }) // cam.reset_cap.cap const C26 = board.add(C_0603_1608Metric, { - translate: pt(3.576, 2.119), rotate: 0, + translate: pt(3.039, 2.119), rotate: 0, id: 'C26' }) // cam.pclk_cap.cap const C27 = board.add(C_0603_1608Metric, { - translate: pt(3.731, 2.119), rotate: 0, + translate: pt(3.194, 2.119), rotate: 0, id: 'C27' }) // cam.reset_pull.res const R18 = board.add(R_0603_1608Metric, { - translate: pt(3.887, 2.119), rotate: 0, + translate: pt(3.350, 2.119), rotate: 0, id: 'R18' }) // switch.package const SW3 = board.add(SW_Hotswap_Kailh_MX, { - translate: pt(4.005, 3.301), rotate: 0, + translate: pt(4.611, 3.312), rotate: 0, id: 'SW3' }) board.setNetlist([ - {name: "vusb", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["R5", "1"], ["D4", "2"], ["Q3", "1"], ["U2", "4"], ["C3", "1"], ["D6", "2"]]}, - {name: "gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["R1", "1"], ["R2", "1"], ["J2", "1"], ["TP1", "1"], ["R4", "1"], ["Q2", "2"], ["SW1", "2"], ["D3", "2"], ["R5", "2"], ["U1", "1"], ["C1", "2"], ["C2", "2"], ["D5", "2"], ["U2", "2"], ["C3", "2"], ["C4", "2"], ["R6", "1"], ["J3", "4"], ["SW2", "2"], ["U3", "1"], ["U3", "40"], ["U3", "41"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["U4", "3"], ["R9", "2"], ["J4", "2"], ["J5", "2"], ["J6", "2"], ["J7", "2"], ["U5", "1"], ["U5", "2"], ["U5", "3"], ["U5", "6"], ["U5", "7"], ["C8", "2"], ["C9", "2"], ["U6", "11"], ["U6", "9"], ["C10", "2"], ["C12", "2"], ["U7", "1"], ["U7", "2"], ["U7", "3"], ["U7", "8"], ["C13", "2"], ["J8", "1"], ["J8", "10"], ["J8", "12"], ["J8", "13"], ["J8", "15"], ["J8", "16"], ["J8", "17"], ["J8", "21"], ["J8", "22"], ["J8", "23"], ["J8", "24"], ["J8", "25"], ["J8", "29"], ["J8", "30"], ["J8", "8"], ["R15", "1"], ["C16", "2"], ["C17", "2"], ["C18", "2"], ["C19", "2"], ["R17", "2"], ["J9", "3"], ["J10", "3"], ["J11", "3"], ["J12", "3"], ["D9", "3"], ["D10", "3"], ["D11", "3"], ["D12", "3"], ["D13", "3"], ["D14", "3"], ["D15", "3"], ["D16", "3"], ["D17", "3"], ["D18", "3"], ["D19", "3"], ["D20", "3"], ["D21", "3"], ["D22", "3"], ["D23", "3"], ["D24", "3"], ["D25", "3"], ["C20", "2"], ["U9", "1"], ["C21", "2"], ["C22", "2"], ["U10", "1"], ["C23", "2"], ["C24", "2"], ["J13", "10"], ["J13", "17"], ["J13", "23"], ["C25", "2"], ["C26", "2"], ["C27", "2"], ["SW3", "2"]]}, + {name: "vusb", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["R5", "1"], ["D4", "2"], ["Q3", "1"], ["U3", "4"], ["C3", "1"], ["D6", "2"]]}, + {name: "gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["U1", "3"], ["R1", "1"], ["R2", "1"], ["J2", "1"], ["TP1", "1"], ["R4", "1"], ["Q2", "2"], ["SW1", "2"], ["D3", "2"], ["R5", "2"], ["U2", "1"], ["C1", "2"], ["C2", "2"], ["D5", "2"], ["U3", "2"], ["C3", "2"], ["C4", "2"], ["R6", "1"], ["J3", "4"], ["SW2", "2"], ["U4", "1"], ["U4", "40"], ["U4", "41"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["R9", "2"], ["J4", "2"], ["J5", "2"], ["J6", "2"], ["J7", "2"], ["U5", "1"], ["U5", "2"], ["U5", "3"], ["U5", "6"], ["U5", "7"], ["C8", "2"], ["C9", "2"], ["U6", "11"], ["U6", "9"], ["C10", "2"], ["C12", "2"], ["U7", "1"], ["U7", "2"], ["U7", "3"], ["U7", "8"], ["C13", "2"], ["J8", "1"], ["J8", "10"], ["J8", "12"], ["J8", "13"], ["J8", "15"], ["J8", "16"], ["J8", "17"], ["J8", "21"], ["J8", "22"], ["J8", "23"], ["J8", "24"], ["J8", "25"], ["J8", "29"], ["J8", "30"], ["J8", "8"], ["R15", "1"], ["C16", "2"], ["C17", "2"], ["C18", "2"], ["C19", "2"], ["R17", "2"], ["J9", "3"], ["J10", "3"], ["J11", "3"], ["J12", "3"], ["D9", "3"], ["D10", "3"], ["D11", "3"], ["D12", "3"], ["D13", "3"], ["D14", "3"], ["D15", "3"], ["D16", "3"], ["D17", "3"], ["D18", "3"], ["D19", "3"], ["D20", "3"], ["D21", "3"], ["D22", "3"], ["D23", "3"], ["D24", "3"], ["D25", "3"], ["C20", "2"], ["U9", "1"], ["C21", "2"], ["C22", "2"], ["U10", "1"], ["C23", "2"], ["C24", "2"], ["J13", "10"], ["J13", "17"], ["J13", "23"], ["C25", "2"], ["C26", "2"], ["C27", "2"], ["SW3", "2"]]}, {name: "vbatt", pads: [["Q1", "3"], ["D3", "1"], ["TP2", "1"], ["Q3", "3"], ["R16", "1"], ["J9", "2"], ["J10", "2"], ["J11", "2"], ["J12", "2"], ["D9", "1"], ["D10", "1"], ["D11", "1"], ["D12", "1"], ["D13", "1"], ["D14", "1"], ["D15", "1"], ["D16", "1"], ["D17", "1"], ["D18", "1"], ["D19", "1"], ["D20", "1"], ["D21", "1"], ["D22", "1"], ["D23", "1"], ["D24", "1"], ["D25", "1"], ["C20", "1"]]}, - {name: "pwr", pads: [["D4", "1"], ["Q3", "2"], ["U1", "3"], ["C1", "1"], ["U9", "3"], ["C21", "1"], ["U10", "3"], ["C23", "1"]]}, - {name: "v3v3", pads: [["U1", "2"], ["C2", "1"], ["D5", "1"], ["TP3", "1"], ["J3", "1"], ["U3", "2"], ["C5", "1"], ["C6", "1"], ["R8", "1"], ["J4", "1"], ["J4", "6"], ["J5", "1"], ["J6", "1"], ["J7", "1"], ["R10", "1"], ["R11", "1"], ["U5", "12"], ["U5", "5"], ["U5", "8"], ["C8", "1"], ["C9", "1"], ["U6", "13"], ["U6", "2"], ["U6", "4"], ["C10", "1"], ["U7", "16"], ["C13", "1"], ["D8", "2"], ["J8", "11"], ["J8", "6"], ["J8", "9"], ["C17", "1"], ["C18", "1"], ["J13", "14"], ["C25", "1"], ["R18", "1"]]}, + {name: "pwr", pads: [["D4", "1"], ["Q3", "2"], ["U2", "3"], ["C1", "1"], ["U9", "3"], ["C21", "1"], ["U10", "3"], ["C23", "1"]]}, + {name: "v3v3", pads: [["U2", "2"], ["C2", "1"], ["D5", "1"], ["TP3", "1"], ["J3", "1"], ["U4", "2"], ["C5", "1"], ["C6", "1"], ["R8", "1"], ["J4", "1"], ["J4", "6"], ["J5", "1"], ["J6", "1"], ["J7", "1"], ["R10", "1"], ["R11", "1"], ["U5", "12"], ["U5", "5"], ["U5", "8"], ["C8", "1"], ["C9", "1"], ["U6", "13"], ["U6", "2"], ["U6", "4"], ["C10", "1"], ["U7", "16"], ["C13", "1"], ["D8", "2"], ["J8", "11"], ["J8", "6"], ["J8", "9"], ["C17", "1"], ["C18", "1"], ["J13", "14"], ["C25", "1"], ["R18", "1"]]}, {name: "v2v5", pads: [["U9", "2"], ["C22", "1"], ["J13", "21"]]}, {name: "v1v2", pads: [["U10", "2"], ["C24", "1"], ["J13", "15"]]}, - {name: "usb_chain_0.d_P", pads: [["J1", "A6"], ["J1", "B6"], ["U3", "14"], ["U4", "2"]]}, - {name: "usb_chain_0.d_N", pads: [["J1", "A7"], ["J1", "B7"], ["U3", "13"], ["U4", "1"]]}, - {name: "touch_0", pads: [["U3", "7"]]}, - {name: "i2c_chain_0.scl", pads: [["U3", "38"], ["J4", "3"], ["J5", "3"], ["J6", "3"], ["J7", "3"], ["R10", "2"], ["TP4", "1"], ["U5", "13"], ["U6", "1"], ["U7", "14"], ["J8", "18"], ["J13", "20"]]}, - {name: "i2c_chain_0.sda", pads: [["U3", "4"], ["J4", "4"], ["J5", "4"], ["J6", "4"], ["J7", "4"], ["R11", "2"], ["TP5", "1"], ["U5", "14"], ["U6", "16"], ["U7", "15"], ["J8", "19"], ["J8", "20"], ["J13", "22"]]}, + {name: "touch_0", pads: [["U4", "7"]]}, + {name: "i2c_chain_0.scl", pads: [["U4", "38"], ["J4", "3"], ["J5", "3"], ["J6", "3"], ["J7", "3"], ["R10", "2"], ["TP4", "1"], ["U5", "13"], ["U6", "1"], ["U7", "14"], ["J8", "18"], ["J13", "20"]]}, + {name: "i2c_chain_0.sda", pads: [["U4", "4"], ["J4", "4"], ["J5", "4"], ["J6", "4"], ["J7", "4"], ["R11", "2"], ["TP5", "1"], ["U5", "14"], ["U6", "16"], ["U7", "15"], ["J8", "19"], ["J8", "20"], ["J13", "22"]]}, + {name: "usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["U1", "2"], ["U4", "14"]]}, + {name: "usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["U1", "1"], ["U4", "13"]]}, {name: "usb.conn.cc.cc1", pads: [["J1", "A5"], ["R1", "2"]]}, {name: "usb.conn.cc.cc2", pads: [["J1", "B5"], ["R2", "2"]]}, - {name: "batt.pwr", pads: [["J2", "2"], ["F1", "1"], ["U2", "3"], ["C4", "1"]]}, + {name: "batt.pwr", pads: [["J2", "2"], ["F1", "1"], ["U3", "3"], ["C4", "1"]]}, {name: "fuse.pwr_out", pads: [["F1", "2"], ["R3", "1"], ["Q1", "2"]]}, - {name: "gate.btn_out", pads: [["D2", "2"], ["U3", "32"]]}, - {name: "gate.control", pads: [["R4", "2"], ["Q2", "1"], ["U3", "33"]]}, + {name: "gate.btn_out", pads: [["D2", "2"], ["U4", "32"]]}, + {name: "gate.control", pads: [["R4", "2"], ["Q2", "1"], ["U4", "33"]]}, {name: "gate.pwr_gate.btn_in", pads: [["D1", "1"], ["D2", "1"], ["SW1", "1"]]}, {name: "gate.pwr_gate.pull_res.b", pads: [["R3", "2"], ["Q1", "1"], ["Q2", "3"], ["D1", "2"]]}, - {name: "charger.stat", pads: [["U2", "1"], ["R7", "2"]]}, - {name: "charger.ic.prog", pads: [["U2", "5"], ["R6", "2"]]}, + {name: "charger.stat", pads: [["U3", "1"], ["R7", "2"]]}, + {name: "charger.ic.prog", pads: [["U3", "5"], ["R6", "2"]]}, {name: "charge_led.package.k", pads: [["D6", "1"], ["R7", "1"]]}, - {name: "mcu.program_uart_node.a_tx", pads: [["J3", "3"], ["U3", "36"]]}, - {name: "mcu.program_uart_node.b_tx", pads: [["J3", "2"], ["U3", "37"]]}, - {name: "mcu.program_en_node", pads: [["U3", "3"], ["R8", "2"], ["C7", "1"]]}, - {name: "mcu.program_boot_node", pads: [["SW2", "1"], ["U3", "27"], ["D7", "2"]]}, + {name: "mcu.program_uart_node.a_tx", pads: [["J3", "3"], ["U4", "36"]]}, + {name: "mcu.program_uart_node.b_tx", pads: [["J3", "2"], ["U4", "37"]]}, + {name: "mcu.program_en_node", pads: [["U4", "3"], ["R8", "2"], ["C7", "1"]]}, + {name: "mcu.program_boot_node", pads: [["SW2", "1"], ["U4", "27"], ["D7", "2"]]}, {name: "led.package.k", pads: [["D7", "1"], ["R9", "1"]]}, {name: "tof.elt[0].int", pads: [["J4", "5"]]}, {name: "tof.elt[1].int", pads: [["J5", "5"]]}, @@ -589,7 +589,7 @@ board.setNetlist([ {name: "rgb.package.k_red", pads: [["D8", "1"], ["R12", "1"]]}, {name: "rgb.package.k_green", pads: [["D8", "3"], ["R13", "1"]]}, {name: "rgb.package.k_blue", pads: [["D8", "4"], ["R14", "1"]]}, - {name: "oled.reset", pads: [["U3", "31"], ["J8", "14"]]}, + {name: "oled.reset", pads: [["U4", "31"], ["J8", "14"]]}, {name: "oled.device.vcc", pads: [["J8", "28"], ["C19", "1"]]}, {name: "oled.device.iref", pads: [["J8", "26"], ["R15", "2"]]}, {name: "oled.device.vcomh", pads: [["J8", "27"], ["C16", "1"]]}, @@ -597,12 +597,12 @@ board.setNetlist([ {name: "oled.device.c1n", pads: [["J8", "5"], ["C14", "2"]]}, {name: "oled.device.c2p", pads: [["J8", "2"], ["C15", "1"]]}, {name: "oled.device.c2n", pads: [["J8", "3"], ["C15", "2"]]}, - {name: "batt_sense.output", pads: [["U3", "39"], ["R16", "2"], ["R17", "1"]]}, - {name: "servo[0].pwm", pads: [["U3", "5"], ["J9", "1"]]}, - {name: "servo[1].pwm", pads: [["U3", "6"], ["J10", "1"]]}, - {name: "servo[2].pwm", pads: [["U3", "8"], ["J11", "1"]]}, - {name: "servo[3].pwm", pads: [["U3", "10"], ["J12", "1"]]}, - {name: "npx.din", pads: [["U3", "9"], ["D9", "4"]]}, + {name: "batt_sense.output", pads: [["U4", "39"], ["R16", "2"], ["R17", "1"]]}, + {name: "servo[0].pwm", pads: [["U4", "5"], ["J9", "1"]]}, + {name: "servo[1].pwm", pads: [["U4", "6"], ["J10", "1"]]}, + {name: "servo[2].pwm", pads: [["U4", "8"], ["J11", "1"]]}, + {name: "servo[3].pwm", pads: [["U4", "10"], ["J12", "1"]]}, + {name: "npx.din", pads: [["U4", "9"], ["D9", "4"]]}, {name: "npx.dout", pads: [["D24", "2"], ["D25", "4"]]}, {name: "npx.led[0].dout", pads: [["D9", "2"], ["D10", "4"]]}, {name: "npx.led[1].dout", pads: [["D10", "2"], ["D11", "4"]]}, @@ -620,26 +620,26 @@ board.setNetlist([ {name: "npx.led[13].dout", pads: [["D22", "2"], ["D23", "4"]]}, {name: "npx.led[14].dout", pads: [["D23", "2"], ["D24", "4"]]}, {name: "npx_key.dout", pads: [["D25", "2"]]}, - {name: "cam.dvp8.xclk", pads: [["U3", "17"], ["J13", "12"]]}, - {name: "cam.dvp8.pclk", pads: [["U3", "20"], ["J13", "8"], ["C27", "1"]]}, - {name: "cam.dvp8.href", pads: [["U3", "12"], ["J13", "16"]]}, - {name: "cam.dvp8.vsync", pads: [["U3", "11"], ["J13", "18"]]}, - {name: "cam.dvp8.y0", pads: [["U3", "22"], ["J13", "6"]]}, - {name: "cam.dvp8.y1", pads: [["U3", "24"], ["J13", "4"]]}, - {name: "cam.dvp8.y2", pads: [["U3", "25"], ["J13", "3"]]}, - {name: "cam.dvp8.y3", pads: [["U3", "23"], ["J13", "5"]]}, - {name: "cam.dvp8.y4", pads: [["U3", "21"], ["J13", "7"]]}, - {name: "cam.dvp8.y5", pads: [["U3", "19"], ["J13", "9"]]}, - {name: "cam.dvp8.y6", pads: [["U3", "18"], ["J13", "11"]]}, - {name: "cam.dvp8.y7", pads: [["U3", "15"], ["J13", "13"]]}, + {name: "cam.dvp8.xclk", pads: [["U4", "17"], ["J13", "12"]]}, + {name: "cam.dvp8.pclk", pads: [["U4", "20"], ["J13", "8"], ["C27", "1"]]}, + {name: "cam.dvp8.href", pads: [["U4", "12"], ["J13", "16"]]}, + {name: "cam.dvp8.vsync", pads: [["U4", "11"], ["J13", "18"]]}, + {name: "cam.dvp8.y0", pads: [["U4", "22"], ["J13", "6"]]}, + {name: "cam.dvp8.y1", pads: [["U4", "24"], ["J13", "4"]]}, + {name: "cam.dvp8.y2", pads: [["U4", "25"], ["J13", "3"]]}, + {name: "cam.dvp8.y3", pads: [["U4", "23"], ["J13", "5"]]}, + {name: "cam.dvp8.y4", pads: [["U4", "21"], ["J13", "7"]]}, + {name: "cam.dvp8.y5", pads: [["U4", "19"], ["J13", "9"]]}, + {name: "cam.dvp8.y6", pads: [["U4", "18"], ["J13", "11"]]}, + {name: "cam.dvp8.y7", pads: [["U4", "15"], ["J13", "13"]]}, {name: "cam.device.y.0", pads: [["J13", "1"]]}, {name: "cam.device.y.1", pads: [["J13", "2"]]}, {name: "cam.device.reset", pads: [["J13", "19"], ["C26", "1"], ["R18", "2"]]}, - {name: "switch.out", pads: [["U3", "34"], ["SW3", "1"]]} + {name: "switch.out", pads: [["U4", "34"], ["SW3", "1"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(4.656692913385828, 3.642125984251969); +const limit1 = pt(4.728740157480314, 3.661023622047244); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/PicoProbe/PicoProbe.net.ref b/examples/PicoProbe/PicoProbe.net.ref index 4105c85bd..36922c284 100644 --- a/examples/PicoProbe/PicoProbe.net.ref +++ b/examples/PicoProbe/PicoProbe.net.ref @@ -44,10 +44,22 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "SJ1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) +(comp (ref "SU1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "SU1")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "SR1") (value "usb.cc_pull.cc1") (footprint "Resistor_SMD:R_0402_1005Metric") @@ -84,14 +96,14 @@ (property (name "edg_value") (value "100nA@1V 40Ω Single 5.49V~5.71V 200mW 5.6V SOD-323 Zener Diodes ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "21a30521")) -(comp (ref "SU1") +(comp (ref "SU2") (value "usb_reg.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "usb_reg")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ap2204k")) (property (name "edg_path") (value "usb_reg.ic")) (property (name "edg_short_path") (value "usb_reg.ic")) - (property (name "edg_refdes") (value "SU1")) + (property (name "edg_refdes") (value "SU2")) (property (name "edg_part") (value "AP2204K-3.3 (Diodes Incorporated)")) (property (name "edg_value") (value "AP2204K-3.3")) (sheetpath (names "/usb_reg/") (tstamps "/0bd902e8/")) @@ -120,14 +132,14 @@ (property (name "edg_value") (value "25V 4.7uF X5R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/usb_reg/") (tstamps "/0bd902e8/")) (tstamps "0be902ec")) -(comp (ref "SU2") +(comp (ref "SU3") (value "target_reg.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "target_reg")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ap2204k")) (property (name "edg_path") (value "target_reg.ic")) (property (name "edg_short_path") (value "target_reg.ic")) - (property (name "edg_refdes") (value "SU2")) + (property (name "edg_refdes") (value "SU3")) (property (name "edg_part") (value "AP2204K-3.3 (Diodes Incorporated)")) (property (name "edg_value") (value "AP2204K-3.3")) (sheetpath (names "/target_reg/") (tstamps "/17010425/")) @@ -156,14 +168,14 @@ (property (name "edg_value") (value "25V 4.7uF X5R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/target_reg/") (tstamps "/17010425/")) (tstamps "0be902ec")) -(comp (ref "SU3") +(comp (ref "SU4") (value "mcu.ic") (footprint "Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Rp2040.Rp2040")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "SU3")) + (property (name "edg_refdes") (value "SU4")) (property (name "edg_part") (value "RP2040 (Raspberry Pi)")) (property (name "edg_value") (value "RP2040")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -264,14 +276,14 @@ (property (name "edg_value") (value "25V 1uF X5R ±10% 0402 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) (tstamps "1b62047e")) -(comp (ref "SU4") +(comp (ref "SU5") (value "mcu.mem.ic") (footprint "Package_SO:SOIC-8_5.23x5.23mm_P1.27mm") (property (name "Sheetname") (value "mem")) (property (name "Sheetfile") (value "edg.parts.logic.SpiMemory_W25q.W25q")) (property (name "edg_path") (value "mcu.mem.ic")) (property (name "edg_short_path") (value "mcu.mem.ic")) - (property (name "edg_refdes") (value "SU4")) + (property (name "edg_refdes") (value "SU5")) (property (name "edg_part") (value "W25Q128JVSIQ (Winbond Electronics)")) (property (name "edg_value") (value "W25Q128JVSIQ")) (sheetpath (names "/mcu/mem/") (tstamps "/02850146/02810140/")) @@ -336,14 +348,14 @@ (property (name "edg_value") (value "")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) (tstamps "02ae014f")) -(comp (ref "SU5") +(comp (ref "SU6") (value "mcu.crystal") (footprint "Crystal:Resonator_SMD_Murata_CSTxExxV-3Pin_3.0x1.1mm") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Rp2040.Rp2040")) (property (name "edg_path") (value "mcu.crystal")) (property (name "edg_short_path") (value "mcu.crystal")) - (property (name "edg_refdes") (value "SU5")) + (property (name "edg_refdes") (value "SU6")) (property (name "edg_part") (value "CSTNE12M0GH5L000R0 (Murata Electronics)")) (property (name "edg_value") (value "CSTNE12M0GH5L000R0")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -372,18 +384,6 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±200ppm/℃ -55℃~+155℃ 27Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/mcu/usb_res/") (tstamps "/02850146/0be502f4/")) (tstamps "013700d2")) -(comp (ref "SU6") - (value "usb_esd") - (footprint "Package_TO_SOT_SMD:SOT-23") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) - (property (name "edg_path") (value "usb_esd")) - (property (name "edg_short_path") (value "usb_esd")) - (property (name "edg_refdes") (value "SU6")) - (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) - (property (name "edg_value") (value "PESD5V0X1BT")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "0bcb02e6")) (comp (ref "SD2") (value "led_tgt.package") (footprint "LED_SMD:LED_0603_1608Metric") @@ -511,10 +511,10 @@ (node (ref SJ1) (pin B4)) (node (ref SJ1) (pin B9)) (node (ref SD1) (pin 1)) - (node (ref SU1) (pin 1)) - (node (ref SU1) (pin 3)) - (node (ref SC1) (pin 1)) (node (ref SU2) (pin 1)) + (node (ref SU2) (pin 3)) + (node (ref SC1) (pin 1)) + (node (ref SU3) (pin 1)) (node (ref SC3) (pin 1))) (net (code 2) (name "Sgnd") (node (ref SJ1) (pin A1)) @@ -522,17 +522,18 @@ (node (ref SJ1) (pin B1)) (node (ref SJ1) (pin B12)) (node (ref SJ1) (pin S1)) + (node (ref SU1) (pin 3)) (node (ref SR1) (pin 1)) (node (ref SR2) (pin 1)) (node (ref SD1) (pin 2)) - (node (ref SU1) (pin 2)) + (node (ref SU2) (pin 2)) (node (ref SC1) (pin 2)) (node (ref SC2) (pin 2)) - (node (ref SU2) (pin 2)) + (node (ref SU3) (pin 2)) (node (ref SC3) (pin 2)) (node (ref SC4) (pin 2)) - (node (ref SU3) (pin 19)) - (node (ref SU3) (pin 57)) + (node (ref SU4) (pin 19)) + (node (ref SU4) (pin 57)) (node (ref SC5) (pin 2)) (node (ref SC6) (pin 2)) (node (ref SC7) (pin 2)) @@ -541,31 +542,30 @@ (node (ref SC10) (pin 2)) (node (ref SC11) (pin 2)) (node (ref SC12) (pin 2)) - (node (ref SU4) (pin 4)) + (node (ref SU5) (pin 4)) (node (ref SC13) (pin 2)) (node (ref SC14) (pin 2)) (node (ref SC15) (pin 2)) (node (ref SC16) (pin 2)) (node (ref SJ2) (pin 5)) - (node (ref SU5) (pin 2)) - (node (ref SU6) (pin 3)) + (node (ref SU6) (pin 2)) (node (ref SR5) (pin 2)) (node (ref SR6) (pin 2)) (node (ref SJ3) (pin 5)) (node (ref SR8) (pin 2)) (node (ref SR10) (pin 2))) (net (code 3) (name "Sv3v3") - (node (ref SU1) (pin 5)) + (node (ref SU2) (pin 5)) (node (ref SC2) (pin 1)) - (node (ref SU3) (pin 1)) - (node (ref SU3) (pin 10)) - (node (ref SU3) (pin 22)) - (node (ref SU3) (pin 33)) - (node (ref SU3) (pin 42)) - (node (ref SU3) (pin 43)) - (node (ref SU3) (pin 44)) - (node (ref SU3) (pin 48)) - (node (ref SU3) (pin 49)) + (node (ref SU4) (pin 1)) + (node (ref SU4) (pin 10)) + (node (ref SU4) (pin 22)) + (node (ref SU4) (pin 33)) + (node (ref SU4) (pin 42)) + (node (ref SU4) (pin 43)) + (node (ref SU4) (pin 44)) + (node (ref SU4) (pin 48)) + (node (ref SU4) (pin 49)) (node (ref SC5) (pin 1)) (node (ref SC6) (pin 1)) (node (ref SC7) (pin 1)) @@ -574,26 +574,26 @@ (node (ref SC10) (pin 1)) (node (ref SC11) (pin 1)) (node (ref SC12) (pin 1)) - (node (ref SU4) (pin 8)) + (node (ref SU5) (pin 8)) (node (ref SC13) (pin 1)) (node (ref SJ2) (pin 1)) (node (ref SR7) (pin 1))) (net (code 4) (name "Svtarget") - (node (ref SU2) (pin 5)) + (node (ref SU3) (pin 5)) (node (ref SC4) (pin 1)) (node (ref SJ3) (pin 1)) (node (ref SD4) (pin 2)) (node (ref SR9) (pin 1))) -(net (code 5) (name "Susb_chain_0.d_P") +(net (code 5) (name "Susb.usb.dp") (node (ref SJ1) (pin A6)) (node (ref SJ1) (pin B6)) - (node (ref SR3) (pin 1)) - (node (ref SU6) (pin 2))) -(net (code 6) (name "Susb_chain_0.d_N") + (node (ref SU1) (pin 2)) + (node (ref SR3) (pin 1))) +(net (code 6) (name "Susb.usb.dm") (node (ref SJ1) (pin A7)) (node (ref SJ1) (pin B7)) - (node (ref SR4) (pin 1)) - (node (ref SU6) (pin 1))) + (node (ref SU1) (pin 1)) + (node (ref SR4) (pin 1))) (net (code 7) (name "Susb.conn.cc.cc1") (node (ref SJ1) (pin A5)) (node (ref SR1) (pin 2))) @@ -601,87 +601,87 @@ (node (ref SJ1) (pin B5)) (node (ref SR2) (pin 2))) (net (code 9) (name "Starget_reg.reset") - (node (ref SU2) (pin 3)) - (node (ref SU3) (pin 17)) + (node (ref SU3) (pin 3)) + (node (ref SU4) (pin 17)) (node (ref SR7) (pin 2))) (net (code 10) (name "Smcu.swd_node.swdio") - (node (ref SU3) (pin 25)) + (node (ref SU4) (pin 25)) (node (ref SJ2) (pin 2))) (net (code 11) (name "Smcu.swd_node.swclk") - (node (ref SU3) (pin 24)) + (node (ref SU4) (pin 24)) (node (ref SJ2) (pin 4))) (net (code 12) (name "Smcu.reset_node") - (node (ref SU3) (pin 26)) + (node (ref SU4) (pin 26)) (node (ref SJ2) (pin 3))) (net (code 13) (name "Smcu.xtal_node.xi") - (node (ref SU3) (pin 20)) - (node (ref SU5) (pin 1))) + (node (ref SU4) (pin 20)) + (node (ref SU6) (pin 1))) (net (code 14) (name "Smcu.xtal_node.xo") - (node (ref SU3) (pin 21)) - (node (ref SU5) (pin 3))) + (node (ref SU4) (pin 21)) + (node (ref SU6) (pin 3))) (net (code 15) (name "Smcu.ic.dvdd") - (node (ref SU3) (pin 23)) - (node (ref SU3) (pin 45)) - (node (ref SU3) (pin 50)) + (node (ref SU4) (pin 23)) + (node (ref SU4) (pin 45)) + (node (ref SU4) (pin 50)) (node (ref SC14) (pin 1)) (node (ref SC15) (pin 1)) (node (ref SC16) (pin 1))) (net (code 16) (name "Smcu.ic.qspi.sck") - (node (ref SU3) (pin 52)) - (node (ref SU4) (pin 6))) + (node (ref SU4) (pin 52)) + (node (ref SU5) (pin 6))) (net (code 17) (name "Smcu.ic.qspi.mosi") - (node (ref SU3) (pin 53)) - (node (ref SU4) (pin 5))) + (node (ref SU4) (pin 53)) + (node (ref SU5) (pin 5))) (net (code 18) (name "Smcu.ic.qspi.miso") - (node (ref SU3) (pin 55)) - (node (ref SU4) (pin 2))) + (node (ref SU4) (pin 55)) + (node (ref SU5) (pin 2))) (net (code 19) (name "Smcu.ic.qspi_cs") - (node (ref SU3) (pin 56)) - (node (ref SU4) (pin 1))) + (node (ref SU4) (pin 56)) + (node (ref SU5) (pin 1))) (net (code 20) (name "Smcu.ic.qspi_sd2") - (node (ref SU3) (pin 54)) - (node (ref SU4) (pin 3))) + (node (ref SU4) (pin 54)) + (node (ref SU5) (pin 3))) (net (code 21) (name "Smcu.ic.qspi_sd3") - (node (ref SU3) (pin 51)) - (node (ref SU4) (pin 7))) + (node (ref SU4) (pin 51)) + (node (ref SU5) (pin 7))) (net (code 22) (name "Smcu.swd.swo") - (node (ref SU3) (pin 15)) + (node (ref SU4) (pin 15)) (node (ref SJ2) (pin 6))) (net (code 23) (name "Smcu.usb_res.interior.dp") - (node (ref SU3) (pin 47)) + (node (ref SU4) (pin 47)) (node (ref SR3) (pin 2))) (net (code 24) (name "Smcu.usb_res.interior.dm") - (node (ref SU3) (pin 46)) + (node (ref SU4) (pin 46)) (node (ref SR4) (pin 2))) (net (code 25) (name "Sled_tgt.signal") - (node (ref SU3) (pin 27)) + (node (ref SU4) (pin 27)) (node (ref SD2) (pin 2))) (net (code 26) (name "Sled_tgt.package.k") (node (ref SD2) (pin 1)) (node (ref SR5) (pin 1))) (net (code 27) (name "Sled_usb.signal") - (node (ref SU3) (pin 37)) + (node (ref SU4) (pin 37)) (node (ref SD3) (pin 2))) (net (code 28) (name "Sled_usb.package.k") (node (ref SD3) (pin 1)) (node (ref SR6) (pin 1))) (net (code 29) (name "Starget_drv.swclk") - (node (ref SU3) (pin 4)) + (node (ref SU4) (pin 4)) (node (ref SJ3) (pin 4))) (net (code 30) (name "Starget_drv.swdio") - (node (ref SU3) (pin 5)) + (node (ref SU4) (pin 5)) (node (ref SJ3) (pin 2))) (net (code 31) (name "Starget.reset") - (node (ref SU3) (pin 7)) + (node (ref SU4) (pin 7)) (node (ref SJ3) (pin 3))) (net (code 32) (name "Starget.swo") - (node (ref SU3) (pin 3)) + (node (ref SU4) (pin 3)) (node (ref SJ3) (pin 6))) (net (code 33) (name "Sled_target.package.k") (node (ref SD4) (pin 1)) (node (ref SR8) (pin 1))) (net (code 34) (name "Starget_sense.output") - (node (ref SU3) (pin 40)) + (node (ref SU4) (pin 40)) (node (ref SR9) (pin 2)) (node (ref SR10) (pin 1)))) ) \ No newline at end of file diff --git a/examples/PicoProbe/PicoProbe.svgpcb.js b/examples/PicoProbe/PicoProbe.svgpcb.js index 3196118c0..fcc8646ed 100644 --- a/examples/PicoProbe/PicoProbe.svgpcb.js +++ b/examples/PicoProbe/PicoProbe.svgpcb.js @@ -2,17 +2,17 @@ const board = new PCB(); // jlc_th.th1 const SH1 = board.add(JlcToolingHole_1_152mm, { - translate: pt(0.861, 1.261), rotate: 0, + translate: pt(0.973, 1.160), rotate: 0, id: 'SH1' }) // jlc_th.th2 const SH2 = board.add(JlcToolingHole_1_152mm, { - translate: pt(0.901, 1.261), rotate: 0, + translate: pt(1.012, 1.160), rotate: 0, id: 'SH2' }) // jlc_th.th3 const SH3 = board.add(JlcToolingHole_1_152mm, { - translate: pt(0.861, 1.300), rotate: 0, + translate: pt(0.973, 1.199), rotate: 0, id: 'SH3' }) // usb.conn @@ -20,55 +20,60 @@ const SJ1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { translate: pt(0.209, 0.956), rotate: 0, id: 'SJ1' }) +// usb.esd +const SU1 = board.add(SOT_23, { + translate: pt(0.076, 1.249), rotate: 0, + id: 'SU1' +}) // usb.cc_pull.cc1 const SR1 = board.add(R_0402_1005Metric, { - translate: pt(0.495, 0.810), rotate: 0, + translate: pt(0.227, 1.201), rotate: 0, id: 'SR1' }) // usb.cc_pull.cc2 const SR2 = board.add(R_0402_1005Metric, { - translate: pt(0.495, 0.886), rotate: 0, + translate: pt(0.340, 1.201), rotate: 0, id: 'SR2' }) // vusb_protect.diode const SD1 = board.add(D_SOD_323, { - translate: pt(0.490, 1.298), rotate: 0, + translate: pt(0.792, 1.197), rotate: 0, id: 'SD1' }) // usb_reg.ic -const SU1 = board.add(SOT_23_5, { - translate: pt(0.730, 0.858), rotate: 0, - id: 'SU1' +const SU2 = board.add(SOT_23_5, { + translate: pt(0.618, 0.858), rotate: 0, + id: 'SU2' }) // usb_reg.in_cap.cap const SC1 = board.add(C_0402_1005Metric, { - translate: pt(0.859, 0.983), rotate: 0, + translate: pt(0.746, 0.983), rotate: 0, id: 'SC1' }) // usb_reg.out_cap.cap const SC2 = board.add(C_0805_2012Metric, { - translate: pt(0.717, 1.003), rotate: 0, + translate: pt(0.604, 1.003), rotate: 0, id: 'SC2' }) // target_reg.ic -const SU2 = board.add(SOT_23_5, { - translate: pt(1.093, 0.858), rotate: 0, - id: 'SU2' +const SU3 = board.add(SOT_23_5, { + translate: pt(0.981, 0.858), rotate: 0, + id: 'SU3' }) // target_reg.in_cap.cap const SC3 = board.add(C_0402_1005Metric, { - translate: pt(1.222, 0.983), rotate: 0, + translate: pt(1.109, 0.983), rotate: 0, id: 'SC3' }) // target_reg.out_cap.cap const SC4 = board.add(C_0805_2012Metric, { - translate: pt(1.080, 1.003), rotate: 0, + translate: pt(0.967, 1.003), rotate: 0, id: 'SC4' }) // mcu.ic -const SU3 = board.add(QFN_56_1EP_7x7mm_P0_4mm_EP3_2x3_2mm, { +const SU4 = board.add(QFN_56_1EP_7x7mm_P0_4mm_EP3_2x3_2mm, { translate: pt(0.163, 0.163), rotate: 0, - id: 'SU3' + id: 'SU4' }) // mcu.iovdd_cap[0].cap const SC5 = board.add(C_0402_1005Metric, { @@ -111,9 +116,9 @@ const SC12 = board.add(C_0402_1005Metric, { id: 'SC12' }) // mcu.mem.ic -const SU4 = board.add(SOIC_8_5_23x5_23mm_P1_27mm, { +const SU5 = board.add(SOIC_8_5_23x5_23mm_P1_27mm, { translate: pt(0.548, 0.113), rotate: 0, - id: 'SU4' + id: 'SU5' }) // mcu.mem.vcc_cap.cap const SC13 = board.add(C_0402_1005Metric, { @@ -141,9 +146,9 @@ const SJ2 = board.add(Tag_Connect_TC2030_IDC_NL_2x03_P1_27mm_Vertical, { id: 'SJ2' }) // mcu.crystal -const SU5 = board.add(Resonator_SMD_Murata_CSTxExxV_3Pin_3_0x1_1mm, { +const SU6 = board.add(Resonator_SMD_Murata_CSTxExxV_3Pin_3_0x1_1mm, { translate: pt(0.394, 0.428), rotate: 0, - id: 'SU5' + id: 'SU6' }) // mcu.usb_res.dp const SR3 = board.add(R_0603_1608Metric, { @@ -155,34 +160,29 @@ const SR4 = board.add(R_0603_1608Metric, { translate: pt(0.718, 0.393), rotate: 0, id: 'SR4' }) -// usb_esd -const SU6 = board.add(SOT_23, { - translate: pt(0.746, 1.328), rotate: 0, - id: 'SU6' -}) // led_tgt.package const SD2 = board.add(LED_0603_1608Metric, { - translate: pt(1.434, 0.820), rotate: 0, + translate: pt(1.321, 0.820), rotate: 0, id: 'SD2' }) // led_tgt.res const SR5 = board.add(R_0402_1005Metric, { - translate: pt(1.412, 0.907), rotate: 0, + translate: pt(1.300, 0.907), rotate: 0, id: 'SR5' }) // led_usb.package const SD3 = board.add(LED_0603_1608Metric, { - translate: pt(1.669, 0.820), rotate: 0, + translate: pt(1.556, 0.820), rotate: 0, id: 'SD3' }) // led_usb.res const SR6 = board.add(R_0402_1005Metric, { - translate: pt(1.647, 0.907), rotate: 0, + translate: pt(1.534, 0.907), rotate: 0, id: 'SR6' }) // en_pull.res const SR7 = board.add(R_0402_1005Metric, { - translate: pt(1.055, 1.280), rotate: 0, + translate: pt(1.167, 1.178), rotate: 0, id: 'SR7' }) // target.conn @@ -192,64 +192,64 @@ const SJ3 = board.add(PinHeader_2x03_P2_54mm_EdgeInline, { }) // led_target.package const SD4 = board.add(LED_0603_1608Metric, { - translate: pt(0.058, 1.290), rotate: 0, + translate: pt(1.791, 0.820), rotate: 0, id: 'SD4' }) // led_target.res const SR8 = board.add(R_0402_1005Metric, { - translate: pt(0.037, 1.377), rotate: 0, + translate: pt(1.769, 0.907), rotate: 0, id: 'SR8' }) // target_sense.div.top_res const SR9 = board.add(R_0402_1005Metric, { - translate: pt(0.271, 1.280), rotate: 0, + translate: pt(0.574, 1.178), rotate: 0, id: 'SR9' }) // target_sense.div.bottom_res const SR10 = board.add(R_0402_1005Metric, { - translate: pt(0.271, 1.356), rotate: 0, + translate: pt(0.574, 1.255), rotate: 0, id: 'SR10' }) board.setNetlist([ - {name: "vusb", pads: [["SJ1", "A4"], ["SJ1", "A9"], ["SJ1", "B4"], ["SJ1", "B9"], ["SD1", "1"], ["SU1", "1"], ["SU1", "3"], ["SC1", "1"], ["SU2", "1"], ["SC3", "1"]]}, - {name: "gnd", pads: [["SJ1", "A1"], ["SJ1", "A12"], ["SJ1", "B1"], ["SJ1", "B12"], ["SJ1", "S1"], ["SR1", "1"], ["SR2", "1"], ["SD1", "2"], ["SU1", "2"], ["SC1", "2"], ["SC2", "2"], ["SU2", "2"], ["SC3", "2"], ["SC4", "2"], ["SU3", "19"], ["SU3", "57"], ["SC5", "2"], ["SC6", "2"], ["SC7", "2"], ["SC8", "2"], ["SC9", "2"], ["SC10", "2"], ["SC11", "2"], ["SC12", "2"], ["SU4", "4"], ["SC13", "2"], ["SC14", "2"], ["SC15", "2"], ["SC16", "2"], ["SJ2", "5"], ["SU5", "2"], ["SU6", "3"], ["SR5", "2"], ["SR6", "2"], ["SJ3", "5"], ["SR8", "2"], ["SR10", "2"]]}, - {name: "v3v3", pads: [["SU1", "5"], ["SC2", "1"], ["SU3", "1"], ["SU3", "10"], ["SU3", "22"], ["SU3", "33"], ["SU3", "42"], ["SU3", "43"], ["SU3", "44"], ["SU3", "48"], ["SU3", "49"], ["SC5", "1"], ["SC6", "1"], ["SC7", "1"], ["SC8", "1"], ["SC9", "1"], ["SC10", "1"], ["SC11", "1"], ["SC12", "1"], ["SU4", "8"], ["SC13", "1"], ["SJ2", "1"], ["SR7", "1"]]}, - {name: "vtarget", pads: [["SU2", "5"], ["SC4", "1"], ["SJ3", "1"], ["SD4", "2"], ["SR9", "1"]]}, - {name: "usb_chain_0.d_P", pads: [["SJ1", "A6"], ["SJ1", "B6"], ["SR3", "1"], ["SU6", "2"]]}, - {name: "usb_chain_0.d_N", pads: [["SJ1", "A7"], ["SJ1", "B7"], ["SR4", "1"], ["SU6", "1"]]}, + {name: "vusb", pads: [["SJ1", "A4"], ["SJ1", "A9"], ["SJ1", "B4"], ["SJ1", "B9"], ["SD1", "1"], ["SU2", "1"], ["SU2", "3"], ["SC1", "1"], ["SU3", "1"], ["SC3", "1"]]}, + {name: "gnd", pads: [["SJ1", "A1"], ["SJ1", "A12"], ["SJ1", "B1"], ["SJ1", "B12"], ["SJ1", "S1"], ["SU1", "3"], ["SR1", "1"], ["SR2", "1"], ["SD1", "2"], ["SU2", "2"], ["SC1", "2"], ["SC2", "2"], ["SU3", "2"], ["SC3", "2"], ["SC4", "2"], ["SU4", "19"], ["SU4", "57"], ["SC5", "2"], ["SC6", "2"], ["SC7", "2"], ["SC8", "2"], ["SC9", "2"], ["SC10", "2"], ["SC11", "2"], ["SC12", "2"], ["SU5", "4"], ["SC13", "2"], ["SC14", "2"], ["SC15", "2"], ["SC16", "2"], ["SJ2", "5"], ["SU6", "2"], ["SR5", "2"], ["SR6", "2"], ["SJ3", "5"], ["SR8", "2"], ["SR10", "2"]]}, + {name: "v3v3", pads: [["SU2", "5"], ["SC2", "1"], ["SU4", "1"], ["SU4", "10"], ["SU4", "22"], ["SU4", "33"], ["SU4", "42"], ["SU4", "43"], ["SU4", "44"], ["SU4", "48"], ["SU4", "49"], ["SC5", "1"], ["SC6", "1"], ["SC7", "1"], ["SC8", "1"], ["SC9", "1"], ["SC10", "1"], ["SC11", "1"], ["SC12", "1"], ["SU5", "8"], ["SC13", "1"], ["SJ2", "1"], ["SR7", "1"]]}, + {name: "vtarget", pads: [["SU3", "5"], ["SC4", "1"], ["SJ3", "1"], ["SD4", "2"], ["SR9", "1"]]}, + {name: "usb.usb.dp", pads: [["SJ1", "A6"], ["SJ1", "B6"], ["SU1", "2"], ["SR3", "1"]]}, + {name: "usb.usb.dm", pads: [["SJ1", "A7"], ["SJ1", "B7"], ["SU1", "1"], ["SR4", "1"]]}, {name: "usb.conn.cc.cc1", pads: [["SJ1", "A5"], ["SR1", "2"]]}, {name: "usb.conn.cc.cc2", pads: [["SJ1", "B5"], ["SR2", "2"]]}, - {name: "target_reg.reset", pads: [["SU2", "3"], ["SU3", "17"], ["SR7", "2"]]}, - {name: "mcu.swd_node.swdio", pads: [["SU3", "25"], ["SJ2", "2"]]}, - {name: "mcu.swd_node.swclk", pads: [["SU3", "24"], ["SJ2", "4"]]}, - {name: "mcu.reset_node", pads: [["SU3", "26"], ["SJ2", "3"]]}, - {name: "mcu.xtal_node.xi", pads: [["SU3", "20"], ["SU5", "1"]]}, - {name: "mcu.xtal_node.xo", pads: [["SU3", "21"], ["SU5", "3"]]}, - {name: "mcu.ic.dvdd", pads: [["SU3", "23"], ["SU3", "45"], ["SU3", "50"], ["SC14", "1"], ["SC15", "1"], ["SC16", "1"]]}, - {name: "mcu.ic.qspi.sck", pads: [["SU3", "52"], ["SU4", "6"]]}, - {name: "mcu.ic.qspi.mosi", pads: [["SU3", "53"], ["SU4", "5"]]}, - {name: "mcu.ic.qspi.miso", pads: [["SU3", "55"], ["SU4", "2"]]}, - {name: "mcu.ic.qspi_cs", pads: [["SU3", "56"], ["SU4", "1"]]}, - {name: "mcu.ic.qspi_sd2", pads: [["SU3", "54"], ["SU4", "3"]]}, - {name: "mcu.ic.qspi_sd3", pads: [["SU3", "51"], ["SU4", "7"]]}, - {name: "mcu.swd.swo", pads: [["SU3", "15"], ["SJ2", "6"]]}, - {name: "mcu.usb_res.interior.dp", pads: [["SU3", "47"], ["SR3", "2"]]}, - {name: "mcu.usb_res.interior.dm", pads: [["SU3", "46"], ["SR4", "2"]]}, - {name: "led_tgt.signal", pads: [["SU3", "27"], ["SD2", "2"]]}, + {name: "target_reg.reset", pads: [["SU3", "3"], ["SU4", "17"], ["SR7", "2"]]}, + {name: "mcu.swd_node.swdio", pads: [["SU4", "25"], ["SJ2", "2"]]}, + {name: "mcu.swd_node.swclk", pads: [["SU4", "24"], ["SJ2", "4"]]}, + {name: "mcu.reset_node", pads: [["SU4", "26"], ["SJ2", "3"]]}, + {name: "mcu.xtal_node.xi", pads: [["SU4", "20"], ["SU6", "1"]]}, + {name: "mcu.xtal_node.xo", pads: [["SU4", "21"], ["SU6", "3"]]}, + {name: "mcu.ic.dvdd", pads: [["SU4", "23"], ["SU4", "45"], ["SU4", "50"], ["SC14", "1"], ["SC15", "1"], ["SC16", "1"]]}, + {name: "mcu.ic.qspi.sck", pads: [["SU4", "52"], ["SU5", "6"]]}, + {name: "mcu.ic.qspi.mosi", pads: [["SU4", "53"], ["SU5", "5"]]}, + {name: "mcu.ic.qspi.miso", pads: [["SU4", "55"], ["SU5", "2"]]}, + {name: "mcu.ic.qspi_cs", pads: [["SU4", "56"], ["SU5", "1"]]}, + {name: "mcu.ic.qspi_sd2", pads: [["SU4", "54"], ["SU5", "3"]]}, + {name: "mcu.ic.qspi_sd3", pads: [["SU4", "51"], ["SU5", "7"]]}, + {name: "mcu.swd.swo", pads: [["SU4", "15"], ["SJ2", "6"]]}, + {name: "mcu.usb_res.interior.dp", pads: [["SU4", "47"], ["SR3", "2"]]}, + {name: "mcu.usb_res.interior.dm", pads: [["SU4", "46"], ["SR4", "2"]]}, + {name: "led_tgt.signal", pads: [["SU4", "27"], ["SD2", "2"]]}, {name: "led_tgt.package.k", pads: [["SD2", "1"], ["SR5", "1"]]}, - {name: "led_usb.signal", pads: [["SU3", "37"], ["SD3", "2"]]}, + {name: "led_usb.signal", pads: [["SU4", "37"], ["SD3", "2"]]}, {name: "led_usb.package.k", pads: [["SD3", "1"], ["SR6", "1"]]}, - {name: "target_drv.swclk", pads: [["SU3", "4"], ["SJ3", "4"]]}, - {name: "target_drv.swdio", pads: [["SU3", "5"], ["SJ3", "2"]]}, - {name: "target.reset", pads: [["SU3", "7"], ["SJ3", "3"]]}, - {name: "target.swo", pads: [["SU3", "3"], ["SJ3", "6"]]}, + {name: "target_drv.swclk", pads: [["SU4", "4"], ["SJ3", "4"]]}, + {name: "target_drv.swdio", pads: [["SU4", "5"], ["SJ3", "2"]]}, + {name: "target.reset", pads: [["SU4", "7"], ["SJ3", "3"]]}, + {name: "target.swo", pads: [["SU4", "3"], ["SJ3", "6"]]}, {name: "led_target.package.k", pads: [["SD4", "1"], ["SR8", "1"]]}, - {name: "target_sense.output", pads: [["SU3", "40"], ["SR9", "2"], ["SR10", "1"]]} + {name: "target_sense.output", pads: [["SU4", "40"], ["SR9", "2"], ["SR10", "1"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(1.8452755905511813, 1.5133858267716536); +const limit1 = pt(1.9675196850393706, 1.434251968503937); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/ProtectedCharger/ProtectedCharger.net.ref b/examples/ProtectedCharger/ProtectedCharger.net.ref index 975cf2960..3cbada9cf 100644 --- a/examples/ProtectedCharger/ProtectedCharger.net.ref +++ b/examples/ProtectedCharger/ProtectedCharger.net.ref @@ -44,8 +44,8 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) (comp (ref "R1") diff --git a/examples/SwdDebugger/SwdDebugger.net.ref b/examples/SwdDebugger/SwdDebugger.net.ref index fafa8826a..491240810 100644 --- a/examples/SwdDebugger/SwdDebugger.net.ref +++ b/examples/SwdDebugger/SwdDebugger.net.ref @@ -44,10 +44,22 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "SJ1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) +(comp (ref "SU1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "SU1")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "SR1") (value "usb.cc_pull.cc1") (footprint "Resistor_SMD:R_0402_1005Metric") @@ -84,14 +96,14 @@ (property (name "edg_value") (value "100nA@1V 40Ω Single 5.49V~5.71V 200mW 5.6V SOD-323 Zener Diodes ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "21a30521")) -(comp (ref "SU1") +(comp (ref "SU2") (value "usb_reg.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "usb_reg")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ap2204k")) (property (name "edg_path") (value "usb_reg.ic")) (property (name "edg_short_path") (value "usb_reg.ic")) - (property (name "edg_refdes") (value "SU1")) + (property (name "edg_refdes") (value "SU2")) (property (name "edg_part") (value "AP2204K-3.3 (Diodes Incorporated)")) (property (name "edg_value") (value "AP2204K-3.3")) (sheetpath (names "/usb_reg/") (tstamps "/0bd902e8/")) @@ -120,14 +132,14 @@ (property (name "edg_value") (value "25V 4.7uF X5R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/usb_reg/") (tstamps "/0bd902e8/")) (tstamps "0be902ec")) -(comp (ref "SU2") +(comp (ref "SU3") (value "target_reg.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "target_reg")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ap2204k")) (property (name "edg_path") (value "target_reg.ic")) (property (name "edg_short_path") (value "target_reg.ic")) - (property (name "edg_refdes") (value "SU2")) + (property (name "edg_refdes") (value "SU3")) (property (name "edg_part") (value "AP2204K-3.3 (Diodes Incorporated)")) (property (name "edg_value") (value "AP2204K-3.3")) (sheetpath (names "/target_reg/") (tstamps "/17010425/")) @@ -156,14 +168,14 @@ (property (name "edg_value") (value "25V 4.7uF X5R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/target_reg/") (tstamps "/17010425/")) (tstamps "0be902ec")) -(comp (ref "SU3") +(comp (ref "SU4") (value "mcu.ic") (footprint "Package_QFP:LQFP-48_7x7mm_P0.5mm") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Stm32f103.Stm32f103")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "SU3")) + (property (name "edg_refdes") (value "SU4")) (property (name "edg_part") (value "STM32F103xxT6 (STMicroelectronics)")) (property (name "edg_value") (value "STM32F103xxT6")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -240,14 +252,14 @@ (property (name "edg_value") (value "25V 1uF X5R ±10% 0402 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) (tstamps "15dd03c3")) -(comp (ref "SU4") +(comp (ref "SU5") (value "mcu.crystal") (footprint "Crystal:Resonator_SMD_Murata_CSTxExxV-3Pin_3.0x1.1mm") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Stm32f103.Stm32f103")) (property (name "edg_path") (value "mcu.crystal")) (property (name "edg_short_path") (value "mcu.crystal")) - (property (name "edg_refdes") (value "SU4")) + (property (name "edg_refdes") (value "SU5")) (property (name "edg_part") (value "CSTNE8M00GH5L000R0 (Murata Electronics)")) (property (name "edg_value") (value "CSTNE8M00GH5L000R0")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -276,18 +288,6 @@ (property (name "edg_value") (value "±1% 1/16W Thick Film Resistors 50V ±100ppm/℃ -55℃~+155℃ 1.5kΩ 0402 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) (tstamps "0f5f0367")) -(comp (ref "SU5") - (value "usb_esd") - (footprint "Package_TO_SOT_SMD:SOT-23") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) - (property (name "edg_path") (value "usb_esd")) - (property (name "edg_short_path") (value "usb_esd")) - (property (name "edg_refdes") (value "SU5")) - (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) - (property (name "edg_value") (value "PESD5V0X1BT")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "0bcb02e6")) (comp (ref "SD2") (value "led_tgt.package") (footprint "LED_SMD:LED_0603_1608Metric") @@ -499,10 +499,10 @@ (node (ref SJ1) (pin B4)) (node (ref SJ1) (pin B9)) (node (ref SD1) (pin 1)) - (node (ref SU1) (pin 1)) - (node (ref SU1) (pin 3)) - (node (ref SC1) (pin 1)) (node (ref SU2) (pin 1)) + (node (ref SU2) (pin 3)) + (node (ref SC1) (pin 1)) + (node (ref SU3) (pin 1)) (node (ref SC3) (pin 1))) (net (code 2) (name "Sgnd") (node (ref SJ1) (pin A1)) @@ -510,31 +510,31 @@ (node (ref SJ1) (pin B1)) (node (ref SJ1) (pin B12)) (node (ref SJ1) (pin S1)) + (node (ref SU1) (pin 3)) (node (ref SR1) (pin 1)) (node (ref SR2) (pin 1)) (node (ref SD1) (pin 2)) - (node (ref SU1) (pin 2)) + (node (ref SU2) (pin 2)) (node (ref SC1) (pin 2)) (node (ref SC2) (pin 2)) - (node (ref SU2) (pin 2)) + (node (ref SU3) (pin 2)) (node (ref SC3) (pin 2)) (node (ref SC4) (pin 2)) - (node (ref SU3) (pin 23)) - (node (ref SU3) (pin 35)) - (node (ref SU3) (pin 44)) - (node (ref SU3) (pin 47)) - (node (ref SU3) (pin 8)) + (node (ref SU4) (pin 23)) + (node (ref SU4) (pin 35)) + (node (ref SU4) (pin 44)) + (node (ref SU4) (pin 47)) + (node (ref SU4) (pin 8)) (node (ref SC5) (pin 2)) (node (ref SC6) (pin 2)) (node (ref SC7) (pin 2)) (node (ref SC8) (pin 2)) (node (ref SC9) (pin 2)) (node (ref SC10) (pin 2)) - (node (ref SU4) (pin 2)) + (node (ref SU5) (pin 2)) (node (ref SJ2) (pin 3)) (node (ref SJ2) (pin 5)) (node (ref SJ2) (pin 9)) - (node (ref SU5) (pin 3)) (node (ref SR4) (pin 2)) (node (ref SR5) (pin 2)) (node (ref SSW1) (pin 2)) @@ -544,13 +544,13 @@ (node (ref SR13) (pin 2)) (node (ref SR15) (pin 2))) (net (code 3) (name "Sv3v3") - (node (ref SU1) (pin 5)) + (node (ref SU2) (pin 5)) (node (ref SC2) (pin 1)) - (node (ref SU3) (pin 1)) - (node (ref SU3) (pin 24)) - (node (ref SU3) (pin 36)) - (node (ref SU3) (pin 48)) - (node (ref SU3) (pin 9)) + (node (ref SU4) (pin 1)) + (node (ref SU4) (pin 24)) + (node (ref SU4) (pin 36)) + (node (ref SU4) (pin 48)) + (node (ref SU4) (pin 9)) (node (ref SC5) (pin 1)) (node (ref SC6) (pin 1)) (node (ref SC7) (pin 1)) @@ -562,22 +562,22 @@ (node (ref SR6) (pin 1)) (node (ref SR12) (pin 1))) (net (code 4) (name "Svtarget") - (node (ref SU2) (pin 5)) + (node (ref SU3) (pin 5)) (node (ref SC4) (pin 1)) (node (ref SJ3) (pin 1)) (node (ref SD4) (pin 2)) (node (ref SR14) (pin 1))) -(net (code 5) (name "Susb_chain_0.d_P") +(net (code 5) (name "Susb.usb.dp") (node (ref SJ1) (pin A6)) (node (ref SJ1) (pin B6)) - (node (ref SU3) (pin 33)) - (node (ref SR3) (pin 2)) - (node (ref SU5) (pin 2))) -(net (code 6) (name "Susb_chain_0.d_N") + (node (ref SU1) (pin 2)) + (node (ref SU4) (pin 33)) + (node (ref SR3) (pin 2))) +(net (code 6) (name "Susb.usb.dm") (node (ref SJ1) (pin A7)) (node (ref SJ1) (pin B7)) - (node (ref SU3) (pin 32)) - (node (ref SU5) (pin 1))) + (node (ref SU1) (pin 1)) + (node (ref SU4) (pin 32))) (net (code 7) (name "Susb.conn.cc.cc1") (node (ref SJ1) (pin A5)) (node (ref SR1) (pin 2))) @@ -585,61 +585,61 @@ (node (ref SJ1) (pin B5)) (node (ref SR2) (pin 2))) (net (code 9) (name "Starget_reg.reset") - (node (ref SU2) (pin 3)) - (node (ref SU3) (pin 28)) + (node (ref SU3) (pin 3)) + (node (ref SU4) (pin 28)) (node (ref SR6) (pin 2))) (net (code 10) (name "Smcu.xtal_node.xi") - (node (ref SU3) (pin 5)) - (node (ref SU4) (pin 1))) + (node (ref SU4) (pin 5)) + (node (ref SU5) (pin 1))) (net (code 11) (name "Smcu.xtal_node.xo") - (node (ref SU3) (pin 6)) - (node (ref SU4) (pin 3))) + (node (ref SU4) (pin 6)) + (node (ref SU5) (pin 3))) (net (code 12) (name "Smcu.swd_node.swdio") - (node (ref SU3) (pin 34)) + (node (ref SU4) (pin 34)) (node (ref SJ2) (pin 2))) (net (code 13) (name "Smcu.swd_node.swclk") - (node (ref SU3) (pin 37)) + (node (ref SU4) (pin 37)) (node (ref SJ2) (pin 4))) (net (code 14) (name "Smcu.reset_node") - (node (ref SU3) (pin 7)) + (node (ref SU4) (pin 7)) (node (ref SJ2) (pin 10))) (net (code 15) (name "Smcu.swd.tdi") (node (ref SJ2) (pin 8))) (net (code 16) (name "Smcu.swd.swo") - (node (ref SU3) (pin 39)) + (node (ref SU4) (pin 39)) (node (ref SJ2) (pin 6))) (net (code 17) (name "Sled_tgt.signal") - (node (ref SU3) (pin 30)) + (node (ref SU4) (pin 30)) (node (ref SD2) (pin 2))) (net (code 18) (name "Sled_tgt.package.k") (node (ref SD2) (pin 1)) (node (ref SR4) (pin 1))) (net (code 19) (name "Sled_usb.signal") - (node (ref SU3) (pin 42)) + (node (ref SU4) (pin 42)) (node (ref SD3) (pin 2))) (net (code 20) (name "Sled_usb.package.k") (node (ref SD3) (pin 1)) (node (ref SR5) (pin 1))) (net (code 21) (name "Starget_drv.reset_in") - (node (ref SU3) (pin 18)) + (node (ref SU4) (pin 18)) (node (ref SR10) (pin 1)) (node (ref SR12) (pin 2)) (node (ref SSW1) (pin 1))) (net (code 22) (name "Starget_drv.swclk_in") - (node (ref SU3) (pin 26)) + (node (ref SU4) (pin 26)) (node (ref SR7) (pin 1))) (net (code 23) (name "Starget_drv.swdio_in") - (node (ref SU3) (pin 25)) + (node (ref SU4) (pin 25)) (node (ref SR9) (pin 1))) (net (code 24) (name "Starget_drv.swdio_out") - (node (ref SU3) (pin 27)) + (node (ref SU4) (pin 27)) (node (ref SR8) (pin 1)) (node (ref SR9) (pin 2))) (net (code 25) (name "Starget_drv.reset_out") (node (ref SR10) (pin 2)) (node (ref SJ3) (pin 10))) (net (code 26) (name "Starget_drv.swo_out") - (node (ref SU3) (pin 31)) + (node (ref SU4) (pin 31)) (node (ref SR11) (pin 2))) (net (code 27) (name "Starget_drv.swd.swdio") (node (ref SR8) (pin 2)) @@ -656,7 +656,7 @@ (node (ref SD4) (pin 1)) (node (ref SR13) (pin 1))) (net (code 32) (name "Starget_sense.output") - (node (ref SU3) (pin 10)) + (node (ref SU4) (pin 10)) (node (ref SR14) (pin 2)) (node (ref SR15) (pin 1)))) ) \ No newline at end of file diff --git a/examples/SwdDebugger/SwdDebugger.svgpcb.js b/examples/SwdDebugger/SwdDebugger.svgpcb.js index b48cafd5d..f62093536 100644 --- a/examples/SwdDebugger/SwdDebugger.svgpcb.js +++ b/examples/SwdDebugger/SwdDebugger.svgpcb.js @@ -2,17 +2,17 @@ const board = new PCB(); // jlc_th.th1 const SH1 = board.add(JlcToolingHole_1_152mm, { - translate: pt(1.635, 1.158), rotate: 0, + translate: pt(0.906, 1.117), rotate: 0, id: 'SH1' }) // jlc_th.th2 const SH2 = board.add(JlcToolingHole_1_152mm, { - translate: pt(1.674, 1.158), rotate: 0, + translate: pt(0.945, 1.117), rotate: 0, id: 'SH2' }) // jlc_th.th3 const SH3 = board.add(JlcToolingHole_1_152mm, { - translate: pt(1.635, 1.198), rotate: 0, + translate: pt(0.906, 1.157), rotate: 0, id: 'SH3' }) // usb.conn @@ -20,55 +20,60 @@ const SJ1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { translate: pt(1.111, 0.165), rotate: 0, id: 'SJ1' }) +// usb.esd +const SU1 = board.add(SOT_23, { + translate: pt(0.977, 0.458), rotate: 0, + id: 'SU1' +}) // usb.cc_pull.cc1 const SR1 = board.add(R_0402_1005Metric, { - translate: pt(1.396, 0.019), rotate: 0, + translate: pt(1.129, 0.409), rotate: 0, id: 'SR1' }) // usb.cc_pull.cc2 const SR2 = board.add(R_0402_1005Metric, { - translate: pt(1.396, 0.095), rotate: 0, + translate: pt(1.241, 0.409), rotate: 0, id: 'SR2' }) // vusb_protect.diode const SD1 = board.add(D_SOD_323, { - translate: pt(1.263, 1.196), rotate: 0, + translate: pt(0.724, 1.155), rotate: 0, id: 'SD1' }) // usb_reg.ic -const SU1 = board.add(SOT_23_5, { - translate: pt(0.537, 0.816), rotate: 0, - id: 'SU1' +const SU2 = board.add(SOT_23_5, { + translate: pt(0.081, 0.816), rotate: 0, + id: 'SU2' }) // usb_reg.in_cap.cap const SC1 = board.add(C_0402_1005Metric, { - translate: pt(0.666, 0.940), rotate: 0, + translate: pt(0.209, 0.940), rotate: 0, id: 'SC1' }) // usb_reg.out_cap.cap const SC2 = board.add(C_0805_2012Metric, { - translate: pt(0.524, 0.961), rotate: 0, + translate: pt(0.067, 0.961), rotate: 0, id: 'SC2' }) // target_reg.ic -const SU2 = board.add(SOT_23_5, { - translate: pt(0.900, 0.816), rotate: 0, - id: 'SU2' +const SU3 = board.add(SOT_23_5, { + translate: pt(0.444, 0.816), rotate: 0, + id: 'SU3' }) // target_reg.in_cap.cap const SC3 = board.add(C_0402_1005Metric, { - translate: pt(1.029, 0.940), rotate: 0, + translate: pt(0.572, 0.940), rotate: 0, id: 'SC3' }) // target_reg.out_cap.cap const SC4 = board.add(C_0805_2012Metric, { - translate: pt(0.887, 0.961), rotate: 0, + translate: pt(0.430, 0.961), rotate: 0, id: 'SC4' }) // mcu.ic -const SU3 = board.add(LQFP_48_7x7mm_P0_5mm, { +const SU4 = board.add(LQFP_48_7x7mm_P0_5mm, { translate: pt(0.203, 0.203), rotate: 0, - id: 'SU3' + id: 'SU4' }) // mcu.pwr_cap[0].cap const SC5 = board.add(C_0805_2012Metric, { @@ -101,9 +106,9 @@ const SC10 = board.add(C_0402_1005Metric, { id: 'SC10' }) // mcu.crystal -const SU4 = board.add(Resonator_SMD_Murata_CSTxExxV_3Pin_3_0x1_1mm, { +const SU5 = board.add(Resonator_SMD_Murata_CSTxExxV_3Pin_3_0x1_1mm, { translate: pt(0.079, 0.508), rotate: 0, - id: 'SU4' + id: 'SU5' }) // mcu.swd.conn const SJ2 = board.add(PinHeader_2x05_P1_27mm_Vertical_SMD, { @@ -115,134 +120,129 @@ const SR3 = board.add(R_0402_1005Metric, { translate: pt(0.399, 0.463), rotate: 0, id: 'SR3' }) -// usb_esd -const SU5 = board.add(SOT_23, { - translate: pt(1.520, 1.225), rotate: 0, - id: 'SU5' -}) // led_tgt.package const SD2 = board.add(LED_0603_1608Metric, { - translate: pt(0.362, 1.187), rotate: 0, + translate: pt(1.541, 0.778), rotate: 0, id: 'SD2' }) // led_tgt.res const SR4 = board.add(R_0402_1005Metric, { - translate: pt(0.341, 1.274), rotate: 0, + translate: pt(1.519, 0.865), rotate: 0, id: 'SR4' }) // led_usb.package const SD3 = board.add(LED_0603_1608Metric, { - translate: pt(0.597, 1.187), rotate: 0, + translate: pt(0.058, 1.146), rotate: 0, id: 'SD3' }) // led_usb.res const SR5 = board.add(R_0402_1005Metric, { - translate: pt(0.575, 1.274), rotate: 0, + translate: pt(0.037, 1.233), rotate: 0, id: 'SR5' }) // en_pull.res const SR6 = board.add(R_0402_1005Metric, { - translate: pt(0.037, 1.485), rotate: 0, + translate: pt(1.100, 1.136), rotate: 0, id: 'SR6' }) // target_drv.swclk_res.res const SR7 = board.add(R_0402_1005Metric, { - translate: pt(0.037, 1.177), rotate: 0, + translate: pt(1.215, 0.767), rotate: 0, id: 'SR7' }) // target_drv.swdio_res.res const SR8 = board.add(R_0402_1005Metric, { - translate: pt(0.149, 1.177), rotate: 0, + translate: pt(1.328, 0.767), rotate: 0, id: 'SR8' }) // target_drv.swdio_drv_res.res const SR9 = board.add(R_0402_1005Metric, { - translate: pt(0.037, 1.253), rotate: 0, + translate: pt(1.215, 0.844), rotate: 0, id: 'SR9' }) // target_drv.reset_res.res const SR10 = board.add(R_0402_1005Metric, { - translate: pt(0.149, 1.253), rotate: 0, + translate: pt(1.328, 0.844), rotate: 0, id: 'SR10' }) // target_drv.swo_res.res const SR11 = board.add(R_0402_1005Metric, { - translate: pt(0.037, 1.330), rotate: 0, + translate: pt(1.215, 0.920), rotate: 0, id: 'SR11' }) // reset_pull.res const SR12 = board.add(R_0402_1005Metric, { - translate: pt(0.228, 1.485), rotate: 0, + translate: pt(1.291, 1.136), rotate: 0, id: 'SR12' }) // reset_sw.package const SSW1 = board.add(SW_SPST_SKQG_WithoutStem, { - translate: pt(1.350, 0.861), rotate: 0, + translate: pt(0.893, 0.861), rotate: 0, id: 'SSW1' }) // target.conn const SJ3 = board.add(PinHeader_2x05_P1_27mm_Vertical_SMD, { - translate: pt(0.169, 0.894), rotate: 0, + translate: pt(1.608, 0.146), rotate: 0, id: 'SJ3' }) // led_target.package const SD4 = board.add(LED_0603_1608Metric, { - translate: pt(0.832, 1.187), rotate: 0, + translate: pt(0.293, 1.146), rotate: 0, id: 'SD4' }) // led_target.res const SR13 = board.add(R_0402_1005Metric, { - translate: pt(0.810, 1.274), rotate: 0, + translate: pt(0.271, 1.233), rotate: 0, id: 'SR13' }) // target_sense.div.top_res const SR14 = board.add(R_0402_1005Metric, { - translate: pt(1.045, 1.177), rotate: 0, + translate: pt(0.506, 1.136), rotate: 0, id: 'SR14' }) // target_sense.div.bottom_res const SR15 = board.add(R_0402_1005Metric, { - translate: pt(1.045, 1.253), rotate: 0, + translate: pt(0.506, 1.212), rotate: 0, id: 'SR15' }) board.setNetlist([ - {name: "vusb", pads: [["SJ1", "A4"], ["SJ1", "A9"], ["SJ1", "B4"], ["SJ1", "B9"], ["SD1", "1"], ["SU1", "1"], ["SU1", "3"], ["SC1", "1"], ["SU2", "1"], ["SC3", "1"]]}, - {name: "gnd", pads: [["SJ1", "A1"], ["SJ1", "A12"], ["SJ1", "B1"], ["SJ1", "B12"], ["SJ1", "S1"], ["SR1", "1"], ["SR2", "1"], ["SD1", "2"], ["SU1", "2"], ["SC1", "2"], ["SC2", "2"], ["SU2", "2"], ["SC3", "2"], ["SC4", "2"], ["SU3", "23"], ["SU3", "35"], ["SU3", "44"], ["SU3", "47"], ["SU3", "8"], ["SC5", "2"], ["SC6", "2"], ["SC7", "2"], ["SC8", "2"], ["SC9", "2"], ["SC10", "2"], ["SU4", "2"], ["SJ2", "3"], ["SJ2", "5"], ["SJ2", "9"], ["SU5", "3"], ["SR4", "2"], ["SR5", "2"], ["SSW1", "2"], ["SJ3", "3"], ["SJ3", "5"], ["SJ3", "9"], ["SR13", "2"], ["SR15", "2"]]}, - {name: "v3v3", pads: [["SU1", "5"], ["SC2", "1"], ["SU3", "1"], ["SU3", "24"], ["SU3", "36"], ["SU3", "48"], ["SU3", "9"], ["SC5", "1"], ["SC6", "1"], ["SC7", "1"], ["SC8", "1"], ["SC9", "1"], ["SC10", "1"], ["SJ2", "1"], ["SR3", "1"], ["SR6", "1"], ["SR12", "1"]]}, - {name: "vtarget", pads: [["SU2", "5"], ["SC4", "1"], ["SJ3", "1"], ["SD4", "2"], ["SR14", "1"]]}, - {name: "usb_chain_0.d_P", pads: [["SJ1", "A6"], ["SJ1", "B6"], ["SU3", "33"], ["SR3", "2"], ["SU5", "2"]]}, - {name: "usb_chain_0.d_N", pads: [["SJ1", "A7"], ["SJ1", "B7"], ["SU3", "32"], ["SU5", "1"]]}, + {name: "vusb", pads: [["SJ1", "A4"], ["SJ1", "A9"], ["SJ1", "B4"], ["SJ1", "B9"], ["SD1", "1"], ["SU2", "1"], ["SU2", "3"], ["SC1", "1"], ["SU3", "1"], ["SC3", "1"]]}, + {name: "gnd", pads: [["SJ1", "A1"], ["SJ1", "A12"], ["SJ1", "B1"], ["SJ1", "B12"], ["SJ1", "S1"], ["SU1", "3"], ["SR1", "1"], ["SR2", "1"], ["SD1", "2"], ["SU2", "2"], ["SC1", "2"], ["SC2", "2"], ["SU3", "2"], ["SC3", "2"], ["SC4", "2"], ["SU4", "23"], ["SU4", "35"], ["SU4", "44"], ["SU4", "47"], ["SU4", "8"], ["SC5", "2"], ["SC6", "2"], ["SC7", "2"], ["SC8", "2"], ["SC9", "2"], ["SC10", "2"], ["SU5", "2"], ["SJ2", "3"], ["SJ2", "5"], ["SJ2", "9"], ["SR4", "2"], ["SR5", "2"], ["SSW1", "2"], ["SJ3", "3"], ["SJ3", "5"], ["SJ3", "9"], ["SR13", "2"], ["SR15", "2"]]}, + {name: "v3v3", pads: [["SU2", "5"], ["SC2", "1"], ["SU4", "1"], ["SU4", "24"], ["SU4", "36"], ["SU4", "48"], ["SU4", "9"], ["SC5", "1"], ["SC6", "1"], ["SC7", "1"], ["SC8", "1"], ["SC9", "1"], ["SC10", "1"], ["SJ2", "1"], ["SR3", "1"], ["SR6", "1"], ["SR12", "1"]]}, + {name: "vtarget", pads: [["SU3", "5"], ["SC4", "1"], ["SJ3", "1"], ["SD4", "2"], ["SR14", "1"]]}, + {name: "usb.usb.dp", pads: [["SJ1", "A6"], ["SJ1", "B6"], ["SU1", "2"], ["SU4", "33"], ["SR3", "2"]]}, + {name: "usb.usb.dm", pads: [["SJ1", "A7"], ["SJ1", "B7"], ["SU1", "1"], ["SU4", "32"]]}, {name: "usb.conn.cc.cc1", pads: [["SJ1", "A5"], ["SR1", "2"]]}, {name: "usb.conn.cc.cc2", pads: [["SJ1", "B5"], ["SR2", "2"]]}, - {name: "target_reg.reset", pads: [["SU2", "3"], ["SU3", "28"], ["SR6", "2"]]}, - {name: "mcu.xtal_node.xi", pads: [["SU3", "5"], ["SU4", "1"]]}, - {name: "mcu.xtal_node.xo", pads: [["SU3", "6"], ["SU4", "3"]]}, - {name: "mcu.swd_node.swdio", pads: [["SU3", "34"], ["SJ2", "2"]]}, - {name: "mcu.swd_node.swclk", pads: [["SU3", "37"], ["SJ2", "4"]]}, - {name: "mcu.reset_node", pads: [["SU3", "7"], ["SJ2", "10"]]}, + {name: "target_reg.reset", pads: [["SU3", "3"], ["SU4", "28"], ["SR6", "2"]]}, + {name: "mcu.xtal_node.xi", pads: [["SU4", "5"], ["SU5", "1"]]}, + {name: "mcu.xtal_node.xo", pads: [["SU4", "6"], ["SU5", "3"]]}, + {name: "mcu.swd_node.swdio", pads: [["SU4", "34"], ["SJ2", "2"]]}, + {name: "mcu.swd_node.swclk", pads: [["SU4", "37"], ["SJ2", "4"]]}, + {name: "mcu.reset_node", pads: [["SU4", "7"], ["SJ2", "10"]]}, {name: "mcu.swd.tdi", pads: [["SJ2", "8"]]}, - {name: "mcu.swd.swo", pads: [["SU3", "39"], ["SJ2", "6"]]}, - {name: "led_tgt.signal", pads: [["SU3", "30"], ["SD2", "2"]]}, + {name: "mcu.swd.swo", pads: [["SU4", "39"], ["SJ2", "6"]]}, + {name: "led_tgt.signal", pads: [["SU4", "30"], ["SD2", "2"]]}, {name: "led_tgt.package.k", pads: [["SD2", "1"], ["SR4", "1"]]}, - {name: "led_usb.signal", pads: [["SU3", "42"], ["SD3", "2"]]}, + {name: "led_usb.signal", pads: [["SU4", "42"], ["SD3", "2"]]}, {name: "led_usb.package.k", pads: [["SD3", "1"], ["SR5", "1"]]}, - {name: "target_drv.reset_in", pads: [["SU3", "18"], ["SR10", "1"], ["SR12", "2"], ["SSW1", "1"]]}, - {name: "target_drv.swclk_in", pads: [["SU3", "26"], ["SR7", "1"]]}, - {name: "target_drv.swdio_in", pads: [["SU3", "25"], ["SR9", "1"]]}, - {name: "target_drv.swdio_out", pads: [["SU3", "27"], ["SR8", "1"], ["SR9", "2"]]}, + {name: "target_drv.reset_in", pads: [["SU4", "18"], ["SR10", "1"], ["SR12", "2"], ["SSW1", "1"]]}, + {name: "target_drv.swclk_in", pads: [["SU4", "26"], ["SR7", "1"]]}, + {name: "target_drv.swdio_in", pads: [["SU4", "25"], ["SR9", "1"]]}, + {name: "target_drv.swdio_out", pads: [["SU4", "27"], ["SR8", "1"], ["SR9", "2"]]}, {name: "target_drv.reset_out", pads: [["SR10", "2"], ["SJ3", "10"]]}, - {name: "target_drv.swo_out", pads: [["SU3", "31"], ["SR11", "2"]]}, + {name: "target_drv.swo_out", pads: [["SU4", "31"], ["SR11", "2"]]}, {name: "target_drv.swd.swdio", pads: [["SR8", "2"], ["SJ3", "2"]]}, {name: "target_drv.swd.swclk", pads: [["SR7", "2"], ["SJ3", "4"]]}, {name: "target_drv.swo_in", pads: [["SR11", "1"], ["SJ3", "6"]]}, {name: "target.tdi", pads: [["SJ3", "8"]]}, {name: "led_target.package.k", pads: [["SD4", "1"], ["SR13", "1"]]}, - {name: "target_sense.output", pads: [["SU3", "10"], ["SR14", "2"], ["SR15", "1"]]} + {name: "target_sense.output", pads: [["SU4", "10"], ["SR14", "2"], ["SR15", "1"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(1.792322834645669, 1.6212598425196851); +const limit1 = pt(1.8952755905511813, 1.369685039370079); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/TestBlinkyArray/TestBlinkyArray.net.ref b/examples/TestBlinkyArray/TestBlinkyArray.net.ref index c79f00f58..8a666255b 100644 --- a/examples/TestBlinkyArray/TestBlinkyArray.net.ref +++ b/examples/TestBlinkyArray/TestBlinkyArray.net.ref @@ -8,8 +8,8 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) (comp (ref "R1") diff --git a/examples/TestBlinkyImplicit/TestBlinkyImplicit.net.ref b/examples/TestBlinkyImplicit/TestBlinkyImplicit.net.ref index 5627e034e..8f919646b 100644 --- a/examples/TestBlinkyImplicit/TestBlinkyImplicit.net.ref +++ b/examples/TestBlinkyImplicit/TestBlinkyImplicit.net.ref @@ -8,10 +8,22 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) +(comp (ref "U1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "U1")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "R1") (value "usb.cc_pull.cc1") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -36,14 +48,14 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 5.1kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/usb/cc_pull/") (tstamps "/02aa014b/0b4c02e3/")) (tstamps "022400f9")) -(comp (ref "U1") +(comp (ref "U2") (value "reg.ic") (footprint "Package_TO_SOT_SMD:SOT-223-3_TabPin2") (property (name "Sheetname") (value "reg")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ams1117")) (property (name "edg_path") (value "reg.ic")) (property (name "edg_short_path") (value "reg.ic")) - (property (name "edg_refdes") (value "U1")) + (property (name "edg_refdes") (value "U2")) (property (name "edg_part") (value "AMS1117-3.3 (Advanced Monolithic Systems)")) (property (name "edg_value") (value "AMS1117-3.3")) (sheetpath (names "/reg/") (tstamps "/028a013f/")) @@ -72,14 +84,14 @@ (property (name "edg_value") (value "10V 22uF X5R ±10% 1206 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/reg/") (tstamps "/028a013f/")) (tstamps "0be902ec")) -(comp (ref "U2") +(comp (ref "U3") (value "mcu.ic") (footprint "Package_QFP:LQFP-48_7x7mm_P0.5mm") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Stm32f103.Stm32f103")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "U2")) + (property (name "edg_refdes") (value "U3")) (property (name "edg_part") (value "STM32F103xxT6 (STMicroelectronics)")) (property (name "edg_value") (value "STM32F103xxT6")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -528,14 +540,14 @@ (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/sw/sw[1,2]/npx/") (tstamps "/015f00eb/09c60232/02a50157/")) (tstamps "025e0135")) -(comp (ref "U3") +(comp (ref "U4") (value "npx_shift.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "npx_shift")) (property (name "Sheetfile") (value "edg.parts.logic.Logic_74Ahct.L74Ahct1g125")) (property (name "edg_path") (value "npx_shift.ic")) (property (name "edg_short_path") (value "npx_shift.ic")) - (property (name "edg_refdes") (value "U3")) + (property (name "edg_refdes") (value "U4")) (property (name "edg_part") (value "74AHCT1G125W5-7 (Diodes Incorporated)")) (property (name "edg_value") (value "74AHCT1G125W5-7")) (sheetpath (names "/npx_shift/") (tstamps "/134303d4/")) @@ -558,7 +570,7 @@ (node (ref J1) (pin A9)) (node (ref J1) (pin B4)) (node (ref J1) (pin B9)) - (node (ref U1) (pin 3)) + (node (ref U2) (pin 3)) (node (ref C1) (pin 1)) (node (ref D3) (pin 4)) (node (ref C11) (pin 1)) @@ -572,7 +584,7 @@ (node (ref C15) (pin 1)) (node (ref D13) (pin 4)) (node (ref C16) (pin 1)) - (node (ref U3) (pin 5)) + (node (ref U4) (pin 5)) (node (ref C17) (pin 1))) (net (code 2) (name "usb.gnd") (node (ref J1) (pin A1)) @@ -580,16 +592,17 @@ (node (ref J1) (pin B1)) (node (ref J1) (pin B12)) (node (ref J1) (pin S1)) + (node (ref U1) (pin 3)) (node (ref R1) (pin 1)) (node (ref R2) (pin 1)) - (node (ref U1) (pin 1)) + (node (ref U2) (pin 1)) (node (ref C1) (pin 2)) (node (ref C2) (pin 2)) - (node (ref U2) (pin 23)) - (node (ref U2) (pin 35)) - (node (ref U2) (pin 44)) - (node (ref U2) (pin 47)) - (node (ref U2) (pin 8)) + (node (ref U3) (pin 23)) + (node (ref U3) (pin 35)) + (node (ref U3) (pin 44)) + (node (ref U3) (pin 47)) + (node (ref U3) (pin 8)) (node (ref C3) (pin 2)) (node (ref C4) (pin 2)) (node (ref C5) (pin 2)) @@ -616,18 +629,20 @@ (node (ref C15) (pin 2)) (node (ref D13) (pin 2)) (node (ref C16) (pin 2)) - (node (ref U3) (pin 1)) - (node (ref U3) (pin 3)) + (node (ref U4) (pin 1)) + (node (ref U4) (pin 3)) (node (ref C17) (pin 2))) (net (code 3) (name "usb.usb.dp") (node (ref J1) (pin A6)) (node (ref J1) (pin B6)) - (node (ref U2) (pin 33)) + (node (ref U1) (pin 2)) + (node (ref U3) (pin 33)) (node (ref R3) (pin 2))) (net (code 4) (name "usb.usb.dm") (node (ref J1) (pin A7)) (node (ref J1) (pin B7)) - (node (ref U2) (pin 32))) + (node (ref U1) (pin 1)) + (node (ref U3) (pin 32))) (net (code 5) (name "usb.conn.cc.cc1") (node (ref J1) (pin A5)) (node (ref R1) (pin 2))) @@ -635,13 +650,13 @@ (node (ref J1) (pin B5)) (node (ref R2) (pin 2))) (net (code 7) (name "reg.pwr_out") - (node (ref U1) (pin 2)) + (node (ref U2) (pin 2)) (node (ref C2) (pin 1)) - (node (ref U2) (pin 1)) - (node (ref U2) (pin 24)) - (node (ref U2) (pin 36)) - (node (ref U2) (pin 48)) - (node (ref U2) (pin 9)) + (node (ref U3) (pin 1)) + (node (ref U3) (pin 24)) + (node (ref U3) (pin 36)) + (node (ref U3) (pin 48)) + (node (ref U3) (pin 9)) (node (ref C3) (pin 1)) (node (ref C4) (pin 1)) (node (ref C5) (pin 1)) @@ -651,57 +666,57 @@ (node (ref J2) (pin 1)) (node (ref R3) (pin 1))) (net (code 8) (name "mcu.gpio.cols_0") - (node (ref U2) (pin 12)) + (node (ref U3) (pin 12)) (node (ref SW1) (pin 1)) (node (ref SW3) (pin 1)) (node (ref SW5) (pin 1))) (net (code 9) (name "mcu.gpio.cols_1") - (node (ref U2) (pin 13)) + (node (ref U3) (pin 13)) (node (ref SW2) (pin 1)) (node (ref SW4) (pin 1)) (node (ref SW6) (pin 1))) (net (code 10) (name "mcu.gpio.rows_0") - (node (ref U2) (pin 14)) + (node (ref U3) (pin 14)) (node (ref D2) (pin 1)) (node (ref D4) (pin 1))) (net (code 11) (name "mcu.gpio.rows_1") - (node (ref U2) (pin 15)) + (node (ref U3) (pin 15)) (node (ref D6) (pin 1)) (node (ref D8) (pin 1))) (net (code 12) (name "mcu.gpio.rows_2") - (node (ref U2) (pin 16)) + (node (ref U3) (pin 16)) (node (ref D10) (pin 1)) (node (ref D12) (pin 1))) (net (code 13) (name "mcu.xtal_node.xi") - (node (ref U2) (pin 5)) + (node (ref U3) (pin 5)) (node (ref X1) (pin 1)) (node (ref C9) (pin 1))) (net (code 14) (name "mcu.xtal_node.xo") - (node (ref U2) (pin 6)) + (node (ref U3) (pin 6)) (node (ref X1) (pin 3)) (node (ref C10) (pin 1))) (net (code 15) (name "mcu.swd_node.swdio") - (node (ref U2) (pin 34)) + (node (ref U3) (pin 34)) (node (ref J2) (pin 2))) (net (code 16) (name "mcu.swd_node.swclk") - (node (ref U2) (pin 37)) + (node (ref U3) (pin 37)) (node (ref J2) (pin 4))) (net (code 17) (name "mcu.reset_node") - (node (ref U2) (pin 7)) + (node (ref U3) (pin 7)) (node (ref J2) (pin 10))) (net (code 18) (name "mcu.swd.tdi") (node (ref J2) (pin 8))) (net (code 19) (name "mcu.swd.swo") (node (ref J2) (pin 6))) (net (code 20) (name "led.signal") - (node (ref U2) (pin 10)) + (node (ref U3) (pin 10)) (node (ref D1) (pin 2))) (net (code 21) (name "led.package.k") (node (ref D1) (pin 1)) (node (ref R4) (pin 1))) (net (code 22) (name "sw.npx_din") (node (ref D3) (pin 3)) - (node (ref U3) (pin 4))) + (node (ref U4) (pin 4))) (net (code 23) (name "sw.npx_dout") (node (ref D13) (pin 1))) (net (code 24) (name "sw.sw[0,0].npx_dout") @@ -738,6 +753,6 @@ (node (ref SW6) (pin 2)) (node (ref D12) (pin 2))) (net (code 35) (name "npx_shift.input") - (node (ref U2) (pin 11)) - (node (ref U3) (pin 2)))) + (node (ref U3) (pin 11)) + (node (ref U4) (pin 2)))) ) \ No newline at end of file diff --git a/examples/TestBlinkyImplicit/TestBlinkyImplicit.svgpcb.js b/examples/TestBlinkyImplicit/TestBlinkyImplicit.svgpcb.js index c39727ed8..7acd70e51 100644 --- a/examples/TestBlinkyImplicit/TestBlinkyImplicit.svgpcb.js +++ b/examples/TestBlinkyImplicit/TestBlinkyImplicit.svgpcb.js @@ -3,38 +3,43 @@ const board = new PCB(); const sw = SwitchDiodeMatrixNeopixels_2_3_sw(pt(0.039, 0.039)) // usb.conn const J1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(2.252, 0.165), rotate: 0, + translate: pt(1.328, 0.958), rotate: 0, id: 'J1' }) +// usb.esd +const U1 = board.add(SOT_23, { + translate: pt(1.652, 0.861), rotate: 0, + id: 'U1' +}) // usb.cc_pull.cc1 const R1 = board.add(R_0603_1608Metric, { - translate: pt(2.101, 0.420), rotate: 0, + translate: pt(1.635, 0.996), rotate: 0, id: 'R1' }) // usb.cc_pull.cc2 const R2 = board.add(R_0603_1608Metric, { - translate: pt(2.257, 0.420), rotate: 0, + translate: pt(1.635, 1.093), rotate: 0, id: 'R2' }) // reg.ic -const U1 = board.add(SOT_223_3_TabPin2, { - translate: pt(1.291, 0.935), rotate: 0, - id: 'U1' +const U2 = board.add(SOT_223_3_TabPin2, { + translate: pt(2.216, 0.142), rotate: 0, + id: 'U2' }) // reg.in_cap.cap const C1 = board.add(C_0603_1608Metric, { - translate: pt(1.397, 1.145), rotate: 0, + translate: pt(2.321, 0.352), rotate: 0, id: 'C1' }) // reg.out_cap.cap const C2 = board.add(C_1206_3216Metric, { - translate: pt(1.209, 1.162), rotate: 0, + translate: pt(2.133, 0.368), rotate: 0, id: 'C2' }) // mcu.ic -const U2 = board.add(LQFP_48_7x7mm_P0_5mm, { +const U3 = board.add(LQFP_48_7x7mm_P0_5mm, { translate: pt(1.321, 0.203), rotate: 0, - id: 'U2' + id: 'U3' }) // mcu.pwr_cap[0].cap const C3 = board.add(C_0805_2012Metric, { @@ -93,48 +98,48 @@ const R3 = board.add(R_0603_1608Metric, { }) // led.package const D1 = board.add(LED_0603_1608Metric, { - translate: pt(1.921, 0.823), rotate: 0, + translate: pt(2.184, 0.823), rotate: 0, id: 'D1' }) // led.res const R4 = board.add(R_0603_1608Metric, { - translate: pt(1.920, 0.920), rotate: 0, + translate: pt(2.183, 0.920), rotate: 0, id: 'R4' }) // npx_shift.ic -const U3 = board.add(SOT_23_5, { - translate: pt(1.663, 0.861), rotate: 0, - id: 'U3' +const U4 = board.add(SOT_23_5, { + translate: pt(1.926, 0.861), rotate: 0, + id: 'U4' }) // npx_shift.vdd_cap.cap const C17 = board.add(C_0603_1608Metric, { - translate: pt(1.641, 0.996), rotate: 0, + translate: pt(1.904, 0.996), rotate: 0, id: 'C17' }) board.setNetlist([ - {name: "usb.pwr", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["U1", "3"], ["C1", "1"], ["D3", "4"], ["C11", "1"], ["D5", "4"], ["C12", "1"], ["D7", "4"], ["C13", "1"], ["D9", "4"], ["C14", "1"], ["D11", "4"], ["C15", "1"], ["D13", "4"], ["C16", "1"], ["U3", "5"], ["C17", "1"]]}, - {name: "usb.gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["R1", "1"], ["R2", "1"], ["U1", "1"], ["C1", "2"], ["C2", "2"], ["U2", "23"], ["U2", "35"], ["U2", "44"], ["U2", "47"], ["U2", "8"], ["C3", "2"], ["C4", "2"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["C8", "2"], ["X1", "2"], ["X1", "4"], ["C9", "2"], ["C10", "2"], ["J2", "3"], ["J2", "5"], ["J2", "9"], ["R4", "2"], ["D3", "2"], ["C11", "2"], ["D5", "2"], ["C12", "2"], ["D7", "2"], ["C13", "2"], ["D9", "2"], ["C14", "2"], ["D11", "2"], ["C15", "2"], ["D13", "2"], ["C16", "2"], ["U3", "1"], ["U3", "3"], ["C17", "2"]]}, - {name: "usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["U2", "33"], ["R3", "2"]]}, - {name: "usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["U2", "32"]]}, + {name: "usb.pwr", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["U2", "3"], ["C1", "1"], ["D3", "4"], ["C11", "1"], ["D5", "4"], ["C12", "1"], ["D7", "4"], ["C13", "1"], ["D9", "4"], ["C14", "1"], ["D11", "4"], ["C15", "1"], ["D13", "4"], ["C16", "1"], ["U4", "5"], ["C17", "1"]]}, + {name: "usb.gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["U1", "3"], ["R1", "1"], ["R2", "1"], ["U2", "1"], ["C1", "2"], ["C2", "2"], ["U3", "23"], ["U3", "35"], ["U3", "44"], ["U3", "47"], ["U3", "8"], ["C3", "2"], ["C4", "2"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["C8", "2"], ["X1", "2"], ["X1", "4"], ["C9", "2"], ["C10", "2"], ["J2", "3"], ["J2", "5"], ["J2", "9"], ["R4", "2"], ["D3", "2"], ["C11", "2"], ["D5", "2"], ["C12", "2"], ["D7", "2"], ["C13", "2"], ["D9", "2"], ["C14", "2"], ["D11", "2"], ["C15", "2"], ["D13", "2"], ["C16", "2"], ["U4", "1"], ["U4", "3"], ["C17", "2"]]}, + {name: "usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["U1", "2"], ["U3", "33"], ["R3", "2"]]}, + {name: "usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["U1", "1"], ["U3", "32"]]}, {name: "usb.conn.cc.cc1", pads: [["J1", "A5"], ["R1", "2"]]}, {name: "usb.conn.cc.cc2", pads: [["J1", "B5"], ["R2", "2"]]}, - {name: "reg.pwr_out", pads: [["U1", "2"], ["C2", "1"], ["U2", "1"], ["U2", "24"], ["U2", "36"], ["U2", "48"], ["U2", "9"], ["C3", "1"], ["C4", "1"], ["C5", "1"], ["C6", "1"], ["C7", "1"], ["C8", "1"], ["J2", "1"], ["R3", "1"]]}, - {name: "mcu.gpio.cols_0", pads: [["U2", "12"], ["SW1", "1"], ["SW3", "1"], ["SW5", "1"]]}, - {name: "mcu.gpio.cols_1", pads: [["U2", "13"], ["SW2", "1"], ["SW4", "1"], ["SW6", "1"]]}, - {name: "mcu.gpio.rows_0", pads: [["U2", "14"], ["D2", "1"], ["D4", "1"]]}, - {name: "mcu.gpio.rows_1", pads: [["U2", "15"], ["D6", "1"], ["D8", "1"]]}, - {name: "mcu.gpio.rows_2", pads: [["U2", "16"], ["D10", "1"], ["D12", "1"]]}, - {name: "mcu.xtal_node.xi", pads: [["U2", "5"], ["X1", "1"], ["C9", "1"]]}, - {name: "mcu.xtal_node.xo", pads: [["U2", "6"], ["X1", "3"], ["C10", "1"]]}, - {name: "mcu.swd_node.swdio", pads: [["U2", "34"], ["J2", "2"]]}, - {name: "mcu.swd_node.swclk", pads: [["U2", "37"], ["J2", "4"]]}, - {name: "mcu.reset_node", pads: [["U2", "7"], ["J2", "10"]]}, + {name: "reg.pwr_out", pads: [["U2", "2"], ["C2", "1"], ["U3", "1"], ["U3", "24"], ["U3", "36"], ["U3", "48"], ["U3", "9"], ["C3", "1"], ["C4", "1"], ["C5", "1"], ["C6", "1"], ["C7", "1"], ["C8", "1"], ["J2", "1"], ["R3", "1"]]}, + {name: "mcu.gpio.cols_0", pads: [["U3", "12"], ["SW1", "1"], ["SW3", "1"], ["SW5", "1"]]}, + {name: "mcu.gpio.cols_1", pads: [["U3", "13"], ["SW2", "1"], ["SW4", "1"], ["SW6", "1"]]}, + {name: "mcu.gpio.rows_0", pads: [["U3", "14"], ["D2", "1"], ["D4", "1"]]}, + {name: "mcu.gpio.rows_1", pads: [["U3", "15"], ["D6", "1"], ["D8", "1"]]}, + {name: "mcu.gpio.rows_2", pads: [["U3", "16"], ["D10", "1"], ["D12", "1"]]}, + {name: "mcu.xtal_node.xi", pads: [["U3", "5"], ["X1", "1"], ["C9", "1"]]}, + {name: "mcu.xtal_node.xo", pads: [["U3", "6"], ["X1", "3"], ["C10", "1"]]}, + {name: "mcu.swd_node.swdio", pads: [["U3", "34"], ["J2", "2"]]}, + {name: "mcu.swd_node.swclk", pads: [["U3", "37"], ["J2", "4"]]}, + {name: "mcu.reset_node", pads: [["U3", "7"], ["J2", "10"]]}, {name: "mcu.swd.tdi", pads: [["J2", "8"]]}, {name: "mcu.swd.swo", pads: [["J2", "6"]]}, - {name: "led.signal", pads: [["U2", "10"], ["D1", "2"]]}, + {name: "led.signal", pads: [["U3", "10"], ["D1", "2"]]}, {name: "led.package.k", pads: [["D1", "1"], ["R4", "1"]]}, - {name: "sw.npx_din", pads: [["D3", "3"], ["U3", "4"]]}, + {name: "sw.npx_din", pads: [["D3", "3"], ["U4", "4"]]}, {name: "sw.npx_dout", pads: [["D13", "1"]]}, {name: "sw.sw[0,0].npx_dout", pads: [["D3", "1"], ["D5", "3"]]}, {name: "sw.sw[0,0].sw.com", pads: [["SW1", "2"], ["D2", "2"]]}, @@ -147,11 +152,11 @@ board.setNetlist([ {name: "sw.sw[0,2].npx_dout", pads: [["D11", "1"], ["D13", "3"]]}, {name: "sw.sw[0,2].sw.com", pads: [["SW5", "2"], ["D10", "2"]]}, {name: "sw.sw[1,2].sw.com", pads: [["SW6", "2"], ["D12", "2"]]}, - {name: "npx_shift.input", pads: [["U2", "11"], ["U3", "2"]]} + {name: "npx_shift.input", pads: [["U3", "11"], ["U4", "2"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(2.5795275590551188, 2.1181102362204722); +const limit1 = pt(2.507086614173229, 2.1181102362204722); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/TestBlinkyPacked/TestBlinkyPacked.net.ref b/examples/TestBlinkyPacked/TestBlinkyPacked.net.ref index 5ba1ac4ba..d26501661 100644 --- a/examples/TestBlinkyPacked/TestBlinkyPacked.net.ref +++ b/examples/TestBlinkyPacked/TestBlinkyPacked.net.ref @@ -8,8 +8,8 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) (comp (ref "R1") diff --git a/examples/TestBlinkyPinned/TestBlinkyPinned.net.ref b/examples/TestBlinkyPinned/TestBlinkyPinned.net.ref index 2a8ffbe64..a6ac7d002 100644 --- a/examples/TestBlinkyPinned/TestBlinkyPinned.net.ref +++ b/examples/TestBlinkyPinned/TestBlinkyPinned.net.ref @@ -8,10 +8,22 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) +(comp (ref "U1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "U1")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "R1") (value "usb.cc_pull.cc1") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -36,14 +48,14 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 5.1kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/usb/cc_pull/") (tstamps "/02aa014b/0b4c02e3/")) (tstamps "022400f9")) -(comp (ref "U1") +(comp (ref "U2") (value "reg.ic") (footprint "Package_TO_SOT_SMD:SOT-223-3_TabPin2") (property (name "Sheetname") (value "reg")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ams1117")) (property (name "edg_path") (value "reg.ic")) (property (name "edg_short_path") (value "reg.ic")) - (property (name "edg_refdes") (value "U1")) + (property (name "edg_refdes") (value "U2")) (property (name "edg_part") (value "AMS1117-3.3 (Advanced Monolithic Systems)")) (property (name "edg_value") (value "AMS1117-3.3")) (sheetpath (names "/reg/") (tstamps "/028a013f/")) @@ -72,14 +84,14 @@ (property (name "edg_value") (value "10V 22uF X5R ±10% 1206 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/reg/") (tstamps "/028a013f/")) (tstamps "0be902ec")) -(comp (ref "U2") +(comp (ref "U3") (value "mcu.ic") (footprint "Package_QFP:LQFP-48_7x7mm_P0.5mm") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Stm32f103.Stm32f103")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "U2")) + (property (name "edg_refdes") (value "U3")) (property (name "edg_part") (value "STM32F103xxT6 (STMicroelectronics)")) (property (name "edg_value") (value "STM32F103xxT6")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -528,14 +540,14 @@ (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/sw/sw[1,2]/npx/") (tstamps "/015f00eb/09c60232/02a50157/")) (tstamps "025e0135")) -(comp (ref "U3") +(comp (ref "U4") (value "npx_shift.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "npx_shift")) (property (name "Sheetfile") (value "edg.parts.logic.Logic_74Ahct.L74Ahct1g125")) (property (name "edg_path") (value "npx_shift.ic")) (property (name "edg_short_path") (value "npx_shift.ic")) - (property (name "edg_refdes") (value "U3")) + (property (name "edg_refdes") (value "U4")) (property (name "edg_part") (value "74AHCT1G125W5-7 (Diodes Incorporated)")) (property (name "edg_value") (value "74AHCT1G125W5-7")) (sheetpath (names "/npx_shift/") (tstamps "/134303d4/")) @@ -558,7 +570,7 @@ (node (ref J1) (pin A9)) (node (ref J1) (pin B4)) (node (ref J1) (pin B9)) - (node (ref U1) (pin 3)) + (node (ref U2) (pin 3)) (node (ref C1) (pin 1)) (node (ref D3) (pin 4)) (node (ref C11) (pin 1)) @@ -572,7 +584,7 @@ (node (ref C15) (pin 1)) (node (ref D13) (pin 4)) (node (ref C16) (pin 1)) - (node (ref U3) (pin 5)) + (node (ref U4) (pin 5)) (node (ref C17) (pin 1))) (net (code 2) (name "usb.gnd") (node (ref J1) (pin A1)) @@ -580,16 +592,17 @@ (node (ref J1) (pin B1)) (node (ref J1) (pin B12)) (node (ref J1) (pin S1)) + (node (ref U1) (pin 3)) (node (ref R1) (pin 1)) (node (ref R2) (pin 1)) - (node (ref U1) (pin 1)) + (node (ref U2) (pin 1)) (node (ref C1) (pin 2)) (node (ref C2) (pin 2)) - (node (ref U2) (pin 23)) - (node (ref U2) (pin 35)) - (node (ref U2) (pin 44)) - (node (ref U2) (pin 47)) - (node (ref U2) (pin 8)) + (node (ref U3) (pin 23)) + (node (ref U3) (pin 35)) + (node (ref U3) (pin 44)) + (node (ref U3) (pin 47)) + (node (ref U3) (pin 8)) (node (ref C3) (pin 2)) (node (ref C4) (pin 2)) (node (ref C5) (pin 2)) @@ -616,18 +629,20 @@ (node (ref C15) (pin 2)) (node (ref D13) (pin 2)) (node (ref C16) (pin 2)) - (node (ref U3) (pin 1)) - (node (ref U3) (pin 3)) + (node (ref U4) (pin 1)) + (node (ref U4) (pin 3)) (node (ref C17) (pin 2))) (net (code 3) (name "usb.usb.dp") (node (ref J1) (pin A6)) (node (ref J1) (pin B6)) - (node (ref U2) (pin 33)) + (node (ref U1) (pin 2)) + (node (ref U3) (pin 33)) (node (ref R3) (pin 2))) (net (code 4) (name "usb.usb.dm") (node (ref J1) (pin A7)) (node (ref J1) (pin B7)) - (node (ref U2) (pin 32))) + (node (ref U1) (pin 1)) + (node (ref U3) (pin 32))) (net (code 5) (name "usb.conn.cc.cc1") (node (ref J1) (pin A5)) (node (ref R1) (pin 2))) @@ -635,13 +650,13 @@ (node (ref J1) (pin B5)) (node (ref R2) (pin 2))) (net (code 7) (name "reg.pwr_out") - (node (ref U1) (pin 2)) + (node (ref U2) (pin 2)) (node (ref C2) (pin 1)) - (node (ref U2) (pin 1)) - (node (ref U2) (pin 24)) - (node (ref U2) (pin 36)) - (node (ref U2) (pin 48)) - (node (ref U2) (pin 9)) + (node (ref U3) (pin 1)) + (node (ref U3) (pin 24)) + (node (ref U3) (pin 36)) + (node (ref U3) (pin 48)) + (node (ref U3) (pin 9)) (node (ref C3) (pin 1)) (node (ref C4) (pin 1)) (node (ref C5) (pin 1)) @@ -651,57 +666,57 @@ (node (ref J2) (pin 1)) (node (ref R3) (pin 1))) (net (code 8) (name "mcu.gpio.cols_0") - (node (ref U2) (pin 16)) + (node (ref U3) (pin 16)) (node (ref SW1) (pin 1)) (node (ref SW3) (pin 1)) (node (ref SW5) (pin 1))) (net (code 9) (name "mcu.gpio.cols_1") - (node (ref U2) (pin 17)) + (node (ref U3) (pin 17)) (node (ref SW2) (pin 1)) (node (ref SW4) (pin 1)) (node (ref SW6) (pin 1))) (net (code 10) (name "mcu.gpio.rows_0") - (node (ref U2) (pin 18)) + (node (ref U3) (pin 18)) (node (ref D2) (pin 1)) (node (ref D4) (pin 1))) (net (code 11) (name "mcu.gpio.rows_1") - (node (ref U2) (pin 19)) + (node (ref U3) (pin 19)) (node (ref D6) (pin 1)) (node (ref D8) (pin 1))) (net (code 12) (name "mcu.gpio.rows_2") - (node (ref U2) (pin 20)) + (node (ref U3) (pin 20)) (node (ref D10) (pin 1)) (node (ref D12) (pin 1))) (net (code 13) (name "mcu.xtal_node.xi") - (node (ref U2) (pin 5)) + (node (ref U3) (pin 5)) (node (ref X1) (pin 1)) (node (ref C9) (pin 1))) (net (code 14) (name "mcu.xtal_node.xo") - (node (ref U2) (pin 6)) + (node (ref U3) (pin 6)) (node (ref X1) (pin 3)) (node (ref C10) (pin 1))) (net (code 15) (name "mcu.swd_node.swdio") - (node (ref U2) (pin 34)) + (node (ref U3) (pin 34)) (node (ref J2) (pin 2))) (net (code 16) (name "mcu.swd_node.swclk") - (node (ref U2) (pin 37)) + (node (ref U3) (pin 37)) (node (ref J2) (pin 4))) (net (code 17) (name "mcu.reset_node") - (node (ref U2) (pin 7)) + (node (ref U3) (pin 7)) (node (ref J2) (pin 10))) (net (code 18) (name "mcu.swd.tdi") (node (ref J2) (pin 8))) (net (code 19) (name "mcu.swd.swo") (node (ref J2) (pin 6))) (net (code 20) (name "led.signal") - (node (ref U2) (pin 10)) + (node (ref U3) (pin 10)) (node (ref D1) (pin 2))) (net (code 21) (name "led.package.k") (node (ref D1) (pin 1)) (node (ref R4) (pin 1))) (net (code 22) (name "sw.npx_din") (node (ref D3) (pin 3)) - (node (ref U3) (pin 4))) + (node (ref U4) (pin 4))) (net (code 23) (name "sw.npx_dout") (node (ref D13) (pin 1))) (net (code 24) (name "sw.sw[0,0].npx_dout") @@ -738,6 +753,6 @@ (node (ref SW6) (pin 2)) (node (ref D12) (pin 2))) (net (code 35) (name "npx_shift.input") - (node (ref U2) (pin 11)) - (node (ref U3) (pin 2)))) + (node (ref U3) (pin 11)) + (node (ref U4) (pin 2)))) ) \ No newline at end of file diff --git a/examples/TestBlinkyPinned/TestBlinkyPinned.svgpcb.js b/examples/TestBlinkyPinned/TestBlinkyPinned.svgpcb.js index 367af44a0..01c591b30 100644 --- a/examples/TestBlinkyPinned/TestBlinkyPinned.svgpcb.js +++ b/examples/TestBlinkyPinned/TestBlinkyPinned.svgpcb.js @@ -3,38 +3,43 @@ const board = new PCB(); const sw = SwitchDiodeMatrixNeopixels_2_3_sw(pt(0.039, 0.039)) // usb.conn const J1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(2.252, 0.165), rotate: 0, + translate: pt(1.328, 0.958), rotate: 0, id: 'J1' }) +// usb.esd +const U1 = board.add(SOT_23, { + translate: pt(1.652, 0.861), rotate: 0, + id: 'U1' +}) // usb.cc_pull.cc1 const R1 = board.add(R_0603_1608Metric, { - translate: pt(2.101, 0.420), rotate: 0, + translate: pt(1.635, 0.996), rotate: 0, id: 'R1' }) // usb.cc_pull.cc2 const R2 = board.add(R_0603_1608Metric, { - translate: pt(2.257, 0.420), rotate: 0, + translate: pt(1.635, 1.093), rotate: 0, id: 'R2' }) // reg.ic -const U1 = board.add(SOT_223_3_TabPin2, { - translate: pt(1.291, 0.935), rotate: 0, - id: 'U1' +const U2 = board.add(SOT_223_3_TabPin2, { + translate: pt(2.216, 0.142), rotate: 0, + id: 'U2' }) // reg.in_cap.cap const C1 = board.add(C_0603_1608Metric, { - translate: pt(1.397, 1.145), rotate: 0, + translate: pt(2.321, 0.352), rotate: 0, id: 'C1' }) // reg.out_cap.cap const C2 = board.add(C_1206_3216Metric, { - translate: pt(1.209, 1.162), rotate: 0, + translate: pt(2.133, 0.368), rotate: 0, id: 'C2' }) // mcu.ic -const U2 = board.add(LQFP_48_7x7mm_P0_5mm, { +const U3 = board.add(LQFP_48_7x7mm_P0_5mm, { translate: pt(1.321, 0.203), rotate: 0, - id: 'U2' + id: 'U3' }) // mcu.pwr_cap[0].cap const C3 = board.add(C_0805_2012Metric, { @@ -93,48 +98,48 @@ const R3 = board.add(R_0603_1608Metric, { }) // led.package const D1 = board.add(LED_0603_1608Metric, { - translate: pt(1.921, 0.823), rotate: 0, + translate: pt(2.184, 0.823), rotate: 0, id: 'D1' }) // led.res const R4 = board.add(R_0603_1608Metric, { - translate: pt(1.920, 0.920), rotate: 0, + translate: pt(2.183, 0.920), rotate: 0, id: 'R4' }) // npx_shift.ic -const U3 = board.add(SOT_23_5, { - translate: pt(1.663, 0.861), rotate: 0, - id: 'U3' +const U4 = board.add(SOT_23_5, { + translate: pt(1.926, 0.861), rotate: 0, + id: 'U4' }) // npx_shift.vdd_cap.cap const C17 = board.add(C_0603_1608Metric, { - translate: pt(1.641, 0.996), rotate: 0, + translate: pt(1.904, 0.996), rotate: 0, id: 'C17' }) board.setNetlist([ - {name: "usb.pwr", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["U1", "3"], ["C1", "1"], ["D3", "4"], ["C11", "1"], ["D5", "4"], ["C12", "1"], ["D7", "4"], ["C13", "1"], ["D9", "4"], ["C14", "1"], ["D11", "4"], ["C15", "1"], ["D13", "4"], ["C16", "1"], ["U3", "5"], ["C17", "1"]]}, - {name: "usb.gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["R1", "1"], ["R2", "1"], ["U1", "1"], ["C1", "2"], ["C2", "2"], ["U2", "23"], ["U2", "35"], ["U2", "44"], ["U2", "47"], ["U2", "8"], ["C3", "2"], ["C4", "2"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["C8", "2"], ["X1", "2"], ["X1", "4"], ["C9", "2"], ["C10", "2"], ["J2", "3"], ["J2", "5"], ["J2", "9"], ["R4", "2"], ["D3", "2"], ["C11", "2"], ["D5", "2"], ["C12", "2"], ["D7", "2"], ["C13", "2"], ["D9", "2"], ["C14", "2"], ["D11", "2"], ["C15", "2"], ["D13", "2"], ["C16", "2"], ["U3", "1"], ["U3", "3"], ["C17", "2"]]}, - {name: "usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["U2", "33"], ["R3", "2"]]}, - {name: "usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["U2", "32"]]}, + {name: "usb.pwr", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["U2", "3"], ["C1", "1"], ["D3", "4"], ["C11", "1"], ["D5", "4"], ["C12", "1"], ["D7", "4"], ["C13", "1"], ["D9", "4"], ["C14", "1"], ["D11", "4"], ["C15", "1"], ["D13", "4"], ["C16", "1"], ["U4", "5"], ["C17", "1"]]}, + {name: "usb.gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["U1", "3"], ["R1", "1"], ["R2", "1"], ["U2", "1"], ["C1", "2"], ["C2", "2"], ["U3", "23"], ["U3", "35"], ["U3", "44"], ["U3", "47"], ["U3", "8"], ["C3", "2"], ["C4", "2"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["C8", "2"], ["X1", "2"], ["X1", "4"], ["C9", "2"], ["C10", "2"], ["J2", "3"], ["J2", "5"], ["J2", "9"], ["R4", "2"], ["D3", "2"], ["C11", "2"], ["D5", "2"], ["C12", "2"], ["D7", "2"], ["C13", "2"], ["D9", "2"], ["C14", "2"], ["D11", "2"], ["C15", "2"], ["D13", "2"], ["C16", "2"], ["U4", "1"], ["U4", "3"], ["C17", "2"]]}, + {name: "usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["U1", "2"], ["U3", "33"], ["R3", "2"]]}, + {name: "usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["U1", "1"], ["U3", "32"]]}, {name: "usb.conn.cc.cc1", pads: [["J1", "A5"], ["R1", "2"]]}, {name: "usb.conn.cc.cc2", pads: [["J1", "B5"], ["R2", "2"]]}, - {name: "reg.pwr_out", pads: [["U1", "2"], ["C2", "1"], ["U2", "1"], ["U2", "24"], ["U2", "36"], ["U2", "48"], ["U2", "9"], ["C3", "1"], ["C4", "1"], ["C5", "1"], ["C6", "1"], ["C7", "1"], ["C8", "1"], ["J2", "1"], ["R3", "1"]]}, - {name: "mcu.gpio.cols_0", pads: [["U2", "16"], ["SW1", "1"], ["SW3", "1"], ["SW5", "1"]]}, - {name: "mcu.gpio.cols_1", pads: [["U2", "17"], ["SW2", "1"], ["SW4", "1"], ["SW6", "1"]]}, - {name: "mcu.gpio.rows_0", pads: [["U2", "18"], ["D2", "1"], ["D4", "1"]]}, - {name: "mcu.gpio.rows_1", pads: [["U2", "19"], ["D6", "1"], ["D8", "1"]]}, - {name: "mcu.gpio.rows_2", pads: [["U2", "20"], ["D10", "1"], ["D12", "1"]]}, - {name: "mcu.xtal_node.xi", pads: [["U2", "5"], ["X1", "1"], ["C9", "1"]]}, - {name: "mcu.xtal_node.xo", pads: [["U2", "6"], ["X1", "3"], ["C10", "1"]]}, - {name: "mcu.swd_node.swdio", pads: [["U2", "34"], ["J2", "2"]]}, - {name: "mcu.swd_node.swclk", pads: [["U2", "37"], ["J2", "4"]]}, - {name: "mcu.reset_node", pads: [["U2", "7"], ["J2", "10"]]}, + {name: "reg.pwr_out", pads: [["U2", "2"], ["C2", "1"], ["U3", "1"], ["U3", "24"], ["U3", "36"], ["U3", "48"], ["U3", "9"], ["C3", "1"], ["C4", "1"], ["C5", "1"], ["C6", "1"], ["C7", "1"], ["C8", "1"], ["J2", "1"], ["R3", "1"]]}, + {name: "mcu.gpio.cols_0", pads: [["U3", "16"], ["SW1", "1"], ["SW3", "1"], ["SW5", "1"]]}, + {name: "mcu.gpio.cols_1", pads: [["U3", "17"], ["SW2", "1"], ["SW4", "1"], ["SW6", "1"]]}, + {name: "mcu.gpio.rows_0", pads: [["U3", "18"], ["D2", "1"], ["D4", "1"]]}, + {name: "mcu.gpio.rows_1", pads: [["U3", "19"], ["D6", "1"], ["D8", "1"]]}, + {name: "mcu.gpio.rows_2", pads: [["U3", "20"], ["D10", "1"], ["D12", "1"]]}, + {name: "mcu.xtal_node.xi", pads: [["U3", "5"], ["X1", "1"], ["C9", "1"]]}, + {name: "mcu.xtal_node.xo", pads: [["U3", "6"], ["X1", "3"], ["C10", "1"]]}, + {name: "mcu.swd_node.swdio", pads: [["U3", "34"], ["J2", "2"]]}, + {name: "mcu.swd_node.swclk", pads: [["U3", "37"], ["J2", "4"]]}, + {name: "mcu.reset_node", pads: [["U3", "7"], ["J2", "10"]]}, {name: "mcu.swd.tdi", pads: [["J2", "8"]]}, {name: "mcu.swd.swo", pads: [["J2", "6"]]}, - {name: "led.signal", pads: [["U2", "10"], ["D1", "2"]]}, + {name: "led.signal", pads: [["U3", "10"], ["D1", "2"]]}, {name: "led.package.k", pads: [["D1", "1"], ["R4", "1"]]}, - {name: "sw.npx_din", pads: [["D3", "3"], ["U3", "4"]]}, + {name: "sw.npx_din", pads: [["D3", "3"], ["U4", "4"]]}, {name: "sw.npx_dout", pads: [["D13", "1"]]}, {name: "sw.sw[0,0].npx_dout", pads: [["D3", "1"], ["D5", "3"]]}, {name: "sw.sw[0,0].sw.com", pads: [["SW1", "2"], ["D2", "2"]]}, @@ -147,11 +152,11 @@ board.setNetlist([ {name: "sw.sw[0,2].npx_dout", pads: [["D11", "1"], ["D13", "3"]]}, {name: "sw.sw[0,2].sw.com", pads: [["SW5", "2"], ["D10", "2"]]}, {name: "sw.sw[1,2].sw.com", pads: [["SW6", "2"], ["D12", "2"]]}, - {name: "npx_shift.input", pads: [["U2", "11"], ["U3", "2"]]} + {name: "npx_shift.input", pads: [["U3", "11"], ["U4", "2"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(2.5795275590551188, 2.1181102362204722); +const limit1 = pt(2.507086614173229, 2.1181102362204722); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/TestBlinkyRegulated/TestBlinkyRegulated.net.ref b/examples/TestBlinkyRegulated/TestBlinkyRegulated.net.ref index 8e8f86a3b..baf7cdb9c 100644 --- a/examples/TestBlinkyRegulated/TestBlinkyRegulated.net.ref +++ b/examples/TestBlinkyRegulated/TestBlinkyRegulated.net.ref @@ -8,10 +8,22 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) +(comp (ref "U1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "U1")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "R1") (value "usb.cc_pull.cc1") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -36,14 +48,14 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 5.1kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/usb/cc_pull/") (tstamps "/02aa014b/0b4c02e3/")) (tstamps "022400f9")) -(comp (ref "U1") +(comp (ref "U2") (value "reg.ic") (footprint "Package_TO_SOT_SMD:SOT-223-3_TabPin2") (property (name "Sheetname") (value "reg")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ams1117")) (property (name "edg_path") (value "reg.ic")) (property (name "edg_short_path") (value "reg.ic")) - (property (name "edg_refdes") (value "U1")) + (property (name "edg_refdes") (value "U2")) (property (name "edg_part") (value "AMS1117-3.3 (Advanced Monolithic Systems)")) (property (name "edg_value") (value "AMS1117-3.3")) (sheetpath (names "/reg/") (tstamps "/028a013f/")) @@ -72,14 +84,14 @@ (property (name "edg_value") (value "10V 22uF X5R ±10% 1206 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/reg/") (tstamps "/028a013f/")) (tstamps "0be902ec")) -(comp (ref "U2") +(comp (ref "U3") (value "mcu.ic") (footprint "Package_QFP:LQFP-48_7x7mm_P0.5mm") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Stm32f103.Stm32f103")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "U2")) + (property (name "edg_refdes") (value "U3")) (property (name "edg_part") (value "STM32F103xxT6 (STMicroelectronics)")) (property (name "edg_value") (value "STM32F103xxT6")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -390,7 +402,7 @@ (node (ref J1) (pin A9)) (node (ref J1) (pin B4)) (node (ref J1) (pin B9)) - (node (ref U1) (pin 3)) + (node (ref U2) (pin 3)) (node (ref C1) (pin 1))) (net (code 2) (name "usb.gnd") (node (ref J1) (pin A1)) @@ -398,16 +410,17 @@ (node (ref J1) (pin B1)) (node (ref J1) (pin B12)) (node (ref J1) (pin S1)) + (node (ref U1) (pin 3)) (node (ref R1) (pin 1)) (node (ref R2) (pin 1)) - (node (ref U1) (pin 1)) + (node (ref U2) (pin 1)) (node (ref C1) (pin 2)) (node (ref C2) (pin 2)) - (node (ref U2) (pin 23)) - (node (ref U2) (pin 35)) - (node (ref U2) (pin 44)) - (node (ref U2) (pin 47)) - (node (ref U2) (pin 8)) + (node (ref U3) (pin 23)) + (node (ref U3) (pin 35)) + (node (ref U3) (pin 44)) + (node (ref U3) (pin 47)) + (node (ref U3) (pin 8)) (node (ref C3) (pin 2)) (node (ref C4) (pin 2)) (node (ref C5) (pin 2)) @@ -425,12 +438,14 @@ (net (code 3) (name "usb.usb.dp") (node (ref J1) (pin A6)) (node (ref J1) (pin B6)) - (node (ref U2) (pin 33)) + (node (ref U1) (pin 2)) + (node (ref U3) (pin 33)) (node (ref R3) (pin 2))) (net (code 4) (name "usb.usb.dm") (node (ref J1) (pin A7)) (node (ref J1) (pin B7)) - (node (ref U2) (pin 32))) + (node (ref U1) (pin 1)) + (node (ref U3) (pin 32))) (net (code 5) (name "usb.conn.cc.cc1") (node (ref J1) (pin A5)) (node (ref R1) (pin 2))) @@ -438,13 +453,13 @@ (node (ref J1) (pin B5)) (node (ref R2) (pin 2))) (net (code 7) (name "reg.pwr_out") - (node (ref U1) (pin 2)) + (node (ref U2) (pin 2)) (node (ref C2) (pin 1)) - (node (ref U2) (pin 1)) - (node (ref U2) (pin 24)) - (node (ref U2) (pin 36)) - (node (ref U2) (pin 48)) - (node (ref U2) (pin 9)) + (node (ref U3) (pin 1)) + (node (ref U3) (pin 24)) + (node (ref U3) (pin 36)) + (node (ref U3) (pin 48)) + (node (ref U3) (pin 9)) (node (ref C3) (pin 1)) (node (ref C4) (pin 1)) (node (ref C5) (pin 1)) @@ -454,50 +469,50 @@ (node (ref J2) (pin 1)) (node (ref R3) (pin 1))) (net (code 8) (name "mcu.gpio.cols_0") - (node (ref U2) (pin 11)) + (node (ref U3) (pin 11)) (node (ref SW1) (pin 1)) (node (ref SW3) (pin 1)) (node (ref SW5) (pin 1))) (net (code 9) (name "mcu.gpio.cols_1") - (node (ref U2) (pin 12)) + (node (ref U3) (pin 12)) (node (ref SW2) (pin 1)) (node (ref SW4) (pin 1)) (node (ref SW6) (pin 1))) (net (code 10) (name "mcu.gpio.rows_0") - (node (ref U2) (pin 13)) + (node (ref U3) (pin 13)) (node (ref D2) (pin 1)) (node (ref D3) (pin 1))) (net (code 11) (name "mcu.gpio.rows_1") - (node (ref U2) (pin 14)) + (node (ref U3) (pin 14)) (node (ref D4) (pin 1)) (node (ref D5) (pin 1))) (net (code 12) (name "mcu.gpio.rows_2") - (node (ref U2) (pin 15)) + (node (ref U3) (pin 15)) (node (ref D6) (pin 1)) (node (ref D7) (pin 1))) (net (code 13) (name "mcu.xtal_node.xi") - (node (ref U2) (pin 5)) + (node (ref U3) (pin 5)) (node (ref X1) (pin 1)) (node (ref C9) (pin 1))) (net (code 14) (name "mcu.xtal_node.xo") - (node (ref U2) (pin 6)) + (node (ref U3) (pin 6)) (node (ref X1) (pin 3)) (node (ref C10) (pin 1))) (net (code 15) (name "mcu.swd_node.swdio") - (node (ref U2) (pin 34)) + (node (ref U3) (pin 34)) (node (ref J2) (pin 2))) (net (code 16) (name "mcu.swd_node.swclk") - (node (ref U2) (pin 37)) + (node (ref U3) (pin 37)) (node (ref J2) (pin 4))) (net (code 17) (name "mcu.reset_node") - (node (ref U2) (pin 7)) + (node (ref U3) (pin 7)) (node (ref J2) (pin 10))) (net (code 18) (name "mcu.swd.tdi") (node (ref J2) (pin 8))) (net (code 19) (name "mcu.swd.swo") (node (ref J2) (pin 6))) (net (code 20) (name "led.signal") - (node (ref U2) (pin 10)) + (node (ref U3) (pin 10)) (node (ref D1) (pin 2))) (net (code 21) (name "led.package.k") (node (ref D1) (pin 1)) diff --git a/examples/TestBlinkyRegulated/TestBlinkyRegulated.svgpcb.js b/examples/TestBlinkyRegulated/TestBlinkyRegulated.svgpcb.js index fa527b5db..ef2c392fc 100644 --- a/examples/TestBlinkyRegulated/TestBlinkyRegulated.svgpcb.js +++ b/examples/TestBlinkyRegulated/TestBlinkyRegulated.svgpcb.js @@ -6,35 +6,40 @@ const J1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { translate: pt(1.328, 0.958), rotate: 0, id: 'J1' }) +// usb.esd +const U1 = board.add(SOT_23, { + translate: pt(1.652, 0.861), rotate: 0, + id: 'U1' +}) // usb.cc_pull.cc1 const R1 = board.add(R_0603_1608Metric, { - translate: pt(1.176, 1.213), rotate: 0, + translate: pt(1.635, 0.996), rotate: 0, id: 'R1' }) // usb.cc_pull.cc2 const R2 = board.add(R_0603_1608Metric, { - translate: pt(1.332, 1.213), rotate: 0, + translate: pt(1.635, 1.093), rotate: 0, id: 'R2' }) // reg.ic -const U1 = board.add(SOT_223_3_TabPin2, { - translate: pt(1.828, 0.935), rotate: 0, - id: 'U1' +const U2 = board.add(SOT_223_3_TabPin2, { + translate: pt(2.216, 0.142), rotate: 0, + id: 'U2' }) // reg.in_cap.cap const C1 = board.add(C_0603_1608Metric, { - translate: pt(1.934, 1.145), rotate: 0, + translate: pt(2.321, 0.352), rotate: 0, id: 'C1' }) // reg.out_cap.cap const C2 = board.add(C_1206_3216Metric, { - translate: pt(1.746, 1.162), rotate: 0, + translate: pt(2.133, 0.368), rotate: 0, id: 'C2' }) // mcu.ic -const U2 = board.add(LQFP_48_7x7mm_P0_5mm, { +const U3 = board.add(LQFP_48_7x7mm_P0_5mm, { translate: pt(1.321, 0.203), rotate: 0, - id: 'U2' + id: 'U3' }) // mcu.pwr_cap[0].cap const C3 = board.add(C_0805_2012Metric, { @@ -93,36 +98,36 @@ const R3 = board.add(R_0603_1608Metric, { }) // led.package const D1 = board.add(LED_0603_1608Metric, { - translate: pt(2.178, 0.823), rotate: 0, + translate: pt(1.904, 0.823), rotate: 0, id: 'D1' }) // led.res const R4 = board.add(R_0603_1608Metric, { - translate: pt(2.178, 0.920), rotate: 0, + translate: pt(1.904, 0.920), rotate: 0, id: 'R4' }) board.setNetlist([ - {name: "usb.pwr", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["U1", "3"], ["C1", "1"]]}, - {name: "usb.gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["R1", "1"], ["R2", "1"], ["U1", "1"], ["C1", "2"], ["C2", "2"], ["U2", "23"], ["U2", "35"], ["U2", "44"], ["U2", "47"], ["U2", "8"], ["C3", "2"], ["C4", "2"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["C8", "2"], ["X1", "2"], ["X1", "4"], ["C9", "2"], ["C10", "2"], ["J2", "3"], ["J2", "5"], ["J2", "9"], ["R4", "2"]]}, - {name: "usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["U2", "33"], ["R3", "2"]]}, - {name: "usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["U2", "32"]]}, + {name: "usb.pwr", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["U2", "3"], ["C1", "1"]]}, + {name: "usb.gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["U1", "3"], ["R1", "1"], ["R2", "1"], ["U2", "1"], ["C1", "2"], ["C2", "2"], ["U3", "23"], ["U3", "35"], ["U3", "44"], ["U3", "47"], ["U3", "8"], ["C3", "2"], ["C4", "2"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["C8", "2"], ["X1", "2"], ["X1", "4"], ["C9", "2"], ["C10", "2"], ["J2", "3"], ["J2", "5"], ["J2", "9"], ["R4", "2"]]}, + {name: "usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["U1", "2"], ["U3", "33"], ["R3", "2"]]}, + {name: "usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["U1", "1"], ["U3", "32"]]}, {name: "usb.conn.cc.cc1", pads: [["J1", "A5"], ["R1", "2"]]}, {name: "usb.conn.cc.cc2", pads: [["J1", "B5"], ["R2", "2"]]}, - {name: "reg.pwr_out", pads: [["U1", "2"], ["C2", "1"], ["U2", "1"], ["U2", "24"], ["U2", "36"], ["U2", "48"], ["U2", "9"], ["C3", "1"], ["C4", "1"], ["C5", "1"], ["C6", "1"], ["C7", "1"], ["C8", "1"], ["J2", "1"], ["R3", "1"]]}, - {name: "mcu.gpio.cols_0", pads: [["U2", "11"], ["SW1", "1"], ["SW3", "1"], ["SW5", "1"]]}, - {name: "mcu.gpio.cols_1", pads: [["U2", "12"], ["SW2", "1"], ["SW4", "1"], ["SW6", "1"]]}, - {name: "mcu.gpio.rows_0", pads: [["U2", "13"], ["D2", "1"], ["D3", "1"]]}, - {name: "mcu.gpio.rows_1", pads: [["U2", "14"], ["D4", "1"], ["D5", "1"]]}, - {name: "mcu.gpio.rows_2", pads: [["U2", "15"], ["D6", "1"], ["D7", "1"]]}, - {name: "mcu.xtal_node.xi", pads: [["U2", "5"], ["X1", "1"], ["C9", "1"]]}, - {name: "mcu.xtal_node.xo", pads: [["U2", "6"], ["X1", "3"], ["C10", "1"]]}, - {name: "mcu.swd_node.swdio", pads: [["U2", "34"], ["J2", "2"]]}, - {name: "mcu.swd_node.swclk", pads: [["U2", "37"], ["J2", "4"]]}, - {name: "mcu.reset_node", pads: [["U2", "7"], ["J2", "10"]]}, + {name: "reg.pwr_out", pads: [["U2", "2"], ["C2", "1"], ["U3", "1"], ["U3", "24"], ["U3", "36"], ["U3", "48"], ["U3", "9"], ["C3", "1"], ["C4", "1"], ["C5", "1"], ["C6", "1"], ["C7", "1"], ["C8", "1"], ["J2", "1"], ["R3", "1"]]}, + {name: "mcu.gpio.cols_0", pads: [["U3", "11"], ["SW1", "1"], ["SW3", "1"], ["SW5", "1"]]}, + {name: "mcu.gpio.cols_1", pads: [["U3", "12"], ["SW2", "1"], ["SW4", "1"], ["SW6", "1"]]}, + {name: "mcu.gpio.rows_0", pads: [["U3", "13"], ["D2", "1"], ["D3", "1"]]}, + {name: "mcu.gpio.rows_1", pads: [["U3", "14"], ["D4", "1"], ["D5", "1"]]}, + {name: "mcu.gpio.rows_2", pads: [["U3", "15"], ["D6", "1"], ["D7", "1"]]}, + {name: "mcu.xtal_node.xi", pads: [["U3", "5"], ["X1", "1"], ["C9", "1"]]}, + {name: "mcu.xtal_node.xo", pads: [["U3", "6"], ["X1", "3"], ["C10", "1"]]}, + {name: "mcu.swd_node.swdio", pads: [["U3", "34"], ["J2", "2"]]}, + {name: "mcu.swd_node.swclk", pads: [["U3", "37"], ["J2", "4"]]}, + {name: "mcu.reset_node", pads: [["U3", "7"], ["J2", "10"]]}, {name: "mcu.swd.tdi", pads: [["J2", "8"]]}, {name: "mcu.swd.swo", pads: [["J2", "6"]]}, - {name: "led.signal", pads: [["U2", "10"], ["D1", "2"]]}, + {name: "led.signal", pads: [["U3", "10"], ["D1", "2"]]}, {name: "led.package.k", pads: [["D1", "1"], ["R4", "1"]]}, {name: "sw.sw[0,0].sw.com", pads: [["SW1", "2"], ["D2", "2"]]}, {name: "sw.sw[1,0].sw.com", pads: [["SW2", "2"], ["D3", "2"]]}, @@ -133,7 +138,7 @@ board.setNetlist([ ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(2.3545275590551187, 2.1181102362204722); +const limit1 = pt(2.507086614173229, 2.1181102362204722); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/TestBlinkyRgb/TestBlinkyRgb.net.ref b/examples/TestBlinkyRgb/TestBlinkyRgb.net.ref index 5627e034e..8f919646b 100644 --- a/examples/TestBlinkyRgb/TestBlinkyRgb.net.ref +++ b/examples/TestBlinkyRgb/TestBlinkyRgb.net.ref @@ -8,10 +8,22 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) +(comp (ref "U1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "U1")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "R1") (value "usb.cc_pull.cc1") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -36,14 +48,14 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 5.1kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/usb/cc_pull/") (tstamps "/02aa014b/0b4c02e3/")) (tstamps "022400f9")) -(comp (ref "U1") +(comp (ref "U2") (value "reg.ic") (footprint "Package_TO_SOT_SMD:SOT-223-3_TabPin2") (property (name "Sheetname") (value "reg")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ams1117")) (property (name "edg_path") (value "reg.ic")) (property (name "edg_short_path") (value "reg.ic")) - (property (name "edg_refdes") (value "U1")) + (property (name "edg_refdes") (value "U2")) (property (name "edg_part") (value "AMS1117-3.3 (Advanced Monolithic Systems)")) (property (name "edg_value") (value "AMS1117-3.3")) (sheetpath (names "/reg/") (tstamps "/028a013f/")) @@ -72,14 +84,14 @@ (property (name "edg_value") (value "10V 22uF X5R ±10% 1206 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/reg/") (tstamps "/028a013f/")) (tstamps "0be902ec")) -(comp (ref "U2") +(comp (ref "U3") (value "mcu.ic") (footprint "Package_QFP:LQFP-48_7x7mm_P0.5mm") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Stm32f103.Stm32f103")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "U2")) + (property (name "edg_refdes") (value "U3")) (property (name "edg_part") (value "STM32F103xxT6 (STMicroelectronics)")) (property (name "edg_value") (value "STM32F103xxT6")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -528,14 +540,14 @@ (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/sw/sw[1,2]/npx/") (tstamps "/015f00eb/09c60232/02a50157/")) (tstamps "025e0135")) -(comp (ref "U3") +(comp (ref "U4") (value "npx_shift.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "npx_shift")) (property (name "Sheetfile") (value "edg.parts.logic.Logic_74Ahct.L74Ahct1g125")) (property (name "edg_path") (value "npx_shift.ic")) (property (name "edg_short_path") (value "npx_shift.ic")) - (property (name "edg_refdes") (value "U3")) + (property (name "edg_refdes") (value "U4")) (property (name "edg_part") (value "74AHCT1G125W5-7 (Diodes Incorporated)")) (property (name "edg_value") (value "74AHCT1G125W5-7")) (sheetpath (names "/npx_shift/") (tstamps "/134303d4/")) @@ -558,7 +570,7 @@ (node (ref J1) (pin A9)) (node (ref J1) (pin B4)) (node (ref J1) (pin B9)) - (node (ref U1) (pin 3)) + (node (ref U2) (pin 3)) (node (ref C1) (pin 1)) (node (ref D3) (pin 4)) (node (ref C11) (pin 1)) @@ -572,7 +584,7 @@ (node (ref C15) (pin 1)) (node (ref D13) (pin 4)) (node (ref C16) (pin 1)) - (node (ref U3) (pin 5)) + (node (ref U4) (pin 5)) (node (ref C17) (pin 1))) (net (code 2) (name "usb.gnd") (node (ref J1) (pin A1)) @@ -580,16 +592,17 @@ (node (ref J1) (pin B1)) (node (ref J1) (pin B12)) (node (ref J1) (pin S1)) + (node (ref U1) (pin 3)) (node (ref R1) (pin 1)) (node (ref R2) (pin 1)) - (node (ref U1) (pin 1)) + (node (ref U2) (pin 1)) (node (ref C1) (pin 2)) (node (ref C2) (pin 2)) - (node (ref U2) (pin 23)) - (node (ref U2) (pin 35)) - (node (ref U2) (pin 44)) - (node (ref U2) (pin 47)) - (node (ref U2) (pin 8)) + (node (ref U3) (pin 23)) + (node (ref U3) (pin 35)) + (node (ref U3) (pin 44)) + (node (ref U3) (pin 47)) + (node (ref U3) (pin 8)) (node (ref C3) (pin 2)) (node (ref C4) (pin 2)) (node (ref C5) (pin 2)) @@ -616,18 +629,20 @@ (node (ref C15) (pin 2)) (node (ref D13) (pin 2)) (node (ref C16) (pin 2)) - (node (ref U3) (pin 1)) - (node (ref U3) (pin 3)) + (node (ref U4) (pin 1)) + (node (ref U4) (pin 3)) (node (ref C17) (pin 2))) (net (code 3) (name "usb.usb.dp") (node (ref J1) (pin A6)) (node (ref J1) (pin B6)) - (node (ref U2) (pin 33)) + (node (ref U1) (pin 2)) + (node (ref U3) (pin 33)) (node (ref R3) (pin 2))) (net (code 4) (name "usb.usb.dm") (node (ref J1) (pin A7)) (node (ref J1) (pin B7)) - (node (ref U2) (pin 32))) + (node (ref U1) (pin 1)) + (node (ref U3) (pin 32))) (net (code 5) (name "usb.conn.cc.cc1") (node (ref J1) (pin A5)) (node (ref R1) (pin 2))) @@ -635,13 +650,13 @@ (node (ref J1) (pin B5)) (node (ref R2) (pin 2))) (net (code 7) (name "reg.pwr_out") - (node (ref U1) (pin 2)) + (node (ref U2) (pin 2)) (node (ref C2) (pin 1)) - (node (ref U2) (pin 1)) - (node (ref U2) (pin 24)) - (node (ref U2) (pin 36)) - (node (ref U2) (pin 48)) - (node (ref U2) (pin 9)) + (node (ref U3) (pin 1)) + (node (ref U3) (pin 24)) + (node (ref U3) (pin 36)) + (node (ref U3) (pin 48)) + (node (ref U3) (pin 9)) (node (ref C3) (pin 1)) (node (ref C4) (pin 1)) (node (ref C5) (pin 1)) @@ -651,57 +666,57 @@ (node (ref J2) (pin 1)) (node (ref R3) (pin 1))) (net (code 8) (name "mcu.gpio.cols_0") - (node (ref U2) (pin 12)) + (node (ref U3) (pin 12)) (node (ref SW1) (pin 1)) (node (ref SW3) (pin 1)) (node (ref SW5) (pin 1))) (net (code 9) (name "mcu.gpio.cols_1") - (node (ref U2) (pin 13)) + (node (ref U3) (pin 13)) (node (ref SW2) (pin 1)) (node (ref SW4) (pin 1)) (node (ref SW6) (pin 1))) (net (code 10) (name "mcu.gpio.rows_0") - (node (ref U2) (pin 14)) + (node (ref U3) (pin 14)) (node (ref D2) (pin 1)) (node (ref D4) (pin 1))) (net (code 11) (name "mcu.gpio.rows_1") - (node (ref U2) (pin 15)) + (node (ref U3) (pin 15)) (node (ref D6) (pin 1)) (node (ref D8) (pin 1))) (net (code 12) (name "mcu.gpio.rows_2") - (node (ref U2) (pin 16)) + (node (ref U3) (pin 16)) (node (ref D10) (pin 1)) (node (ref D12) (pin 1))) (net (code 13) (name "mcu.xtal_node.xi") - (node (ref U2) (pin 5)) + (node (ref U3) (pin 5)) (node (ref X1) (pin 1)) (node (ref C9) (pin 1))) (net (code 14) (name "mcu.xtal_node.xo") - (node (ref U2) (pin 6)) + (node (ref U3) (pin 6)) (node (ref X1) (pin 3)) (node (ref C10) (pin 1))) (net (code 15) (name "mcu.swd_node.swdio") - (node (ref U2) (pin 34)) + (node (ref U3) (pin 34)) (node (ref J2) (pin 2))) (net (code 16) (name "mcu.swd_node.swclk") - (node (ref U2) (pin 37)) + (node (ref U3) (pin 37)) (node (ref J2) (pin 4))) (net (code 17) (name "mcu.reset_node") - (node (ref U2) (pin 7)) + (node (ref U3) (pin 7)) (node (ref J2) (pin 10))) (net (code 18) (name "mcu.swd.tdi") (node (ref J2) (pin 8))) (net (code 19) (name "mcu.swd.swo") (node (ref J2) (pin 6))) (net (code 20) (name "led.signal") - (node (ref U2) (pin 10)) + (node (ref U3) (pin 10)) (node (ref D1) (pin 2))) (net (code 21) (name "led.package.k") (node (ref D1) (pin 1)) (node (ref R4) (pin 1))) (net (code 22) (name "sw.npx_din") (node (ref D3) (pin 3)) - (node (ref U3) (pin 4))) + (node (ref U4) (pin 4))) (net (code 23) (name "sw.npx_dout") (node (ref D13) (pin 1))) (net (code 24) (name "sw.sw[0,0].npx_dout") @@ -738,6 +753,6 @@ (node (ref SW6) (pin 2)) (node (ref D12) (pin 2))) (net (code 35) (name "npx_shift.input") - (node (ref U2) (pin 11)) - (node (ref U3) (pin 2)))) + (node (ref U3) (pin 11)) + (node (ref U4) (pin 2)))) ) \ No newline at end of file diff --git a/examples/TestBlinkyRgb/TestBlinkyRgb.svgpcb.js b/examples/TestBlinkyRgb/TestBlinkyRgb.svgpcb.js index c39727ed8..7acd70e51 100644 --- a/examples/TestBlinkyRgb/TestBlinkyRgb.svgpcb.js +++ b/examples/TestBlinkyRgb/TestBlinkyRgb.svgpcb.js @@ -3,38 +3,43 @@ const board = new PCB(); const sw = SwitchDiodeMatrixNeopixels_2_3_sw(pt(0.039, 0.039)) // usb.conn const J1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(2.252, 0.165), rotate: 0, + translate: pt(1.328, 0.958), rotate: 0, id: 'J1' }) +// usb.esd +const U1 = board.add(SOT_23, { + translate: pt(1.652, 0.861), rotate: 0, + id: 'U1' +}) // usb.cc_pull.cc1 const R1 = board.add(R_0603_1608Metric, { - translate: pt(2.101, 0.420), rotate: 0, + translate: pt(1.635, 0.996), rotate: 0, id: 'R1' }) // usb.cc_pull.cc2 const R2 = board.add(R_0603_1608Metric, { - translate: pt(2.257, 0.420), rotate: 0, + translate: pt(1.635, 1.093), rotate: 0, id: 'R2' }) // reg.ic -const U1 = board.add(SOT_223_3_TabPin2, { - translate: pt(1.291, 0.935), rotate: 0, - id: 'U1' +const U2 = board.add(SOT_223_3_TabPin2, { + translate: pt(2.216, 0.142), rotate: 0, + id: 'U2' }) // reg.in_cap.cap const C1 = board.add(C_0603_1608Metric, { - translate: pt(1.397, 1.145), rotate: 0, + translate: pt(2.321, 0.352), rotate: 0, id: 'C1' }) // reg.out_cap.cap const C2 = board.add(C_1206_3216Metric, { - translate: pt(1.209, 1.162), rotate: 0, + translate: pt(2.133, 0.368), rotate: 0, id: 'C2' }) // mcu.ic -const U2 = board.add(LQFP_48_7x7mm_P0_5mm, { +const U3 = board.add(LQFP_48_7x7mm_P0_5mm, { translate: pt(1.321, 0.203), rotate: 0, - id: 'U2' + id: 'U3' }) // mcu.pwr_cap[0].cap const C3 = board.add(C_0805_2012Metric, { @@ -93,48 +98,48 @@ const R3 = board.add(R_0603_1608Metric, { }) // led.package const D1 = board.add(LED_0603_1608Metric, { - translate: pt(1.921, 0.823), rotate: 0, + translate: pt(2.184, 0.823), rotate: 0, id: 'D1' }) // led.res const R4 = board.add(R_0603_1608Metric, { - translate: pt(1.920, 0.920), rotate: 0, + translate: pt(2.183, 0.920), rotate: 0, id: 'R4' }) // npx_shift.ic -const U3 = board.add(SOT_23_5, { - translate: pt(1.663, 0.861), rotate: 0, - id: 'U3' +const U4 = board.add(SOT_23_5, { + translate: pt(1.926, 0.861), rotate: 0, + id: 'U4' }) // npx_shift.vdd_cap.cap const C17 = board.add(C_0603_1608Metric, { - translate: pt(1.641, 0.996), rotate: 0, + translate: pt(1.904, 0.996), rotate: 0, id: 'C17' }) board.setNetlist([ - {name: "usb.pwr", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["U1", "3"], ["C1", "1"], ["D3", "4"], ["C11", "1"], ["D5", "4"], ["C12", "1"], ["D7", "4"], ["C13", "1"], ["D9", "4"], ["C14", "1"], ["D11", "4"], ["C15", "1"], ["D13", "4"], ["C16", "1"], ["U3", "5"], ["C17", "1"]]}, - {name: "usb.gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["R1", "1"], ["R2", "1"], ["U1", "1"], ["C1", "2"], ["C2", "2"], ["U2", "23"], ["U2", "35"], ["U2", "44"], ["U2", "47"], ["U2", "8"], ["C3", "2"], ["C4", "2"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["C8", "2"], ["X1", "2"], ["X1", "4"], ["C9", "2"], ["C10", "2"], ["J2", "3"], ["J2", "5"], ["J2", "9"], ["R4", "2"], ["D3", "2"], ["C11", "2"], ["D5", "2"], ["C12", "2"], ["D7", "2"], ["C13", "2"], ["D9", "2"], ["C14", "2"], ["D11", "2"], ["C15", "2"], ["D13", "2"], ["C16", "2"], ["U3", "1"], ["U3", "3"], ["C17", "2"]]}, - {name: "usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["U2", "33"], ["R3", "2"]]}, - {name: "usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["U2", "32"]]}, + {name: "usb.pwr", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["U2", "3"], ["C1", "1"], ["D3", "4"], ["C11", "1"], ["D5", "4"], ["C12", "1"], ["D7", "4"], ["C13", "1"], ["D9", "4"], ["C14", "1"], ["D11", "4"], ["C15", "1"], ["D13", "4"], ["C16", "1"], ["U4", "5"], ["C17", "1"]]}, + {name: "usb.gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["U1", "3"], ["R1", "1"], ["R2", "1"], ["U2", "1"], ["C1", "2"], ["C2", "2"], ["U3", "23"], ["U3", "35"], ["U3", "44"], ["U3", "47"], ["U3", "8"], ["C3", "2"], ["C4", "2"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["C8", "2"], ["X1", "2"], ["X1", "4"], ["C9", "2"], ["C10", "2"], ["J2", "3"], ["J2", "5"], ["J2", "9"], ["R4", "2"], ["D3", "2"], ["C11", "2"], ["D5", "2"], ["C12", "2"], ["D7", "2"], ["C13", "2"], ["D9", "2"], ["C14", "2"], ["D11", "2"], ["C15", "2"], ["D13", "2"], ["C16", "2"], ["U4", "1"], ["U4", "3"], ["C17", "2"]]}, + {name: "usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["U1", "2"], ["U3", "33"], ["R3", "2"]]}, + {name: "usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["U1", "1"], ["U3", "32"]]}, {name: "usb.conn.cc.cc1", pads: [["J1", "A5"], ["R1", "2"]]}, {name: "usb.conn.cc.cc2", pads: [["J1", "B5"], ["R2", "2"]]}, - {name: "reg.pwr_out", pads: [["U1", "2"], ["C2", "1"], ["U2", "1"], ["U2", "24"], ["U2", "36"], ["U2", "48"], ["U2", "9"], ["C3", "1"], ["C4", "1"], ["C5", "1"], ["C6", "1"], ["C7", "1"], ["C8", "1"], ["J2", "1"], ["R3", "1"]]}, - {name: "mcu.gpio.cols_0", pads: [["U2", "12"], ["SW1", "1"], ["SW3", "1"], ["SW5", "1"]]}, - {name: "mcu.gpio.cols_1", pads: [["U2", "13"], ["SW2", "1"], ["SW4", "1"], ["SW6", "1"]]}, - {name: "mcu.gpio.rows_0", pads: [["U2", "14"], ["D2", "1"], ["D4", "1"]]}, - {name: "mcu.gpio.rows_1", pads: [["U2", "15"], ["D6", "1"], ["D8", "1"]]}, - {name: "mcu.gpio.rows_2", pads: [["U2", "16"], ["D10", "1"], ["D12", "1"]]}, - {name: "mcu.xtal_node.xi", pads: [["U2", "5"], ["X1", "1"], ["C9", "1"]]}, - {name: "mcu.xtal_node.xo", pads: [["U2", "6"], ["X1", "3"], ["C10", "1"]]}, - {name: "mcu.swd_node.swdio", pads: [["U2", "34"], ["J2", "2"]]}, - {name: "mcu.swd_node.swclk", pads: [["U2", "37"], ["J2", "4"]]}, - {name: "mcu.reset_node", pads: [["U2", "7"], ["J2", "10"]]}, + {name: "reg.pwr_out", pads: [["U2", "2"], ["C2", "1"], ["U3", "1"], ["U3", "24"], ["U3", "36"], ["U3", "48"], ["U3", "9"], ["C3", "1"], ["C4", "1"], ["C5", "1"], ["C6", "1"], ["C7", "1"], ["C8", "1"], ["J2", "1"], ["R3", "1"]]}, + {name: "mcu.gpio.cols_0", pads: [["U3", "12"], ["SW1", "1"], ["SW3", "1"], ["SW5", "1"]]}, + {name: "mcu.gpio.cols_1", pads: [["U3", "13"], ["SW2", "1"], ["SW4", "1"], ["SW6", "1"]]}, + {name: "mcu.gpio.rows_0", pads: [["U3", "14"], ["D2", "1"], ["D4", "1"]]}, + {name: "mcu.gpio.rows_1", pads: [["U3", "15"], ["D6", "1"], ["D8", "1"]]}, + {name: "mcu.gpio.rows_2", pads: [["U3", "16"], ["D10", "1"], ["D12", "1"]]}, + {name: "mcu.xtal_node.xi", pads: [["U3", "5"], ["X1", "1"], ["C9", "1"]]}, + {name: "mcu.xtal_node.xo", pads: [["U3", "6"], ["X1", "3"], ["C10", "1"]]}, + {name: "mcu.swd_node.swdio", pads: [["U3", "34"], ["J2", "2"]]}, + {name: "mcu.swd_node.swclk", pads: [["U3", "37"], ["J2", "4"]]}, + {name: "mcu.reset_node", pads: [["U3", "7"], ["J2", "10"]]}, {name: "mcu.swd.tdi", pads: [["J2", "8"]]}, {name: "mcu.swd.swo", pads: [["J2", "6"]]}, - {name: "led.signal", pads: [["U2", "10"], ["D1", "2"]]}, + {name: "led.signal", pads: [["U3", "10"], ["D1", "2"]]}, {name: "led.package.k", pads: [["D1", "1"], ["R4", "1"]]}, - {name: "sw.npx_din", pads: [["D3", "3"], ["U3", "4"]]}, + {name: "sw.npx_din", pads: [["D3", "3"], ["U4", "4"]]}, {name: "sw.npx_dout", pads: [["D13", "1"]]}, {name: "sw.sw[0,0].npx_dout", pads: [["D3", "1"], ["D5", "3"]]}, {name: "sw.sw[0,0].sw.com", pads: [["SW1", "2"], ["D2", "2"]]}, @@ -147,11 +152,11 @@ board.setNetlist([ {name: "sw.sw[0,2].npx_dout", pads: [["D11", "1"], ["D13", "3"]]}, {name: "sw.sw[0,2].sw.com", pads: [["SW5", "2"], ["D10", "2"]]}, {name: "sw.sw[1,2].sw.com", pads: [["SW6", "2"], ["D12", "2"]]}, - {name: "npx_shift.input", pads: [["U2", "11"], ["U3", "2"]]} + {name: "npx_shift.input", pads: [["U3", "11"], ["U4", "2"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(2.5795275590551188, 2.1181102362204722); +const limit1 = pt(2.507086614173229, 2.1181102362204722); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/TestBlinkyWithLibrary/TestBlinkyWithLibrary.net.ref b/examples/TestBlinkyWithLibrary/TestBlinkyWithLibrary.net.ref index 1e0360966..1f185c708 100644 --- a/examples/TestBlinkyWithLibrary/TestBlinkyWithLibrary.net.ref +++ b/examples/TestBlinkyWithLibrary/TestBlinkyWithLibrary.net.ref @@ -8,8 +8,8 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) (comp (ref "R1") diff --git a/examples/TestBlinkyWithLibraryExport/TestBlinkyWithLibraryExport.net.ref b/examples/TestBlinkyWithLibraryExport/TestBlinkyWithLibraryExport.net.ref index 1ae691625..94f5a28c8 100644 --- a/examples/TestBlinkyWithLibraryExport/TestBlinkyWithLibraryExport.net.ref +++ b/examples/TestBlinkyWithLibraryExport/TestBlinkyWithLibraryExport.net.ref @@ -8,8 +8,8 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) (comp (ref "R1") diff --git a/examples/TestBlinkyWithModeledSchematicImport/TestBlinkyWithModeledSchematicImport.net.ref b/examples/TestBlinkyWithModeledSchematicImport/TestBlinkyWithModeledSchematicImport.net.ref index 2bdd9d690..6eb54153a 100644 --- a/examples/TestBlinkyWithModeledSchematicImport/TestBlinkyWithModeledSchematicImport.net.ref +++ b/examples/TestBlinkyWithModeledSchematicImport/TestBlinkyWithModeledSchematicImport.net.ref @@ -8,8 +8,8 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) (comp (ref "R1") diff --git a/examples/TestBlinkyWithSchematicImport/TestBlinkyWithSchematicImport.net.ref b/examples/TestBlinkyWithSchematicImport/TestBlinkyWithSchematicImport.net.ref index 1eb7db816..67cf9461e 100644 --- a/examples/TestBlinkyWithSchematicImport/TestBlinkyWithSchematicImport.net.ref +++ b/examples/TestBlinkyWithSchematicImport/TestBlinkyWithSchematicImport.net.ref @@ -8,8 +8,8 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) (comp (ref "R1") diff --git a/examples/TofArray/TofArray.net.ref b/examples/TofArray/TofArray.net.ref index 7b494f011..8dbf9f2a4 100644 --- a/examples/TofArray/TofArray.net.ref +++ b/examples/TofArray/TofArray.net.ref @@ -44,10 +44,22 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) +(comp (ref "U1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "U1")) + (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) + (property (name "edg_value") (value "PESD5V0X1BT")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "R1") (value "usb.cc_pull.cc1") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -108,14 +120,14 @@ (property (name "edg_value") (value "gnd")) (sheetpath (names "/") (tstamps "/")) (tstamps "08df027d")) -(comp (ref "U1") +(comp (ref "U2") (value "reg_3v3.ic") (footprint "Package_TO_SOT_SMD:SOT-223-3_TabPin2") (property (name "Sheetname") (value "reg_3v3")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ldl1117")) (property (name "edg_path") (value "reg_3v3.ic")) (property (name "edg_short_path") (value "reg_3v3.ic")) - (property (name "edg_refdes") (value "U1")) + (property (name "edg_refdes") (value "U2")) (property (name "edg_part") (value "LDL1117S33R (STMicroelectronics)")) (property (name "edg_value") (value "LDL1117S33R")) (sheetpath (names "/reg_3v3/") (tstamps "/0aba027a/")) @@ -168,14 +180,14 @@ (property (name "edg_value") (value "5μA@1V 90Ω Single 3.53V~3.67V 200mW 3.6V SOD-323 Zener Diodes ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "0eb80301")) -(comp (ref "U2") +(comp (ref "U3") (value "mcu.ic") (footprint "Package_QFP:LQFP-48_7x7mm_P0.5mm") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Stm32f103.Stm32f103")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "U2")) + (property (name "edg_refdes") (value "U3")) (property (name "edg_part") (value "STM32F103xxT6 (STMicroelectronics)")) (property (name "edg_value") (value "STM32F103xxT6")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -384,14 +396,14 @@ (property (name "edg_value") (value "Red 615~630nm 1.9~2.2V 0603 Light Emitting Diodes (LED) RoHS")) (sheetpath (names "/leds/") (tstamps "/041e01a9/")) (tstamps "07ed0222")) -(comp (ref "U3") +(comp (ref "U4") (value "tof.elt[0].ic") (footprint "OptoDevice:ST_VL53L0X") (property (name "Sheetname") (value "elt[0]")) (property (name "Sheetfile") (value "edg.parts.sensor.Distance_Vl53l0x.Vl53l0x")) (property (name "edg_path") (value "tof.elt[0].ic")) (property (name "edg_short_path") (value "tof.elt[0].ic")) - (property (name "edg_refdes") (value "U3")) + (property (name "edg_refdes") (value "U4")) (property (name "edg_part") (value "VL53L0X (STMicroelectronics)")) (property (name "edg_value") (value "VL53L0X")) (sheetpath (names "/tof/elt[0]/") (tstamps "/02a3014a/081e022e/")) @@ -420,14 +432,14 @@ (property (name "edg_value") (value "25V 4.7uF X5R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/tof/elt[0]/") (tstamps "/02a3014a/081e022e/")) (tstamps "15aa03bb")) -(comp (ref "U4") +(comp (ref "U5") (value "tof.elt[1].ic") (footprint "OptoDevice:ST_VL53L0X") (property (name "Sheetname") (value "elt[1]")) (property (name "Sheetfile") (value "edg.parts.sensor.Distance_Vl53l0x.Vl53l0x")) (property (name "edg_path") (value "tof.elt[1].ic")) (property (name "edg_short_path") (value "tof.elt[1].ic")) - (property (name "edg_refdes") (value "U4")) + (property (name "edg_refdes") (value "U5")) (property (name "edg_part") (value "VL53L0X (STMicroelectronics)")) (property (name "edg_value") (value "VL53L0X")) (sheetpath (names "/tof/elt[1]/") (tstamps "/02a3014a/0820022f/")) @@ -456,14 +468,14 @@ (property (name "edg_value") (value "25V 4.7uF X5R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/tof/elt[1]/") (tstamps "/02a3014a/0820022f/")) (tstamps "15aa03bb")) -(comp (ref "U5") +(comp (ref "U6") (value "tof.elt[2].ic") (footprint "OptoDevice:ST_VL53L0X") (property (name "Sheetname") (value "elt[2]")) (property (name "Sheetfile") (value "edg.parts.sensor.Distance_Vl53l0x.Vl53l0x")) (property (name "edg_path") (value "tof.elt[2].ic")) (property (name "edg_short_path") (value "tof.elt[2].ic")) - (property (name "edg_refdes") (value "U5")) + (property (name "edg_refdes") (value "U6")) (property (name "edg_part") (value "VL53L0X (STMicroelectronics)")) (property (name "edg_value") (value "VL53L0X")) (sheetpath (names "/tof/elt[2]/") (tstamps "/02a3014a/08220230/")) @@ -492,14 +504,14 @@ (property (name "edg_value") (value "25V 4.7uF X5R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/tof/elt[2]/") (tstamps "/02a3014a/08220230/")) (tstamps "15aa03bb")) -(comp (ref "U6") +(comp (ref "U7") (value "tof.elt[3].ic") (footprint "OptoDevice:ST_VL53L0X") (property (name "Sheetname") (value "elt[3]")) (property (name "Sheetfile") (value "edg.parts.sensor.Distance_Vl53l0x.Vl53l0x")) (property (name "edg_path") (value "tof.elt[3].ic")) (property (name "edg_short_path") (value "tof.elt[3].ic")) - (property (name "edg_refdes") (value "U6")) + (property (name "edg_refdes") (value "U7")) (property (name "edg_part") (value "VL53L0X (STMicroelectronics)")) (property (name "edg_value") (value "VL53L0X")) (sheetpath (names "/tof/elt[3]/") (tstamps "/02a3014a/08240231/")) @@ -528,14 +540,14 @@ (property (name "edg_value") (value "25V 4.7uF X5R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/tof/elt[3]/") (tstamps "/02a3014a/08240231/")) (tstamps "15aa03bb")) -(comp (ref "U7") +(comp (ref "U8") (value "tof.elt[4].ic") (footprint "OptoDevice:ST_VL53L0X") (property (name "Sheetname") (value "elt[4]")) (property (name "Sheetfile") (value "edg.parts.sensor.Distance_Vl53l0x.Vl53l0x")) (property (name "edg_path") (value "tof.elt[4].ic")) (property (name "edg_short_path") (value "tof.elt[4].ic")) - (property (name "edg_refdes") (value "U7")) + (property (name "edg_refdes") (value "U8")) (property (name "edg_part") (value "VL53L0X (STMicroelectronics)")) (property (name "edg_value") (value "VL53L0X")) (sheetpath (names "/tof/elt[4]/") (tstamps "/02a3014a/08260232/")) @@ -612,18 +624,6 @@ (property (name "edg_value") (value "i2c_chain_0.sda")) (sheetpath (names "/i2c_tp/") (tstamps "/07770242/")) (tstamps "08ec027c")) -(comp (ref "U8") - (value "usb_esd") - (footprint "Package_TO_SOT_SMD:SOT-23") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) - (property (name "edg_path") (value "usb_esd")) - (property (name "edg_short_path") (value "usb_esd")) - (property (name "edg_refdes") (value "U8")) - (property (name "edg_part") (value "PESD5V0X1BT (Nexperia)")) - (property (name "edg_value") (value "PESD5V0X1BT")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "0bcb02e6")) (comp (ref "TP6") (value "can_chain_0.txd") (footprint "TestPoint:TestPoint_Keystone_5015_Micro-Minature") @@ -871,7 +871,7 @@ (node (ref J1) (pin B4)) (node (ref J1) (pin B9)) (node (ref TP1) (pin 1)) - (node (ref U1) (pin 3)) + (node (ref U2) (pin 3)) (node (ref C1) (pin 1)) (node (ref U11) (pin 1)) (node (ref U11) (pin 6)) @@ -883,19 +883,20 @@ (node (ref J1) (pin B1)) (node (ref J1) (pin B12)) (node (ref J1) (pin S1)) + (node (ref U1) (pin 3)) (node (ref R1) (pin 1)) (node (ref R2) (pin 1)) (node (ref J2) (pin 3)) (node (ref TP2) (pin 1)) - (node (ref U1) (pin 1)) + (node (ref U2) (pin 1)) (node (ref C1) (pin 2)) (node (ref C2) (pin 2)) (node (ref D1) (pin 2)) - (node (ref U2) (pin 23)) - (node (ref U2) (pin 35)) - (node (ref U2) (pin 44)) - (node (ref U2) (pin 47)) - (node (ref U2) (pin 8)) + (node (ref U3) (pin 23)) + (node (ref U3) (pin 35)) + (node (ref U3) (pin 44)) + (node (ref U3) (pin 47)) + (node (ref U3) (pin 8)) (node (ref C3) (pin 2)) (node (ref C4) (pin 2)) (node (ref C5) (pin 2)) @@ -908,42 +909,41 @@ (node (ref C10) (pin 2)) (node (ref J3) (pin 5)) (node (ref SW1) (pin 2)) - (node (ref U3) (pin 12)) - (node (ref U3) (pin 2)) - (node (ref U3) (pin 3)) - (node (ref U3) (pin 4)) - (node (ref U3) (pin 6)) - (node (ref C11) (pin 2)) - (node (ref C12) (pin 2)) (node (ref U4) (pin 12)) (node (ref U4) (pin 2)) (node (ref U4) (pin 3)) (node (ref U4) (pin 4)) (node (ref U4) (pin 6)) - (node (ref C13) (pin 2)) - (node (ref C14) (pin 2)) + (node (ref C11) (pin 2)) + (node (ref C12) (pin 2)) (node (ref U5) (pin 12)) (node (ref U5) (pin 2)) (node (ref U5) (pin 3)) (node (ref U5) (pin 4)) (node (ref U5) (pin 6)) - (node (ref C15) (pin 2)) - (node (ref C16) (pin 2)) + (node (ref C13) (pin 2)) + (node (ref C14) (pin 2)) (node (ref U6) (pin 12)) (node (ref U6) (pin 2)) (node (ref U6) (pin 3)) (node (ref U6) (pin 4)) (node (ref U6) (pin 6)) - (node (ref C17) (pin 2)) - (node (ref C18) (pin 2)) + (node (ref C15) (pin 2)) + (node (ref C16) (pin 2)) (node (ref U7) (pin 12)) (node (ref U7) (pin 2)) (node (ref U7) (pin 3)) (node (ref U7) (pin 4)) (node (ref U7) (pin 6)) + (node (ref C17) (pin 2)) + (node (ref C18) (pin 2)) + (node (ref U8) (pin 12)) + (node (ref U8) (pin 2)) + (node (ref U8) (pin 3)) + (node (ref U8) (pin 4)) + (node (ref U8) (pin 6)) (node (ref C19) (pin 2)) (node (ref C20) (pin 2)) - (node (ref U8) (pin 3)) (node (ref U9) (pin 2)) (node (ref U9) (pin 8)) (node (ref C21) (pin 2)) @@ -955,15 +955,15 @@ (node (ref C24) (pin 2)) (node (ref C26) (pin 2))) (net (code 3) (name "v3v3") - (node (ref U1) (pin 2)) + (node (ref U2) (pin 2)) (node (ref C2) (pin 1)) (node (ref TP3) (pin 1)) (node (ref D1) (pin 1)) - (node (ref U2) (pin 1)) - (node (ref U2) (pin 24)) - (node (ref U2) (pin 36)) - (node (ref U2) (pin 48)) - (node (ref U2) (pin 9)) + (node (ref U3) (pin 1)) + (node (ref U3) (pin 24)) + (node (ref U3) (pin 36)) + (node (ref U3) (pin 48)) + (node (ref U3) (pin 9)) (node (ref C3) (pin 1)) (node (ref C4) (pin 1)) (node (ref C5) (pin 1)) @@ -977,24 +977,24 @@ (node (ref D4) (pin 2)) (node (ref D5) (pin 2)) (node (ref D6) (pin 2)) - (node (ref U3) (pin 1)) - (node (ref U3) (pin 11)) - (node (ref C11) (pin 1)) - (node (ref C12) (pin 1)) (node (ref U4) (pin 1)) (node (ref U4) (pin 11)) - (node (ref C13) (pin 1)) - (node (ref C14) (pin 1)) + (node (ref C11) (pin 1)) + (node (ref C12) (pin 1)) (node (ref U5) (pin 1)) (node (ref U5) (pin 11)) - (node (ref C15) (pin 1)) - (node (ref C16) (pin 1)) + (node (ref C13) (pin 1)) + (node (ref C14) (pin 1)) (node (ref U6) (pin 1)) (node (ref U6) (pin 11)) - (node (ref C17) (pin 1)) - (node (ref C18) (pin 1)) + (node (ref C15) (pin 1)) + (node (ref C16) (pin 1)) (node (ref U7) (pin 1)) (node (ref U7) (pin 11)) + (node (ref C17) (pin 1)) + (node (ref C18) (pin 1)) + (node (ref U8) (pin 1)) + (node (ref U8) (pin 11)) (node (ref C19) (pin 1)) (node (ref C20) (pin 1)) (node (ref R4) (pin 1)) @@ -1003,92 +1003,92 @@ (node (ref C21) (pin 1)) (node (ref D7) (pin 2))) (net (code 4) (name "sw1_chain_0") - (node (ref U2) (pin 19)) + (node (ref U3) (pin 19)) (node (ref SW1) (pin 1))) (net (code 5) (name "leds_chain_0.0") - (node (ref U2) (pin 20)) + (node (ref U3) (pin 20)) (node (ref RN1) (pin 8))) (net (code 6) (name "leds_chain_0.1") - (node (ref U2) (pin 25)) + (node (ref U3) (pin 25)) (node (ref RN1) (pin 7))) (net (code 7) (name "leds_chain_0.2") - (node (ref U2) (pin 29)) + (node (ref U3) (pin 29)) (node (ref RN2) (pin 7))) (net (code 8) (name "leds_chain_0.3") - (node (ref U2) (pin 30)) + (node (ref U3) (pin 30)) (node (ref RN2) (pin 6))) (net (code 9) (name "leds_chain_0.4") - (node (ref U2) (pin 31)) + (node (ref U3) (pin 31)) (node (ref RN2) (pin 5))) (net (code 10) (name "leds_chain_0.5") - (node (ref U2) (pin 26)) + (node (ref U3) (pin 26)) (node (ref RN1) (pin 6))) (net (code 11) (name "leds_chain_0.6") - (node (ref U2) (pin 27)) + (node (ref U3) (pin 27)) (node (ref RN1) (pin 5))) (net (code 12) (name "leds_chain_0.7") - (node (ref U2) (pin 28)) + (node (ref U3) (pin 28)) (node (ref RN2) (pin 8))) (net (code 13) (name "i2c_chain_0.scl") - (node (ref U2) (pin 21)) - (node (ref U3) (pin 10)) + (node (ref U3) (pin 21)) (node (ref U4) (pin 10)) (node (ref U5) (pin 10)) (node (ref U6) (pin 10)) (node (ref U7) (pin 10)) + (node (ref U8) (pin 10)) (node (ref R4) (pin 2)) (node (ref TP4) (pin 1))) (net (code 14) (name "i2c_chain_0.sda") - (node (ref U2) (pin 22)) - (node (ref U3) (pin 9)) + (node (ref U3) (pin 22)) (node (ref U4) (pin 9)) (node (ref U5) (pin 9)) (node (ref U6) (pin 9)) (node (ref U7) (pin 9)) + (node (ref U8) (pin 9)) (node (ref R5) (pin 2)) (node (ref TP5) (pin 1))) -(net (code 15) (name "usb_chain_0.d_P") - (node (ref J1) (pin A6)) - (node (ref J1) (pin B6)) - (node (ref U2) (pin 33)) - (node (ref R3) (pin 2)) - (node (ref U8) (pin 2))) -(net (code 16) (name "usb_chain_0.d_N") - (node (ref J1) (pin A7)) - (node (ref J1) (pin B7)) - (node (ref U2) (pin 32)) - (node (ref U8) (pin 1))) -(net (code 17) (name "can_chain_0.txd") - (node (ref U2) (pin 46)) +(net (code 15) (name "can_chain_0.txd") + (node (ref U3) (pin 46)) (node (ref TP6) (pin 1)) (node (ref U9) (pin 1))) -(net (code 18) (name "can_chain_0.rxd") - (node (ref U2) (pin 45)) +(net (code 16) (name "can_chain_0.rxd") + (node (ref U3) (pin 45)) (node (ref TP7) (pin 1)) (node (ref U9) (pin 4))) -(net (code 19) (name "can_chain_1.canh") +(net (code 17) (name "can_chain_1.canh") (node (ref J2) (pin 4)) (node (ref U9) (pin 7)) (node (ref U10) (pin 2))) -(net (code 20) (name "can_chain_1.canl") +(net (code 18) (name "can_chain_1.canl") (node (ref J2) (pin 5)) (node (ref U9) (pin 6)) (node (ref U10) (pin 1))) -(net (code 21) (name "spk_chain_0") - (node (ref U2) (pin 11)) +(net (code 19) (name "spk_chain_0") + (node (ref U3) (pin 11)) (node (ref TP8) (pin 1)) (node (ref R6) (pin 1))) -(net (code 22) (name "spk_chain_1") +(net (code 20) (name "spk_chain_1") (node (ref R6) (pin 2)) (node (ref C22) (pin 1)) (node (ref TP9) (pin 1)) (node (ref C25) (pin 2))) -(net (code 23) (name "spk_chain_2.a") +(net (code 21) (name "spk_chain_2.a") (node (ref U11) (pin 8)) (node (ref J4) (pin 1))) -(net (code 24) (name "spk_chain_2.b") +(net (code 22) (name "spk_chain_2.b") (node (ref U11) (pin 5)) (node (ref J4) (pin 2))) +(net (code 23) (name "usb.usb.dp") + (node (ref J1) (pin A6)) + (node (ref J1) (pin B6)) + (node (ref U1) (pin 2)) + (node (ref U3) (pin 33)) + (node (ref R3) (pin 2))) +(net (code 24) (name "usb.usb.dm") + (node (ref J1) (pin A7)) + (node (ref J1) (pin B7)) + (node (ref U1) (pin 1)) + (node (ref U3) (pin 32))) (net (code 25) (name "usb.conn.cc.cc1") (node (ref J1) (pin A5)) (node (ref R1) (pin 2))) @@ -1098,50 +1098,50 @@ (net (code 27) (name "can.pwr") (node (ref J2) (pin 2))) (net (code 28) (name "mcu.gpio.tof_reset_0") - (node (ref U2) (pin 42)) - (node (ref U3) (pin 5))) -(net (code 29) (name "mcu.gpio.tof_reset_1") - (node (ref U2) (pin 41)) + (node (ref U3) (pin 42)) (node (ref U4) (pin 5))) -(net (code 30) (name "mcu.gpio.tof_reset_2") - (node (ref U2) (pin 4)) +(net (code 29) (name "mcu.gpio.tof_reset_1") + (node (ref U3) (pin 41)) (node (ref U5) (pin 5))) -(net (code 31) (name "mcu.gpio.tof_reset_3") - (node (ref U2) (pin 3)) +(net (code 30) (name "mcu.gpio.tof_reset_2") + (node (ref U3) (pin 4)) (node (ref U6) (pin 5))) -(net (code 32) (name "mcu.gpio.tof_reset_4") - (node (ref U2) (pin 2)) +(net (code 31) (name "mcu.gpio.tof_reset_3") + (node (ref U3) (pin 3)) (node (ref U7) (pin 5))) +(net (code 32) (name "mcu.gpio.tof_reset_4") + (node (ref U3) (pin 2)) + (node (ref U8) (pin 5))) (net (code 33) (name "mcu.xtal_node.xi") - (node (ref U2) (pin 5)) + (node (ref U3) (pin 5)) (node (ref X1) (pin 1)) (node (ref C9) (pin 1))) (net (code 34) (name "mcu.xtal_node.xo") - (node (ref U2) (pin 6)) + (node (ref U3) (pin 6)) (node (ref X1) (pin 3)) (node (ref C10) (pin 1))) (net (code 35) (name "mcu.swd_node.swdio") - (node (ref U2) (pin 34)) + (node (ref U3) (pin 34)) (node (ref J3) (pin 2))) (net (code 36) (name "mcu.swd_node.swclk") - (node (ref U2) (pin 37)) + (node (ref U3) (pin 37)) (node (ref J3) (pin 4))) (net (code 37) (name "mcu.reset_node") - (node (ref U2) (pin 7)) + (node (ref U3) (pin 7)) (node (ref J3) (pin 3))) (net (code 38) (name "mcu.swd.swo") - (node (ref U2) (pin 39)) + (node (ref U3) (pin 39)) (node (ref J3) (pin 6))) (net (code 39) (name "tof.elt[0].ic.gpio1") - (node (ref U3) (pin 7))) -(net (code 40) (name "tof.elt[1].ic.gpio1") (node (ref U4) (pin 7))) -(net (code 41) (name "tof.elt[2].ic.gpio1") +(net (code 40) (name "tof.elt[1].ic.gpio1") (node (ref U5) (pin 7))) -(net (code 42) (name "tof.elt[3].ic.gpio1") +(net (code 41) (name "tof.elt[2].ic.gpio1") (node (ref U6) (pin 7))) -(net (code 43) (name "tof.elt[4].ic.gpio1") +(net (code 42) (name "tof.elt[3].ic.gpio1") (node (ref U7) (pin 7))) +(net (code 43) (name "tof.elt[4].ic.gpio1") + (node (ref U8) (pin 7))) (net (code 44) (name "spk_drv.ic.inp") (node (ref U11) (pin 4)) (node (ref R7) (pin 2))) diff --git a/examples/TofArray/TofArray.svgpcb.js b/examples/TofArray/TofArray.svgpcb.js index 7fb384a61..756a95942 100644 --- a/examples/TofArray/TofArray.svgpcb.js +++ b/examples/TofArray/TofArray.svgpcb.js @@ -2,78 +2,83 @@ const board = new PCB(); // jlc_th.th1 const H1 = board.add(JlcToolingHole_1_152mm, { - translate: pt(2.098, 1.682), rotate: 0, + translate: pt(2.195, 1.634), rotate: 0, id: 'H1' }) // jlc_th.th2 const H2 = board.add(JlcToolingHole_1_152mm, { - translate: pt(2.137, 1.682), rotate: 0, + translate: pt(2.234, 1.634), rotate: 0, id: 'H2' }) // jlc_th.th3 const H3 = board.add(JlcToolingHole_1_152mm, { - translate: pt(2.098, 1.721), rotate: 0, + translate: pt(2.195, 1.673), rotate: 0, id: 'H3' }) // usb.conn const J1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(1.992, 0.165), rotate: 0, + translate: pt(0.209, 0.958), rotate: 0, id: 'J1' }) +// usb.esd +const U1 = board.add(SOT_23, { + translate: pt(0.534, 0.861), rotate: 0, + id: 'U1' +}) // usb.cc_pull.cc1 const R1 = board.add(R_0603_1608Metric, { - translate: pt(1.841, 0.420), rotate: 0, + translate: pt(0.517, 0.996), rotate: 0, id: 'R1' }) // usb.cc_pull.cc2 const R2 = board.add(R_0603_1608Metric, { - translate: pt(1.997, 0.420), rotate: 0, + translate: pt(0.517, 1.093), rotate: 0, id: 'R2' }) // can.conn const J2 = board.add(Molex_SL_171971_0005_1x05_P2_54mm_Vertical, { - translate: pt(1.539, 0.973), rotate: 0, + translate: pt(1.802, 0.973), rotate: 0, id: 'J2' }) // tp_vusb.tp const TP1 = board.add(TestPoint_Keystone_5015_Micro_Minature, { - translate: pt(2.172, 1.365), rotate: 0, + translate: pt(0.085, 1.687), rotate: 0, id: 'TP1' }) // tp_gnd.tp const TP2 = board.add(TestPoint_Keystone_5015_Micro_Minature, { - translate: pt(0.085, 1.735), rotate: 0, + translate: pt(0.372, 1.687), rotate: 0, id: 'TP2' }) // reg_3v3.ic -const U1 = board.add(SOT_223_3_TabPin2, { - translate: pt(0.173, 0.935), rotate: 0, - id: 'U1' +const U2 = board.add(SOT_223_3_TabPin2, { + translate: pt(1.956, 0.142), rotate: 0, + id: 'U2' }) // reg_3v3.in_cap.cap const C1 = board.add(C_0603_1608Metric, { - translate: pt(0.231, 1.145), rotate: 0, + translate: pt(2.014, 0.352), rotate: 0, id: 'C1' }) // reg_3v3.out_cap.cap const C2 = board.add(C_0805_2012Metric, { - translate: pt(0.067, 1.155), rotate: 0, + translate: pt(1.850, 0.361), rotate: 0, id: 'C2' }) // tp_3v3.tp const TP3 = board.add(TestPoint_Keystone_5015_Micro_Minature, { - translate: pt(0.372, 1.735), rotate: 0, + translate: pt(0.659, 1.687), rotate: 0, id: 'TP3' }) // prot_3v3.diode const D1 = board.add(D_SOD_323, { - translate: pt(1.213, 1.719), rotate: 0, + translate: pt(1.500, 1.671), rotate: 0, id: 'D1' }) // mcu.ic -const U2 = board.add(LQFP_48_7x7mm_P0_5mm, { +const U3 = board.add(LQFP_48_7x7mm_P0_5mm, { translate: pt(0.203, 0.203), rotate: 0, - id: 'U2' + id: 'U3' }) // mcu.pwr_cap[0].cap const C3 = board.add(C_0805_2012Metric, { @@ -132,38 +137,38 @@ const R3 = board.add(R_0603_1608Metric, { }) // sw1.package const SW1 = board.add(SW_SPST_SKQG_WithoutStem, { - translate: pt(0.742, 1.424), rotate: 0, + translate: pt(1.133, 1.376), rotate: 0, id: 'SW1' }) // leds.led[0].package const D2 = board.add(LED_0603_1608Metric, { - translate: pt(2.233, 0.823), rotate: 0, + translate: pt(0.058, 1.292), rotate: 0, id: 'D2' }) // leds.led[1].package const D3 = board.add(LED_0603_1608Metric, { - translate: pt(2.389, 0.823), rotate: 0, + translate: pt(0.215, 1.292), rotate: 0, id: 'D3' }) // leds.led[2].package const D4 = board.add(LED_0603_1608Metric, { - translate: pt(2.233, 0.920), rotate: 0, + translate: pt(0.058, 1.390), rotate: 0, id: 'D4' }) // leds.led[3].package const D5 = board.add(LED_0603_1608Metric, { - translate: pt(2.389, 0.920), rotate: 0, + translate: pt(0.215, 1.390), rotate: 0, id: 'D5' }) // leds.led[4].package const D6 = board.add(LED_0603_1608Metric, { - translate: pt(2.233, 1.017), rotate: 0, + translate: pt(0.058, 1.487), rotate: 0, id: 'D6' }) // tof.elt[0].ic -const U3 = board.add(ST_VL53L0X, { +const U4 = board.add(ST_VL53L0X, { translate: pt(1.021, 0.057), rotate: 0, - id: 'U3' + id: 'U4' }) // tof.elt[0].vdd_cap[0].cap const C11 = board.add(C_0603_1608Metric, { @@ -176,9 +181,9 @@ const C12 = board.add(C_0805_2012Metric, { id: 'C12' }) // tof.elt[1].ic -const U4 = board.add(ST_VL53L0X, { +const U5 = board.add(ST_VL53L0X, { translate: pt(1.253, 0.057), rotate: 0, - id: 'U4' + id: 'U5' }) // tof.elt[1].vdd_cap[0].cap const C13 = board.add(C_0603_1608Metric, { @@ -191,9 +196,9 @@ const C14 = board.add(C_0805_2012Metric, { id: 'C14' }) // tof.elt[2].ic -const U5 = board.add(ST_VL53L0X, { +const U6 = board.add(ST_VL53L0X, { translate: pt(1.485, 0.057), rotate: 0, - id: 'U5' + id: 'U6' }) // tof.elt[2].vdd_cap[0].cap const C15 = board.add(C_0603_1608Metric, { @@ -206,9 +211,9 @@ const C16 = board.add(C_0805_2012Metric, { id: 'C16' }) // tof.elt[3].ic -const U6 = board.add(ST_VL53L0X, { +const U7 = board.add(ST_VL53L0X, { translate: pt(1.021, 0.211), rotate: 0, - id: 'U6' + id: 'U7' }) // tof.elt[3].vdd_cap[0].cap const C17 = board.add(C_0603_1608Metric, { @@ -221,9 +226,9 @@ const C18 = board.add(C_0805_2012Metric, { id: 'C18' }) // tof.elt[4].ic -const U7 = board.add(ST_VL53L0X, { +const U8 = board.add(ST_VL53L0X, { translate: pt(1.253, 0.211), rotate: 0, - id: 'U7' + id: 'U8' }) // tof.elt[4].vdd_cap[0].cap const C19 = board.add(C_0603_1608Metric, { @@ -237,174 +242,169 @@ const C20 = board.add(C_0805_2012Metric, { }) // i2c_pull.scl_res.res const R4 = board.add(R_0603_1608Metric, { - translate: pt(1.476, 1.341), rotate: 0, + translate: pt(1.867, 1.292), rotate: 0, id: 'R4' }) // i2c_pull.sda_res.res const R5 = board.add(R_0603_1608Metric, { - translate: pt(1.476, 1.437), rotate: 0, + translate: pt(1.867, 1.389), rotate: 0, id: 'R5' }) // i2c_tp.tp_scl.tp const TP4 = board.add(TestPoint_Keystone_5015_Micro_Minature, { - translate: pt(0.085, 1.365), rotate: 0, + translate: pt(0.476, 1.317), rotate: 0, id: 'TP4' }) // i2c_tp.tp_sda.tp const TP5 = board.add(TestPoint_Keystone_5015_Micro_Minature, { - translate: pt(0.085, 1.511), rotate: 0, + translate: pt(0.476, 1.462), rotate: 0, id: 'TP5' }) -// usb_esd -const U8 = board.add(SOT_23, { - translate: pt(1.793, 1.749), rotate: 0, - id: 'U8' -}) // tp_can.tp_txd.tp const TP6 = board.add(TestPoint_Keystone_5015_Micro_Minature, { - translate: pt(0.372, 1.365), rotate: 0, + translate: pt(0.763, 1.317), rotate: 0, id: 'TP6' }) // tp_can.tp_rxd.tp const TP7 = board.add(TestPoint_Keystone_5015_Micro_Minature, { - translate: pt(0.372, 1.511), rotate: 0, + translate: pt(0.763, 1.462), rotate: 0, id: 'TP7' }) // xcvr.ic const U9 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { - translate: pt(1.157, 0.900), rotate: 0, + translate: pt(1.420, 0.900), rotate: 0, id: 'U9' }) // xcvr.vdd_cap.cap const C21 = board.add(C_0603_1608Metric, { - translate: pt(1.069, 1.074), rotate: 0, + translate: pt(1.332, 1.074), rotate: 0, id: 'C21' }) // can_esd const U10 = board.add(SOT_23, { - translate: pt(1.983, 1.749), rotate: 0, + translate: pt(2.080, 1.701), rotate: 0, id: 'U10' }) // tp_spk.tp const TP8 = board.add(TestPoint_Keystone_5015_Micro_Minature, { - translate: pt(0.659, 1.735), rotate: 0, + translate: pt(0.947, 1.687), rotate: 0, id: 'TP8' }) // spk_dac.rc.r const R6 = board.add(R_0603_1608Metric, { - translate: pt(1.710, 1.341), rotate: 0, + translate: pt(2.101, 1.292), rotate: 0, id: 'R6' }) // spk_dac.rc.c const C22 = board.add(C_0603_1608Metric, { - translate: pt(1.710, 1.437), rotate: 0, + translate: pt(2.101, 1.389), rotate: 0, id: 'C22' }) // tp_spk_in.tp const TP9 = board.add(TestPoint_Keystone_5015_Micro_Minature, { - translate: pt(0.947, 1.735), rotate: 0, + translate: pt(1.234, 1.687), rotate: 0, id: 'TP9' }) // spk_drv.ic const U11 = board.add(MSOP_8_1EP_3x3mm_P0_65mm_EP1_68x1_88mm_ThermalVias, { - translate: pt(0.587, 0.863), rotate: 0, + translate: pt(0.850, 0.863), rotate: 0, id: 'U11' }) // spk_drv.pwr_cap.cap const C23 = board.add(C_0603_1608Metric, { - translate: pt(0.523, 1.000), rotate: 0, + translate: pt(0.786, 1.000), rotate: 0, id: 'C23' }) // spk_drv.bulk_cap.cap const C24 = board.add(C_0805_2012Metric, { - translate: pt(0.817, 0.832), rotate: 0, + translate: pt(1.080, 0.832), rotate: 0, id: 'C24' }) // spk_drv.inp_res.res const R7 = board.add(R_0603_1608Metric, { - translate: pt(0.679, 1.000), rotate: 0, + translate: pt(0.942, 1.000), rotate: 0, id: 'R7' }) // spk_drv.inp_cap.cap const C25 = board.add(C_0603_1608Metric, { - translate: pt(0.835, 1.000), rotate: 0, + translate: pt(1.098, 1.000), rotate: 0, id: 'C25' }) // spk_drv.inn_res.res const R8 = board.add(R_0603_1608Metric, { - translate: pt(0.523, 1.096), rotate: 0, + translate: pt(0.786, 1.096), rotate: 0, id: 'R8' }) // spk_drv.inn_cap.cap const C26 = board.add(C_0603_1608Metric, { - translate: pt(0.679, 1.096), rotate: 0, + translate: pt(0.942, 1.096), rotate: 0, id: 'C26' }) // spk.conn const J4 = board.add(JST_PH_B2B_PH_K_1x02_P2_00mm_Vertical, { - translate: pt(1.124, 1.442), rotate: 0, + translate: pt(1.515, 1.393), rotate: 0, id: 'J4' }) // res1 const RN1 = board.add(R_Array_Concave_4x0603, { - translate: pt(1.455, 1.756), rotate: 0, + translate: pt(1.743, 1.707), rotate: 0, id: 'RN1' }) // res2 const RN2 = board.add(R_Array_Concave_4x0603, { - translate: pt(1.617, 1.756), rotate: 0, + translate: pt(1.904, 1.707), rotate: 0, id: 'RN2' }) // rgb.device.package const D7 = board.add(LED_LiteOn_LTST_C19HE1WT, { - translate: pt(1.928, 1.367), rotate: 0, + translate: pt(2.319, 1.319), rotate: 0, id: 'D7' }) board.setNetlist([ - {name: "vusb", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["TP1", "1"], ["U1", "3"], ["C1", "1"], ["U11", "1"], ["U11", "6"], ["C23", "1"], ["C24", "1"]]}, - {name: "gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["R1", "1"], ["R2", "1"], ["J2", "3"], ["TP2", "1"], ["U1", "1"], ["C1", "2"], ["C2", "2"], ["D1", "2"], ["U2", "23"], ["U2", "35"], ["U2", "44"], ["U2", "47"], ["U2", "8"], ["C3", "2"], ["C4", "2"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["C8", "2"], ["X1", "2"], ["X1", "4"], ["C9", "2"], ["C10", "2"], ["J3", "5"], ["SW1", "2"], ["U3", "12"], ["U3", "2"], ["U3", "3"], ["U3", "4"], ["U3", "6"], ["C11", "2"], ["C12", "2"], ["U4", "12"], ["U4", "2"], ["U4", "3"], ["U4", "4"], ["U4", "6"], ["C13", "2"], ["C14", "2"], ["U5", "12"], ["U5", "2"], ["U5", "3"], ["U5", "4"], ["U5", "6"], ["C15", "2"], ["C16", "2"], ["U6", "12"], ["U6", "2"], ["U6", "3"], ["U6", "4"], ["U6", "6"], ["C17", "2"], ["C18", "2"], ["U7", "12"], ["U7", "2"], ["U7", "3"], ["U7", "4"], ["U7", "6"], ["C19", "2"], ["C20", "2"], ["U8", "3"], ["U9", "2"], ["U9", "8"], ["C21", "2"], ["U10", "3"], ["C22", "2"], ["U11", "7"], ["U11", "9"], ["C23", "2"], ["C24", "2"], ["C26", "2"]]}, - {name: "v3v3", pads: [["U1", "2"], ["C2", "1"], ["TP3", "1"], ["D1", "1"], ["U2", "1"], ["U2", "24"], ["U2", "36"], ["U2", "48"], ["U2", "9"], ["C3", "1"], ["C4", "1"], ["C5", "1"], ["C6", "1"], ["C7", "1"], ["C8", "1"], ["J3", "1"], ["R3", "1"], ["D2", "2"], ["D3", "2"], ["D4", "2"], ["D5", "2"], ["D6", "2"], ["U3", "1"], ["U3", "11"], ["C11", "1"], ["C12", "1"], ["U4", "1"], ["U4", "11"], ["C13", "1"], ["C14", "1"], ["U5", "1"], ["U5", "11"], ["C15", "1"], ["C16", "1"], ["U6", "1"], ["U6", "11"], ["C17", "1"], ["C18", "1"], ["U7", "1"], ["U7", "11"], ["C19", "1"], ["C20", "1"], ["R4", "1"], ["R5", "1"], ["U9", "3"], ["C21", "1"], ["D7", "2"]]}, - {name: "sw1_chain_0", pads: [["U2", "19"], ["SW1", "1"]]}, - {name: "leds_chain_0.0", pads: [["U2", "20"], ["RN1", "8"]]}, - {name: "leds_chain_0.1", pads: [["U2", "25"], ["RN1", "7"]]}, - {name: "leds_chain_0.2", pads: [["U2", "29"], ["RN2", "7"]]}, - {name: "leds_chain_0.3", pads: [["U2", "30"], ["RN2", "6"]]}, - {name: "leds_chain_0.4", pads: [["U2", "31"], ["RN2", "5"]]}, - {name: "leds_chain_0.5", pads: [["U2", "26"], ["RN1", "6"]]}, - {name: "leds_chain_0.6", pads: [["U2", "27"], ["RN1", "5"]]}, - {name: "leds_chain_0.7", pads: [["U2", "28"], ["RN2", "8"]]}, - {name: "i2c_chain_0.scl", pads: [["U2", "21"], ["U3", "10"], ["U4", "10"], ["U5", "10"], ["U6", "10"], ["U7", "10"], ["R4", "2"], ["TP4", "1"]]}, - {name: "i2c_chain_0.sda", pads: [["U2", "22"], ["U3", "9"], ["U4", "9"], ["U5", "9"], ["U6", "9"], ["U7", "9"], ["R5", "2"], ["TP5", "1"]]}, - {name: "usb_chain_0.d_P", pads: [["J1", "A6"], ["J1", "B6"], ["U2", "33"], ["R3", "2"], ["U8", "2"]]}, - {name: "usb_chain_0.d_N", pads: [["J1", "A7"], ["J1", "B7"], ["U2", "32"], ["U8", "1"]]}, - {name: "can_chain_0.txd", pads: [["U2", "46"], ["TP6", "1"], ["U9", "1"]]}, - {name: "can_chain_0.rxd", pads: [["U2", "45"], ["TP7", "1"], ["U9", "4"]]}, + {name: "vusb", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["TP1", "1"], ["U2", "3"], ["C1", "1"], ["U11", "1"], ["U11", "6"], ["C23", "1"], ["C24", "1"]]}, + {name: "gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["U1", "3"], ["R1", "1"], ["R2", "1"], ["J2", "3"], ["TP2", "1"], ["U2", "1"], ["C1", "2"], ["C2", "2"], ["D1", "2"], ["U3", "23"], ["U3", "35"], ["U3", "44"], ["U3", "47"], ["U3", "8"], ["C3", "2"], ["C4", "2"], ["C5", "2"], ["C6", "2"], ["C7", "2"], ["C8", "2"], ["X1", "2"], ["X1", "4"], ["C9", "2"], ["C10", "2"], ["J3", "5"], ["SW1", "2"], ["U4", "12"], ["U4", "2"], ["U4", "3"], ["U4", "4"], ["U4", "6"], ["C11", "2"], ["C12", "2"], ["U5", "12"], ["U5", "2"], ["U5", "3"], ["U5", "4"], ["U5", "6"], ["C13", "2"], ["C14", "2"], ["U6", "12"], ["U6", "2"], ["U6", "3"], ["U6", "4"], ["U6", "6"], ["C15", "2"], ["C16", "2"], ["U7", "12"], ["U7", "2"], ["U7", "3"], ["U7", "4"], ["U7", "6"], ["C17", "2"], ["C18", "2"], ["U8", "12"], ["U8", "2"], ["U8", "3"], ["U8", "4"], ["U8", "6"], ["C19", "2"], ["C20", "2"], ["U9", "2"], ["U9", "8"], ["C21", "2"], ["U10", "3"], ["C22", "2"], ["U11", "7"], ["U11", "9"], ["C23", "2"], ["C24", "2"], ["C26", "2"]]}, + {name: "v3v3", pads: [["U2", "2"], ["C2", "1"], ["TP3", "1"], ["D1", "1"], ["U3", "1"], ["U3", "24"], ["U3", "36"], ["U3", "48"], ["U3", "9"], ["C3", "1"], ["C4", "1"], ["C5", "1"], ["C6", "1"], ["C7", "1"], ["C8", "1"], ["J3", "1"], ["R3", "1"], ["D2", "2"], ["D3", "2"], ["D4", "2"], ["D5", "2"], ["D6", "2"], ["U4", "1"], ["U4", "11"], ["C11", "1"], ["C12", "1"], ["U5", "1"], ["U5", "11"], ["C13", "1"], ["C14", "1"], ["U6", "1"], ["U6", "11"], ["C15", "1"], ["C16", "1"], ["U7", "1"], ["U7", "11"], ["C17", "1"], ["C18", "1"], ["U8", "1"], ["U8", "11"], ["C19", "1"], ["C20", "1"], ["R4", "1"], ["R5", "1"], ["U9", "3"], ["C21", "1"], ["D7", "2"]]}, + {name: "sw1_chain_0", pads: [["U3", "19"], ["SW1", "1"]]}, + {name: "leds_chain_0.0", pads: [["U3", "20"], ["RN1", "8"]]}, + {name: "leds_chain_0.1", pads: [["U3", "25"], ["RN1", "7"]]}, + {name: "leds_chain_0.2", pads: [["U3", "29"], ["RN2", "7"]]}, + {name: "leds_chain_0.3", pads: [["U3", "30"], ["RN2", "6"]]}, + {name: "leds_chain_0.4", pads: [["U3", "31"], ["RN2", "5"]]}, + {name: "leds_chain_0.5", pads: [["U3", "26"], ["RN1", "6"]]}, + {name: "leds_chain_0.6", pads: [["U3", "27"], ["RN1", "5"]]}, + {name: "leds_chain_0.7", pads: [["U3", "28"], ["RN2", "8"]]}, + {name: "i2c_chain_0.scl", pads: [["U3", "21"], ["U4", "10"], ["U5", "10"], ["U6", "10"], ["U7", "10"], ["U8", "10"], ["R4", "2"], ["TP4", "1"]]}, + {name: "i2c_chain_0.sda", pads: [["U3", "22"], ["U4", "9"], ["U5", "9"], ["U6", "9"], ["U7", "9"], ["U8", "9"], ["R5", "2"], ["TP5", "1"]]}, + {name: "can_chain_0.txd", pads: [["U3", "46"], ["TP6", "1"], ["U9", "1"]]}, + {name: "can_chain_0.rxd", pads: [["U3", "45"], ["TP7", "1"], ["U9", "4"]]}, {name: "can_chain_1.canh", pads: [["J2", "4"], ["U9", "7"], ["U10", "2"]]}, {name: "can_chain_1.canl", pads: [["J2", "5"], ["U9", "6"], ["U10", "1"]]}, - {name: "spk_chain_0", pads: [["U2", "11"], ["TP8", "1"], ["R6", "1"]]}, + {name: "spk_chain_0", pads: [["U3", "11"], ["TP8", "1"], ["R6", "1"]]}, {name: "spk_chain_1", pads: [["R6", "2"], ["C22", "1"], ["TP9", "1"], ["C25", "2"]]}, {name: "spk_chain_2.a", pads: [["U11", "8"], ["J4", "1"]]}, {name: "spk_chain_2.b", pads: [["U11", "5"], ["J4", "2"]]}, + {name: "usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["U1", "2"], ["U3", "33"], ["R3", "2"]]}, + {name: "usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["U1", "1"], ["U3", "32"]]}, {name: "usb.conn.cc.cc1", pads: [["J1", "A5"], ["R1", "2"]]}, {name: "usb.conn.cc.cc2", pads: [["J1", "B5"], ["R2", "2"]]}, {name: "can.pwr", pads: [["J2", "2"]]}, - {name: "mcu.gpio.tof_reset_0", pads: [["U2", "42"], ["U3", "5"]]}, - {name: "mcu.gpio.tof_reset_1", pads: [["U2", "41"], ["U4", "5"]]}, - {name: "mcu.gpio.tof_reset_2", pads: [["U2", "4"], ["U5", "5"]]}, - {name: "mcu.gpio.tof_reset_3", pads: [["U2", "3"], ["U6", "5"]]}, - {name: "mcu.gpio.tof_reset_4", pads: [["U2", "2"], ["U7", "5"]]}, - {name: "mcu.xtal_node.xi", pads: [["U2", "5"], ["X1", "1"], ["C9", "1"]]}, - {name: "mcu.xtal_node.xo", pads: [["U2", "6"], ["X1", "3"], ["C10", "1"]]}, - {name: "mcu.swd_node.swdio", pads: [["U2", "34"], ["J3", "2"]]}, - {name: "mcu.swd_node.swclk", pads: [["U2", "37"], ["J3", "4"]]}, - {name: "mcu.reset_node", pads: [["U2", "7"], ["J3", "3"]]}, - {name: "mcu.swd.swo", pads: [["U2", "39"], ["J3", "6"]]}, - {name: "tof.elt[0].ic.gpio1", pads: [["U3", "7"]]}, - {name: "tof.elt[1].ic.gpio1", pads: [["U4", "7"]]}, - {name: "tof.elt[2].ic.gpio1", pads: [["U5", "7"]]}, - {name: "tof.elt[3].ic.gpio1", pads: [["U6", "7"]]}, - {name: "tof.elt[4].ic.gpio1", pads: [["U7", "7"]]}, + {name: "mcu.gpio.tof_reset_0", pads: [["U3", "42"], ["U4", "5"]]}, + {name: "mcu.gpio.tof_reset_1", pads: [["U3", "41"], ["U5", "5"]]}, + {name: "mcu.gpio.tof_reset_2", pads: [["U3", "4"], ["U6", "5"]]}, + {name: "mcu.gpio.tof_reset_3", pads: [["U3", "3"], ["U7", "5"]]}, + {name: "mcu.gpio.tof_reset_4", pads: [["U3", "2"], ["U8", "5"]]}, + {name: "mcu.xtal_node.xi", pads: [["U3", "5"], ["X1", "1"], ["C9", "1"]]}, + {name: "mcu.xtal_node.xo", pads: [["U3", "6"], ["X1", "3"], ["C10", "1"]]}, + {name: "mcu.swd_node.swdio", pads: [["U3", "34"], ["J3", "2"]]}, + {name: "mcu.swd_node.swclk", pads: [["U3", "37"], ["J3", "4"]]}, + {name: "mcu.reset_node", pads: [["U3", "7"], ["J3", "3"]]}, + {name: "mcu.swd.swo", pads: [["U3", "39"], ["J3", "6"]]}, + {name: "tof.elt[0].ic.gpio1", pads: [["U4", "7"]]}, + {name: "tof.elt[1].ic.gpio1", pads: [["U5", "7"]]}, + {name: "tof.elt[2].ic.gpio1", pads: [["U6", "7"]]}, + {name: "tof.elt[3].ic.gpio1", pads: [["U7", "7"]]}, + {name: "tof.elt[4].ic.gpio1", pads: [["U8", "7"]]}, {name: "spk_drv.ic.inp", pads: [["U11", "4"], ["R7", "2"]]}, {name: "spk_drv.ic.inn", pads: [["U11", "3"], ["R8", "2"]]}, {name: "spk_drv.inp_res.input", pads: [["R7", "1"], ["C25", "1"]]}, @@ -420,7 +420,7 @@ board.setNetlist([ ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(2.565748031496063, 1.9062992125984253); +const limit1 = pt(2.4783464566929134, 1.8582677165354333); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/UsbFpgaProgrammer/UsbFpgaProgrammer.net.ref b/examples/UsbFpgaProgrammer/UsbFpgaProgrammer.net.ref index 2468614a1..eb784967f 100644 --- a/examples/UsbFpgaProgrammer/UsbFpgaProgrammer.net.ref +++ b/examples/UsbFpgaProgrammer/UsbFpgaProgrammer.net.ref @@ -44,10 +44,22 @@ (property (name "edg_path") (value "usb.conn")) (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "FJ1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb/") (tstamps "/02aa014b/")) (tstamps "042701af")) +(comp (ref "FU1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "FU1")) + (property (name "edg_part") (value "PGB102ST23 (Littelfuse)")) + (property (name "edg_value") (value "PGB102ST23")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "FR1") (value "usb.cc_pull.cc1") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -84,14 +96,14 @@ (property (name "edg_value") (value "100nA@1V 40Ω Single 5.49V~5.71V 200mW 5.6V SOD-323 Zener Diodes ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "21a30521")) -(comp (ref "FU1") +(comp (ref "FU2") (value "ft232.ic") (footprint "Package_QFP:LQFP-48_7x7mm_P0.5mm") (property (name "Sheetname") (value "ft232")) (property (name "Sheetfile") (value "edg.parts.interface.UsbInterface_Ft232h.Ft232hl")) (property (name "edg_path") (value "ft232.ic")) (property (name "edg_short_path") (value "ft232.ic")) - (property (name "edg_refdes") (value "FU1")) + (property (name "edg_refdes") (value "FU2")) (property (name "edg_part") (value "FT232HL (FTDI, Future Technology Devices International Ltd)")) (property (name "edg_value") (value "FT232HL")) (sheetpath (names "/ft232/") (tstamps "/05010172/")) @@ -300,14 +312,14 @@ (property (name "edg_value") (value "50V 22pF C0G ±5% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/ft232/crystal/") (tstamps "/05010172/0c1b0303/")) (tstamps "05e801f6")) -(comp (ref "FU2") +(comp (ref "FU3") (value "ft232.eeprom.ic") (footprint "Package_TO_SOT_SMD:SOT-23-6") (property (name "Sheetname") (value "eeprom")) (property (name "Sheetfile") (value "edg.parts.logic.SpiMemory_93Lc.E93Lc_B")) (property (name "edg_path") (value "ft232.eeprom.ic")) (property (name "edg_short_path") (value "ft232.eeprom.ic")) - (property (name "edg_refdes") (value "FU2")) + (property (name "edg_refdes") (value "FU3")) (property (name "edg_part") (value "93LC56B (Microchip Technology)")) (property (name "edg_value") (value "93LC56B")) (sheetpath (names "/ft232/eeprom/") (tstamps "/05010172/08be0289/")) @@ -348,18 +360,6 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 2kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/ft232/eeprom_spi/") (tstamps "/05010172/17000434/")) (tstamps "0898027d")) -(comp (ref "FU3") - (value "usb_esd") - (footprint "Package_TO_SOT_SMD:SOT-23") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) - (property (name "edg_path") (value "usb_esd")) - (property (name "edg_short_path") (value "usb_esd")) - (property (name "edg_refdes") (value "FU3")) - (property (name "edg_part") (value "PGB102ST23 (Littelfuse)")) - (property (name "edg_value") (value "PGB102ST23")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "0bcb02e6")) (comp (ref "FD2") (value "led0.package") (footprint "LED_SMD:LED_0603_1608Metric") @@ -458,21 +458,22 @@ (node (ref FJ1) (pin B1)) (node (ref FJ1) (pin B12)) (node (ref FJ1) (pin S1)) + (node (ref FU1) (pin 3)) (node (ref FR1) (pin 1)) (node (ref FR2) (pin 1)) (node (ref FD1) (pin 2)) - (node (ref FU1) (pin 10)) - (node (ref FU1) (pin 11)) - (node (ref FU1) (pin 22)) - (node (ref FU1) (pin 23)) - (node (ref FU1) (pin 35)) - (node (ref FU1) (pin 36)) - (node (ref FU1) (pin 4)) - (node (ref FU1) (pin 41)) - (node (ref FU1) (pin 42)) - (node (ref FU1) (pin 47)) - (node (ref FU1) (pin 48)) - (node (ref FU1) (pin 9)) + (node (ref FU2) (pin 10)) + (node (ref FU2) (pin 11)) + (node (ref FU2) (pin 22)) + (node (ref FU2) (pin 23)) + (node (ref FU2) (pin 35)) + (node (ref FU2) (pin 36)) + (node (ref FU2) (pin 4)) + (node (ref FU2) (pin 41)) + (node (ref FU2) (pin 42)) + (node (ref FU2) (pin 47)) + (node (ref FU2) (pin 48)) + (node (ref FU2) (pin 9)) (node (ref FC1) (pin 2)) (node (ref FC2) (pin 2)) (node (ref FC3) (pin 2)) @@ -488,25 +489,24 @@ (node (ref FX1) (pin 4)) (node (ref FC11) (pin 2)) (node (ref FC12) (pin 2)) - (node (ref FU2) (pin 2)) + (node (ref FU3) (pin 2)) (node (ref FC13) (pin 2)) - (node (ref FU3) (pin 3)) (node (ref FR6) (pin 2)) (node (ref FR7) (pin 2)) (node (ref FR8) (pin 2)) (node (ref FJ2) (pin 3)) (node (ref FJ2) (pin 5)) (node (ref FJ2) (pin 9))) -(net (code 3) (name "Fusb_chain_0.d_P") +(net (code 3) (name "Fusb.usb.dp") (node (ref FJ1) (pin A6)) (node (ref FJ1) (pin B6)) - (node (ref FU1) (pin 7)) - (node (ref FU3) (pin 2))) -(net (code 4) (name "Fusb_chain_0.d_N") + (node (ref FU1) (pin 2)) + (node (ref FU2) (pin 7))) +(net (code 4) (name "Fusb.usb.dm") (node (ref FJ1) (pin A7)) (node (ref FJ1) (pin B7)) - (node (ref FU1) (pin 6)) - (node (ref FU3) (pin 1))) + (node (ref FU1) (pin 1)) + (node (ref FU2) (pin 6))) (net (code 5) (name "Fusb.conn.cc.cc1") (node (ref FJ1) (pin A5)) (node (ref FR1) (pin 2))) @@ -514,107 +514,107 @@ (node (ref FJ1) (pin B5)) (node (ref FR2) (pin 2))) (net (code 7) (name "Fft232.mpsse.sck") - (node (ref FU1) (pin 13)) + (node (ref FU2) (pin 13)) (node (ref FJ2) (pin 4))) (net (code 8) (name "Fft232.mpsse.mosi") - (node (ref FU1) (pin 14)) + (node (ref FU2) (pin 14)) (node (ref FJ2) (pin 6))) (net (code 9) (name "Fft232.mpsse.miso") - (node (ref FU1) (pin 15)) + (node (ref FU2) (pin 15)) (node (ref FJ2) (pin 8))) (net (code 10) (name "Fft232.acbus.1") - (node (ref FU1) (pin 25))) + (node (ref FU2) (pin 25))) (net (code 11) (name "Fft232.acbus.2") - (node (ref FU1) (pin 26))) + (node (ref FU2) (pin 26))) (net (code 12) (name "Fft232.acbus.5") - (node (ref FU1) (pin 29))) + (node (ref FU2) (pin 29))) (net (code 13) (name "Fft232.acbus.6") - (node (ref FU1) (pin 30))) + (node (ref FU2) (pin 30))) (net (code 14) (name "Fft232.acbus.7") - (node (ref FU1) (pin 31))) + (node (ref FU2) (pin 31))) (net (code 15) (name "Fft232.acbus.8") - (node (ref FU1) (pin 32))) + (node (ref FU2) (pin 32))) (net (code 16) (name "Fft232.acbus.9") - (node (ref FU1) (pin 33))) + (node (ref FU2) (pin 33))) (net (code 17) (name "Fft232.ic.vregin") - (node (ref FU1) (pin 40)) + (node (ref FU2) (pin 40)) (node (ref FFB1) (pin 2)) (node (ref FC1) (pin 1)) (node (ref FC2) (pin 1))) (net (code 18) (name "Fft232.ic.vccd") - (node (ref FU1) (pin 12)) - (node (ref FU1) (pin 24)) - (node (ref FU1) (pin 34)) - (node (ref FU1) (pin 39)) - (node (ref FU1) (pin 46)) + (node (ref FU2) (pin 12)) + (node (ref FU2) (pin 24)) + (node (ref FU2) (pin 34)) + (node (ref FU2) (pin 39)) + (node (ref FU2) (pin 46)) (node (ref FFB2) (pin 1)) (node (ref FFB3) (pin 1)) (node (ref FC7) (pin 1)) (node (ref FC8) (pin 1)) (node (ref FC9) (pin 1)) (node (ref FC10) (pin 1)) - (node (ref FU2) (pin 6)) + (node (ref FU3) (pin 6)) (node (ref FC13) (pin 1)) (node (ref FR4) (pin 1))) (net (code 19) (name "Fft232.ic.vcccore") - (node (ref FU1) (pin 38)) + (node (ref FU2) (pin 38)) (node (ref FC5) (pin 1))) (net (code 20) (name "Fft232.ic.vcca") - (node (ref FU1) (pin 37)) + (node (ref FU2) (pin 37)) (node (ref FC6) (pin 1))) (net (code 21) (name "Fft232.ic.vphy") - (node (ref FU1) (pin 3)) + (node (ref FU2) (pin 3)) (node (ref FFB2) (pin 2)) (node (ref FC3) (pin 1))) (net (code 22) (name "Fft232.ic.vpll") - (node (ref FU1) (pin 8)) + (node (ref FU2) (pin 8)) (node (ref FFB3) (pin 2)) (node (ref FC4) (pin 1))) (net (code 23) (name "Fft232.ic.osc.xtal_in") - (node (ref FU1) (pin 1)) + (node (ref FU2) (pin 1)) (node (ref FX1) (pin 1)) (node (ref FC11) (pin 1))) (net (code 24) (name "Fft232.ic.osc.xtal_out") - (node (ref FU1) (pin 2)) + (node (ref FU2) (pin 2)) (node (ref FX1) (pin 3)) (node (ref FC12) (pin 1))) (net (code 25) (name "Fft232.ic.ref") - (node (ref FU1) (pin 5)) + (node (ref FU2) (pin 5)) (node (ref FR3) (pin 2))) (net (code 26) (name "Fft232.ic.eecs") - (node (ref FU1) (pin 45)) - (node (ref FU2) (pin 5))) + (node (ref FU2) (pin 45)) + (node (ref FU3) (pin 5))) (net (code 27) (name "Fft232.ic.eeclk") - (node (ref FU1) (pin 44)) - (node (ref FU2) (pin 4))) + (node (ref FU2) (pin 44)) + (node (ref FU3) (pin 4))) (net (code 28) (name "Fft232.ic.eedata") - (node (ref FU1) (pin 43)) - (node (ref FU2) (pin 3)) + (node (ref FU2) (pin 43)) + (node (ref FU3) (pin 3)) (node (ref FR5) (pin 2))) (net (code 29) (name "Fft232.ic.adbus.3") - (node (ref FU1) (pin 16))) + (node (ref FU2) (pin 16))) (net (code 30) (name "Fft232.ic.adbus.5") - (node (ref FU1) (pin 18))) + (node (ref FU2) (pin 18))) (net (code 31) (name "Fft232.ic.adbus.6") - (node (ref FU1) (pin 19))) + (node (ref FU2) (pin 19))) (net (code 32) (name "Fft232.eeprom.spi.miso") - (node (ref FU2) (pin 1)) + (node (ref FU3) (pin 1)) (node (ref FR4) (pin 2)) (node (ref FR5) (pin 1))) (net (code 33) (name "Fled0.signal") - (node (ref FU1) (pin 21)) + (node (ref FU2) (pin 21)) (node (ref FD2) (pin 2))) (net (code 34) (name "Fled0.package.k") (node (ref FD2) (pin 1)) (node (ref FR6) (pin 1))) (net (code 35) (name "Fled1.signal") - (node (ref FU1) (pin 27)) + (node (ref FU2) (pin 27)) (node (ref FD3) (pin 2))) (net (code 36) (name "Fled1.package.k") (node (ref FD3) (pin 1)) (node (ref FR7) (pin 1))) (net (code 37) (name "Fled2.signal") - (node (ref FU1) (pin 28)) + (node (ref FU2) (pin 28)) (node (ref FD4) (pin 2))) (net (code 38) (name "Fled2.package.k") (node (ref FD4) (pin 1)) @@ -622,9 +622,9 @@ (net (code 39) (name "Fout.pwr") (node (ref FJ2) (pin 1))) (net (code 40) (name "Fout.cs") - (node (ref FU1) (pin 17)) + (node (ref FU2) (pin 17)) (node (ref FJ2) (pin 2))) (net (code 41) (name "Fout.reset") - (node (ref FU1) (pin 20)) + (node (ref FU2) (pin 20)) (node (ref FJ2) (pin 10)))) ) \ No newline at end of file diff --git a/examples/UsbFpgaProgrammer/UsbFpgaProgrammer.svgpcb.js b/examples/UsbFpgaProgrammer/UsbFpgaProgrammer.svgpcb.js index aa30bafae..8467daf9f 100644 --- a/examples/UsbFpgaProgrammer/UsbFpgaProgrammer.svgpcb.js +++ b/examples/UsbFpgaProgrammer/UsbFpgaProgrammer.svgpcb.js @@ -2,43 +2,48 @@ const board = new PCB(); // jlc_th.th1 const FH1 = board.add(JlcToolingHole_1_152mm, { - translate: pt(0.000, 1.224), rotate: 0, + translate: pt(0.479, 1.284), rotate: 0, id: 'FH1' }) // jlc_th.th2 const FH2 = board.add(JlcToolingHole_1_152mm, { - translate: pt(0.039, 1.224), rotate: 0, + translate: pt(0.519, 1.284), rotate: 0, id: 'FH2' }) // jlc_th.th3 const FH3 = board.add(JlcToolingHole_1_152mm, { - translate: pt(0.000, 1.263), rotate: 0, + translate: pt(0.479, 1.323), rotate: 0, id: 'FH3' }) // usb.conn const FJ1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(1.224, 0.165), rotate: 0, + translate: pt(0.209, 0.979), rotate: 0, id: 'FJ1' }) +// usb.esd +const FU1 = board.add(SOT_23, { + translate: pt(0.534, 0.881), rotate: 0, + id: 'FU1' +}) // usb.cc_pull.cc1 const FR1 = board.add(R_0603_1608Metric, { - translate: pt(1.072, 0.420), rotate: 0, + translate: pt(0.517, 1.016), rotate: 0, id: 'FR1' }) // usb.cc_pull.cc2 const FR2 = board.add(R_0603_1608Metric, { - translate: pt(1.228, 0.420), rotate: 0, + translate: pt(0.517, 1.113), rotate: 0, id: 'FR2' }) // vusb_protect.diode const FD1 = board.add(D_SOD_323, { - translate: pt(1.225, 0.852), rotate: 0, + translate: pt(0.298, 1.321), rotate: 0, id: 'FD1' }) // ft232.ic -const FU1 = board.add(LQFP_48_7x7mm_P0_5mm, { +const FU2 = board.add(LQFP_48_7x7mm_P0_5mm, { translate: pt(0.203, 0.203), rotate: 0, - id: 'FU1' + id: 'FU2' }) // ft232.vbus_fb.fb const FFB1 = board.add(L_0603_1608Metric, { @@ -126,9 +131,9 @@ const FC12 = board.add(C_0603_1608Metric, { id: 'FC12' }) // ft232.eeprom.ic -const FU2 = board.add(SOT_23_6, { +const FU3 = board.add(SOT_23_6, { translate: pt(0.730, 0.067), rotate: 0, - id: 'FU2' + id: 'FU3' }) // ft232.eeprom.vcc_cap.cap const FC13 = board.add(C_0603_1608Metric, { @@ -145,93 +150,88 @@ const FR5 = board.add(R_0603_1608Metric, { translate: pt(0.058, 0.667), rotate: 0, id: 'FR5' }) -// usb_esd -const FU3 = board.add(SOT_23, { - translate: pt(1.481, 0.881), rotate: 0, - id: 'FU3' -}) // led0.package const FD2 = board.add(LED_0603_1608Metric, { - translate: pt(0.515, 0.843), rotate: 0, + translate: pt(1.243, 0.843), rotate: 0, id: 'FD2' }) // led0.res const FR6 = board.add(R_0603_1608Metric, { - translate: pt(0.515, 0.940), rotate: 0, + translate: pt(1.243, 0.940), rotate: 0, id: 'FR6' }) // led1.package const FD3 = board.add(LED_0603_1608Metric, { - translate: pt(0.750, 0.843), rotate: 0, + translate: pt(1.478, 0.843), rotate: 0, id: 'FD3' }) // led1.res const FR7 = board.add(R_0603_1608Metric, { - translate: pt(0.750, 0.940), rotate: 0, + translate: pt(1.477, 0.940), rotate: 0, id: 'FR7' }) // led2.package const FD4 = board.add(LED_0603_1608Metric, { - translate: pt(0.985, 0.843), rotate: 0, + translate: pt(0.058, 1.313), rotate: 0, id: 'FD4' }) // led2.res const FR8 = board.add(R_0603_1608Metric, { - translate: pt(0.985, 0.940), rotate: 0, + translate: pt(0.058, 1.410), rotate: 0, id: 'FR8' }) // out.conn const FJ2 = board.add(PinHeader_2x05_P1_27mm_Vertical_SMD, { - translate: pt(0.169, 0.960), rotate: 0, + translate: pt(0.897, 0.960), rotate: 0, id: 'FJ2' }) board.setNetlist([ {name: "vusb", pads: [["FJ1", "A4"], ["FJ1", "A9"], ["FJ1", "B4"], ["FJ1", "B9"], ["FD1", "1"], ["FFB1", "1"]]}, - {name: "gnd", pads: [["FJ1", "A1"], ["FJ1", "A12"], ["FJ1", "B1"], ["FJ1", "B12"], ["FJ1", "S1"], ["FR1", "1"], ["FR2", "1"], ["FD1", "2"], ["FU1", "10"], ["FU1", "11"], ["FU1", "22"], ["FU1", "23"], ["FU1", "35"], ["FU1", "36"], ["FU1", "4"], ["FU1", "41"], ["FU1", "42"], ["FU1", "47"], ["FU1", "48"], ["FU1", "9"], ["FC1", "2"], ["FC2", "2"], ["FC3", "2"], ["FC4", "2"], ["FC5", "2"], ["FC6", "2"], ["FC7", "2"], ["FC8", "2"], ["FC9", "2"], ["FC10", "2"], ["FR3", "1"], ["FX1", "2"], ["FX1", "4"], ["FC11", "2"], ["FC12", "2"], ["FU2", "2"], ["FC13", "2"], ["FU3", "3"], ["FR6", "2"], ["FR7", "2"], ["FR8", "2"], ["FJ2", "3"], ["FJ2", "5"], ["FJ2", "9"]]}, - {name: "usb_chain_0.d_P", pads: [["FJ1", "A6"], ["FJ1", "B6"], ["FU1", "7"], ["FU3", "2"]]}, - {name: "usb_chain_0.d_N", pads: [["FJ1", "A7"], ["FJ1", "B7"], ["FU1", "6"], ["FU3", "1"]]}, + {name: "gnd", pads: [["FJ1", "A1"], ["FJ1", "A12"], ["FJ1", "B1"], ["FJ1", "B12"], ["FJ1", "S1"], ["FU1", "3"], ["FR1", "1"], ["FR2", "1"], ["FD1", "2"], ["FU2", "10"], ["FU2", "11"], ["FU2", "22"], ["FU2", "23"], ["FU2", "35"], ["FU2", "36"], ["FU2", "4"], ["FU2", "41"], ["FU2", "42"], ["FU2", "47"], ["FU2", "48"], ["FU2", "9"], ["FC1", "2"], ["FC2", "2"], ["FC3", "2"], ["FC4", "2"], ["FC5", "2"], ["FC6", "2"], ["FC7", "2"], ["FC8", "2"], ["FC9", "2"], ["FC10", "2"], ["FR3", "1"], ["FX1", "2"], ["FX1", "4"], ["FC11", "2"], ["FC12", "2"], ["FU3", "2"], ["FC13", "2"], ["FR6", "2"], ["FR7", "2"], ["FR8", "2"], ["FJ2", "3"], ["FJ2", "5"], ["FJ2", "9"]]}, + {name: "usb.usb.dp", pads: [["FJ1", "A6"], ["FJ1", "B6"], ["FU1", "2"], ["FU2", "7"]]}, + {name: "usb.usb.dm", pads: [["FJ1", "A7"], ["FJ1", "B7"], ["FU1", "1"], ["FU2", "6"]]}, {name: "usb.conn.cc.cc1", pads: [["FJ1", "A5"], ["FR1", "2"]]}, {name: "usb.conn.cc.cc2", pads: [["FJ1", "B5"], ["FR2", "2"]]}, - {name: "ft232.mpsse.sck", pads: [["FU1", "13"], ["FJ2", "4"]]}, - {name: "ft232.mpsse.mosi", pads: [["FU1", "14"], ["FJ2", "6"]]}, - {name: "ft232.mpsse.miso", pads: [["FU1", "15"], ["FJ2", "8"]]}, - {name: "ft232.acbus.1", pads: [["FU1", "25"]]}, - {name: "ft232.acbus.2", pads: [["FU1", "26"]]}, - {name: "ft232.acbus.5", pads: [["FU1", "29"]]}, - {name: "ft232.acbus.6", pads: [["FU1", "30"]]}, - {name: "ft232.acbus.7", pads: [["FU1", "31"]]}, - {name: "ft232.acbus.8", pads: [["FU1", "32"]]}, - {name: "ft232.acbus.9", pads: [["FU1", "33"]]}, - {name: "ft232.ic.vregin", pads: [["FU1", "40"], ["FFB1", "2"], ["FC1", "1"], ["FC2", "1"]]}, - {name: "ft232.ic.vccd", pads: [["FU1", "12"], ["FU1", "24"], ["FU1", "34"], ["FU1", "39"], ["FU1", "46"], ["FFB2", "1"], ["FFB3", "1"], ["FC7", "1"], ["FC8", "1"], ["FC9", "1"], ["FC10", "1"], ["FU2", "6"], ["FC13", "1"], ["FR4", "1"]]}, - {name: "ft232.ic.vcccore", pads: [["FU1", "38"], ["FC5", "1"]]}, - {name: "ft232.ic.vcca", pads: [["FU1", "37"], ["FC6", "1"]]}, - {name: "ft232.ic.vphy", pads: [["FU1", "3"], ["FFB2", "2"], ["FC3", "1"]]}, - {name: "ft232.ic.vpll", pads: [["FU1", "8"], ["FFB3", "2"], ["FC4", "1"]]}, - {name: "ft232.ic.osc.xtal_in", pads: [["FU1", "1"], ["FX1", "1"], ["FC11", "1"]]}, - {name: "ft232.ic.osc.xtal_out", pads: [["FU1", "2"], ["FX1", "3"], ["FC12", "1"]]}, - {name: "ft232.ic.ref", pads: [["FU1", "5"], ["FR3", "2"]]}, - {name: "ft232.ic.eecs", pads: [["FU1", "45"], ["FU2", "5"]]}, - {name: "ft232.ic.eeclk", pads: [["FU1", "44"], ["FU2", "4"]]}, - {name: "ft232.ic.eedata", pads: [["FU1", "43"], ["FU2", "3"], ["FR5", "2"]]}, - {name: "ft232.ic.adbus.3", pads: [["FU1", "16"]]}, - {name: "ft232.ic.adbus.5", pads: [["FU1", "18"]]}, - {name: "ft232.ic.adbus.6", pads: [["FU1", "19"]]}, - {name: "ft232.eeprom.spi.miso", pads: [["FU2", "1"], ["FR4", "2"], ["FR5", "1"]]}, - {name: "led0.signal", pads: [["FU1", "21"], ["FD2", "2"]]}, + {name: "ft232.mpsse.sck", pads: [["FU2", "13"], ["FJ2", "4"]]}, + {name: "ft232.mpsse.mosi", pads: [["FU2", "14"], ["FJ2", "6"]]}, + {name: "ft232.mpsse.miso", pads: [["FU2", "15"], ["FJ2", "8"]]}, + {name: "ft232.acbus.1", pads: [["FU2", "25"]]}, + {name: "ft232.acbus.2", pads: [["FU2", "26"]]}, + {name: "ft232.acbus.5", pads: [["FU2", "29"]]}, + {name: "ft232.acbus.6", pads: [["FU2", "30"]]}, + {name: "ft232.acbus.7", pads: [["FU2", "31"]]}, + {name: "ft232.acbus.8", pads: [["FU2", "32"]]}, + {name: "ft232.acbus.9", pads: [["FU2", "33"]]}, + {name: "ft232.ic.vregin", pads: [["FU2", "40"], ["FFB1", "2"], ["FC1", "1"], ["FC2", "1"]]}, + {name: "ft232.ic.vccd", pads: [["FU2", "12"], ["FU2", "24"], ["FU2", "34"], ["FU2", "39"], ["FU2", "46"], ["FFB2", "1"], ["FFB3", "1"], ["FC7", "1"], ["FC8", "1"], ["FC9", "1"], ["FC10", "1"], ["FU3", "6"], ["FC13", "1"], ["FR4", "1"]]}, + {name: "ft232.ic.vcccore", pads: [["FU2", "38"], ["FC5", "1"]]}, + {name: "ft232.ic.vcca", pads: [["FU2", "37"], ["FC6", "1"]]}, + {name: "ft232.ic.vphy", pads: [["FU2", "3"], ["FFB2", "2"], ["FC3", "1"]]}, + {name: "ft232.ic.vpll", pads: [["FU2", "8"], ["FFB3", "2"], ["FC4", "1"]]}, + {name: "ft232.ic.osc.xtal_in", pads: [["FU2", "1"], ["FX1", "1"], ["FC11", "1"]]}, + {name: "ft232.ic.osc.xtal_out", pads: [["FU2", "2"], ["FX1", "3"], ["FC12", "1"]]}, + {name: "ft232.ic.ref", pads: [["FU2", "5"], ["FR3", "2"]]}, + {name: "ft232.ic.eecs", pads: [["FU2", "45"], ["FU3", "5"]]}, + {name: "ft232.ic.eeclk", pads: [["FU2", "44"], ["FU3", "4"]]}, + {name: "ft232.ic.eedata", pads: [["FU2", "43"], ["FU3", "3"], ["FR5", "2"]]}, + {name: "ft232.ic.adbus.3", pads: [["FU2", "16"]]}, + {name: "ft232.ic.adbus.5", pads: [["FU2", "18"]]}, + {name: "ft232.ic.adbus.6", pads: [["FU2", "19"]]}, + {name: "ft232.eeprom.spi.miso", pads: [["FU3", "1"], ["FR4", "2"], ["FR5", "1"]]}, + {name: "led0.signal", pads: [["FU2", "21"], ["FD2", "2"]]}, {name: "led0.package.k", pads: [["FD2", "1"], ["FR6", "1"]]}, - {name: "led1.signal", pads: [["FU1", "27"], ["FD3", "2"]]}, + {name: "led1.signal", pads: [["FU2", "27"], ["FD3", "2"]]}, {name: "led1.package.k", pads: [["FD3", "1"], ["FR7", "1"]]}, - {name: "led2.signal", pads: [["FU1", "28"], ["FD4", "2"]]}, + {name: "led2.signal", pads: [["FU2", "28"], ["FD4", "2"]]}, {name: "led2.package.k", pads: [["FD4", "1"], ["FR8", "1"]]}, {name: "out.pwr", pads: [["FJ2", "1"]]}, - {name: "out.cs", pads: [["FU1", "17"], ["FJ2", "2"]]}, - {name: "out.reset", pads: [["FU1", "20"], ["FJ2", "10"]]} + {name: "out.cs", pads: [["FU2", "17"], ["FJ2", "2"]]}, + {name: "out.reset", pads: [["FU2", "20"], ["FJ2", "10"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(1.5962598425196852, 1.3811023622047247); +const limit1 = pt(1.653937007874016, 1.5566929133858267); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/UsbSourceMeasure/UsbSourceMeasure.net.ref b/examples/UsbSourceMeasure/UsbSourceMeasure.net.ref index dd1836342..c6b16b724 100644 --- a/examples/UsbSourceMeasure/UsbSourceMeasure.net.ref +++ b/examples/UsbSourceMeasure/UsbSourceMeasure.net.ref @@ -37,17 +37,29 @@ (sheetpath (names "/jlc_th/") (tstamps "/08970275/")) (tstamps "02620110")) (comp (ref "J1") - (value "usb") + (value "usb.conn") (footprint "Connector_USB:USB_C_Receptacle_XKB_U262-16XN-4BVC11") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) (property (name "edg_path") (value "usb.conn")) - (property (name "edg_short_path") (value "usb")) + (property (name "edg_short_path") (value "usb.conn")) (property (name "edg_refdes") (value "J1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "02aa014b")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "042701af")) +(comp (ref "U1") + (value "usb.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb.esd")) + (property (name "edg_short_path") (value "usb.esd")) + (property (name "edg_refdes") (value "U1")) + (property (name "edg_part") (value "PGB102ST23 (Littelfuse)")) + (property (name "edg_value") (value "PGB102ST23")) + (sheetpath (names "/usb/") (tstamps "/02aa014b/")) + (tstamps "027c013d")) (comp (ref "TP1") (value "gnd") (footprint "edg:TestPoint_TE_RCT_0805") @@ -60,14 +72,14 @@ (property (name "edg_value") (value "gnd")) (sheetpath (names "/") (tstamps "/")) (tstamps "08df027d")) -(comp (ref "U1") +(comp (ref "U2") (value "vusb_sense.ic") (footprint "Package_TO_SOT_SMD:SOT-23-8") (property (name "Sheetname") (value "vusb_sense")) (property (name "Sheetfile") (value "edg.parts.analog.opamp.Ina219.Ina219")) (property (name "edg_path") (value "vusb_sense.ic")) (property (name "edg_short_path") (value "vusb_sense.ic")) - (property (name "edg_refdes") (value "U1")) + (property (name "edg_refdes") (value "U2")) (property (name "edg_part") (value "INA219AIDCNR (Texas Instruments)")) (property (name "edg_value") (value "INA219AIDCNR")) (sheetpath (names "/vusb_sense/") (tstamps "/17ab043e/")) @@ -228,14 +240,14 @@ (property (name "edg_value") (value "vusb_ramp")) (sheetpath (names "/") (tstamps "/")) (tstamps "0c2d0304")) -(comp (ref "U2") +(comp (ref "U3") (value "reg_v5.ic") (footprint "Package_TO_SOT_SMD:SOT-23-6") (property (name "Sheetname") (value "reg_v5")) (property (name "Sheetfile") (value "edg.parts.power.converter.TexasInstruments_Buck.Tps54202h")) (property (name "edg_path") (value "reg_v5.ic")) (property (name "edg_short_path") (value "reg_v5.ic")) - (property (name "edg_refdes") (value "U2")) + (property (name "edg_refdes") (value "U3")) (property (name "edg_part") (value "TPS54202H (Texas Instruments)")) (property (name "edg_value") (value "TPS54202H")) (sheetpath (names "/reg_v5/") (tstamps "/08850249/")) @@ -348,14 +360,14 @@ (property (name "edg_value") (value "v5")) (sheetpath (names "/") (tstamps "/")) (tstamps "064701ef")) -(comp (ref "U3") +(comp (ref "U4") (value "reg_3v3.ic") (footprint "Package_TO_SOT_SMD:SOT-23-6") (property (name "Sheetname") (value "reg_3v3")) (property (name "Sheetfile") (value "edg.parts.power.converter.TexasInstruments_Buck.Tps54202h")) (property (name "edg_path") (value "reg_3v3.ic")) (property (name "edg_short_path") (value "reg_3v3.ic")) - (property (name "edg_refdes") (value "U3")) + (property (name "edg_refdes") (value "U4")) (property (name "edg_part") (value "TPS54202H (Texas Instruments)")) (property (name "edg_value") (value "TPS54202H")) (sheetpath (names "/reg_3v3/") (tstamps "/0aba027a/")) @@ -492,14 +504,14 @@ (property (name "edg_value") (value "v3v3")) (sheetpath (names "/") (tstamps "/")) (tstamps "08220220")) -(comp (ref "U4") +(comp (ref "U5") (value "reg_v12.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "reg_v12")) (property (name "Sheetfile") (value "edg.parts.power.converter.TexasInstruments_Boost.Lm2733")) (property (name "edg_path") (value "reg_v12.ic")) (property (name "edg_short_path") (value "reg_v12.ic")) - (property (name "edg_refdes") (value "U4")) + (property (name "edg_refdes") (value "U5")) (property (name "edg_part") (value "LM2733X (Texas Instruments)")) (property (name "edg_value") (value "LM2733X")) (sheetpath (names "/reg_v12/") (tstamps "/0af80277/")) @@ -588,14 +600,14 @@ (property (name "edg_value") (value "60V 750mV@3A 3A SMC(DO-214AB) Schottky Barrier Diodes (SBD) ROHS")) (sheetpath (names "/reg_v12/") (tstamps "/0af80277/")) (tstamps "043501af")) -(comp (ref "U5") +(comp (ref "U6") (value "convin_sense.ic") (footprint "Package_TO_SOT_SMD:SOT-23-8") (property (name "Sheetname") (value "convin_sense")) (property (name "Sheetfile") (value "edg.parts.analog.opamp.Ina219.Ina219")) (property (name "edg_path") (value "convin_sense.ic")) (property (name "edg_short_path") (value "convin_sense.ic")) - (property (name "edg_refdes") (value "U5")) + (property (name "edg_refdes") (value "U6")) (property (name "edg_part") (value "INA219AIDCNR (Texas Instruments)")) (property (name "edg_value") (value "INA219AIDCNR")) (sheetpath (names "/convin_sense/") (tstamps "/20d3050b/")) @@ -816,14 +828,14 @@ (property (name "edg_value") (value "35V 22uF X5R ±20% 1206 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/conv/power_path/out_cap/") (tstamps "/042f01b7/1786043a/0be902ec/")) (tstamps "036c0153")) -(comp (ref "U6") +(comp (ref "U7") (value "conv.buck_sw.driver.ic") (footprint "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm") (property (name "Sheetname") (value "driver")) (property (name "Sheetfile") (value "edg.parts.power.gate_driver.Ncp3420.Ncp3420")) (property (name "edg_path") (value "conv.buck_sw.driver.ic")) (property (name "edg_short_path") (value "conv.buck_sw.driver.ic")) - (property (name "edg_refdes") (value "U6")) + (property (name "edg_refdes") (value "U7")) (property (name "edg_part") (value "NCP3420 (ON Semiconductor)")) (property (name "edg_value") (value "NCP3420")) (sheetpath (names "/conv/buck_sw/driver/") (tstamps "/042f01b7/0b8802ef/08da028d/")) @@ -912,14 +924,14 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±400ppm/℃ -55℃~+155℃ 4.7Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/conv/buck_sw/") (tstamps "/042f01b7/0b8802ef/")) (tstamps "24b4054a")) -(comp (ref "U7") +(comp (ref "U8") (value "conv.boost_sw.driver.ic") (footprint "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm") (property (name "Sheetname") (value "driver")) (property (name "Sheetfile") (value "edg.parts.power.gate_driver.Ncp3420.Ncp3420")) (property (name "edg_path") (value "conv.boost_sw.driver.ic")) (property (name "edg_short_path") (value "conv.boost_sw.driver.ic")) - (property (name "edg_refdes") (value "U7")) + (property (name "edg_refdes") (value "U8")) (property (name "edg_part") (value "NCP3420 (ON Semiconductor)")) (property (name "edg_value") (value "NCP3420")) (sheetpath (names "/conv/boost_sw/driver/") (tstamps "/042f01b7/0f440371/08da028d/")) @@ -1032,14 +1044,14 @@ (property (name "edg_value") (value "vconv")) (sheetpath (names "/") (tstamps "/")) (tstamps "0bd902fa")) -(comp (ref "U8") +(comp (ref "U9") (value "reg_analog.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "reg_analog")) (property (name "Sheetfile") (value "edg.parts.power.converter.LinearRegulators.Ap2210")) (property (name "edg_path") (value "reg_analog.ic")) (property (name "edg_short_path") (value "reg_analog.ic")) - (property (name "edg_refdes") (value "U8")) + (property (name "edg_refdes") (value "U9")) (property (name "edg_part") (value "AP2210K-3.3 (Diodes Incorporated)")) (property (name "edg_value") (value "AP2210K-3.3")) (sheetpath (names "/reg_analog/") (tstamps "/16550410/")) @@ -1080,14 +1092,14 @@ (property (name "edg_value") (value "va")) (sheetpath (names "/") (tstamps "/")) (tstamps "12af03b6")) -(comp (ref "U9") +(comp (ref "U10") (value "reg_vref.ic") (footprint "Package_TO_SOT_SMD:SOT-23") (property (name "Sheetname") (value "reg_vref")) (property (name "Sheetfile") (value "edg.parts.power.Ref30xx.Ref30xx")) (property (name "edg_path") (value "reg_vref.ic")) (property (name "edg_short_path") (value "reg_vref.ic")) - (property (name "edg_refdes") (value "U9")) + (property (name "edg_refdes") (value "U10")) (property (name "edg_part") (value "REF3033 (Texas Instruments)")) (property (name "edg_value") (value "REF3033")) (sheetpath (names "/reg_vref/") (tstamps "/0efe0351/")) @@ -1164,14 +1176,14 @@ (property (name "edg_value") (value "50V 33nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/ref_rc/") (tstamps "/08a70272/")) (tstamps "00640064")) -(comp (ref "U10") +(comp (ref "U11") (value "reg_vcontrol.ic") (footprint "Package_TO_SOT_SMD:SOT-23-5") (property (name "Sheetname") (value "reg_vcontrol")) (property (name "Sheetfile") (value "edg.parts.power.converter.TexasInstruments_Boost.Lm2733")) (property (name "edg_path") (value "reg_vcontrol.ic")) (property (name "edg_short_path") (value "reg_vcontrol.ic")) - (property (name "edg_refdes") (value "U10")) + (property (name "edg_refdes") (value "U11")) (property (name "edg_part") (value "LM2733X (Texas Instruments)")) (property (name "edg_value") (value "LM2733X")) (sheetpath (names "/reg_vcontrol/") (tstamps "/20ad0515/")) @@ -1284,14 +1296,14 @@ (property (name "edg_value") (value "200mA 1 1Ω 1.5kΩ@100MHz ±25% 0603 Ferrite Beads ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "2c3305f4")) -(comp (ref "U11") +(comp (ref "U12") (value "reg_vcontroln.ic") (footprint "Package_TO_SOT_SMD:SOT-23-6") (property (name "Sheetname") (value "reg_vcontroln")) (property (name "Sheetfile") (value "edg.parts.power.converter.TexasInstruments_SwitchedCap.Lm2664")) (property (name "edg_path") (value "reg_vcontroln.ic")) (property (name "edg_short_path") (value "reg_vcontroln.ic")) - (property (name "edg_refdes") (value "U11")) + (property (name "edg_refdes") (value "U12")) (property (name "edg_part") (value "LM2664 (Texas Instruments)")) (property (name "edg_value") (value "LM2664")) (sheetpath (names "/reg_vcontroln/") (tstamps "/26300583/")) @@ -1536,14 +1548,14 @@ (property (name "edg_value") (value "50V 100pF C0G ±5% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/err_sink/") (tstamps "/0bec0302/0f23035e/")) (tstamps "026c013b")) -(comp (ref "U12") +(comp (ref "U13") (value "control.comp_source.ic") (footprint "Package_TO_SOT_SMD:SOT-353_SC-70-5") (property (name "Sheetname") (value "comp_source")) (property (name "Sheetfile") (value "edg.parts.analog.Comparator_Lmv331.Lmv331")) (property (name "edg_path") (value "control.comp_source.ic")) (property (name "edg_short_path") (value "control.comp_source.ic")) - (property (name "edg_refdes") (value "U12")) + (property (name "edg_refdes") (value "U13")) (property (name "edg_part") (value "LMV331IDCKR (Texas Instruments)")) (property (name "edg_value") (value "LMV331IDCKR")) (sheetpath (names "/control/comp_source/") (tstamps "/0bec0302/1bc204a0/")) @@ -1560,14 +1572,14 @@ (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/comp_source/") (tstamps "/0bec0302/1bc204a0/")) (tstamps "0b6402d2")) -(comp (ref "U13") +(comp (ref "U14") (value "control.comp_sink.ic") (footprint "Package_TO_SOT_SMD:SOT-353_SC-70-5") (property (name "Sheetname") (value "comp_sink")) (property (name "Sheetfile") (value "edg.parts.analog.Comparator_Lmv331.Lmv331")) (property (name "edg_path") (value "control.comp_sink.ic")) (property (name "edg_short_path") (value "control.comp_sink.ic")) - (property (name "edg_refdes") (value "U13")) + (property (name "edg_refdes") (value "U14")) (property (name "edg_part") (value "LMV331IDCKR (Texas Instruments)")) (property (name "edg_value") (value "LMV331IDCKR")) (sheetpath (names "/control/comp_sink/") (tstamps "/0bec0302/12c003c4/")) @@ -1584,14 +1596,14 @@ (property (name "edg_value") (value "50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/comp_sink/") (tstamps "/0bec0302/12c003c4/")) (tstamps "0b6402d2")) -(comp (ref "U14") +(comp (ref "U15") (value "control.off_sw.ic") (footprint "Package_TO_SOT_SMD:SOT-363_SC-70-6") (property (name "Sheetname") (value "off_sw")) (property (name "Sheetfile") (value "edg.abstract_parts.AnalogSwitch.AnalogMuxer")) (property (name "edg_path") (value "control.off_sw.device.ic")) (property (name "edg_short_path") (value "control.off_sw.ic")) - (property (name "edg_refdes") (value "U14")) + (property (name "edg_refdes") (value "U15")) (property (name "edg_part") (value "SN74LVC1G3157DCKR (Texas Instruments)")) (property (name "edg_value") (value "SN74LVC1G3157DCKR")) (sheetpath (names "/control/off_sw/") (tstamps "/0bec0302/08b00285/")) @@ -1860,14 +1872,14 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 15Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/driver/res/") (tstamps "/0bec0302/08da028d/0296014b/")) (tstamps "0857023c")) -(comp (ref "U15") +(comp (ref "U16") (value "control.driver.high_gate.ic") (footprint "Package_TO_SOT_SMD:SOT-23-6") (property (name "Sheetname") (value "high_gate")) (property (name "Sheetfile") (value "edg.abstract_parts.AnalogSwitch.AnalogMuxer")) (property (name "edg_path") (value "control.driver.high_gate.device.ic")) (property (name "edg_short_path") (value "control.driver.high_gate.ic")) - (property (name "edg_refdes") (value "U15")) + (property (name "edg_refdes") (value "U16")) (property (name "edg_part") (value "DG468DV (Vishay Siliconix)")) (property (name "edg_value") (value "DG468DV")) (sheetpath (names "/control/driver/high_gate/") (tstamps "/0bec0302/08da028d/122103a1/")) @@ -1884,14 +1896,14 @@ (property (name "edg_value") (value "100V 100nF X7R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/driver/high_gate/") (tstamps "/0bec0302/08da028d/122103a1/")) (tstamps "0b6402d2")) -(comp (ref "U16") +(comp (ref "U17") (value "control.driver.low_gate.ic") (footprint "Package_TO_SOT_SMD:SOT-23-6") (property (name "Sheetname") (value "low_gate")) (property (name "Sheetfile") (value "edg.abstract_parts.AnalogSwitch.AnalogMuxer")) (property (name "edg_path") (value "control.driver.low_gate.device.ic")) (property (name "edg_short_path") (value "control.driver.low_gate.ic")) - (property (name "edg_refdes") (value "U16")) + (property (name "edg_refdes") (value "U17")) (property (name "edg_part") (value "DG468DV (Vishay Siliconix)")) (property (name "edg_value") (value "DG468DV")) (sheetpath (names "/control/driver/low_gate/") (tstamps "/0bec0302/08da028d/0f220353/")) @@ -2016,14 +2028,14 @@ (property (name "edg_value") (value "1W 0.1Ω ±100ppm/℃ ±1% 1206 Current Sense Resistors/Shunt Resistors ROHS")) (sheetpath (names "/control/isense/ranges[0]/") (tstamps "/0bec0302/08e40288/12120369/")) (tstamps "08e40288")) -(comp (ref "U17") +(comp (ref "U18") (value "control.isense.ranges[0].sense_sw.ic") (footprint "Package_TO_SOT_SMD:SOT-23-6") (property (name "Sheetname") (value "sense_sw")) (property (name "Sheetfile") (value "edg.abstract_parts.AnalogSwitch.AnalogMuxer")) (property (name "edg_path") (value "control.isense.ranges[0].sense_sw.device.ic")) (property (name "edg_short_path") (value "control.isense.ranges[0].sense_sw.ic")) - (property (name "edg_refdes") (value "U17")) + (property (name "edg_refdes") (value "U18")) (property (name "edg_part") (value "DG468DV (Vishay Siliconix)")) (property (name "edg_value") (value "DG468DV")) (sheetpath (names "/control/isense/ranges[0]/sense_sw/") (tstamps "/0bec0302/08e40288/12120369/0f440368/")) @@ -2040,14 +2052,14 @@ (property (name "edg_value") (value "100V 100nF X7R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/isense/ranges[0]/sense_sw/") (tstamps "/0bec0302/08e40288/12120369/0f440368/")) (tstamps "0b6402d2")) -(comp (ref "U18") +(comp (ref "U19") (value "control.isense.ranges[0].pwr_sw.ic") (footprint "Package_DIP:SMDIP-6_W7.62mm") (property (name "Sheetname") (value "pwr_sw")) (property (name "Sheetfile") (value "edg.abstract_parts.SolidStateRelay.VoltageIsolatedSwitch")) (property (name "edg_path") (value "control.isense.ranges[0].pwr_sw.ic")) (property (name "edg_short_path") (value "control.isense.ranges[0].pwr_sw.ic")) - (property (name "edg_refdes") (value "U18")) + (property (name "edg_refdes") (value "U19")) (property (name "edg_part") (value "TLP3545A(TP1,F (Toshiba)")) (property (name "edg_value") (value "TLP3545A(TP1,F")) (sheetpath (names "/control/isense/ranges[0]/pwr_sw/") (tstamps "/0bec0302/08e40288/12120369/093b02a3/")) @@ -2076,14 +2088,14 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±400ppm/℃ -55℃~+155℃ 1Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/isense/ranges[1]/") (tstamps "/0bec0302/08e40288/1214036a/")) (tstamps "08e40288")) -(comp (ref "U19") +(comp (ref "U20") (value "control.isense.ranges[1].sense_sw.ic") (footprint "Package_TO_SOT_SMD:SOT-23-6") (property (name "Sheetname") (value "sense_sw")) (property (name "Sheetfile") (value "edg.abstract_parts.AnalogSwitch.AnalogMuxer")) (property (name "edg_path") (value "control.isense.ranges[1].sense_sw.device.ic")) (property (name "edg_short_path") (value "control.isense.ranges[1].sense_sw.ic")) - (property (name "edg_refdes") (value "U19")) + (property (name "edg_refdes") (value "U20")) (property (name "edg_part") (value "DG468DV (Vishay Siliconix)")) (property (name "edg_value") (value "DG468DV")) (sheetpath (names "/control/isense/ranges[1]/sense_sw/") (tstamps "/0bec0302/08e40288/1214036a/0f440368/")) @@ -2100,14 +2112,14 @@ (property (name "edg_value") (value "100V 100nF X7R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/isense/ranges[1]/sense_sw/") (tstamps "/0bec0302/08e40288/1214036a/0f440368/")) (tstamps "0b6402d2")) -(comp (ref "U20") +(comp (ref "U21") (value "control.isense.ranges[1].pwr_sw.ic") (footprint "Package_SO:SO-4_4.4x3.6mm_P2.54mm") (property (name "Sheetname") (value "pwr_sw")) (property (name "Sheetfile") (value "edg.abstract_parts.SolidStateRelay.VoltageIsolatedSwitch")) (property (name "edg_path") (value "control.isense.ranges[1].pwr_sw.ic")) (property (name "edg_short_path") (value "control.isense.ranges[1].pwr_sw.ic")) - (property (name "edg_refdes") (value "U20")) + (property (name "edg_refdes") (value "U21")) (property (name "edg_part") (value "TLP170AM(TPL,E (Toshiba)")) (property (name "edg_value") (value "TLP170AM(TPL,E")) (sheetpath (names "/control/isense/ranges[1]/pwr_sw/") (tstamps "/0bec0302/08e40288/1214036a/093b02a3/")) @@ -2136,14 +2148,14 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±400ppm/℃ -55℃~+155℃ 10Ω 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/isense/ranges[2]/") (tstamps "/0bec0302/08e40288/1216036b/")) (tstamps "08e40288")) -(comp (ref "U21") +(comp (ref "U22") (value "control.isense.ranges[2].sense_sw.ic") (footprint "Package_TO_SOT_SMD:SOT-23-6") (property (name "Sheetname") (value "sense_sw")) (property (name "Sheetfile") (value "edg.abstract_parts.AnalogSwitch.AnalogMuxer")) (property (name "edg_path") (value "control.isense.ranges[2].sense_sw.device.ic")) (property (name "edg_short_path") (value "control.isense.ranges[2].sense_sw.ic")) - (property (name "edg_refdes") (value "U21")) + (property (name "edg_refdes") (value "U22")) (property (name "edg_part") (value "DG468DV (Vishay Siliconix)")) (property (name "edg_value") (value "DG468DV")) (sheetpath (names "/control/isense/ranges[2]/sense_sw/") (tstamps "/0bec0302/08e40288/1216036b/0f440368/")) @@ -2160,14 +2172,14 @@ (property (name "edg_value") (value "100V 100nF X7R ±10% 0805 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/isense/ranges[2]/sense_sw/") (tstamps "/0bec0302/08e40288/1216036b/0f440368/")) (tstamps "0b6402d2")) -(comp (ref "U22") +(comp (ref "U23") (value "control.isense.ranges[2].pwr_sw.ic") (footprint "Package_SO:SO-4_4.4x3.6mm_P2.54mm") (property (name "Sheetname") (value "pwr_sw")) (property (name "Sheetfile") (value "edg.abstract_parts.SolidStateRelay.VoltageIsolatedSwitch")) (property (name "edg_path") (value "control.isense.ranges[2].pwr_sw.ic")) (property (name "edg_short_path") (value "control.isense.ranges[2].pwr_sw.ic")) - (property (name "edg_refdes") (value "U22")) + (property (name "edg_refdes") (value "U23")) (property (name "edg_part") (value "TLP170AM(TPL,E (Toshiba)")) (property (name "edg_value") (value "TLP170AM(TPL,E")) (sheetpath (names "/control/isense/ranges[2]/pwr_sw/") (tstamps "/0bec0302/08e40288/1216036b/093b02a3/")) @@ -2220,14 +2232,14 @@ (property (name "edg_value") (value "50V 470pF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/control/ifilt/") (tstamps "/0bec0302/06310219/")) (tstamps "00640064")) -(comp (ref "U23") +(comp (ref "U24") (value "control.vmeas.ic") (footprint "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm") (property (name "Sheetname") (value "vmeas")) (property (name "Sheetfile") (value "edg.parts.analog.opamp.Ina826.Ina826")) (property (name "edg_path") (value "control.vmeas.ic")) (property (name "edg_short_path") (value "control.vmeas.ic")) - (property (name "edg_refdes") (value "U23")) + (property (name "edg_refdes") (value "U24")) (property (name "edg_part") (value "INA826AIDR (Texas Instruments)")) (property (name "edg_value") (value "INA826AIDR")) (sheetpath (names "/control/vmeas/") (tstamps "/0bec0302/066b021d/")) @@ -2256,14 +2268,14 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 470kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/control/vmeas/") (tstamps "/0bec0302/066b021d/")) (tstamps "014d00da")) -(comp (ref "U24") +(comp (ref "U25") (value "control.imeas.ic") (footprint "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm") (property (name "Sheetname") (value "imeas")) (property (name "Sheetfile") (value "edg.parts.analog.opamp.Ina826.Ina826")) (property (name "edg_path") (value "control.imeas.ic")) (property (name "edg_short_path") (value "control.imeas.ic")) - (property (name "edg_refdes") (value "U24")) + (property (name "edg_refdes") (value "U25")) (property (name "edg_part") (value "INA826AIDR (Texas Instruments)")) (property (name "edg_value") (value "INA826AIDR")) (sheetpath (names "/control/imeas/") (tstamps "/0bec0302/062a0210/")) @@ -2436,14 +2448,14 @@ (property (name "edg_value") (value "int")) (sheetpath (names "/") (tstamps "/")) (tstamps "08f5028f")) -(comp (ref "U25") +(comp (ref "U26") (value "pd.ic") (footprint "Package_DFN_QFN:WQFN-14-1EP_2.5x2.5mm_P0.5mm_EP1.45x1.45mm") (property (name "Sheetname") (value "pd")) (property (name "Sheetfile") (value "edg.parts.interface.UsbPd_Fusb302b.Fusb302b")) (property (name "edg_path") (value "pd.ic")) (property (name "edg_short_path") (value "pd.ic")) - (property (name "edg_refdes") (value "U25")) + (property (name "edg_refdes") (value "U26")) (property (name "edg_part") (value "FUSB302B11MPX (ON Semiconductor)")) (property (name "edg_value") (value "FUSB302B11MPX")) (sheetpath (names "/pd/") (tstamps "/014600d5/")) @@ -2484,14 +2496,14 @@ (property (name "edg_value") (value "")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) (tstamps "045f01b9")) -(comp (ref "U26") +(comp (ref "U27") (value "mcu.ic") (footprint "RF_Module:ESP32-S3-WROOM-1") (property (name "Sheetname") (value "mcu")) (property (name "Sheetfile") (value "edg.parts.microcontroller.Esp32s3.Esp32s3_Wroom_1")) (property (name "edg_path") (value "mcu.ic")) (property (name "edg_short_path") (value "mcu.ic")) - (property (name "edg_refdes") (value "U26")) + (property (name "edg_refdes") (value "U27")) (property (name "edg_part") (value "ESP32-S3-WROOM-1-N16R8 (Espressif Systems)")) (property (name "edg_value") (value "ESP32-S3-WROOM-1-N16R8")) (sheetpath (names "/mcu/") (tstamps "/02850146/")) @@ -2568,18 +2580,6 @@ (property (name "edg_value") (value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1kΩ 0603 Chip Resistor - Surface Mount ROHS")) (sheetpath (names "/led/") (tstamps "/02750136/")) (tstamps "0296014b")) -(comp (ref "U27") - (value "usb_esd") - (footprint "Package_TO_SOT_SMD:SOT-23") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) - (property (name "edg_path") (value "usb_esd")) - (property (name "edg_short_path") (value "usb_esd")) - (property (name "edg_refdes") (value "U27")) - (property (name "edg_part") (value "PGB102ST23 (Littelfuse)")) - (property (name "edg_value") (value "PGB102ST23")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "0bcb02e6")) (comp (ref "TP10") (value "i2c.scl") (footprint "edg:TestPoint_TE_RCT_0805") @@ -3847,32 +3847,33 @@ (node (ref J1) (pin B1)) (node (ref J1) (pin B12)) (node (ref J1) (pin S1)) - (node (ref TP1) (pin 1)) (node (ref U1) (pin 3)) - (node (ref U1) (pin 7)) - (node (ref U1) (pin 8)) + (node (ref TP1) (pin 1)) + (node (ref U2) (pin 3)) + (node (ref U2) (pin 7)) + (node (ref U2) (pin 8)) (node (ref C1) (pin 2)) (node (ref D1) (pin 2)) (node (ref Q2) (pin 2)) (node (ref C4) (pin 2)) - (node (ref U2) (pin 1)) + (node (ref U3) (pin 1)) (node (ref R5) (pin 2)) (node (ref C5) (pin 2)) (node (ref C7) (pin 2)) (node (ref C8) (pin 2)) - (node (ref U3) (pin 1)) + (node (ref U4) (pin 1)) (node (ref R8) (pin 2)) (node (ref C9) (pin 2)) (node (ref C11) (pin 2)) (node (ref C12) (pin 2)) (node (ref C13) (pin 2)) (node (ref D2) (pin 2)) - (node (ref U4) (pin 2)) + (node (ref U5) (pin 2)) (node (ref R11) (pin 2)) (node (ref C14) (pin 2)) (node (ref C15) (pin 2)) - (node (ref U5) (pin 3)) - (node (ref U5) (pin 7)) + (node (ref U6) (pin 3)) + (node (ref U6) (pin 7)) (node (ref C17) (pin 2)) (node (ref C18) (pin 2)) (node (ref C19) (pin 2)) @@ -3889,77 +3890,76 @@ (node (ref C30) (pin 2)) (node (ref C31) (pin 2)) (node (ref C32) (pin 2)) - (node (ref U6) (pin 6)) + (node (ref U7) (pin 6)) (node (ref C33) (pin 2)) (node (ref Q3) (pin 1)) (node (ref Q3) (pin 2)) (node (ref Q3) (pin 3)) - (node (ref U7) (pin 6)) + (node (ref U8) (pin 6)) (node (ref C35) (pin 2)) (node (ref Q5) (pin 1)) (node (ref Q5) (pin 2)) (node (ref Q5) (pin 3)) (node (ref D6) (pin 2)) - (node (ref U8) (pin 2)) + (node (ref U9) (pin 2)) (node (ref C37) (pin 2)) (node (ref C38) (pin 2)) - (node (ref U9) (pin 3)) + (node (ref U10) (pin 3)) (node (ref C39) (pin 2)) (node (ref R18) (pin 2)) (node (ref C40) (pin 2)) - (node (ref U10) (pin 2)) + (node (ref U11) (pin 2)) (node (ref R21) (pin 2)) (node (ref C41) (pin 2)) (node (ref C42) (pin 2)) - (node (ref U11) (pin 1)) + (node (ref U12) (pin 1)) (node (ref C45) (pin 2)) (node (ref C46) (pin 2)) (node (ref C47) (pin 2)) (node (ref C48) (pin 2)) - (node (ref U12) (pin 2)) - (node (ref C49) (pin 2)) (node (ref U13) (pin 2)) - (node (ref C50) (pin 2)) + (node (ref C49) (pin 2)) (node (ref U14) (pin 2)) + (node (ref C50) (pin 2)) + (node (ref U15) (pin 2)) (node (ref C51) (pin 2)) (node (ref Q8) (pin 2)) - (node (ref U15) (pin 4)) (node (ref U16) (pin 4)) + (node (ref U17) (pin 4)) (node (ref C56) (pin 2)) (node (ref C57) (pin 2)) (node (ref C58) (pin 2)) (node (ref R52) (pin 2)) (node (ref C59) (pin 2)) - (node (ref U17) (pin 2)) - (node (ref U17) (pin 4)) + (node (ref U18) (pin 2)) + (node (ref U18) (pin 4)) (node (ref C60) (pin 2)) (node (ref R54) (pin 2)) - (node (ref U19) (pin 2)) - (node (ref U19) (pin 4)) + (node (ref U20) (pin 2)) + (node (ref U20) (pin 4)) (node (ref C61) (pin 2)) (node (ref R56) (pin 2)) - (node (ref U21) (pin 2)) - (node (ref U21) (pin 4)) + (node (ref U22) (pin 2)) + (node (ref U22) (pin 4)) (node (ref C62) (pin 2)) (node (ref R58) (pin 2)) - (node (ref U23) (pin 1)) + (node (ref U24) (pin 1)) (node (ref C66) (pin 2)) (node (ref D13) (pin 1)) (node (ref J2) (pin 2)) (node (ref J3) (pin 2)) - (node (ref U25) (pin 15)) - (node (ref U25) (pin 8)) - (node (ref U25) (pin 9)) + (node (ref U26) (pin 15)) + (node (ref U26) (pin 8)) + (node (ref U26) (pin 9)) (node (ref C67) (pin 2)) (node (ref C68) (pin 2)) (node (ref J4) (pin 5)) - (node (ref U26) (pin 1)) - (node (ref U26) (pin 40)) - (node (ref U26) (pin 41)) + (node (ref U27) (pin 1)) + (node (ref U27) (pin 40)) + (node (ref U27) (pin 41)) (node (ref C69) (pin 2)) (node (ref C70) (pin 2)) (node (ref C71) (pin 2)) - (node (ref U27) (pin 3)) (node (ref J5) (pin 1)) (node (ref J5) (pin 13)) (node (ref J5) (pin 14)) @@ -4062,52 +4062,52 @@ (node (ref U42) (pin 4)) (node (ref C112) (pin 2))) (net (code 2) (name "vusb") - (node (ref U1) (pin 2)) + (node (ref U2) (pin 2)) (node (ref R1) (pin 2)) (node (ref Q1) (pin 1)) (node (ref Q1) (pin 2)) (node (ref Q1) (pin 3)) (node (ref C3) (pin 1)) (node (ref R2) (pin 1)) - (node (ref U3) (pin 3)) + (node (ref U4) (pin 3)) (node (ref C9) (pin 1)) (node (ref C11) (pin 1)) (node (ref C12) (pin 1)) (node (ref R9) (pin 1)) - (node (ref U25) (pin 2))) + (node (ref U26) (pin 2))) (net (code 3) (name "vusb_ramp") (node (ref Q1) (pin 5)) (node (ref C2) (pin 1)) (node (ref C4) (pin 1)) (node (ref TP2) (pin 1)) - (node (ref U2) (pin 3)) + (node (ref U3) (pin 3)) (node (ref C5) (pin 1)) (node (ref C7) (pin 1)) (node (ref R6) (pin 1)) - (node (ref U5) (pin 1)) + (node (ref U6) (pin 1)) (node (ref R12) (pin 1))) (net (code 4) (name "v5") (node (ref R4) (pin 1)) (node (ref L1) (pin 2)) (node (ref C8) (pin 1)) (node (ref TP3) (pin 1)) - (node (ref U4) (pin 4)) - (node (ref U4) (pin 5)) + (node (ref U5) (pin 4)) + (node (ref U5) (pin 5)) (node (ref L3) (pin 1)) (node (ref C14) (pin 1)) - (node (ref U6) (pin 4)) + (node (ref U7) (pin 4)) (node (ref C33) (pin 1)) (node (ref D4) (pin 2)) - (node (ref U7) (pin 4)) + (node (ref U8) (pin 4)) (node (ref C35) (pin 1)) (node (ref D5) (pin 2)) - (node (ref U8) (pin 1)) - (node (ref U8) (pin 3)) - (node (ref C37) (pin 1)) (node (ref U9) (pin 1)) + (node (ref U9) (pin 3)) + (node (ref C37) (pin 1)) + (node (ref U10) (pin 1)) (node (ref C39) (pin 1)) - (node (ref U10) (pin 4)) - (node (ref U10) (pin 5)) + (node (ref U11) (pin 4)) + (node (ref U11) (pin 5)) (node (ref L5) (pin 1)) (node (ref C41) (pin 1)) (node (ref D15) (pin 4)) @@ -4131,22 +4131,22 @@ (node (ref C93) (pin 1)) (node (ref C94) (pin 1))) (net (code 5) (name "v3v3") - (node (ref U1) (pin 4)) + (node (ref U2) (pin 4)) (node (ref C1) (pin 1)) (node (ref R7) (pin 1)) (node (ref L2) (pin 2)) (node (ref C13) (pin 1)) (node (ref D2) (pin 1)) (node (ref TP4) (pin 1)) - (node (ref U5) (pin 4)) - (node (ref U5) (pin 8)) + (node (ref U6) (pin 4)) + (node (ref U6) (pin 8)) (node (ref C17) (pin 1)) - (node (ref U25) (pin 3)) - (node (ref U25) (pin 4)) + (node (ref U26) (pin 3)) + (node (ref U26) (pin 4)) (node (ref C67) (pin 1)) (node (ref C68) (pin 1)) (node (ref J4) (pin 1)) - (node (ref U26) (pin 2)) + (node (ref U27) (pin 2)) (node (ref C69) (pin 1)) (node (ref C70) (pin 1)) (node (ref R66) (pin 1)) @@ -4187,7 +4187,7 @@ (node (ref C75) (pin 1)) (node (ref C76) (pin 1))) (net (code 7) (name "vconvin") - (node (ref U5) (pin 2)) + (node (ref U6) (pin 2)) (node (ref R12) (pin 2)) (node (ref C18) (pin 1)) (node (ref C19) (pin 1)) @@ -4216,15 +4216,15 @@ (node (ref R77) (pin 1)) (node (ref R81) (pin 1))) (net (code 9) (name "vanalog") - (node (ref U8) (pin 5)) + (node (ref U9) (pin 5)) (node (ref C38) (pin 1)) (node (ref TP6) (pin 1)) (node (ref FB2) (pin 1)) - (node (ref U12) (pin 5)) - (node (ref C49) (pin 1)) (node (ref U13) (pin 5)) - (node (ref C50) (pin 1)) + (node (ref C49) (pin 1)) (node (ref U14) (pin 5)) + (node (ref C50) (pin 1)) + (node (ref U15) (pin 5)) (node (ref C51) (pin 1)) (node (ref R88) (pin 1)) (node (ref U40) (pin 8)) @@ -4234,7 +4234,7 @@ (node (ref U42) (pin 8)) (node (ref C112) (pin 1))) (net (code 10) (name "vref") - (node (ref U9) (pin 2)) + (node (ref U10) (pin 2)) (node (ref TP7) (pin 1)) (node (ref R17) (pin 1)) (node (ref FB3) (pin 1)) @@ -4245,8 +4245,8 @@ (node (ref C40) (pin 1)) (node (ref R25) (pin 1)) (node (ref R38) (pin 2)) - (node (ref U23) (pin 6)) (node (ref U24) (pin 6)) + (node (ref U25) (pin 6)) (node (ref J10) (pin 1)) (node (ref R90) (pin 1)) (node (ref U42) (pin 3))) @@ -4256,65 +4256,65 @@ (node (ref C43) (pin 2)) (node (ref D7) (pin 1)) (node (ref TP8) (pin 1)) - (node (ref U15) (pin 5)) - (node (ref C54) (pin 1)) (node (ref U16) (pin 5)) - (node (ref C55) (pin 1)) + (node (ref C54) (pin 1)) (node (ref U17) (pin 5)) + (node (ref C55) (pin 1)) + (node (ref U18) (pin 5)) (node (ref C60) (pin 1)) - (node (ref U19) (pin 5)) + (node (ref U20) (pin 5)) (node (ref C61) (pin 1)) - (node (ref U21) (pin 5)) + (node (ref U22) (pin 5)) (node (ref C62) (pin 1)) - (node (ref U23) (pin 8)) - (node (ref C64) (pin 1)) (node (ref U24) (pin 8)) + (node (ref C64) (pin 1)) + (node (ref U25) (pin 8)) (node (ref C65) (pin 1)) (node (ref U39) (pin 8)) (node (ref C109) (pin 1))) (net (code 13) (name "vcontroln") - (node (ref U11) (pin 2)) + (node (ref U12) (pin 2)) (node (ref C45) (pin 1)) (node (ref TP9) (pin 1)) - (node (ref U15) (pin 2)) - (node (ref C54) (pin 2)) (node (ref U16) (pin 2)) + (node (ref C54) (pin 2)) + (node (ref U17) (pin 2)) (node (ref C55) (pin 2)) - (node (ref U23) (pin 5)) - (node (ref C64) (pin 2)) (node (ref U24) (pin 5)) + (node (ref C64) (pin 2)) + (node (ref U25) (pin 5)) (node (ref C65) (pin 2)) (node (ref U39) (pin 4)) (node (ref C109) (pin 2))) -(net (code 14) (name "usb_chain_0.d_P") - (node (ref J1) (pin A6)) - (node (ref J1) (pin B6)) - (node (ref U26) (pin 14)) - (node (ref U27) (pin 2))) -(net (code 15) (name "usb_chain_0.d_N") - (node (ref J1) (pin A7)) - (node (ref J1) (pin B7)) - (node (ref U26) (pin 13)) - (node (ref U27) (pin 1))) -(net (code 16) (name "usb.pwr") +(net (code 14) (name "usb.pwr") (node (ref J1) (pin A4)) (node (ref J1) (pin A9)) (node (ref J1) (pin B4)) (node (ref J1) (pin B9)) (node (ref F1) (pin 1))) +(net (code 15) (name "usb.usb.dp") + (node (ref J1) (pin A6)) + (node (ref J1) (pin B6)) + (node (ref U1) (pin 2)) + (node (ref U27) (pin 14))) +(net (code 16) (name "usb.usb.dm") + (node (ref J1) (pin A7)) + (node (ref J1) (pin B7)) + (node (ref U1) (pin 1)) + (node (ref U27) (pin 13))) (net (code 17) (name "usb.cc.cc1") (node (ref J1) (pin A5)) - (node (ref U25) (pin 10)) - (node (ref U25) (pin 11))) + (node (ref U26) (pin 10)) + (node (ref U26) (pin 11))) (net (code 18) (name "usb.cc.cc2") (node (ref J1) (pin B5)) - (node (ref U25) (pin 1)) - (node (ref U25) (pin 14))) + (node (ref U26) (pin 1)) + (node (ref U26) (pin 14))) (net (code 19) (name "vusb_sense.i2c.scl") - (node (ref U1) (pin 5)) - (node (ref U5) (pin 5)) - (node (ref U25) (pin 6)) - (node (ref U26) (pin 8)) + (node (ref U2) (pin 5)) + (node (ref U6) (pin 5)) + (node (ref U26) (pin 6)) + (node (ref U27) (pin 8)) (node (ref TP10) (pin 1)) (node (ref R68) (pin 2)) (node (ref J5) (pin 12)) @@ -4324,10 +4324,10 @@ (node (ref U34) (pin 14)) (node (ref U37) (pin 2))) (net (code 20) (name "vusb_sense.i2c.sda") - (node (ref U1) (pin 6)) - (node (ref U5) (pin 6)) - (node (ref U25) (pin 7)) + (node (ref U2) (pin 6)) + (node (ref U6) (pin 6)) (node (ref U26) (pin 7)) + (node (ref U27) (pin 7)) (node (ref TP11) (pin 1)) (node (ref R69) (pin 2)) (node (ref J5) (pin 10)) @@ -4338,7 +4338,7 @@ (node (ref U34) (pin 15)) (node (ref U37) (pin 3))) (net (code 21) (name "vusb_sense.sense_pwr_in") - (node (ref U1) (pin 1)) + (node (ref U2) (pin 1)) (node (ref R1) (pin 1)) (node (ref FB1) (pin 2)) (node (ref D1) (pin 1))) @@ -4359,59 +4359,59 @@ (node (ref R3) (pin 2)) (node (ref Q2) (pin 3))) (net (code 26) (name "reg_v5.ic.sw") - (node (ref U2) (pin 2)) + (node (ref U3) (pin 2)) (node (ref C6) (pin 2)) (node (ref L1) (pin 1))) (net (code 27) (name "reg_v5.ic.fb") - (node (ref U2) (pin 4)) + (node (ref U3) (pin 4)) (node (ref R4) (pin 2)) (node (ref R5) (pin 1))) (net (code 28) (name "reg_v5.ic.boot") - (node (ref U2) (pin 6)) + (node (ref U3) (pin 6)) (node (ref C6) (pin 1))) (net (code 29) (name "reg_v5.ic.en") - (node (ref U2) (pin 5)) + (node (ref U3) (pin 5)) (node (ref R6) (pin 2))) (net (code 30) (name "reg_3v3.ic.sw") - (node (ref U3) (pin 2)) + (node (ref U4) (pin 2)) (node (ref C10) (pin 2)) (node (ref L2) (pin 1))) (net (code 31) (name "reg_3v3.ic.fb") - (node (ref U3) (pin 4)) + (node (ref U4) (pin 4)) (node (ref R7) (pin 2)) (node (ref R8) (pin 1))) (net (code 32) (name "reg_3v3.ic.boot") - (node (ref U3) (pin 6)) + (node (ref U4) (pin 6)) (node (ref C10) (pin 1))) (net (code 33) (name "reg_3v3.ic.en") - (node (ref U3) (pin 5)) + (node (ref U4) (pin 5)) (node (ref R9) (pin 2))) (net (code 34) (name "reg_v12.ic.sw") - (node (ref U4) (pin 1)) + (node (ref U5) (pin 1)) (node (ref L3) (pin 2)) (node (ref D3) (pin 2))) (net (code 35) (name "reg_v12.ic.fb") - (node (ref U4) (pin 3)) + (node (ref U5) (pin 3)) (node (ref R10) (pin 2)) (node (ref R11) (pin 1)) (node (ref C16) (pin 1))) (net (code 36) (name "conv.reset") - (node (ref U6) (pin 3)) (node (ref U7) (pin 3)) + (node (ref U8) (pin 3)) (node (ref U29) (pin 7)) (node (ref U31) (pin 6)) (node (ref U31) (pin 7))) (net (code 37) (name "conv.buck_pwm") - (node (ref U6) (pin 2)) + (node (ref U7) (pin 2)) (node (ref R73) (pin 2)) (node (ref C79) (pin 1))) (net (code 38) (name "conv.boost_pwm") - (node (ref U7) (pin 2)) + (node (ref U8) (pin 2)) (node (ref R74) (pin 2)) (node (ref C80) (pin 1))) (net (code 39) (name "conv.l1") (node (ref L4) (pin 1)) - (node (ref U6) (pin 7)) + (node (ref U7) (pin 7)) (node (ref C34) (pin 2)) (node (ref Q3) (pin 5)) (node (ref Q4) (pin 1)) @@ -4419,20 +4419,20 @@ (node (ref Q4) (pin 3))) (net (code 40) (name "conv.l2") (node (ref L4) (pin 2)) - (node (ref U7) (pin 7)) + (node (ref U8) (pin 7)) (node (ref C36) (pin 2)) (node (ref Q5) (pin 5)) (node (ref Q6) (pin 1)) (node (ref Q6) (pin 2)) (node (ref Q6) (pin 3))) (net (code 41) (name "conv.buck_sw.driver.low_out") - (node (ref U6) (pin 5)) + (node (ref U7) (pin 5)) (node (ref R13) (pin 1))) (net (code 42) (name "conv.buck_sw.driver.high_out") - (node (ref U6) (pin 8)) + (node (ref U7) (pin 8)) (node (ref R14) (pin 1))) (net (code 43) (name "conv.buck_sw.driver.ic.bst") - (node (ref U6) (pin 1)) + (node (ref U7) (pin 1)) (node (ref C34) (pin 1)) (node (ref D4) (pin 1))) (net (code 44) (name "conv.buck_sw.low_fet.gate") @@ -4442,13 +4442,13 @@ (node (ref Q4) (pin 4)) (node (ref R14) (pin 2))) (net (code 46) (name "conv.boost_sw.driver.low_out") - (node (ref U7) (pin 5)) + (node (ref U8) (pin 5)) (node (ref R15) (pin 1))) (net (code 47) (name "conv.boost_sw.driver.high_out") - (node (ref U7) (pin 8)) + (node (ref U8) (pin 8)) (node (ref R16) (pin 1))) (net (code 48) (name "conv.boost_sw.driver.ic.bst") - (node (ref U7) (pin 1)) + (node (ref U8) (pin 1)) (node (ref C36) (pin 1)) (node (ref D5) (pin 1))) (net (code 49) (name "conv.boost_sw.low_fet.gate") @@ -4466,23 +4466,23 @@ (node (ref U40) (pin 1)) (node (ref U40) (pin 2))) (net (code 53) (name "reg_vcontrol.ic.sw") - (node (ref U10) (pin 1)) + (node (ref U11) (pin 1)) (node (ref L5) (pin 2)) (node (ref D7) (pin 2))) (net (code 54) (name "reg_vcontrol.ic.fb") - (node (ref U10) (pin 3)) + (node (ref U11) (pin 3)) (node (ref R20) (pin 2)) (node (ref R21) (pin 1)) (node (ref C43) (pin 1))) (net (code 55) (name "filt_vcontroln.pwr_out") (node (ref FB2) (pin 2)) - (node (ref U11) (pin 4)) - (node (ref U11) (pin 5))) + (node (ref U12) (pin 4)) + (node (ref U12) (pin 5))) (net (code 56) (name "reg_vcontroln.ic.capn") - (node (ref U11) (pin 3)) + (node (ref U12) (pin 3)) (node (ref C44) (pin 2))) (net (code 57) (name "reg_vcontroln.ic.capp") - (node (ref U11) (pin 6)) + (node (ref U12) (pin 6)) (node (ref C44) (pin 1))) (net (code 58) (name "control.control_voltage") (node (ref R26) (pin 1)) @@ -4501,26 +4501,26 @@ (node (ref U37) (pin 7)) (node (ref C98) (pin 1))) (net (code 62) (name "control.high_gate_ctl") - (node (ref U15) (pin 3)) + (node (ref U16) (pin 3)) (node (ref U29) (pin 11))) (net (code 63) (name "control.low_gate_ctl") - (node (ref U16) (pin 3)) + (node (ref U17) (pin 3)) (node (ref U29) (pin 12))) (net (code 64) (name "control.out") (node (ref R36) (pin 1)) - (node (ref U18) (pin 6)) - (node (ref U20) (pin 4)) - (node (ref U22) (pin 4)) + (node (ref U19) (pin 6)) + (node (ref U21) (pin 4)) + (node (ref U23) (pin 4)) (node (ref R64) (pin 1)) (node (ref D12) (pin 1)) (node (ref J14) (pin 1)) (node (ref J15) (pin 2))) (net (code 65) (name "control.limit_source") - (node (ref U12) (pin 4)) - (node (ref U26) (pin 22))) -(net (code 66) (name "control.limit_sink") (node (ref U13) (pin 4)) - (node (ref U26) (pin 23))) + (node (ref U27) (pin 22))) +(net (code 66) (name "control.limit_sink") + (node (ref U14) (pin 4)) + (node (ref U27) (pin 23))) (net (code 67) (name "control.tp_int") (node (ref C52) (pin 1)) (node (ref C53) (pin 1)) @@ -4549,7 +4549,7 @@ (node (ref J12) (pin 1)) (node (ref R92) (pin 1))) (net (code 72) (name "control.int_link") - (node (ref U14) (pin 4)) + (node (ref U15) (pin 4)) (node (ref R34) (pin 1)) (node (ref J2) (pin 1))) (net (code 73) (name "control.int.c1.neg") @@ -4568,18 +4568,18 @@ (net (code 75) (name "control.driver.clamp1.anode") (node (ref D10) (pin 2)) (node (ref R48) (pin 2)) - (node (ref U15) (pin 1)) - (node (ref U16) (pin 1))) + (node (ref U16) (pin 1)) + (node (ref U17) (pin 1))) (net (code 76) (name "control.driver.clamp1.cathode") (node (ref D10) (pin 1)) (node (ref D11) (pin 1))) (net (code 77) (name "control.driver.high_fet.gate") (node (ref Q7) (pin 1)) - (node (ref U15) (pin 6)) + (node (ref U16) (pin 6)) (node (ref R49) (pin 1))) (net (code 78) (name "control.driver.low_fet.gate") (node (ref Q8) (pin 1)) - (node (ref U16) (pin 6)) + (node (ref U17) (pin 6)) (node (ref R50) (pin 1))) (net (code 79) (name "control.driver.res.res[0].b") (node (ref R39) (pin 2)) @@ -4612,58 +4612,58 @@ (node (ref R51) (pin 2)) (node (ref R52) (pin 1)) (node (ref C59) (pin 1)) - (node (ref U23) (pin 4))) + (node (ref U24) (pin 4))) (net (code 89) (name "control.isense.sense_out") - (node (ref U17) (pin 6)) - (node (ref U19) (pin 6)) - (node (ref U21) (pin 6)) + (node (ref U18) (pin 6)) + (node (ref U20) (pin 6)) + (node (ref U22) (pin 6)) (node (ref R60) (pin 1))) (net (code 90) (name "control.isense.ranges[0].isense.pwr_out") (node (ref R53) (pin 2)) - (node (ref U17) (pin 1)) - (node (ref U18) (pin 4))) + (node (ref U18) (pin 1)) + (node (ref U19) (pin 4))) (net (code 91) (name "control.isense.ranges[0].pwr_sw.ic.ledk") - (node (ref U18) (pin 2)) + (node (ref U19) (pin 2)) (node (ref R54) (pin 1))) (net (code 92) (name "control.isense.ranges[1].isense.pwr_out") (node (ref R55) (pin 2)) - (node (ref U19) (pin 1)) - (node (ref U20) (pin 3))) + (node (ref U20) (pin 1)) + (node (ref U21) (pin 3))) (net (code 93) (name "control.isense.ranges[1].pwr_sw.ic.ledk") - (node (ref U20) (pin 2)) + (node (ref U21) (pin 2)) (node (ref R56) (pin 1))) (net (code 94) (name "control.isense.ranges[2].isense.pwr_out") (node (ref R57) (pin 2)) - (node (ref U21) (pin 1)) - (node (ref U22) (pin 3))) + (node (ref U22) (pin 1)) + (node (ref U23) (pin 3))) (net (code 95) (name "control.isense.ranges[2].pwr_sw.ic.ledk") - (node (ref U22) (pin 2)) + (node (ref U23) (pin 2)) (node (ref R58) (pin 1))) (net (code 96) (name "control.ifilt.outn") (node (ref R60) (pin 2)) (node (ref C63) (pin 2)) - (node (ref U24) (pin 1))) + (node (ref U25) (pin 1))) (net (code 97) (name "control.ifilt.outp") (node (ref R59) (pin 2)) (node (ref C63) (pin 1)) - (node (ref U24) (pin 4))) + (node (ref U25) (pin 4))) (net (code 98) (name "control.vmeas.output") - (node (ref U23) (pin 7)) + (node (ref U24) (pin 7)) (node (ref Q9) (pin 2))) (net (code 99) (name "control.vmeas.ic.rg2") - (node (ref U23) (pin 2)) + (node (ref U24) (pin 2)) (node (ref R61) (pin 1))) (net (code 100) (name "control.vmeas.ic.rg3") - (node (ref U23) (pin 3)) + (node (ref U24) (pin 3)) (node (ref R61) (pin 2))) (net (code 101) (name "control.imeas.output") - (node (ref U24) (pin 7)) + (node (ref U25) (pin 7)) (node (ref Q11) (pin 2))) (net (code 102) (name "control.imeas.ic.rg2") - (node (ref U24) (pin 2)) + (node (ref U25) (pin 2)) (node (ref R62) (pin 1))) (net (code 103) (name "control.imeas.ic.rg3") - (node (ref U24) (pin 3)) + (node (ref U25) (pin 3)) (node (ref R62) (pin 2))) (net (code 104) (name "control.vclamp.r.a") (node (ref Q9) (pin 1)) @@ -4688,25 +4688,25 @@ (node (ref D12) (pin 2)) (node (ref D13) (pin 2))) (net (code 110) (name "pd.int") - (node (ref U25) (pin 5)) - (node (ref U26) (pin 9))) + (node (ref U26) (pin 5)) + (node (ref U27) (pin 9))) (net (code 111) (name "pd.ic.vconn") - (node (ref U25) (pin 12)) - (node (ref U25) (pin 13))) + (node (ref U26) (pin 12)) + (node (ref U26) (pin 13))) (net (code 112) (name "mcu.program_uart_node.a_tx") (node (ref J4) (pin 4)) - (node (ref U26) (pin 36))) + (node (ref U27) (pin 36))) (net (code 113) (name "mcu.program_uart_node.b_tx") (node (ref J4) (pin 3)) - (node (ref U26) (pin 37))) + (node (ref U27) (pin 37))) (net (code 114) (name "mcu.program_en_node") (node (ref J4) (pin 6)) - (node (ref U26) (pin 3)) + (node (ref U27) (pin 3)) (node (ref R66) (pin 2)) (node (ref C71) (pin 1))) (net (code 115) (name "mcu.program_boot_node") (node (ref J4) (pin 2)) - (node (ref U26) (pin 27)) + (node (ref U27) (pin 27)) (node (ref R67) (pin 2))) (net (code 116) (name "led.package.k") (node (ref D14) (pin 1)) @@ -4722,13 +4722,13 @@ (node (ref J5) (pin 3)) (node (ref C72) (pin 1))) (net (code 120) (name "ioe_ctl.io.off_0") - (node (ref U14) (pin 6)) + (node (ref U15) (pin 6)) (node (ref U29) (pin 9))) (net (code 121) (name "buck_rc.input") - (node (ref U26) (pin 10)) + (node (ref U27) (pin 10)) (node (ref R73) (pin 1))) (net (code 122) (name "boost_rc.input") - (node (ref U26) (pin 11)) + (node (ref U27) (pin 11)) (node (ref R74) (pin 1))) (net (code 123) (name "conv_ovp.output") (node (ref U30) (pin 4)) @@ -4754,29 +4754,29 @@ (net (code 129) (name "conv_temp.alert") (node (ref U33) (pin 3))) (net (code 130) (name "conv_sense.output") - (node (ref U26) (pin 12)) + (node (ref U27) (pin 12)) (node (ref R81) (pin 2)) (node (ref R82) (pin 1))) (net (code 131) (name "ioe_ui.io.irange_0") - (node (ref U17) (pin 3)) - (node (ref U18) (pin 1)) + (node (ref U18) (pin 3)) + (node (ref U19) (pin 1)) (node (ref U34) (pin 11))) (net (code 132) (name "ioe_ui.io.irange_1") - (node (ref U19) (pin 3)) - (node (ref U20) (pin 1)) + (node (ref U20) (pin 3)) + (node (ref U21) (pin 1)) (node (ref U34) (pin 9))) (net (code 133) (name "ioe_ui.io.irange_2") - (node (ref U21) (pin 3)) - (node (ref U22) (pin 1)) + (node (ref U22) (pin 3)) + (node (ref U23) (pin 1)) (node (ref U34) (pin 10))) (net (code 134) (name "enc.a") - (node (ref U26) (pin 35)) + (node (ref U27) (pin 35)) (node (ref SW1) (pin A))) (net (code 135) (name "enc.b") - (node (ref U26) (pin 34)) + (node (ref U27) (pin 34)) (node (ref SW1) (pin B))) (net (code 136) (name "enc.sw") - (node (ref U26) (pin 33)) + (node (ref U27) (pin 33)) (node (ref SW1) (pin S1))) (net (code 137) (name "dir.a") (node (ref U34) (pin 4)) @@ -4794,11 +4794,11 @@ (node (ref U34) (pin 5)) (node (ref SW2) (pin 2))) (net (code 142) (name "qwiic_pull.i2c.scl") - (node (ref U26) (pin 39)) + (node (ref U27) (pin 39)) (node (ref R83) (pin 2)) (node (ref J6) (pin 4))) (net (code 143) (name "qwiic_pull.i2c.sda") - (node (ref U26) (pin 38)) + (node (ref U27) (pin 38)) (node (ref R84) (pin 2)) (node (ref J6) (pin 3))) (net (code 144) (name "dutio.io0") @@ -4808,16 +4808,16 @@ (node (ref J7) (pin 3)) (node (ref R86) (pin 1))) (net (code 146) (name "dut0_clamp.signal_out") - (node (ref U26) (pin 24)) + (node (ref U27) (pin 24)) (node (ref R85) (pin 2))) (net (code 147) (name "dut1_clamp.signal_out") - (node (ref U26) (pin 25)) + (node (ref U27) (pin 25)) (node (ref R86) (pin 2))) (net (code 148) (name "touch_duck.pad") - (node (ref U26) (pin 21)) + (node (ref U27) (pin 21)) (node (ref U35) (pin 1))) (net (code 149) (name "rgbs.din") - (node (ref U26) (pin 31)) + (node (ref U27) (pin 31)) (node (ref D15) (pin 3))) (net (code 150) (name "rgbs.dout") (node (ref D20) (pin 1))) @@ -4837,7 +4837,7 @@ (node (ref D19) (pin 1)) (node (ref D20) (pin 3))) (net (code 156) (name "fan_drv.control") - (node (ref U26) (pin 32)) + (node (ref U27) (pin 32)) (node (ref Q13) (pin 1))) (net (code 157) (name "fan_drv.output") (node (ref Q14) (pin 3)) @@ -4847,13 +4847,13 @@ (node (ref R87) (pin 2)) (node (ref Q14) (pin 1))) (net (code 159) (name "spk_drv.i2s.sck") - (node (ref U26) (pin 5)) + (node (ref U27) (pin 5)) (node (ref U36) (pin 16))) (net (code 160) (name "spk_drv.i2s.ws") - (node (ref U26) (pin 6)) + (node (ref U27) (pin 6)) (node (ref U36) (pin 14))) (net (code 161) (name "spk_drv.i2s.sd") - (node (ref U26) (pin 4)) + (node (ref U27) (pin 4)) (node (ref U36) (pin 1))) (net (code 162) (name "spk_drv.out.a") (node (ref U36) (pin 9)) @@ -4870,7 +4870,7 @@ (net (code 165) (name "dac.rdy") (node (ref U37) (pin 5))) (net (code 166) (name "adc.mclkin") - (node (ref U26) (pin 20)) + (node (ref U27) (pin 20)) (node (ref U38) (pin 18))) (net (code 167) (name "adc.vins.3") (node (ref U38) (pin 8))) @@ -4883,16 +4883,16 @@ (net (code 171) (name "adc.vins.7") (node (ref U38) (pin 12))) (net (code 172) (name "adc.spi.sck") - (node (ref U26) (pin 17)) + (node (ref U27) (pin 17)) (node (ref U38) (pin 14))) (net (code 173) (name "adc.spi.mosi") - (node (ref U26) (pin 18)) + (node (ref U27) (pin 18)) (node (ref U38) (pin 15))) (net (code 174) (name "adc.spi.miso") - (node (ref U26) (pin 19)) + (node (ref U27) (pin 19)) (node (ref U38) (pin 16))) (net (code 175) (name "adc.cs") - (node (ref U26) (pin 15)) + (node (ref U27) (pin 15)) (node (ref U38) (pin 13))) (net (code 176) (name "adc.ic.avdd") (node (ref U38) (pin 1)) @@ -4933,9 +4933,9 @@ (node (ref R28) (pin 2)) (node (ref D8) (pin 1)) (node (ref D9) (pin 2)) - (node (ref U12) (pin 3)) - (node (ref U13) (pin 1)) - (node (ref U14) (pin 3)) + (node (ref U13) (pin 3)) + (node (ref U14) (pin 1)) + (node (ref U15) (pin 3)) (node (ref U40) (pin 6)) (node (ref U41) (pin 2)) (node (ref U41) (pin 6))) @@ -4954,11 +4954,11 @@ (node (ref U41) (pin 5))) (net (code 188) (name "ci_amps.out.0") (node (ref D9) (pin 1)) - (node (ref U13) (pin 3)) + (node (ref U14) (pin 3)) (node (ref U41) (pin 1))) (net (code 189) (name "ci_amps.out.1") (node (ref D8) (pin 2)) - (node (ref U12) (pin 1)) + (node (ref U13) (pin 1)) (node (ref U41) (pin 7))) (net (code 190) (name "cintref_amps.inp.1") (node (ref R23) (pin 2)) @@ -4975,6 +4975,6 @@ (node (ref U42) (pin 6))) (net (code 193) (name "cintref_amps.out.1") (node (ref R24) (pin 1)) - (node (ref U14) (pin 1)) + (node (ref U15) (pin 1)) (node (ref U42) (pin 7)))) ) \ No newline at end of file diff --git a/examples/UsbSourceMeasure/UsbSourceMeasure.svgpcb.js b/examples/UsbSourceMeasure/UsbSourceMeasure.svgpcb.js index e4446fe07..220843cd4 100644 --- a/examples/UsbSourceMeasure/UsbSourceMeasure.svgpcb.js +++ b/examples/UsbSourceMeasure/UsbSourceMeasure.svgpcb.js @@ -2,33 +2,38 @@ const board = new PCB(); // jlc_th.th1 const H1 = board.add(JlcToolingHole_1_152mm, { - translate: pt(0.894, 5.267), rotate: 0, + translate: pt(6.555, 4.958), rotate: 0, id: 'H1' }) // jlc_th.th2 const H2 = board.add(JlcToolingHole_1_152mm, { - translate: pt(0.934, 5.267), rotate: 0, + translate: pt(6.594, 4.958), rotate: 0, id: 'H2' }) // jlc_th.th3 const H3 = board.add(JlcToolingHole_1_152mm, { - translate: pt(0.894, 5.307), rotate: 0, + translate: pt(6.555, 4.997), rotate: 0, id: 'H3' }) // usb.conn const J1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(1.403, 4.263), rotate: 0, + translate: pt(6.041, 1.929), rotate: 0, id: 'J1' }) +// usb.esd +const U1 = board.add(SOT_23, { + translate: pt(5.907, 2.222), rotate: 0, + id: 'U1' +}) // tp_gnd.tp const TP1 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(3.429, 5.032), rotate: 0, + translate: pt(2.490, 4.995), rotate: 0, id: 'TP1' }) // vusb_sense.ic -const U1 = board.add(SOT_23_8, { +const U2 = board.add(SOT_23_8, { translate: pt(0.679, 4.166), rotate: 0, - id: 'U1' + id: 'U2' }) // vusb_sense.Rs.res.res const R1 = board.add(R_1206_3216Metric, { @@ -42,17 +47,17 @@ const C1 = board.add(C_0603_1608Metric, { }) // fuse_vusb.fuse const F1 = board.add(Fuseholder_Littelfuse_Nano2_154x, { - translate: pt(1.792, 4.706), rotate: 0, + translate: pt(0.879, 4.706), rotate: 0, id: 'F1' }) // filt_vusb.fb const FB1 = board.add(L_1206_3216Metric, { - translate: pt(3.152, 5.042), rotate: 0, + translate: pt(2.213, 5.005), rotate: 0, id: 'FB1' }) // prot_vusb.diode const D1 = board.add(D_SMA, { - translate: pt(2.015, 5.064), rotate: 0, + translate: pt(1.077, 5.027), rotate: 0, id: 'D1' }) // ramp.drv @@ -87,18 +92,18 @@ const Q2 = board.add(SOT_23, { }) // cap_conv.cap const C4 = board.add(CP_Elec_6_3x7_7, { - translate: pt(0.185, 4.737), rotate: 0, + translate: pt(6.243, 4.239), rotate: 0, id: 'C4' }) // tp_vusb.tp const TP2 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(3.679, 5.032), rotate: 0, + translate: pt(2.741, 4.995), rotate: 0, id: 'TP2' }) // reg_v5.ic -const U2 = board.add(SOT_23_6, { +const U3 = board.add(SOT_23_6, { translate: pt(4.767, 3.556), rotate: 0, - id: 'U2' + id: 'U3' }) // reg_v5.fb.div.top_res const R4 = board.add(R_0603_1608Metric, { @@ -142,13 +147,13 @@ const R6 = board.add(R_0603_1608Metric, { }) // tp_v5.tp const TP3 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(3.930, 5.032), rotate: 0, + translate: pt(2.991, 4.995), rotate: 0, id: 'TP3' }) // reg_3v3.ic -const U3 = board.add(SOT_23_6, { +const U4 = board.add(SOT_23_6, { translate: pt(5.470, 1.831), rotate: 0, - id: 'U3' + id: 'U4' }) // reg_3v3.fb.div.top_res const R7 = board.add(R_0603_1608Metric, { @@ -197,18 +202,18 @@ const R9 = board.add(R_0603_1608Metric, { }) // prot_3v3.diode const D2 = board.add(D_SMA, { - translate: pt(2.409, 5.064), rotate: 0, + translate: pt(1.471, 5.027), rotate: 0, id: 'D2' }) // tp_3v3.tp const TP4 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(4.180, 5.032), rotate: 0, + translate: pt(3.241, 4.995), rotate: 0, id: 'TP4' }) // reg_v12.ic -const U4 = board.add(SOT_23_5, { +const U5 = board.add(SOT_23_5, { translate: pt(3.485, 3.556), rotate: 0, - id: 'U4' + id: 'U5' }) // reg_v12.fb.div.top_res const R10 = board.add(R_0603_1608Metric, { @@ -246,9 +251,9 @@ const D3 = board.add(D_SMC, { id: 'D3' }) // convin_sense.ic -const U5 = board.add(SOT_23_8, { +const U6 = board.add(SOT_23_8, { translate: pt(0.977, 4.166), rotate: 0, - id: 'U5' + id: 'U6' }) // convin_sense.Rs.res.res const R12 = board.add(R_1206_3216Metric, { @@ -341,9 +346,9 @@ const C32 = board.add(C_1206_3216Metric, { id: 'C32' }) // conv.buck_sw.driver.ic -const U6 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { +const U7 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { translate: pt(3.863, 2.422), rotate: 0, - id: 'U6' + id: 'U7' }) // conv.buck_sw.driver.cap.cap const C33 = board.add(C_0603_1608Metric, { @@ -381,9 +386,9 @@ const R14 = board.add(R_0603_1608Metric, { id: 'R14' }) // conv.boost_sw.driver.ic -const U7 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { +const U8 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { translate: pt(2.603, 2.678), rotate: 0, - id: 'U7' + id: 'U8' }) // conv.boost_sw.driver.cap.cap const C35 = board.add(C_0603_1608Metric, { @@ -422,18 +427,18 @@ const R16 = board.add(R_0603_1608Metric, { }) // prot_conv.diode const D6 = board.add(D_SMA, { - translate: pt(2.804, 5.064), rotate: 0, + translate: pt(1.865, 5.027), rotate: 0, id: 'D6' }) // tp_conv.tp const TP5 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(4.430, 5.032), rotate: 0, + translate: pt(3.492, 4.995), rotate: 0, id: 'TP5' }) // reg_analog.ic -const U8 = board.add(SOT_23_5, { +const U9 = board.add(SOT_23_5, { translate: pt(0.380, 4.166), rotate: 0, - id: 'U8' + id: 'U9' }) // reg_analog.in_cap.cap const C37 = board.add(C_0603_1608Metric, { @@ -447,48 +452,48 @@ const C38 = board.add(C_1206_3216Metric, { }) // tp_analog.tp const TP6 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(4.681, 5.032), rotate: 0, + translate: pt(3.742, 4.995), rotate: 0, id: 'TP6' }) // reg_vref.ic -const U9 = board.add(SOT_23, { - translate: pt(1.380, 4.664), rotate: 0, - id: 'U9' +const U10 = board.add(SOT_23, { + translate: pt(0.466, 4.664), rotate: 0, + id: 'U10' }) // reg_vref.in_cap.cap const C39 = board.add(C_0603_1608Metric, { - translate: pt(1.362, 4.799), rotate: 0, + translate: pt(0.449, 4.799), rotate: 0, id: 'C39' }) // tp_vref.tp const TP7 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(4.931, 5.032), rotate: 0, + translate: pt(3.993, 4.995), rotate: 0, id: 'TP7' }) // ref_div.div.top_res const R17 = board.add(R_0603_1608Metric, { - translate: pt(6.179, 4.626), rotate: 0, + translate: pt(5.266, 4.626), rotate: 0, id: 'R17' }) // ref_div.div.bottom_res const R18 = board.add(R_0603_1608Metric, { - translate: pt(6.179, 4.723), rotate: 0, + translate: pt(5.266, 4.723), rotate: 0, id: 'R18' }) // ref_rc.rc.r const R19 = board.add(R_0603_1608Metric, { - translate: pt(6.414, 4.626), rotate: 0, + translate: pt(5.501, 4.626), rotate: 0, id: 'R19' }) // ref_rc.rc.c const C40 = board.add(C_0603_1608Metric, { - translate: pt(6.414, 4.723), rotate: 0, + translate: pt(5.501, 4.723), rotate: 0, id: 'C40' }) // reg_vcontrol.ic -const U10 = board.add(SOT_23_5, { +const U11 = board.add(SOT_23_5, { translate: pt(4.209, 3.556), rotate: 0, - id: 'U10' + id: 'U11' }) // reg_vcontrol.fb.div.top_res const R20 = board.add(R_0603_1608Metric, { @@ -527,18 +532,18 @@ const D7 = board.add(D_SMC, { }) // tp_vcontrol.tp const TP8 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(5.181, 5.032), rotate: 0, + translate: pt(4.243, 4.995), rotate: 0, id: 'TP8' }) // filt_vcontroln.fb const FB2 = board.add(L_0603_1608Metric, { - translate: pt(5.674, 5.024), rotate: 0, + translate: pt(4.736, 4.987), rotate: 0, id: 'FB2' }) // reg_vcontroln.ic -const U11 = board.add(SOT_23_6, { +const U12 = board.add(SOT_23_6, { translate: pt(0.081, 4.166), rotate: 0, - id: 'U11' + id: 'U12' }) // reg_vcontroln.cf const C44 = board.add(C_0805_2012Metric, { @@ -552,7 +557,7 @@ const C45 = board.add(C_1206_3216Metric, { }) // tp_vcontroln.tp const TP9 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(5.432, 5.032), rotate: 0, + translate: pt(4.493, 4.995), rotate: 0, id: 'TP9' }) // control.dmeas.r1 @@ -641,9 +646,9 @@ const C48 = board.add(C_0603_1608Metric, { id: 'C48' }) // control.comp_source.ic -const U12 = board.add(SOT_353_SC_70_5, { +const U13 = board.add(SOT_353_SC_70_5, { translate: pt(0.635, 2.885), rotate: 0, - id: 'U12' + id: 'U13' }) // control.comp_source.vdd_cap.cap const C49 = board.add(C_0603_1608Metric, { @@ -651,9 +656,9 @@ const C49 = board.add(C_0603_1608Metric, { id: 'C49' }) // control.comp_sink.ic -const U13 = board.add(SOT_353_SC_70_5, { +const U14 = board.add(SOT_353_SC_70_5, { translate: pt(0.800, 2.885), rotate: 0, - id: 'U13' + id: 'U14' }) // control.comp_sink.vdd_cap.cap const C50 = board.add(C_0603_1608Metric, { @@ -661,9 +666,9 @@ const C50 = board.add(C_0603_1608Metric, { id: 'C50' }) // control.off_sw.device.ic -const U14 = board.add(SOT_363_SC_70_6, { +const U15 = board.add(SOT_363_SC_70_6, { translate: pt(0.965, 2.885), rotate: 0, - id: 'U14' + id: 'U15' }) // control.off_sw.device.vdd_cap.cap const C51 = board.add(C_0603_1608Metric, { @@ -776,9 +781,9 @@ const R48 = board.add(R_0603_1608Metric, { id: 'R48' }) // control.driver.high_gate.device.ic -const U15 = board.add(SOT_23_6, { +const U16 = board.add(SOT_23_6, { translate: pt(1.097, 2.696), rotate: 0, - id: 'U15' + id: 'U16' }) // control.driver.high_gate.device.vdd_cap.cap const C54 = board.add(C_0805_2012Metric, { @@ -786,9 +791,9 @@ const C54 = board.add(C_0805_2012Metric, { id: 'C54' }) // control.driver.low_gate.device.ic -const U16 = board.add(SOT_23_6, { +const U17 = board.add(SOT_23_6, { translate: pt(1.298, 2.696), rotate: 0, - id: 'U16' + id: 'U17' }) // control.driver.low_gate.device.vdd_cap.cap const C55 = board.add(C_0805_2012Metric, { @@ -841,9 +846,9 @@ const R53 = board.add(R_1206_3216Metric, { id: 'R53' }) // control.isense.ranges[0].sense_sw.device.ic -const U17 = board.add(SOT_23_6, { +const U18 = board.add(SOT_23_6, { translate: pt(1.499, 2.696), rotate: 0, - id: 'U17' + id: 'U18' }) // control.isense.ranges[0].sense_sw.device.vdd_cap.cap const C60 = board.add(C_0805_2012Metric, { @@ -851,9 +856,9 @@ const C60 = board.add(C_0805_2012Metric, { id: 'C60' }) // control.isense.ranges[0].pwr_sw.ic -const U18 = board.add(SMDIP_6_W7_62mm, { +const U19 = board.add(SMDIP_6_W7_62mm, { translate: pt(1.106, 1.926), rotate: 0, - id: 'U18' + id: 'U19' }) // control.isense.ranges[0].pwr_sw.res const R54 = board.add(R_0603_1608Metric, { @@ -866,9 +871,9 @@ const R55 = board.add(R_0603_1608Metric, { id: 'R55' }) // control.isense.ranges[1].sense_sw.device.ic -const U19 = board.add(SOT_23_6, { +const U20 = board.add(SOT_23_6, { translate: pt(1.700, 2.696), rotate: 0, - id: 'U19' + id: 'U20' }) // control.isense.ranges[1].sense_sw.device.vdd_cap.cap const C61 = board.add(C_0805_2012Metric, { @@ -876,9 +881,9 @@ const C61 = board.add(C_0805_2012Metric, { id: 'C61' }) // control.isense.ranges[1].pwr_sw.ic -const U20 = board.add(SO_4_4_4x3_6mm_P2_54mm, { +const U21 = board.add(SO_4_4_4x3_6mm_P2_54mm, { translate: pt(2.166, 2.207), rotate: 0, - id: 'U20' + id: 'U21' }) // control.isense.ranges[1].pwr_sw.res const R56 = board.add(R_0603_1608Metric, { @@ -891,9 +896,9 @@ const R57 = board.add(R_0603_1608Metric, { id: 'R57' }) // control.isense.ranges[2].sense_sw.device.ic -const U21 = board.add(SOT_23_6, { +const U22 = board.add(SOT_23_6, { translate: pt(1.900, 2.696), rotate: 0, - id: 'U21' + id: 'U22' }) // control.isense.ranges[2].sense_sw.device.vdd_cap.cap const C62 = board.add(C_0805_2012Metric, { @@ -901,9 +906,9 @@ const C62 = board.add(C_0805_2012Metric, { id: 'C62' }) // control.isense.ranges[2].pwr_sw.ic -const U22 = board.add(SO_4_4_4x3_6mm_P2_54mm, { +const U23 = board.add(SO_4_4_4x3_6mm_P2_54mm, { translate: pt(0.173, 2.709), rotate: 0, - id: 'U22' + id: 'U23' }) // control.isense.ranges[2].pwr_sw.res const R58 = board.add(R_0603_1608Metric, { @@ -926,9 +931,9 @@ const C63 = board.add(C_0603_1608Metric, { id: 'C63' }) // control.vmeas.ic -const U23 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { +const U24 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { translate: pt(1.477, 2.233), rotate: 0, - id: 'U23' + id: 'U24' }) // control.vmeas.vdd_cap.cap const C64 = board.add(C_0805_2012Metric, { @@ -941,9 +946,9 @@ const R61 = board.add(R_0603_1608Metric, { id: 'R61' }) // control.imeas.ic -const U24 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { +const U25 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { translate: pt(1.807, 2.233), rotate: 0, - id: 'U24' + id: 'U25' }) // control.imeas.vdd_cap.cap const C65 = board.add(C_0805_2012Metric, { @@ -1007,27 +1012,27 @@ const D13 = board.add(D_SMA, { }) // tp_err.conn const J2 = board.add(U_FL_Hirose_U_FL_R_SMT_1_Vertical, { - translate: pt(2.988, 4.696), rotate: 0, + translate: pt(2.075, 4.696), rotate: 0, id: 'J2' }) // tp_int.conn const J3 = board.add(U_FL_Hirose_U_FL_R_SMT_1_Vertical, { - translate: pt(3.276, 4.696), rotate: 0, + translate: pt(2.362, 4.696), rotate: 0, id: 'J3' }) // pd.ic -const U25 = board.add(WQFN_14_1EP_2_5x2_5mm_P0_5mm_EP1_45x1_45mm, { - translate: pt(0.986, 4.670), rotate: 0, - id: 'U25' +const U26 = board.add(WQFN_14_1EP_2_5x2_5mm_P0_5mm_EP1_45x1_45mm, { + translate: pt(0.073, 4.670), rotate: 0, + id: 'U26' }) // pd.vdd_cap[0].cap const C67 = board.add(C_0603_1608Metric, { - translate: pt(0.972, 4.811), rotate: 0, + translate: pt(0.058, 4.811), rotate: 0, id: 'C67' }) // pd.vdd_cap[1].cap const C68 = board.add(C_0603_1608Metric, { - translate: pt(1.128, 4.811), rotate: 0, + translate: pt(0.214, 4.811), rotate: 0, id: 'C68' }) // mcu.prog.conn @@ -1036,9 +1041,9 @@ const J4 = board.add(Tag_Connect_TC2030_IDC_NL_2x03_P1_27mm_Vertical, { id: 'J4' }) // mcu.ic -const U26 = board.add(ESP32_S3_WROOM_1, { +const U27 = board.add(ESP32_S3_WROOM_1, { translate: pt(3.504, 0.530), rotate: 0, - id: 'U26' + id: 'U27' }) // mcu.vcc_cap0.cap const C69 = board.add(C_1206_3216Metric, { @@ -1062,37 +1067,32 @@ const C71 = board.add(C_0603_1608Metric, { }) // led.package const D14 = board.add(LED_0603_1608Metric, { - translate: pt(5.945, 4.626), rotate: 0, + translate: pt(5.031, 4.626), rotate: 0, id: 'D14' }) // led.res const R67 = board.add(R_0603_1608Metric, { - translate: pt(5.944, 4.723), rotate: 0, + translate: pt(5.031, 4.723), rotate: 0, id: 'R67' }) -// usb_esd -const U27 = board.add(SOT_23, { - translate: pt(0.780, 5.334), rotate: 0, - id: 'U27' -}) // i2c_tp.tp_scl.tp const TP10 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(4.707, 4.635), rotate: 0, + translate: pt(3.794, 4.635), rotate: 0, id: 'TP10' }) // i2c_tp.tp_sda.tp const TP11 = board.add(TestPoint_TE_RCT_0805, { - translate: pt(4.707, 4.749), rotate: 0, + translate: pt(3.794, 4.749), rotate: 0, id: 'TP11' }) // i2c_pull.scl_res.res const R68 = board.add(R_0603_1608Metric, { - translate: pt(6.649, 4.626), rotate: 0, + translate: pt(5.735, 4.626), rotate: 0, id: 'R68' }) // i2c_pull.sda_res.res const R69 = board.add(R_0603_1608Metric, { - translate: pt(6.649, 4.723), rotate: 0, + translate: pt(5.735, 4.723), rotate: 0, id: 'R69' }) // oled.device.conn.conn @@ -1137,137 +1137,137 @@ const C76 = board.add(C_0805_2012Metric, { }) // oled_rc.rc.r const R71 = board.add(R_0603_1608Metric, { - translate: pt(0.058, 5.024), rotate: 0, + translate: pt(5.970, 4.626), rotate: 0, id: 'R71' }) // oled_rc.rc.c const C77 = board.add(C_0603_1608Metric, { - translate: pt(0.058, 5.120), rotate: 0, + translate: pt(5.970, 4.723), rotate: 0, id: 'C77' }) // ioe_ctl.ic const U29 = board.add(TSSOP_16_4_4x5mm_P0_65mm, { - translate: pt(3.443, 4.207), rotate: 0, + translate: pt(2.906, 4.207), rotate: 0, id: 'U29' }) // ioe_ctl.vdd_cap.cap const C78 = board.add(C_0603_1608Metric, { - translate: pt(3.349, 4.383), rotate: 0, + translate: pt(2.812, 4.383), rotate: 0, id: 'C78' }) // ramp_pull.res const R72 = board.add(R_0603_1608Metric, { - translate: pt(5.909, 5.024), rotate: 0, + translate: pt(4.970, 4.987), rotate: 0, id: 'R72' }) // buck_rc.rc.r const R73 = board.add(R_0603_1608Metric, { - translate: pt(0.293, 5.024), rotate: 0, + translate: pt(6.205, 4.626), rotate: 0, id: 'R73' }) // buck_rc.rc.c const C79 = board.add(C_0603_1608Metric, { - translate: pt(0.293, 5.120), rotate: 0, + translate: pt(6.205, 4.723), rotate: 0, id: 'C79' }) // boost_rc.rc.r const R74 = board.add(R_0603_1608Metric, { - translate: pt(0.528, 5.024), rotate: 0, + translate: pt(6.439, 4.626), rotate: 0, id: 'R74' }) // boost_rc.rc.c const C80 = board.add(C_0603_1608Metric, { - translate: pt(0.528, 5.120), rotate: 0, + translate: pt(6.439, 4.723), rotate: 0, id: 'C80' }) // conv_ovp.comp.ic const U30 = board.add(SOT_353_SC_70_5, { - translate: pt(5.850, 4.154), rotate: 0, + translate: pt(5.313, 4.154), rotate: 0, id: 'U30' }) // conv_ovp.comp.vdd_cap.cap const C81 = board.add(C_0603_1608Metric, { - translate: pt(6.011, 4.128), rotate: 0, + translate: pt(5.474, 4.128), rotate: 0, id: 'C81' }) // conv_ovp.ref_div.div.top_res const R75 = board.add(R_0603_1608Metric, { - translate: pt(5.845, 4.277), rotate: 0, + translate: pt(5.308, 4.277), rotate: 0, id: 'R75' }) // conv_ovp.ref_div.div.bottom_res const R76 = board.add(R_0603_1608Metric, { - translate: pt(6.001, 4.277), rotate: 0, + translate: pt(5.464, 4.277), rotate: 0, id: 'R76' }) // conv_ovp.comp_div.div.top_res const R77 = board.add(R_0603_1608Metric, { - translate: pt(5.845, 4.374), rotate: 0, + translate: pt(5.308, 4.374), rotate: 0, id: 'R77' }) // conv_ovp.comp_div.div.bottom_res const R78 = board.add(R_0603_1608Metric, { - translate: pt(6.001, 4.374), rotate: 0, + translate: pt(5.464, 4.374), rotate: 0, id: 'R78' }) // conv_latch.ic.ic const U31 = board.add(VSSOP_8_2_3x2mm_P0_5mm, { - translate: pt(4.434, 4.646), rotate: 0, + translate: pt(3.521, 4.646), rotate: 0, id: 'U31' }) // conv_latch.ic.vdd_cap.cap const C82 = board.add(C_0603_1608Metric, { - translate: pt(4.404, 4.764), rotate: 0, + translate: pt(3.491, 4.764), rotate: 0, id: 'C82' }) // conv_en_pull.res const R79 = board.add(R_0603_1608Metric, { - translate: pt(6.144, 5.024), rotate: 0, + translate: pt(5.205, 4.987), rotate: 0, id: 'R79' }) // comp_pull.res const R80 = board.add(R_0603_1608Metric, { - translate: pt(6.378, 5.024), rotate: 0, + translate: pt(5.440, 4.987), rotate: 0, id: 'R80' }) // pass_temp.ic const U32 = board.add(SOT_563, { - translate: pt(4.944, 4.641), rotate: 0, + translate: pt(4.031, 4.641), rotate: 0, id: 'U32' }) // pass_temp.vdd_cap.cap const C83 = board.add(C_0603_1608Metric, { - translate: pt(4.950, 4.752), rotate: 0, + translate: pt(4.036, 4.752), rotate: 0, id: 'C83' }) // conv_temp.ic const U33 = board.add(SOT_563, { - translate: pt(5.179, 4.641), rotate: 0, + translate: pt(4.266, 4.641), rotate: 0, id: 'U33' }) // conv_temp.vdd_cap.cap const C84 = board.add(C_0603_1608Metric, { - translate: pt(5.184, 4.752), rotate: 0, + translate: pt(4.271, 4.752), rotate: 0, id: 'C84' }) // conv_sense.div.top_res const R81 = board.add(R_0603_1608Metric, { - translate: pt(0.762, 5.024), rotate: 0, + translate: pt(6.674, 4.626), rotate: 0, id: 'R81' }) // conv_sense.div.bottom_res const R82 = board.add(R_0603_1608Metric, { - translate: pt(0.762, 5.120), rotate: 0, + translate: pt(6.674, 4.723), rotate: 0, id: 'R82' }) // ioe_ui.ic const U34 = board.add(TSSOP_16_4_4x5mm_P0_65mm, { - translate: pt(3.864, 4.207), rotate: 0, + translate: pt(3.327, 4.207), rotate: 0, id: 'U34' }) // ioe_ui.vdd_cap.cap const C85 = board.add(C_0603_1608Metric, { - translate: pt(3.770, 4.383), rotate: 0, + translate: pt(3.233, 4.383), rotate: 0, id: 'C85' }) // enc.package @@ -1282,37 +1282,37 @@ const SW2 = board.add(DirectionSwitch_Alps_SKRH, { }) // qwiic_pull.scl_res.res const R83 = board.add(R_0603_1608Metric, { - translate: pt(0.997, 5.024), rotate: 0, + translate: pt(0.058, 4.987), rotate: 0, id: 'R83' }) // qwiic_pull.sda_res.res const R84 = board.add(R_0603_1608Metric, { - translate: pt(0.997, 5.120), rotate: 0, + translate: pt(0.058, 5.083), rotate: 0, id: 'R84' }) // qwiic.conn const J6 = board.add(JST_SH_SM04B_SRSS_TB_1x04_1MP_P1_00mm_Horizontal, { - translate: pt(0.642, 4.726), rotate: 0, + translate: pt(6.700, 4.228), rotate: 0, id: 'J6' }) // dutio.conn const J7 = board.add(PinHeader_1x03_P2_54mm_Horizontal, { - translate: pt(1.802, 4.369), rotate: 0, + translate: pt(1.265, 4.369), rotate: 0, id: 'J7' }) // dut0_clamp.res const R85 = board.add(R_0603_1608Metric, { - translate: pt(6.613, 5.024), rotate: 0, + translate: pt(5.674, 4.987), rotate: 0, id: 'R85' }) // dut1_clamp.res const R86 = board.add(R_0603_1608Metric, { - translate: pt(0.058, 5.296), rotate: 0, + translate: pt(5.909, 4.987), rotate: 0, id: 'R86' }) // touch_duck const U35 = board.add(Symbol_DucklingSolid, { - translate: pt(1.052, 5.267), rotate: 0, + translate: pt(6.712, 4.958), rotate: 0, id: 'U35' }) // rgbs.led[0].device @@ -1377,87 +1377,87 @@ const C91 = board.add(C_0603_1608Metric, { }) // fan_cap.cap const C92 = board.add(C_0603_1608Metric, { - translate: pt(0.293, 5.296), rotate: 0, + translate: pt(6.144, 4.987), rotate: 0, id: 'C92' }) // fan_drv.pre const Q13 = board.add(SOT_23, { - translate: pt(5.437, 4.166), rotate: 0, + translate: pt(4.900, 4.166), rotate: 0, id: 'Q13' }) // fan_drv.pull const R87 = board.add(R_0603_1608Metric, { - translate: pt(5.611, 4.301), rotate: 0, + translate: pt(5.074, 4.301), rotate: 0, id: 'R87' }) // fan_drv.drv const Q14 = board.add(SOT_23, { - translate: pt(5.437, 4.339), rotate: 0, + translate: pt(4.900, 4.339), rotate: 0, id: 'Q14' }) // fan.conn const J8 = board.add(JST_PH_B2B_PH_K_1x02_P2_00mm_Vertical, { - translate: pt(2.226, 4.727), rotate: 0, + translate: pt(1.312, 4.727), rotate: 0, id: 'J8' }) // spk_drv.ic const U36 = board.add(QFN_16_1EP_3x3mm_P0_5mm_EP1_45x1_45mm, { - translate: pt(6.271, 4.183), rotate: 0, + translate: pt(5.734, 4.183), rotate: 0, id: 'U36' }) // spk_drv.pwr_cap0.cap const C93 = board.add(C_0603_1608Metric, { - translate: pt(6.419, 4.335), rotate: 0, + translate: pt(5.881, 4.335), rotate: 0, id: 'C93' }) // spk_drv.pwr_cap1.cap const C94 = board.add(C_0805_2012Metric, { - translate: pt(6.254, 4.344), rotate: 0, + translate: pt(5.717, 4.344), rotate: 0, id: 'C94' }) // spk.conn const J9 = board.add(JST_PH_B2B_PH_K_1x02_P2_00mm_Vertical, { - translate: pt(2.615, 4.727), rotate: 0, + translate: pt(1.702, 4.727), rotate: 0, id: 'J9' }) // dac.ic const U37 = board.add(MSOP_10_3x3mm_P0_5mm, { - translate: pt(2.460, 4.168), rotate: 0, + translate: pt(1.923, 4.168), rotate: 0, id: 'U37' }) // dac.vdd_cap[0].cap const C95 = board.add(C_0603_1608Metric, { - translate: pt(2.393, 4.305), rotate: 0, + translate: pt(1.856, 4.305), rotate: 0, id: 'C95' }) // dac.vdd_cap[1].cap const C96 = board.add(C_0805_2012Metric, { - translate: pt(2.692, 4.137), rotate: 0, + translate: pt(2.155, 4.137), rotate: 0, id: 'C96' }) // dac.out_cap[0].cap const C97 = board.add(C_0603_1608Metric, { - translate: pt(2.549, 4.305), rotate: 0, + translate: pt(2.012, 4.305), rotate: 0, id: 'C97' }) // dac.out_cap[1].cap const C98 = board.add(C_0603_1608Metric, { - translate: pt(2.705, 4.305), rotate: 0, + translate: pt(2.168, 4.305), rotate: 0, id: 'C98' }) // dac.out_cap[2].cap const C99 = board.add(C_0603_1608Metric, { - translate: pt(2.393, 4.402), rotate: 0, + translate: pt(1.856, 4.402), rotate: 0, id: 'C99' }) // dac.out_cap[3].cap const C100 = board.add(C_0603_1608Metric, { - translate: pt(2.549, 4.402), rotate: 0, + translate: pt(2.012, 4.402), rotate: 0, id: 'C100' }) // dac_ferrite.fb const FB3 = board.add(L_0603_1608Metric, { - translate: pt(0.528, 5.296), rotate: 0, + translate: pt(6.378, 4.987), rotate: 0, id: 'FB3' }) // adc.ic @@ -1502,47 +1502,47 @@ const C105 = board.add(C_0805_2012Metric, { }) // tp_vcen.conn const J10 = board.add(U_FL_Hirose_U_FL_R_SMT_1_Vertical, { - translate: pt(3.563, 4.696), rotate: 0, + translate: pt(2.650, 4.696), rotate: 0, id: 'J10' }) // vcen_rc.rc.r const R90 = board.add(R_0603_1608Metric, { - translate: pt(1.231, 5.024), rotate: 0, + translate: pt(0.293, 4.987), rotate: 0, id: 'R90' }) // vcen_rc.rc.c const C106 = board.add(C_0603_1608Metric, { - translate: pt(1.231, 5.120), rotate: 0, + translate: pt(0.293, 5.083), rotate: 0, id: 'C106' }) // tp_mv.conn const J11 = board.add(U_FL_Hirose_U_FL_R_SMT_1_Vertical, { - translate: pt(3.850, 4.696), rotate: 0, + translate: pt(2.937, 4.696), rotate: 0, id: 'J11' }) // mv_rc.rc.r const R91 = board.add(R_0603_1608Metric, { - translate: pt(1.466, 5.024), rotate: 0, + translate: pt(0.528, 4.987), rotate: 0, id: 'R91' }) // mv_rc.rc.c const C107 = board.add(C_0603_1608Metric, { - translate: pt(1.466, 5.120), rotate: 0, + translate: pt(0.528, 5.083), rotate: 0, id: 'C107' }) // tp_mi.conn const J12 = board.add(U_FL_Hirose_U_FL_R_SMT_1_Vertical, { - translate: pt(4.138, 4.696), rotate: 0, + translate: pt(3.224, 4.696), rotate: 0, id: 'J12' }) // mi_rc.rc.r const R92 = board.add(R_0603_1608Metric, { - translate: pt(1.701, 5.024), rotate: 0, + translate: pt(0.762, 4.987), rotate: 0, id: 'R92' }) // mi_rc.rc.c const C108 = board.add(C_0603_1608Metric, { - translate: pt(1.701, 5.120), rotate: 0, + translate: pt(0.762, 5.083), rotate: 0, id: 'C108' }) // outn @@ -1557,129 +1557,129 @@ const J14 = board.add(CalTest_CT3151, { }) // outd const J15 = board.add(PinHeader_1x02_P2_54mm_Horizontal, { - translate: pt(5.431, 4.769), rotate: 0, + translate: pt(4.518, 4.769), rotate: 0, id: 'J15' }) // vimeas_amps.ic const U39 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { - translate: pt(3.027, 4.205), rotate: 0, + translate: pt(2.490, 4.205), rotate: 0, id: 'U39' }) // vimeas_amps.vdd_cap.cap const C109 = board.add(C_0805_2012Metric, { - translate: pt(2.948, 4.389), rotate: 0, + translate: pt(2.411, 4.389), rotate: 0, id: 'C109' }) // cv_amps.ic const U40 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { - translate: pt(4.279, 4.205), rotate: 0, + translate: pt(3.742, 4.205), rotate: 0, id: 'U40' }) // cv_amps.vdd_cap.cap const C110 = board.add(C_0603_1608Metric, { - translate: pt(4.192, 4.380), rotate: 0, + translate: pt(3.655, 4.380), rotate: 0, id: 'C110' }) // ci_amps.ic const U41 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { - translate: pt(4.689, 4.205), rotate: 0, + translate: pt(4.152, 4.205), rotate: 0, id: 'U41' }) // ci_amps.vdd_cap.cap const C111 = board.add(C_0603_1608Metric, { - translate: pt(4.601, 4.380), rotate: 0, + translate: pt(4.064, 4.380), rotate: 0, id: 'C111' }) // cintref_amps.ic const U42 = board.add(SOIC_8_3_9x4_9mm_P1_27mm, { - translate: pt(5.098, 4.205), rotate: 0, + translate: pt(4.561, 4.205), rotate: 0, id: 'U42' }) // cintref_amps.vdd_cap.cap const C112 = board.add(C_0603_1608Metric, { - translate: pt(5.011, 4.380), rotate: 0, + translate: pt(4.474, 4.380), rotate: 0, id: 'C112' }) board.setNetlist([ - {name: "gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["TP1", "1"], ["U1", "3"], ["U1", "7"], ["U1", "8"], ["C1", "2"], ["D1", "2"], ["Q2", "2"], ["C4", "2"], ["U2", "1"], ["R5", "2"], ["C5", "2"], ["C7", "2"], ["C8", "2"], ["U3", "1"], ["R8", "2"], ["C9", "2"], ["C11", "2"], ["C12", "2"], ["C13", "2"], ["D2", "2"], ["U4", "2"], ["R11", "2"], ["C14", "2"], ["C15", "2"], ["U5", "3"], ["U5", "7"], ["C17", "2"], ["C18", "2"], ["C19", "2"], ["C20", "2"], ["C21", "2"], ["C22", "2"], ["C23", "2"], ["C24", "2"], ["C25", "2"], ["C26", "2"], ["C27", "2"], ["C28", "2"], ["C29", "2"], ["C30", "2"], ["C31", "2"], ["C32", "2"], ["U6", "6"], ["C33", "2"], ["Q3", "1"], ["Q3", "2"], ["Q3", "3"], ["U7", "6"], ["C35", "2"], ["Q5", "1"], ["Q5", "2"], ["Q5", "3"], ["D6", "2"], ["U8", "2"], ["C37", "2"], ["C38", "2"], ["U9", "3"], ["C39", "2"], ["R18", "2"], ["C40", "2"], ["U10", "2"], ["R21", "2"], ["C41", "2"], ["C42", "2"], ["U11", "1"], ["C45", "2"], ["C46", "2"], ["C47", "2"], ["C48", "2"], ["U12", "2"], ["C49", "2"], ["U13", "2"], ["C50", "2"], ["U14", "2"], ["C51", "2"], ["Q8", "2"], ["U15", "4"], ["U16", "4"], ["C56", "2"], ["C57", "2"], ["C58", "2"], ["R52", "2"], ["C59", "2"], ["U17", "2"], ["U17", "4"], ["C60", "2"], ["R54", "2"], ["U19", "2"], ["U19", "4"], ["C61", "2"], ["R56", "2"], ["U21", "2"], ["U21", "4"], ["C62", "2"], ["R58", "2"], ["U23", "1"], ["C66", "2"], ["D13", "1"], ["J2", "2"], ["J3", "2"], ["U25", "15"], ["U25", "8"], ["U25", "9"], ["C67", "2"], ["C68", "2"], ["J4", "5"], ["U26", "1"], ["U26", "40"], ["U26", "41"], ["C69", "2"], ["C70", "2"], ["C71", "2"], ["U27", "3"], ["J5", "1"], ["J5", "13"], ["J5", "14"], ["J5", "15"], ["J5", "17"], ["J5", "18"], ["J5", "22"], ["J5", "23"], ["J5", "24"], ["J5", "5"], ["J5", "6"], ["J5", "7"], ["J5", "8"], ["J5", "9"], ["R70", "1"], ["C72", "2"], ["C73", "2"], ["C74", "2"], ["C75", "2"], ["C76", "2"], ["C77", "2"], ["U29", "1"], ["U29", "2"], ["U29", "3"], ["U29", "8"], ["C78", "2"], ["R72", "1"], ["C79", "2"], ["C80", "2"], ["U30", "2"], ["C81", "2"], ["R76", "2"], ["R78", "2"], ["U31", "4"], ["C82", "2"], ["R79", "1"], ["U32", "2"], ["U32", "4"], ["C83", "2"], ["U33", "2"], ["C84", "2"], ["R82", "2"], ["U34", "1"], ["U34", "3"], ["U34", "8"], ["C85", "2"], ["SW1", "C"], ["SW1", "S2"], ["SW2", "5"], ["J6", "1"], ["J7", "1"], ["D15", "2"], ["C86", "2"], ["D16", "2"], ["C87", "2"], ["D17", "2"], ["C88", "2"], ["D18", "2"], ["C89", "2"], ["D19", "2"], ["C90", "2"], ["D20", "2"], ["C91", "2"], ["C92", "2"], ["Q13", "2"], ["J8", "1"], ["U36", "11"], ["U36", "15"], ["U36", "17"], ["U36", "3"], ["C93", "2"], ["C94", "2"], ["U37", "10"], ["C95", "2"], ["C96", "2"], ["C97", "2"], ["C98", "2"], ["C99", "2"], ["C100", "2"], ["U38", "19"], ["U38", "2"], ["U38", "3"], ["C101", "2"], ["C102", "2"], ["C103", "2"], ["C104", "2"], ["C105", "2"], ["J10", "2"], ["C106", "2"], ["J11", "2"], ["C107", "2"], ["J12", "2"], ["C108", "2"], ["J13", "1"], ["J15", "1"], ["U40", "4"], ["C110", "2"], ["U41", "4"], ["C111", "2"], ["U42", "4"], ["C112", "2"]]}, - {name: "vusb", pads: [["U1", "2"], ["R1", "2"], ["Q1", "1"], ["Q1", "2"], ["Q1", "3"], ["C3", "1"], ["R2", "1"], ["U3", "3"], ["C9", "1"], ["C11", "1"], ["C12", "1"], ["R9", "1"], ["U25", "2"]]}, - {name: "vusb_ramp", pads: [["Q1", "5"], ["C2", "1"], ["C4", "1"], ["TP2", "1"], ["U2", "3"], ["C5", "1"], ["C7", "1"], ["R6", "1"], ["U5", "1"], ["R12", "1"]]}, - {name: "v5", pads: [["R4", "1"], ["L1", "2"], ["C8", "1"], ["TP3", "1"], ["U4", "4"], ["U4", "5"], ["L3", "1"], ["C14", "1"], ["U6", "4"], ["C33", "1"], ["D4", "2"], ["U7", "4"], ["C35", "1"], ["D5", "2"], ["U8", "1"], ["U8", "3"], ["C37", "1"], ["U9", "1"], ["C39", "1"], ["U10", "4"], ["U10", "5"], ["L5", "1"], ["C41", "1"], ["D15", "4"], ["C86", "1"], ["D16", "4"], ["C87", "1"], ["D17", "4"], ["C88", "1"], ["D18", "4"], ["C89", "1"], ["D19", "4"], ["C90", "1"], ["D20", "4"], ["C91", "1"], ["C92", "1"], ["R87", "1"], ["Q14", "2"], ["U36", "4"], ["U36", "7"], ["U36", "8"], ["C93", "1"], ["C94", "1"]]}, - {name: "v3v3", pads: [["U1", "4"], ["C1", "1"], ["R7", "1"], ["L2", "2"], ["C13", "1"], ["D2", "1"], ["TP4", "1"], ["U5", "4"], ["U5", "8"], ["C17", "1"], ["U25", "3"], ["U25", "4"], ["C67", "1"], ["C68", "1"], ["J4", "1"], ["U26", "2"], ["C69", "1"], ["C70", "1"], ["R66", "1"], ["D14", "2"], ["R68", "1"], ["R69", "1"], ["J5", "19"], ["J5", "20"], ["C73", "1"], ["C74", "1"], ["R71", "1"], ["U29", "16"], ["C78", "1"], ["U30", "5"], ["C81", "1"], ["R75", "1"], ["U31", "8"], ["C82", "1"], ["R80", "1"], ["U32", "5"], ["C83", "1"], ["U33", "4"], ["U33", "5"], ["C84", "1"], ["U34", "16"], ["U34", "2"], ["C85", "1"], ["R83", "1"], ["R84", "1"], ["J6", "2"], ["R89", "1"]]}, + {name: "gnd", pads: [["J1", "A1"], ["J1", "A12"], ["J1", "B1"], ["J1", "B12"], ["J1", "S1"], ["U1", "3"], ["TP1", "1"], ["U2", "3"], ["U2", "7"], ["U2", "8"], ["C1", "2"], ["D1", "2"], ["Q2", "2"], ["C4", "2"], ["U3", "1"], ["R5", "2"], ["C5", "2"], ["C7", "2"], ["C8", "2"], ["U4", "1"], ["R8", "2"], ["C9", "2"], ["C11", "2"], ["C12", "2"], ["C13", "2"], ["D2", "2"], ["U5", "2"], ["R11", "2"], ["C14", "2"], ["C15", "2"], ["U6", "3"], ["U6", "7"], ["C17", "2"], ["C18", "2"], ["C19", "2"], ["C20", "2"], ["C21", "2"], ["C22", "2"], ["C23", "2"], ["C24", "2"], ["C25", "2"], ["C26", "2"], ["C27", "2"], ["C28", "2"], ["C29", "2"], ["C30", "2"], ["C31", "2"], ["C32", "2"], ["U7", "6"], ["C33", "2"], ["Q3", "1"], ["Q3", "2"], ["Q3", "3"], ["U8", "6"], ["C35", "2"], ["Q5", "1"], ["Q5", "2"], ["Q5", "3"], ["D6", "2"], ["U9", "2"], ["C37", "2"], ["C38", "2"], ["U10", "3"], ["C39", "2"], ["R18", "2"], ["C40", "2"], ["U11", "2"], ["R21", "2"], ["C41", "2"], ["C42", "2"], ["U12", "1"], ["C45", "2"], ["C46", "2"], ["C47", "2"], ["C48", "2"], ["U13", "2"], ["C49", "2"], ["U14", "2"], ["C50", "2"], ["U15", "2"], ["C51", "2"], ["Q8", "2"], ["U16", "4"], ["U17", "4"], ["C56", "2"], ["C57", "2"], ["C58", "2"], ["R52", "2"], ["C59", "2"], ["U18", "2"], ["U18", "4"], ["C60", "2"], ["R54", "2"], ["U20", "2"], ["U20", "4"], ["C61", "2"], ["R56", "2"], ["U22", "2"], ["U22", "4"], ["C62", "2"], ["R58", "2"], ["U24", "1"], ["C66", "2"], ["D13", "1"], ["J2", "2"], ["J3", "2"], ["U26", "15"], ["U26", "8"], ["U26", "9"], ["C67", "2"], ["C68", "2"], ["J4", "5"], ["U27", "1"], ["U27", "40"], ["U27", "41"], ["C69", "2"], ["C70", "2"], ["C71", "2"], ["J5", "1"], ["J5", "13"], ["J5", "14"], ["J5", "15"], ["J5", "17"], ["J5", "18"], ["J5", "22"], ["J5", "23"], ["J5", "24"], ["J5", "5"], ["J5", "6"], ["J5", "7"], ["J5", "8"], ["J5", "9"], ["R70", "1"], ["C72", "2"], ["C73", "2"], ["C74", "2"], ["C75", "2"], ["C76", "2"], ["C77", "2"], ["U29", "1"], ["U29", "2"], ["U29", "3"], ["U29", "8"], ["C78", "2"], ["R72", "1"], ["C79", "2"], ["C80", "2"], ["U30", "2"], ["C81", "2"], ["R76", "2"], ["R78", "2"], ["U31", "4"], ["C82", "2"], ["R79", "1"], ["U32", "2"], ["U32", "4"], ["C83", "2"], ["U33", "2"], ["C84", "2"], ["R82", "2"], ["U34", "1"], ["U34", "3"], ["U34", "8"], ["C85", "2"], ["SW1", "C"], ["SW1", "S2"], ["SW2", "5"], ["J6", "1"], ["J7", "1"], ["D15", "2"], ["C86", "2"], ["D16", "2"], ["C87", "2"], ["D17", "2"], ["C88", "2"], ["D18", "2"], ["C89", "2"], ["D19", "2"], ["C90", "2"], ["D20", "2"], ["C91", "2"], ["C92", "2"], ["Q13", "2"], ["J8", "1"], ["U36", "11"], ["U36", "15"], ["U36", "17"], ["U36", "3"], ["C93", "2"], ["C94", "2"], ["U37", "10"], ["C95", "2"], ["C96", "2"], ["C97", "2"], ["C98", "2"], ["C99", "2"], ["C100", "2"], ["U38", "19"], ["U38", "2"], ["U38", "3"], ["C101", "2"], ["C102", "2"], ["C103", "2"], ["C104", "2"], ["C105", "2"], ["J10", "2"], ["C106", "2"], ["J11", "2"], ["C107", "2"], ["J12", "2"], ["C108", "2"], ["J13", "1"], ["J15", "1"], ["U40", "4"], ["C110", "2"], ["U41", "4"], ["C111", "2"], ["U42", "4"], ["C112", "2"]]}, + {name: "vusb", pads: [["U2", "2"], ["R1", "2"], ["Q1", "1"], ["Q1", "2"], ["Q1", "3"], ["C3", "1"], ["R2", "1"], ["U4", "3"], ["C9", "1"], ["C11", "1"], ["C12", "1"], ["R9", "1"], ["U26", "2"]]}, + {name: "vusb_ramp", pads: [["Q1", "5"], ["C2", "1"], ["C4", "1"], ["TP2", "1"], ["U3", "3"], ["C5", "1"], ["C7", "1"], ["R6", "1"], ["U6", "1"], ["R12", "1"]]}, + {name: "v5", pads: [["R4", "1"], ["L1", "2"], ["C8", "1"], ["TP3", "1"], ["U5", "4"], ["U5", "5"], ["L3", "1"], ["C14", "1"], ["U7", "4"], ["C33", "1"], ["D4", "2"], ["U8", "4"], ["C35", "1"], ["D5", "2"], ["U9", "1"], ["U9", "3"], ["C37", "1"], ["U10", "1"], ["C39", "1"], ["U11", "4"], ["U11", "5"], ["L5", "1"], ["C41", "1"], ["D15", "4"], ["C86", "1"], ["D16", "4"], ["C87", "1"], ["D17", "4"], ["C88", "1"], ["D18", "4"], ["C89", "1"], ["D19", "4"], ["C90", "1"], ["D20", "4"], ["C91", "1"], ["C92", "1"], ["R87", "1"], ["Q14", "2"], ["U36", "4"], ["U36", "7"], ["U36", "8"], ["C93", "1"], ["C94", "1"]]}, + {name: "v3v3", pads: [["U2", "4"], ["C1", "1"], ["R7", "1"], ["L2", "2"], ["C13", "1"], ["D2", "1"], ["TP4", "1"], ["U6", "4"], ["U6", "8"], ["C17", "1"], ["U26", "3"], ["U26", "4"], ["C67", "1"], ["C68", "1"], ["J4", "1"], ["U27", "2"], ["C69", "1"], ["C70", "1"], ["R66", "1"], ["D14", "2"], ["R68", "1"], ["R69", "1"], ["J5", "19"], ["J5", "20"], ["C73", "1"], ["C74", "1"], ["R71", "1"], ["U29", "16"], ["C78", "1"], ["U30", "5"], ["C81", "1"], ["R75", "1"], ["U31", "8"], ["C82", "1"], ["R80", "1"], ["U32", "5"], ["C83", "1"], ["U33", "4"], ["U33", "5"], ["C84", "1"], ["U34", "16"], ["U34", "2"], ["C85", "1"], ["R83", "1"], ["R84", "1"], ["J6", "2"], ["R89", "1"]]}, {name: "v12", pads: [["R10", "1"], ["C15", "1"], ["C16", "2"], ["D3", "1"], ["J5", "2"], ["C75", "1"], ["C76", "1"]]}, - {name: "vconvin", pads: [["U5", "2"], ["R12", "2"], ["C18", "1"], ["C19", "1"], ["C20", "1"], ["C21", "1"], ["C22", "1"], ["C23", "1"], ["C24", "1"], ["Q4", "5"]]}, + {name: "vconvin", pads: [["U6", "2"], ["R12", "2"], ["C18", "1"], ["C19", "1"], ["C20", "1"], ["C21", "1"], ["C22", "1"], ["C23", "1"], ["C24", "1"], ["Q4", "5"]]}, {name: "vconv", pads: [["C25", "1"], ["C26", "1"], ["C27", "1"], ["C28", "1"], ["C29", "1"], ["C30", "1"], ["C31", "1"], ["C32", "1"], ["Q6", "5"], ["D6", "1"], ["TP5", "1"], ["Q7", "2"], ["C56", "1"], ["C57", "1"], ["C58", "1"], ["R77", "1"], ["R81", "1"]]}, - {name: "vanalog", pads: [["U8", "5"], ["C38", "1"], ["TP6", "1"], ["FB2", "1"], ["U12", "5"], ["C49", "1"], ["U13", "5"], ["C50", "1"], ["U14", "5"], ["C51", "1"], ["R88", "1"], ["U40", "8"], ["C110", "1"], ["U41", "8"], ["C111", "1"], ["U42", "8"], ["C112", "1"]]}, - {name: "vref", pads: [["U9", "2"], ["TP7", "1"], ["R17", "1"], ["FB3", "1"], ["U38", "4"], ["C105", "1"]]}, - {name: "vcenter", pads: [["R19", "2"], ["C40", "1"], ["R25", "1"], ["R38", "2"], ["U23", "6"], ["U24", "6"], ["J10", "1"], ["R90", "1"], ["U42", "3"]]}, - {name: "vcontrol", pads: [["R20", "1"], ["C42", "1"], ["C43", "2"], ["D7", "1"], ["TP8", "1"], ["U15", "5"], ["C54", "1"], ["U16", "5"], ["C55", "1"], ["U17", "5"], ["C60", "1"], ["U19", "5"], ["C61", "1"], ["U21", "5"], ["C62", "1"], ["U23", "8"], ["C64", "1"], ["U24", "8"], ["C65", "1"], ["U39", "8"], ["C109", "1"]]}, - {name: "vcontroln", pads: [["U11", "2"], ["C45", "1"], ["TP9", "1"], ["U15", "2"], ["C54", "2"], ["U16", "2"], ["C55", "2"], ["U23", "5"], ["C64", "2"], ["U24", "5"], ["C65", "2"], ["U39", "4"], ["C109", "2"]]}, - {name: "usb_chain_0.d_P", pads: [["J1", "A6"], ["J1", "B6"], ["U26", "14"], ["U27", "2"]]}, - {name: "usb_chain_0.d_N", pads: [["J1", "A7"], ["J1", "B7"], ["U26", "13"], ["U27", "1"]]}, + {name: "vanalog", pads: [["U9", "5"], ["C38", "1"], ["TP6", "1"], ["FB2", "1"], ["U13", "5"], ["C49", "1"], ["U14", "5"], ["C50", "1"], ["U15", "5"], ["C51", "1"], ["R88", "1"], ["U40", "8"], ["C110", "1"], ["U41", "8"], ["C111", "1"], ["U42", "8"], ["C112", "1"]]}, + {name: "vref", pads: [["U10", "2"], ["TP7", "1"], ["R17", "1"], ["FB3", "1"], ["U38", "4"], ["C105", "1"]]}, + {name: "vcenter", pads: [["R19", "2"], ["C40", "1"], ["R25", "1"], ["R38", "2"], ["U24", "6"], ["U25", "6"], ["J10", "1"], ["R90", "1"], ["U42", "3"]]}, + {name: "vcontrol", pads: [["R20", "1"], ["C42", "1"], ["C43", "2"], ["D7", "1"], ["TP8", "1"], ["U16", "5"], ["C54", "1"], ["U17", "5"], ["C55", "1"], ["U18", "5"], ["C60", "1"], ["U20", "5"], ["C61", "1"], ["U22", "5"], ["C62", "1"], ["U24", "8"], ["C64", "1"], ["U25", "8"], ["C65", "1"], ["U39", "8"], ["C109", "1"]]}, + {name: "vcontroln", pads: [["U12", "2"], ["C45", "1"], ["TP9", "1"], ["U16", "2"], ["C54", "2"], ["U17", "2"], ["C55", "2"], ["U24", "5"], ["C64", "2"], ["U25", "5"], ["C65", "2"], ["U39", "4"], ["C109", "2"]]}, {name: "usb.pwr", pads: [["J1", "A4"], ["J1", "A9"], ["J1", "B4"], ["J1", "B9"], ["F1", "1"]]}, - {name: "usb.cc.cc1", pads: [["J1", "A5"], ["U25", "10"], ["U25", "11"]]}, - {name: "usb.cc.cc2", pads: [["J1", "B5"], ["U25", "1"], ["U25", "14"]]}, - {name: "vusb_sense.i2c.scl", pads: [["U1", "5"], ["U5", "5"], ["U25", "6"], ["U26", "8"], ["TP10", "1"], ["R68", "2"], ["J5", "12"], ["U29", "14"], ["U32", "1"], ["U33", "1"], ["U34", "14"], ["U37", "2"]]}, - {name: "vusb_sense.i2c.sda", pads: [["U1", "6"], ["U5", "6"], ["U25", "7"], ["U26", "7"], ["TP11", "1"], ["R69", "2"], ["J5", "10"], ["J5", "11"], ["U29", "15"], ["U32", "6"], ["U33", "6"], ["U34", "15"], ["U37", "3"]]}, - {name: "vusb_sense.sense_pwr_in", pads: [["U1", "1"], ["R1", "1"], ["FB1", "2"], ["D1", "1"]]}, + {name: "usb.usb.dp", pads: [["J1", "A6"], ["J1", "B6"], ["U1", "2"], ["U27", "14"]]}, + {name: "usb.usb.dm", pads: [["J1", "A7"], ["J1", "B7"], ["U1", "1"], ["U27", "13"]]}, + {name: "usb.cc.cc1", pads: [["J1", "A5"], ["U26", "10"], ["U26", "11"]]}, + {name: "usb.cc.cc2", pads: [["J1", "B5"], ["U26", "1"], ["U26", "14"]]}, + {name: "vusb_sense.i2c.scl", pads: [["U2", "5"], ["U6", "5"], ["U26", "6"], ["U27", "8"], ["TP10", "1"], ["R68", "2"], ["J5", "12"], ["U29", "14"], ["U32", "1"], ["U33", "1"], ["U34", "14"], ["U37", "2"]]}, + {name: "vusb_sense.i2c.sda", pads: [["U2", "6"], ["U6", "6"], ["U26", "7"], ["U27", "7"], ["TP11", "1"], ["R69", "2"], ["J5", "10"], ["J5", "11"], ["U29", "15"], ["U32", "6"], ["U33", "6"], ["U34", "15"], ["U37", "3"]]}, + {name: "vusb_sense.sense_pwr_in", pads: [["U2", "1"], ["R1", "1"], ["FB1", "2"], ["D1", "1"]]}, {name: "fuse_vusb.pwr_out", pads: [["F1", "2"], ["FB1", "1"]]}, {name: "ramp.control", pads: [["Q2", "1"], ["U29", "4"], ["R72", "2"]]}, {name: "ramp.drv.gate", pads: [["Q1", "4"], ["C2", "2"], ["C3", "2"], ["R2", "2"], ["R3", "1"]]}, {name: "ramp.div.bottom", pads: [["R3", "2"], ["Q2", "3"]]}, - {name: "reg_v5.ic.sw", pads: [["U2", "2"], ["C6", "2"], ["L1", "1"]]}, - {name: "reg_v5.ic.fb", pads: [["U2", "4"], ["R4", "2"], ["R5", "1"]]}, - {name: "reg_v5.ic.boot", pads: [["U2", "6"], ["C6", "1"]]}, - {name: "reg_v5.ic.en", pads: [["U2", "5"], ["R6", "2"]]}, - {name: "reg_3v3.ic.sw", pads: [["U3", "2"], ["C10", "2"], ["L2", "1"]]}, - {name: "reg_3v3.ic.fb", pads: [["U3", "4"], ["R7", "2"], ["R8", "1"]]}, - {name: "reg_3v3.ic.boot", pads: [["U3", "6"], ["C10", "1"]]}, - {name: "reg_3v3.ic.en", pads: [["U3", "5"], ["R9", "2"]]}, - {name: "reg_v12.ic.sw", pads: [["U4", "1"], ["L3", "2"], ["D3", "2"]]}, - {name: "reg_v12.ic.fb", pads: [["U4", "3"], ["R10", "2"], ["R11", "1"], ["C16", "1"]]}, - {name: "conv.reset", pads: [["U6", "3"], ["U7", "3"], ["U29", "7"], ["U31", "6"], ["U31", "7"]]}, - {name: "conv.buck_pwm", pads: [["U6", "2"], ["R73", "2"], ["C79", "1"]]}, - {name: "conv.boost_pwm", pads: [["U7", "2"], ["R74", "2"], ["C80", "1"]]}, - {name: "conv.l1", pads: [["L4", "1"], ["U6", "7"], ["C34", "2"], ["Q3", "5"], ["Q4", "1"], ["Q4", "2"], ["Q4", "3"]]}, - {name: "conv.l2", pads: [["L4", "2"], ["U7", "7"], ["C36", "2"], ["Q5", "5"], ["Q6", "1"], ["Q6", "2"], ["Q6", "3"]]}, - {name: "conv.buck_sw.driver.low_out", pads: [["U6", "5"], ["R13", "1"]]}, - {name: "conv.buck_sw.driver.high_out", pads: [["U6", "8"], ["R14", "1"]]}, - {name: "conv.buck_sw.driver.ic.bst", pads: [["U6", "1"], ["C34", "1"], ["D4", "1"]]}, + {name: "reg_v5.ic.sw", pads: [["U3", "2"], ["C6", "2"], ["L1", "1"]]}, + {name: "reg_v5.ic.fb", pads: [["U3", "4"], ["R4", "2"], ["R5", "1"]]}, + {name: "reg_v5.ic.boot", pads: [["U3", "6"], ["C6", "1"]]}, + {name: "reg_v5.ic.en", pads: [["U3", "5"], ["R6", "2"]]}, + {name: "reg_3v3.ic.sw", pads: [["U4", "2"], ["C10", "2"], ["L2", "1"]]}, + {name: "reg_3v3.ic.fb", pads: [["U4", "4"], ["R7", "2"], ["R8", "1"]]}, + {name: "reg_3v3.ic.boot", pads: [["U4", "6"], ["C10", "1"]]}, + {name: "reg_3v3.ic.en", pads: [["U4", "5"], ["R9", "2"]]}, + {name: "reg_v12.ic.sw", pads: [["U5", "1"], ["L3", "2"], ["D3", "2"]]}, + {name: "reg_v12.ic.fb", pads: [["U5", "3"], ["R10", "2"], ["R11", "1"], ["C16", "1"]]}, + {name: "conv.reset", pads: [["U7", "3"], ["U8", "3"], ["U29", "7"], ["U31", "6"], ["U31", "7"]]}, + {name: "conv.buck_pwm", pads: [["U7", "2"], ["R73", "2"], ["C79", "1"]]}, + {name: "conv.boost_pwm", pads: [["U8", "2"], ["R74", "2"], ["C80", "1"]]}, + {name: "conv.l1", pads: [["L4", "1"], ["U7", "7"], ["C34", "2"], ["Q3", "5"], ["Q4", "1"], ["Q4", "2"], ["Q4", "3"]]}, + {name: "conv.l2", pads: [["L4", "2"], ["U8", "7"], ["C36", "2"], ["Q5", "5"], ["Q6", "1"], ["Q6", "2"], ["Q6", "3"]]}, + {name: "conv.buck_sw.driver.low_out", pads: [["U7", "5"], ["R13", "1"]]}, + {name: "conv.buck_sw.driver.high_out", pads: [["U7", "8"], ["R14", "1"]]}, + {name: "conv.buck_sw.driver.ic.bst", pads: [["U7", "1"], ["C34", "1"], ["D4", "1"]]}, {name: "conv.buck_sw.low_fet.gate", pads: [["Q3", "4"], ["R13", "2"]]}, {name: "conv.buck_sw.high_fet.gate", pads: [["Q4", "4"], ["R14", "2"]]}, - {name: "conv.boost_sw.driver.low_out", pads: [["U7", "5"], ["R15", "1"]]}, - {name: "conv.boost_sw.driver.high_out", pads: [["U7", "8"], ["R16", "1"]]}, - {name: "conv.boost_sw.driver.ic.bst", pads: [["U7", "1"], ["C36", "1"], ["D5", "1"]]}, + {name: "conv.boost_sw.driver.low_out", pads: [["U8", "5"], ["R15", "1"]]}, + {name: "conv.boost_sw.driver.high_out", pads: [["U8", "8"], ["R16", "1"]]}, + {name: "conv.boost_sw.driver.ic.bst", pads: [["U8", "1"], ["C36", "1"], ["D5", "1"]]}, {name: "conv.boost_sw.low_fet.gate", pads: [["Q5", "4"], ["R15", "2"]]}, {name: "conv.boost_sw.high_fet.gate", pads: [["Q6", "4"], ["R16", "2"]]}, {name: "ref_div.output", pads: [["R17", "2"], ["R18", "1"], ["U40", "3"]]}, {name: "ref_buf.output", pads: [["R19", "1"], ["U40", "1"], ["U40", "2"]]}, - {name: "reg_vcontrol.ic.sw", pads: [["U10", "1"], ["L5", "2"], ["D7", "2"]]}, - {name: "reg_vcontrol.ic.fb", pads: [["U10", "3"], ["R20", "2"], ["R21", "1"], ["C43", "1"]]}, - {name: "filt_vcontroln.pwr_out", pads: [["FB2", "2"], ["U11", "4"], ["U11", "5"]]}, - {name: "reg_vcontroln.ic.capn", pads: [["U11", "3"], ["C44", "2"]]}, - {name: "reg_vcontroln.ic.capp", pads: [["U11", "6"], ["C44", "1"]]}, + {name: "reg_vcontrol.ic.sw", pads: [["U11", "1"], ["L5", "2"], ["D7", "2"]]}, + {name: "reg_vcontrol.ic.fb", pads: [["U11", "3"], ["R20", "2"], ["R21", "1"], ["C43", "1"]]}, + {name: "filt_vcontroln.pwr_out", pads: [["FB2", "2"], ["U12", "4"], ["U12", "5"]]}, + {name: "reg_vcontroln.ic.capn", pads: [["U12", "3"], ["C44", "2"]]}, + {name: "reg_vcontroln.ic.capp", pads: [["U12", "6"], ["C44", "1"]]}, {name: "control.control_voltage", pads: [["R26", "1"], ["U37", "6"], ["C97", "1"]]}, {name: "control.control_voltage_fine", pads: [["R29", "1"], ["U37", "8"], ["C99", "1"]]}, {name: "control.control_current_source", pads: [["R30", "1"], ["U37", "9"], ["C100", "1"]]}, {name: "control.control_current_sink", pads: [["R32", "1"], ["U37", "7"], ["C98", "1"]]}, - {name: "control.high_gate_ctl", pads: [["U15", "3"], ["U29", "11"]]}, - {name: "control.low_gate_ctl", pads: [["U16", "3"], ["U29", "12"]]}, - {name: "control.out", pads: [["R36", "1"], ["U18", "6"], ["U20", "4"], ["U22", "4"], ["R64", "1"], ["D12", "1"], ["J14", "1"], ["J15", "2"]]}, - {name: "control.limit_source", pads: [["U12", "4"], ["U26", "22"]]}, - {name: "control.limit_sink", pads: [["U13", "4"], ["U26", "23"]]}, + {name: "control.high_gate_ctl", pads: [["U16", "3"], ["U29", "11"]]}, + {name: "control.low_gate_ctl", pads: [["U17", "3"], ["U29", "12"]]}, + {name: "control.out", pads: [["R36", "1"], ["U19", "6"], ["U21", "4"], ["U23", "4"], ["R64", "1"], ["D12", "1"], ["J14", "1"], ["J15", "2"]]}, + {name: "control.limit_source", pads: [["U13", "4"], ["U27", "22"]]}, + {name: "control.limit_sink", pads: [["U14", "4"], ["U27", "23"]]}, {name: "control.tp_int", pads: [["C52", "1"], ["C53", "1"], ["J3", "1"], ["U39", "3"], ["U42", "1"]]}, {name: "control.drive", pads: [["R23", "1"], ["R37", "1"], ["R39", "1"], ["U39", "1"]]}, {name: "control.outa", pads: [["R22", "1"], ["R51", "1"], ["U39", "6"], ["U39", "7"]]}, {name: "control.meas_v", pads: [["R27", "1"], ["Q10", "2"], ["J11", "1"], ["R91", "1"]]}, {name: "control.meas_i", pads: [["R31", "1"], ["R33", "1"], ["Q12", "2"], ["J12", "1"], ["R92", "1"]]}, - {name: "control.int_link", pads: [["U14", "4"], ["R34", "1"], ["J2", "1"]]}, + {name: "control.int_link", pads: [["U15", "4"], ["R34", "1"], ["J2", "1"]]}, {name: "control.int.c1.neg", pads: [["C53", "2"], ["R35", "2"]]}, {name: "control.driver.out", pads: [["D11", "2"], ["Q7", "3"], ["Q8", "3"], ["R49", "2"], ["R50", "2"], ["R53", "1"], ["R55", "1"], ["R57", "1"], ["R59", "1"]]}, - {name: "control.driver.clamp1.anode", pads: [["D10", "2"], ["R48", "2"], ["U15", "1"], ["U16", "1"]]}, + {name: "control.driver.clamp1.anode", pads: [["D10", "2"], ["R48", "2"], ["U16", "1"], ["U17", "1"]]}, {name: "control.driver.clamp1.cathode", pads: [["D10", "1"], ["D11", "1"]]}, - {name: "control.driver.high_fet.gate", pads: [["Q7", "1"], ["U15", "6"], ["R49", "1"]]}, - {name: "control.driver.low_fet.gate", pads: [["Q8", "1"], ["U16", "6"], ["R50", "1"]]}, + {name: "control.driver.high_fet.gate", pads: [["Q7", "1"], ["U16", "6"], ["R49", "1"]]}, + {name: "control.driver.low_fet.gate", pads: [["Q8", "1"], ["U17", "6"], ["R50", "1"]]}, {name: "control.driver.res.res[0].b", pads: [["R39", "2"], ["R40", "1"]]}, {name: "control.driver.res.res[1].b", pads: [["R40", "2"], ["R41", "1"]]}, {name: "control.driver.res.res[2].b", pads: [["R41", "2"], ["R42", "1"]]}, @@ -1689,41 +1689,41 @@ board.setNetlist([ {name: "control.driver.res.res[6].b", pads: [["R45", "2"], ["R46", "1"]]}, {name: "control.driver.res.res[7].b", pads: [["R46", "2"], ["R47", "1"]]}, {name: "control.driver.res.res[8].b", pads: [["R47", "2"], ["R48", "1"]]}, - {name: "control.vdiv.output", pads: [["R51", "2"], ["R52", "1"], ["C59", "1"], ["U23", "4"]]}, - {name: "control.isense.sense_out", pads: [["U17", "6"], ["U19", "6"], ["U21", "6"], ["R60", "1"]]}, - {name: "control.isense.ranges[0].isense.pwr_out", pads: [["R53", "2"], ["U17", "1"], ["U18", "4"]]}, - {name: "control.isense.ranges[0].pwr_sw.ic.ledk", pads: [["U18", "2"], ["R54", "1"]]}, - {name: "control.isense.ranges[1].isense.pwr_out", pads: [["R55", "2"], ["U19", "1"], ["U20", "3"]]}, - {name: "control.isense.ranges[1].pwr_sw.ic.ledk", pads: [["U20", "2"], ["R56", "1"]]}, - {name: "control.isense.ranges[2].isense.pwr_out", pads: [["R57", "2"], ["U21", "1"], ["U22", "3"]]}, - {name: "control.isense.ranges[2].pwr_sw.ic.ledk", pads: [["U22", "2"], ["R58", "1"]]}, - {name: "control.ifilt.outn", pads: [["R60", "2"], ["C63", "2"], ["U24", "1"]]}, - {name: "control.ifilt.outp", pads: [["R59", "2"], ["C63", "1"], ["U24", "4"]]}, - {name: "control.vmeas.output", pads: [["U23", "7"], ["Q9", "2"]]}, - {name: "control.vmeas.ic.rg2", pads: [["U23", "2"], ["R61", "1"]]}, - {name: "control.vmeas.ic.rg3", pads: [["U23", "3"], ["R61", "2"]]}, - {name: "control.imeas.output", pads: [["U24", "7"], ["Q11", "2"]]}, - {name: "control.imeas.ic.rg2", pads: [["U24", "2"], ["R62", "1"]]}, - {name: "control.imeas.ic.rg3", pads: [["U24", "3"], ["R62", "2"]]}, + {name: "control.vdiv.output", pads: [["R51", "2"], ["R52", "1"], ["C59", "1"], ["U24", "4"]]}, + {name: "control.isense.sense_out", pads: [["U18", "6"], ["U20", "6"], ["U22", "6"], ["R60", "1"]]}, + {name: "control.isense.ranges[0].isense.pwr_out", pads: [["R53", "2"], ["U18", "1"], ["U19", "4"]]}, + {name: "control.isense.ranges[0].pwr_sw.ic.ledk", pads: [["U19", "2"], ["R54", "1"]]}, + {name: "control.isense.ranges[1].isense.pwr_out", pads: [["R55", "2"], ["U20", "1"], ["U21", "3"]]}, + {name: "control.isense.ranges[1].pwr_sw.ic.ledk", pads: [["U21", "2"], ["R56", "1"]]}, + {name: "control.isense.ranges[2].isense.pwr_out", pads: [["R57", "2"], ["U22", "1"], ["U23", "3"]]}, + {name: "control.isense.ranges[2].pwr_sw.ic.ledk", pads: [["U23", "2"], ["R58", "1"]]}, + {name: "control.ifilt.outn", pads: [["R60", "2"], ["C63", "2"], ["U25", "1"]]}, + {name: "control.ifilt.outp", pads: [["R59", "2"], ["C63", "1"], ["U25", "4"]]}, + {name: "control.vmeas.output", pads: [["U24", "7"], ["Q9", "2"]]}, + {name: "control.vmeas.ic.rg2", pads: [["U24", "2"], ["R61", "1"]]}, + {name: "control.vmeas.ic.rg3", pads: [["U24", "3"], ["R61", "2"]]}, + {name: "control.imeas.output", pads: [["U25", "7"], ["Q11", "2"]]}, + {name: "control.imeas.ic.rg2", pads: [["U25", "2"], ["R62", "1"]]}, + {name: "control.imeas.ic.rg3", pads: [["U25", "3"], ["R62", "2"]]}, {name: "control.vclamp.r.a", pads: [["Q9", "1"], ["R63", "1"], ["Q10", "3"]]}, {name: "control.vclamp.r.b", pads: [["Q9", "3"], ["R63", "2"], ["Q10", "1"]]}, {name: "control.snub_r.pwr_out", pads: [["R64", "2"], ["C66", "1"]]}, {name: "control.iclamp.r.a", pads: [["Q11", "1"], ["R65", "1"], ["Q12", "3"]]}, {name: "control.iclamp.r.b", pads: [["Q11", "3"], ["R65", "2"], ["Q12", "1"]]}, {name: "control.tvs_p.ports.2", pads: [["D12", "2"], ["D13", "2"]]}, - {name: "pd.int", pads: [["U25", "5"], ["U26", "9"]]}, - {name: "pd.ic.vconn", pads: [["U25", "12"], ["U25", "13"]]}, - {name: "mcu.program_uart_node.a_tx", pads: [["J4", "4"], ["U26", "36"]]}, - {name: "mcu.program_uart_node.b_tx", pads: [["J4", "3"], ["U26", "37"]]}, - {name: "mcu.program_en_node", pads: [["J4", "6"], ["U26", "3"], ["R66", "2"], ["C71", "1"]]}, - {name: "mcu.program_boot_node", pads: [["J4", "2"], ["U26", "27"], ["R67", "2"]]}, + {name: "pd.int", pads: [["U26", "5"], ["U27", "9"]]}, + {name: "pd.ic.vconn", pads: [["U26", "12"], ["U26", "13"]]}, + {name: "mcu.program_uart_node.a_tx", pads: [["J4", "4"], ["U27", "36"]]}, + {name: "mcu.program_uart_node.b_tx", pads: [["J4", "3"], ["U27", "37"]]}, + {name: "mcu.program_en_node", pads: [["J4", "6"], ["U27", "3"], ["R66", "2"], ["C71", "1"]]}, + {name: "mcu.program_boot_node", pads: [["J4", "2"], ["U27", "27"], ["R67", "2"]]}, {name: "led.package.k", pads: [["D14", "1"], ["R67", "1"]]}, {name: "oled.reset", pads: [["J5", "16"], ["R71", "2"], ["C77", "1"]]}, {name: "oled.device.iref", pads: [["J5", "4"], ["R70", "2"]]}, {name: "oled.device.vcomh", pads: [["J5", "3"], ["C72", "1"]]}, - {name: "ioe_ctl.io.off_0", pads: [["U14", "6"], ["U29", "9"]]}, - {name: "buck_rc.input", pads: [["U26", "10"], ["R73", "1"]]}, - {name: "boost_rc.input", pads: [["U26", "11"], ["R74", "1"]]}, + {name: "ioe_ctl.io.off_0", pads: [["U15", "6"], ["U29", "9"]]}, + {name: "buck_rc.input", pads: [["U27", "10"], ["R73", "1"]]}, + {name: "boost_rc.input", pads: [["U27", "11"], ["R74", "1"]]}, {name: "conv_ovp.output", pads: [["U30", "4"], ["U31", "1"], ["R80", "2"]]}, {name: "conv_ovp.comp.inn", pads: [["U30", "3"], ["R75", "2"], ["R76", "1"]]}, {name: "conv_ovp.comp.inp", pads: [["U30", "1"], ["R77", "2"], ["R78", "1"]]}, @@ -1731,52 +1731,52 @@ board.setNetlist([ {name: "conv_latch.ic.in1b", pads: [["U31", "2"], ["U31", "3"]]}, {name: "pass_temp.alert", pads: [["U32", "3"]]}, {name: "conv_temp.alert", pads: [["U33", "3"]]}, - {name: "conv_sense.output", pads: [["U26", "12"], ["R81", "2"], ["R82", "1"]]}, - {name: "ioe_ui.io.irange_0", pads: [["U17", "3"], ["U18", "1"], ["U34", "11"]]}, - {name: "ioe_ui.io.irange_1", pads: [["U19", "3"], ["U20", "1"], ["U34", "9"]]}, - {name: "ioe_ui.io.irange_2", pads: [["U21", "3"], ["U22", "1"], ["U34", "10"]]}, - {name: "enc.a", pads: [["U26", "35"], ["SW1", "A"]]}, - {name: "enc.b", pads: [["U26", "34"], ["SW1", "B"]]}, - {name: "enc.sw", pads: [["U26", "33"], ["SW1", "S1"]]}, + {name: "conv_sense.output", pads: [["U27", "12"], ["R81", "2"], ["R82", "1"]]}, + {name: "ioe_ui.io.irange_0", pads: [["U18", "3"], ["U19", "1"], ["U34", "11"]]}, + {name: "ioe_ui.io.irange_1", pads: [["U20", "3"], ["U21", "1"], ["U34", "9"]]}, + {name: "ioe_ui.io.irange_2", pads: [["U22", "3"], ["U23", "1"], ["U34", "10"]]}, + {name: "enc.a", pads: [["U27", "35"], ["SW1", "A"]]}, + {name: "enc.b", pads: [["U27", "34"], ["SW1", "B"]]}, + {name: "enc.sw", pads: [["U27", "33"], ["SW1", "S1"]]}, {name: "dir.a", pads: [["U34", "4"], ["SW2", "1"]]}, {name: "dir.b", pads: [["U34", "12"], ["SW2", "4"]]}, {name: "dir.c", pads: [["U34", "6"], ["SW2", "3"]]}, {name: "dir.d", pads: [["U34", "7"], ["SW2", "6"]]}, {name: "dir.center", pads: [["U34", "5"], ["SW2", "2"]]}, - {name: "qwiic_pull.i2c.scl", pads: [["U26", "39"], ["R83", "2"], ["J6", "4"]]}, - {name: "qwiic_pull.i2c.sda", pads: [["U26", "38"], ["R84", "2"], ["J6", "3"]]}, + {name: "qwiic_pull.i2c.scl", pads: [["U27", "39"], ["R83", "2"], ["J6", "4"]]}, + {name: "qwiic_pull.i2c.sda", pads: [["U27", "38"], ["R84", "2"], ["J6", "3"]]}, {name: "dutio.io0", pads: [["J7", "2"], ["R85", "1"]]}, {name: "dutio.io1", pads: [["J7", "3"], ["R86", "1"]]}, - {name: "dut0_clamp.signal_out", pads: [["U26", "24"], ["R85", "2"]]}, - {name: "dut1_clamp.signal_out", pads: [["U26", "25"], ["R86", "2"]]}, - {name: "touch_duck.pad", pads: [["U26", "21"], ["U35", "1"]]}, - {name: "rgbs.din", pads: [["U26", "31"], ["D15", "3"]]}, + {name: "dut0_clamp.signal_out", pads: [["U27", "24"], ["R85", "2"]]}, + {name: "dut1_clamp.signal_out", pads: [["U27", "25"], ["R86", "2"]]}, + {name: "touch_duck.pad", pads: [["U27", "21"], ["U35", "1"]]}, + {name: "rgbs.din", pads: [["U27", "31"], ["D15", "3"]]}, {name: "rgbs.dout", pads: [["D20", "1"]]}, {name: "rgbs.led[0].dout", pads: [["D15", "1"], ["D16", "3"]]}, {name: "rgbs.led[1].dout", pads: [["D16", "1"], ["D17", "3"]]}, {name: "rgbs.led[2].dout", pads: [["D17", "1"], ["D18", "3"]]}, {name: "rgbs.led[3].dout", pads: [["D18", "1"], ["D19", "3"]]}, {name: "rgbs.led[4].dout", pads: [["D19", "1"], ["D20", "3"]]}, - {name: "fan_drv.control", pads: [["U26", "32"], ["Q13", "1"]]}, + {name: "fan_drv.control", pads: [["U27", "32"], ["Q13", "1"]]}, {name: "fan_drv.output", pads: [["Q14", "3"], ["J8", "2"]]}, {name: "fan_drv.pre.drain", pads: [["Q13", "3"], ["R87", "2"], ["Q14", "1"]]}, - {name: "spk_drv.i2s.sck", pads: [["U26", "5"], ["U36", "16"]]}, - {name: "spk_drv.i2s.ws", pads: [["U26", "6"], ["U36", "14"]]}, - {name: "spk_drv.i2s.sd", pads: [["U26", "4"], ["U36", "1"]]}, + {name: "spk_drv.i2s.sck", pads: [["U27", "5"], ["U36", "16"]]}, + {name: "spk_drv.i2s.ws", pads: [["U27", "6"], ["U36", "14"]]}, + {name: "spk_drv.i2s.sd", pads: [["U27", "4"], ["U36", "1"]]}, {name: "spk_drv.out.a", pads: [["U36", "9"], ["J9", "1"]]}, {name: "spk_drv.out.b", pads: [["U36", "10"], ["J9", "2"]]}, {name: "dac.pwr", pads: [["U37", "1"], ["U37", "4"], ["C95", "1"], ["C96", "1"], ["FB3", "2"]]}, {name: "dac.rdy", pads: [["U37", "5"]]}, - {name: "adc.mclkin", pads: [["U26", "20"], ["U38", "18"]]}, + {name: "adc.mclkin", pads: [["U27", "20"], ["U38", "18"]]}, {name: "adc.vins.3", pads: [["U38", "8"]]}, {name: "adc.vins.4", pads: [["U38", "9"]]}, {name: "adc.vins.5", pads: [["U38", "10"]]}, {name: "adc.vins.6", pads: [["U38", "11"]]}, {name: "adc.vins.7", pads: [["U38", "12"]]}, - {name: "adc.spi.sck", pads: [["U26", "17"], ["U38", "14"]]}, - {name: "adc.spi.mosi", pads: [["U26", "18"], ["U38", "15"]]}, - {name: "adc.spi.miso", pads: [["U26", "19"], ["U38", "16"]]}, - {name: "adc.cs", pads: [["U26", "15"], ["U38", "13"]]}, + {name: "adc.spi.sck", pads: [["U27", "17"], ["U38", "14"]]}, + {name: "adc.spi.mosi", pads: [["U27", "18"], ["U38", "15"]]}, + {name: "adc.spi.miso", pads: [["U27", "19"], ["U38", "16"]]}, + {name: "adc.cs", pads: [["U27", "15"], ["U38", "13"]]}, {name: "adc.ic.avdd", pads: [["U38", "1"], ["R88", "2"], ["C101", "1"], ["C102", "1"]]}, {name: "adc.ic.dvdd", pads: [["U38", "20"], ["R89", "2"], ["C103", "1"], ["C104", "1"]]}, {name: "vcen_rc.output", pads: [["U38", "7"], ["R90", "2"], ["C106", "1"]]}, @@ -1785,20 +1785,20 @@ board.setNetlist([ {name: "vimeas_amps.inp.1", pads: [["R36", "2"], ["U39", "5"]]}, {name: "vimeas_amps.inn.0", pads: [["R37", "2"], ["R38", "1"], ["U39", "2"]]}, {name: "cv_amps.inp.1", pads: [["R26", "2"], ["R27", "2"], ["C46", "1"], ["R29", "2"], ["U40", "5"]]}, - {name: "cv_amps.inn.1", pads: [["R28", "2"], ["D8", "1"], ["D9", "2"], ["U12", "3"], ["U13", "1"], ["U14", "3"], ["U40", "6"], ["U41", "2"], ["U41", "6"]]}, + {name: "cv_amps.inn.1", pads: [["R28", "2"], ["D8", "1"], ["D9", "2"], ["U13", "3"], ["U14", "1"], ["U15", "3"], ["U40", "6"], ["U41", "2"], ["U41", "6"]]}, {name: "cv_amps.out.1", pads: [["R28", "1"], ["U40", "7"]]}, {name: "ci_amps.inp.0", pads: [["R32", "2"], ["R33", "2"], ["C48", "1"], ["U41", "3"]]}, {name: "ci_amps.inp.1", pads: [["R30", "2"], ["R31", "2"], ["C47", "1"], ["U41", "5"]]}, - {name: "ci_amps.out.0", pads: [["D9", "1"], ["U13", "3"], ["U41", "1"]]}, - {name: "ci_amps.out.1", pads: [["D8", "2"], ["U12", "1"], ["U41", "7"]]}, + {name: "ci_amps.out.0", pads: [["D9", "1"], ["U14", "3"], ["U41", "1"]]}, + {name: "ci_amps.out.1", pads: [["D8", "2"], ["U13", "1"], ["U41", "7"]]}, {name: "cintref_amps.inp.1", pads: [["R23", "2"], ["R25", "2"], ["U42", "5"]]}, {name: "cintref_amps.inn.0", pads: [["R34", "2"], ["C52", "2"], ["R35", "1"], ["U42", "2"]]}, {name: "cintref_amps.inn.1", pads: [["R22", "2"], ["R24", "2"], ["U42", "6"]]}, - {name: "cintref_amps.out.1", pads: [["R24", "1"], ["U14", "1"], ["U42", "7"]]} + {name: "cintref_amps.out.1", pads: [["R24", "1"], ["U15", "1"], ["U42", "7"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(6.907086614173228, 5.442913385826772); +const limit1 = pt(6.971259842519686, 5.230314960629921); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); diff --git a/examples/UsbUart/UsbUart.net.ref b/examples/UsbUart/UsbUart.net.ref index a847c7fe1..ce32a6c79 100644 --- a/examples/UsbUart/UsbUart.net.ref +++ b/examples/UsbUart/UsbUart.net.ref @@ -44,10 +44,22 @@ (property (name "edg_path") (value "usb_uart.conn")) (property (name "edg_short_path") (value "usb_uart.conn")) (property (name "edg_refdes") (value "UJ1")) - (property (name "edg_part") (value "COM-15111 (Sparkfun)")) - (property (name "edg_value") (value "COM-15111")) + (property (name "edg_part") (value "USB-C Receptacle")) + (property (name "edg_value") (value "USB-C Receptacle")) (sheetpath (names "/usb_uart/") (tstamps "/0f4b0366/")) (tstamps "042701af")) +(comp (ref "UU1") + (value "usb_uart.esd") + (footprint "Package_TO_SOT_SMD:SOT-23") + (property (name "Sheetname") (value "usb_uart")) + (property (name "Sheetfile") (value "edg.parts.connector.UsbPorts.UsbCReceptacle")) + (property (name "edg_path") (value "usb_uart.esd")) + (property (name "edg_short_path") (value "usb_uart.esd")) + (property (name "edg_refdes") (value "UU1")) + (property (name "edg_part") (value "PGB102ST23 (Littelfuse)")) + (property (name "edg_value") (value "PGB102ST23")) + (sheetpath (names "/usb_uart/") (tstamps "/0f4b0366/")) + (tstamps "027c013d")) (comp (ref "UR1") (value "usb_uart.cc_pull.cc1") (footprint "Resistor_SMD:R_0603_1608Metric") @@ -84,14 +96,14 @@ (property (name "edg_value") (value "100nA@1V 40Ω Single 5.49V~5.71V 200mW 5.6V SOD-323 Zener Diodes ROHS")) (sheetpath (names "/") (tstamps "/")) (tstamps "21a30521")) -(comp (ref "UU1") +(comp (ref "UU2") (value "usbconv.ic") (footprint "Package_DFN_QFN:QFN-28-1EP_5x5mm_P0.5mm_EP3.35x3.35mm") (property (name "Sheetname") (value "usbconv")) (property (name "Sheetfile") (value "edg.parts.interface.UsbUart_Cp2102.Cp2102")) (property (name "edg_path") (value "usbconv.ic")) (property (name "edg_short_path") (value "usbconv.ic")) - (property (name "edg_refdes") (value "UU1")) + (property (name "edg_refdes") (value "UU2")) (property (name "edg_part") (value "CP2102 (Silicon Labs)")) (property (name "edg_value") (value "CP2102")) (sheetpath (names "/usbconv/") (tstamps "/0c010301/")) @@ -132,18 +144,6 @@ (property (name "edg_value") (value "50V 1uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS")) (sheetpath (names "/usbconv/") (tstamps "/0c010301/")) (tstamps "0b6402d2")) -(comp (ref "UU2") - (value "usb_esd") - (footprint "Package_TO_SOT_SMD:SOT-23") - (property (name "Sheetname") (value "")) - (property (name "Sheetfile") (value "")) - (property (name "edg_path") (value "usb_esd")) - (property (name "edg_short_path") (value "usb_esd")) - (property (name "edg_refdes") (value "UU2")) - (property (name "edg_part") (value "PGB102ST23 (Littelfuse)")) - (property (name "edg_value") (value "PGB102ST23")) - (sheetpath (names "/") (tstamps "/")) - (tstamps "0bcb02e6")) (comp (ref "UD2") (value "led.package") (footprint "LED_SMD:LED_0603_1608Metric") @@ -223,8 +223,8 @@ (node (ref UJ1) (pin B4)) (node (ref UJ1) (pin B9)) (node (ref UD1) (pin 1)) - (node (ref UU1) (pin 7)) - (node (ref UU1) (pin 8)) + (node (ref UU2) (pin 7)) + (node (ref UU2) (pin 8)) (node (ref UC1) (pin 1)) (node (ref UC2) (pin 1)) (node (ref UU3) (pin 1)) @@ -236,15 +236,15 @@ (node (ref UJ1) (pin B1)) (node (ref UJ1) (pin B12)) (node (ref UJ1) (pin S1)) + (node (ref UU1) (pin 3)) (node (ref UR1) (pin 1)) (node (ref UR2) (pin 1)) (node (ref UD1) (pin 2)) - (node (ref UU1) (pin 29)) - (node (ref UU1) (pin 3)) + (node (ref UU2) (pin 29)) + (node (ref UU2) (pin 3)) (node (ref UC1) (pin 2)) (node (ref UC2) (pin 2)) (node (ref UC3) (pin 2)) - (node (ref UU2) (pin 3)) (node (ref UR3) (pin 2)) (node (ref UU3) (pin 2)) (node (ref UC4) (pin 2)) @@ -254,16 +254,16 @@ (node (ref UU3) (pin 5)) (node (ref UC5) (pin 1)) (node (ref UJ2) (pin 4))) -(net (code 4) (name "Uusb_chain_0.d_P") +(net (code 4) (name "Uusb_uart.usb.dp") (node (ref UJ1) (pin A6)) (node (ref UJ1) (pin B6)) - (node (ref UU1) (pin 4)) - (node (ref UU2) (pin 2))) -(net (code 5) (name "Uusb_chain_0.d_N") + (node (ref UU1) (pin 2)) + (node (ref UU2) (pin 4))) +(net (code 5) (name "Uusb_uart.usb.dm") (node (ref UJ1) (pin A7)) (node (ref UJ1) (pin B7)) - (node (ref UU1) (pin 5)) - (node (ref UU2) (pin 1))) + (node (ref UU1) (pin 1)) + (node (ref UU2) (pin 5))) (net (code 6) (name "Uusb_uart.conn.cc.cc1") (node (ref UJ1) (pin A5)) (node (ref UR1) (pin 2))) @@ -271,31 +271,31 @@ (node (ref UJ1) (pin B5)) (node (ref UR2) (pin 2))) (net (code 8) (name "Uusbconv.suspend") - (node (ref UU1) (pin 12))) + (node (ref UU2) (pin 12))) (net (code 9) (name "Uusbconv.nsuspend") - (node (ref UU1) (pin 11)) + (node (ref UU2) (pin 11)) (node (ref UD2) (pin 2))) (net (code 10) (name "Uusbconv.uart.tx") - (node (ref UU1) (pin 26)) + (node (ref UU2) (pin 26)) (node (ref UJ2) (pin 1))) (net (code 11) (name "Uusbconv.uart.rx") - (node (ref UU1) (pin 25)) + (node (ref UU2) (pin 25)) (node (ref UJ2) (pin 2))) (net (code 12) (name "Uusbconv.ri") - (node (ref UU1) (pin 2))) + (node (ref UU2) (pin 2))) (net (code 13) (name "Uusbconv.dcd") - (node (ref UU1) (pin 1))) + (node (ref UU2) (pin 1))) (net (code 14) (name "Uusbconv.dtr") - (node (ref UU1) (pin 28))) + (node (ref UU2) (pin 28))) (net (code 15) (name "Uusbconv.dsr") - (node (ref UU1) (pin 27))) + (node (ref UU2) (pin 27))) (net (code 16) (name "Uusbconv.rts") - (node (ref UU1) (pin 24))) + (node (ref UU2) (pin 24))) (net (code 17) (name "Uusbconv.cts") - (node (ref UU1) (pin 23))) + (node (ref UU2) (pin 23))) (net (code 18) (name "Uusbconv.ic.vdd") - (node (ref UU1) (pin 6)) - (node (ref UU1) (pin 9)) + (node (ref UU2) (pin 6)) + (node (ref UU2) (pin 9)) (node (ref UC3) (pin 1))) (net (code 19) (name "Uled.package.k") (node (ref UD2) (pin 1)) diff --git a/examples/UsbUart/UsbUart.svgpcb.js b/examples/UsbUart/UsbUart.svgpcb.js index 55568efca..267b25813 100644 --- a/examples/UsbUart/UsbUart.svgpcb.js +++ b/examples/UsbUart/UsbUart.svgpcb.js @@ -2,119 +2,119 @@ const board = new PCB(); // jlc_th.th1 const UH1 = board.add(JlcToolingHole_1_152mm, { - translate: pt(0.518, 0.839), rotate: 0, + translate: pt(0.997, 0.559), rotate: 0, id: 'UH1' }) // jlc_th.th2 const UH2 = board.add(JlcToolingHole_1_152mm, { - translate: pt(0.557, 0.839), rotate: 0, + translate: pt(1.037, 0.559), rotate: 0, id: 'UH2' }) // jlc_th.th3 const UH3 = board.add(JlcToolingHole_1_152mm, { - translate: pt(0.518, 0.879), rotate: 0, + translate: pt(0.997, 0.598), rotate: 0, id: 'UH3' }) // usb_uart.conn const UJ1 = board.add(USB_C_Receptacle_XKB_U262_16XN_4BVC11, { - translate: pt(0.209, 0.165), rotate: 0, + translate: pt(0.769, 0.165), rotate: 0, id: 'UJ1' }) +// usb_uart.esd +const UU1 = board.add(SOT_23, { + translate: pt(1.093, 0.067), rotate: 0, + id: 'UU1' +}) // usb_uart.cc_pull.cc1 const UR1 = board.add(R_0603_1608Metric, { - translate: pt(0.058, 0.420), rotate: 0, + translate: pt(1.076, 0.202), rotate: 0, id: 'UR1' }) // usb_uart.cc_pull.cc2 const UR2 = board.add(R_0603_1608Metric, { - translate: pt(0.214, 0.420), rotate: 0, + translate: pt(1.076, 0.299), rotate: 0, id: 'UR2' }) // vusb_protect.diode const UD1 = board.add(D_SOD_323, { - translate: pt(0.816, 0.604), rotate: 0, + translate: pt(0.816, 0.596), rotate: 0, id: 'UD1' }) // usbconv.ic -const UU1 = board.add(QFN_28_1EP_5x5mm_P0_5mm_EP3_35x3_35mm, { - translate: pt(0.122, 0.689), rotate: 0, - id: 'UU1' +const UU2 = board.add(QFN_28_1EP_5x5mm_P0_5mm_EP3_35x3_35mm, { + translate: pt(0.122, 0.681), rotate: 0, + id: 'UU2' }) // usbconv.regin_cap0.cap const UC1 = board.add(C_0603_1608Metric, { - translate: pt(0.342, 0.595), rotate: 0, + translate: pt(0.342, 0.588), rotate: 0, id: 'UC1' }) // usbconv.regin_cap1.cap const UC2 = board.add(C_0603_1608Metric, { - translate: pt(0.342, 0.692), rotate: 0, + translate: pt(0.342, 0.685), rotate: 0, id: 'UC2' }) // usbconv.vdd_cap.cap const UC3 = board.add(C_0603_1608Metric, { - translate: pt(0.058, 0.879), rotate: 0, + translate: pt(0.058, 0.871), rotate: 0, id: 'UC3' }) -// usb_esd -const UU2 = board.add(SOT_23, { - translate: pt(1.073, 0.633), rotate: 0, - id: 'UU2' -}) // led.package const UD2 = board.add(LED_0603_1608Metric, { - translate: pt(0.577, 0.595), rotate: 0, + translate: pt(0.577, 0.588), rotate: 0, id: 'UD2' }) // led.res const UR3 = board.add(R_0603_1608Metric, { - translate: pt(0.576, 0.693), rotate: 0, + translate: pt(0.576, 0.685), rotate: 0, id: 'UR3' }) // reg_3v3.ic const UU3 = board.add(SOT_23_5, { - translate: pt(0.878, 0.067), rotate: 0, + translate: pt(0.341, 0.067), rotate: 0, id: 'UU3' }) // reg_3v3.in_cap.cap const UC4 = board.add(C_0603_1608Metric, { - translate: pt(0.855, 0.332), rotate: 0, + translate: pt(0.318, 0.332), rotate: 0, id: 'UC4' }) // reg_3v3.out_cap.cap const UC5 = board.add(C_1206_3216Metric, { - translate: pt(0.887, 0.219), rotate: 0, + translate: pt(0.350, 0.219), rotate: 0, id: 'UC5' }) // out.conn const UJ2 = board.add(PinHeader_1x04_P2_54mm_Vertical, { - translate: pt(0.608, 0.370), rotate: 0, + translate: pt(0.071, 0.370), rotate: 0, id: 'UJ2' }) board.setNetlist([ - {name: "vusb", pads: [["UJ1", "A4"], ["UJ1", "A9"], ["UJ1", "B4"], ["UJ1", "B9"], ["UD1", "1"], ["UU1", "7"], ["UU1", "8"], ["UC1", "1"], ["UC2", "1"], ["UU3", "1"], ["UU3", "3"], ["UC4", "1"]]}, - {name: "gnd", pads: [["UJ1", "A1"], ["UJ1", "A12"], ["UJ1", "B1"], ["UJ1", "B12"], ["UJ1", "S1"], ["UR1", "1"], ["UR2", "1"], ["UD1", "2"], ["UU1", "29"], ["UU1", "3"], ["UC1", "2"], ["UC2", "2"], ["UC3", "2"], ["UU2", "3"], ["UR3", "2"], ["UU3", "2"], ["UC4", "2"], ["UC5", "2"], ["UJ2", "3"]]}, + {name: "vusb", pads: [["UJ1", "A4"], ["UJ1", "A9"], ["UJ1", "B4"], ["UJ1", "B9"], ["UD1", "1"], ["UU2", "7"], ["UU2", "8"], ["UC1", "1"], ["UC2", "1"], ["UU3", "1"], ["UU3", "3"], ["UC4", "1"]]}, + {name: "gnd", pads: [["UJ1", "A1"], ["UJ1", "A12"], ["UJ1", "B1"], ["UJ1", "B12"], ["UJ1", "S1"], ["UU1", "3"], ["UR1", "1"], ["UR2", "1"], ["UD1", "2"], ["UU2", "29"], ["UU2", "3"], ["UC1", "2"], ["UC2", "2"], ["UC3", "2"], ["UR3", "2"], ["UU3", "2"], ["UC4", "2"], ["UC5", "2"], ["UJ2", "3"]]}, {name: "v3v3", pads: [["UU3", "5"], ["UC5", "1"], ["UJ2", "4"]]}, - {name: "usb_chain_0.d_P", pads: [["UJ1", "A6"], ["UJ1", "B6"], ["UU1", "4"], ["UU2", "2"]]}, - {name: "usb_chain_0.d_N", pads: [["UJ1", "A7"], ["UJ1", "B7"], ["UU1", "5"], ["UU2", "1"]]}, + {name: "usb_uart.usb.dp", pads: [["UJ1", "A6"], ["UJ1", "B6"], ["UU1", "2"], ["UU2", "4"]]}, + {name: "usb_uart.usb.dm", pads: [["UJ1", "A7"], ["UJ1", "B7"], ["UU1", "1"], ["UU2", "5"]]}, {name: "usb_uart.conn.cc.cc1", pads: [["UJ1", "A5"], ["UR1", "2"]]}, {name: "usb_uart.conn.cc.cc2", pads: [["UJ1", "B5"], ["UR2", "2"]]}, - {name: "usbconv.suspend", pads: [["UU1", "12"]]}, - {name: "usbconv.nsuspend", pads: [["UU1", "11"], ["UD2", "2"]]}, - {name: "usbconv.uart.tx", pads: [["UU1", "26"], ["UJ2", "1"]]}, - {name: "usbconv.uart.rx", pads: [["UU1", "25"], ["UJ2", "2"]]}, - {name: "usbconv.ri", pads: [["UU1", "2"]]}, - {name: "usbconv.dcd", pads: [["UU1", "1"]]}, - {name: "usbconv.dtr", pads: [["UU1", "28"]]}, - {name: "usbconv.dsr", pads: [["UU1", "27"]]}, - {name: "usbconv.rts", pads: [["UU1", "24"]]}, - {name: "usbconv.cts", pads: [["UU1", "23"]]}, - {name: "usbconv.ic.vdd", pads: [["UU1", "6"], ["UU1", "9"], ["UC3", "1"]]}, + {name: "usbconv.suspend", pads: [["UU2", "12"]]}, + {name: "usbconv.nsuspend", pads: [["UU2", "11"], ["UD2", "2"]]}, + {name: "usbconv.uart.tx", pads: [["UU2", "26"], ["UJ2", "1"]]}, + {name: "usbconv.uart.rx", pads: [["UU2", "25"], ["UJ2", "2"]]}, + {name: "usbconv.ri", pads: [["UU2", "2"]]}, + {name: "usbconv.dcd", pads: [["UU2", "1"]]}, + {name: "usbconv.dtr", pads: [["UU2", "28"]]}, + {name: "usbconv.dsr", pads: [["UU2", "27"]]}, + {name: "usbconv.rts", pads: [["UU2", "24"]]}, + {name: "usbconv.cts", pads: [["UU2", "23"]]}, + {name: "usbconv.ic.vdd", pads: [["UU2", "6"], ["UU2", "9"], ["UC3", "1"]]}, {name: "led.package.k", pads: [["UD2", "1"], ["UR3", "1"]]} ]) const limit0 = pt(-0.07874015748031496, -0.07874015748031496); -const limit1 = pt(1.187992125984252, 1.0255905511811025); +const limit1 = pt(1.2866141732283465, 1.0181102362204726); const xMin = Math.min(limit0[0], limit1[0]); const xMax = Math.max(limit0[0], limit1[0]); const yMin = Math.min(limit0[1], limit1[1]); From 5a66ace8119064ce74cf6a1e9192375da6426fce Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Mon, 6 Jul 2026 23:29:28 -0700 Subject: [PATCH 5/8] USB unit tests --- edg/electronics_interfaces/UsbPort.py | 35 +++++++- edg/electronics_interfaces/test_usb_link.py | 93 +++++++++++++++++++++ edg/parts/connector/UsbPorts.py | 4 +- 3 files changed, 126 insertions(+), 6 deletions(-) create mode 100644 edg/electronics_interfaces/test_usb_link.py diff --git a/edg/electronics_interfaces/UsbPort.py b/edg/electronics_interfaces/UsbPort.py index 93f73092f..385eca295 100644 --- a/edg/electronics_interfaces/UsbPort.py +++ b/edg/electronics_interfaces/UsbPort.py @@ -8,16 +8,24 @@ class UsbLink(Link): + UsbLowSpeed = 1_500_000 + UsbFullSpeed = 12_000_000 + UsbHighSpeed = 480_000_000 + + AllUsb2Speeds = Range(UsbLowSpeed, UsbHighSpeed) # all USB2.0 (since diffpair) speeds + def __init__(self) -> None: super().__init__() self.host = self.Port(UsbHostPort()) self.device = self.Port(UsbDevicePort()) self.passive = self.Port(Vector(UsbPassivePort()), optional=True) + self.speed = self.Parameter(RangeExpr()) # link speed between host and device + self.passive_speed = self.Parameter(RangeExpr()) + @override def contents(self) -> None: super().contents() - # TODO write protocol-level signal constraints? self.d_P = self.connect( self.host.dp, self.device.dp, self.passive.map_extract(lambda port: port.dp), flatten=True @@ -26,6 +34,18 @@ def contents(self) -> None: self.host.dm, self.device.dm, self.passive.map_extract(lambda port: port.dm), flatten=True ) + self.assign(self.speed, self.host.speed.intersect(self.device.speed)) + self.require(self.speed != RangeExpr.EMPTY, "incompatible host and device speeds") + self.assign( + self.passive_speed, + self.passive.intersection(lambda port: port.speed).intersect( + self.host._passive_speed.intersect(self.device._passive_speed) + ), + ) + self.require( + self.speed.within(self.passive_speed), "passive device speed limits must not limit data link speed" + ) + class UsbHostBridge(PortBridge): def __init__(self) -> None: @@ -50,8 +70,10 @@ class UsbHostPort(Port[UsbLink]): link_type = UsbLink bridge_type = UsbHostBridge - def __init__(self) -> None: + def __init__(self, *, speed: RangeLike = UsbLink.AllUsb2Speeds, _passive_speed=RangeExpr.ALL) -> None: super().__init__() + self.speed = self.Parameter(RangeExpr(speed)) + self._passive_speed = self.Parameter(RangeExpr(_passive_speed)) # used to propagate through bridges self.dp = self.Port(Passive()) self.dm = self.Port(Passive()) @@ -74,13 +96,17 @@ def contents(self) -> None: self.connect(self.outer_port.dp, self.dp_bridge.outer_port) self.connect(self.dp_bridge.inner_link, self.inner_link.dp) + self.assign(self.outer_port._passive_speed, self.inner_link._passive_speed) + class UsbDevicePort(Port[UsbLink]): link_type = UsbLink bridge_type = UsbDeviceBridge - def __init__(self) -> None: + def __init__(self, *, speed: RangeLike = UsbLink.AllUsb2Speeds, _passive_speed=RangeExpr.ALL) -> None: super().__init__() + self.speed = self.Parameter(RangeExpr(speed)) + self._passive_speed = self.Parameter(RangeExpr(_passive_speed)) # used to propagate through bridges self.dp = self.Port(Passive()) self.dm = self.Port(Passive()) @@ -88,8 +114,9 @@ def __init__(self) -> None: class UsbPassivePort(Port[UsbLink]): link_type = UsbLink - def __init__(self) -> None: + def __init__(self, *, speed: RangeLike = UsbLink.AllUsb2Speeds) -> None: super().__init__() + self.speed = self.Parameter(RangeExpr(speed)) self.dp = self.Port(Passive()) self.dm = self.Port(Passive()) diff --git a/edg/electronics_interfaces/test_usb_link.py b/edg/electronics_interfaces/test_usb_link.py new file mode 100644 index 000000000..83784550e --- /dev/null +++ b/edg/electronics_interfaces/test_usb_link.py @@ -0,0 +1,93 @@ +import unittest + +from ..electronics_model import * +from .UsbPort import UsbLink, UsbHostPort, UsbDevicePort, UsbPassivePort + + +class DummyUsbHost(Block): + def __init__(self, speed: RangeLike = UsbLink.AllUsb2Speeds) -> None: + super().__init__() + self.io = self.Port(UsbHostPort(speed=speed)) + + +class DummyUsbDevice(Block): + def __init__(self, speed: RangeLike = UsbLink.AllUsb2Speeds) -> None: + super().__init__() + self.io = self.Port(UsbDevicePort(speed=speed)) + + +class DummyUsbPassive(Block): + def __init__(self, speed: RangeLike = UsbLink.AllUsb2Speeds) -> None: + super().__init__() + self.io = self.Port(UsbPassivePort(speed=speed)) + + +class SimpleUsbTestTop(DesignTop): + """Test design with host and device and default operating ranges""" + + def __init__(self) -> None: + super().__init__() + self.host = self.Block(DummyUsbHost()) + self.device = self.Block(DummyUsbDevice()) + self.connect(self.host.io, self.device.io) + + +class PassiveUsbTestTop(DesignTop): + """Test design with host, device, and passive and default operating ranges""" + + def __init__(self) -> None: + super().__init__() + self.host = self.Block(DummyUsbHost()) + self.device = self.Block(DummyUsbDevice()) + self.passive = self.Block(DummyUsbPassive()) + self.connect(self.host.io, self.device.io, self.passive.io) + + +class FullSpeedDeviceTestTop(DesignTop): + """Test design with unlimited host (eg, upstream-facing connector) and full-speed device (eg, microcontroller)""" + + def __init__(self) -> None: + super().__init__() + self.host = self.Block(DummyUsbHost()) + self.device = self.Block(DummyUsbDevice(speed=(UsbLink.UsbLowSpeed, UsbLink.UsbFullSpeed))) + self.connect(self.host.io, self.device.io) + + +class IncompatibleSpeedTestTop(DesignTop): + """Test design with incompatible speeds (high speed only host, full speed device)""" + + def __init__(self) -> None: + super().__init__() + self.host = self.Block(DummyUsbHost(speed=(UsbLink.UsbHighSpeed, UsbLink.UsbHighSpeed))) + self.device = self.Block(DummyUsbDevice(speed=(UsbLink.UsbLowSpeed, UsbLink.UsbFullSpeed))) + self.connect(self.host.io, self.device.io) + + +class LimitingPassiveUsbTestTop(DesignTop): + """Test design with passive that limits the link speed, eg low-speed / high-capacitance ESD diode""" + + def __init__(self) -> None: + super().__init__() + self.host = self.Block(DummyUsbHost()) + self.device = self.Block(DummyUsbDevice()) + self.passive = self.Block(DummyUsbPassive(speed=(UsbLink.UsbLowSpeed, UsbLink.UsbFullSpeed))) + self.connect(self.host.io, self.device.io, self.passive.io) + + +class VoltageLinkTestCase(unittest.TestCase): + def test_simple(self) -> None: + ScalaCompiler.compile(SimpleUsbTestTop) + + def test_passive(self) -> None: + ScalaCompiler.compile(PassiveUsbTestTop) + + def test_full_speed_device(self) -> None: + ScalaCompiler.compile(FullSpeedDeviceTestTop) + + def test_incompatible_speed(self) -> None: + with self.assertRaises(CompilerCheckError): + ScalaCompiler.compile(IncompatibleSpeedTestTop) + + def test_limiting_passive(self) -> None: + with self.assertRaises(CompilerCheckError): + ScalaCompiler.compile(LimitingPassiveUsbTestTop) diff --git a/edg/parts/connector/UsbPorts.py b/edg/parts/connector/UsbPorts.py index 5a2774033..9da1926bf 100644 --- a/edg/parts/connector/UsbPorts.py +++ b/edg/parts/connector/UsbPorts.py @@ -35,8 +35,8 @@ def contents(self) -> None: class UsbAReceptacle(UsbHostConnector, GeneratorBlock): - def __init__(self, *, generate_esd_diode: BoolLike = True) -> None: - super().__init__(generate_esd_diode=generate_esd_diode) + def __init__(self, *, speed: RangeLike = UsbLink.AllUsb2Speeds, generate_esd_diode: BoolLike = True) -> None: + super().__init__(speed=speed, generate_esd_diode=generate_esd_diode) self.conn = self.Block(Molex_105057_Device()) self.generator_param(self.usb.is_connected(), self.generate_esd_diode) From 090f6a652d15be9eb0937daaee0df6eca3e754a0 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Mon, 6 Jul 2026 23:58:50 -0700 Subject: [PATCH 6/8] usb speed modeling --- edg/circuits/UsbBitBang.py | 2 +- edg/circuits/UsbSeriesResistor.py | 4 +++- edg/electronics_interfaces/UsbPort.py | 15 ++++++++---- edg/parts/connector/UsbPorts.py | 27 +++++++++++----------- edg/parts/interface/UsbInterface_Ft232h.py | 2 +- edg/parts/interface/UsbUart_Cp2102.py | 2 +- edg/parts/microcontroller/Ch32v203.py | 4 +++- edg/parts/microcontroller/Esp32s3.py | 4 +++- edg/parts/microcontroller/Lpc1549.py | 6 ++++- edg/parts/microcontroller/Rp2040.py | 5 +++- edg/parts/microcontroller/Stm32f103.py | 4 +++- edg/parts/microcontroller/Stm32g431.py | 4 +++- edg/parts/microcontroller/Stm32l432.py | 4 +++- edg/parts/microcontroller/nRF52840.py | 2 +- 14 files changed, 55 insertions(+), 30 deletions(-) diff --git a/edg/circuits/UsbBitBang.py b/edg/circuits/UsbBitBang.py index a2bd8def6..2602e5924 100644 --- a/edg/circuits/UsbBitBang.py +++ b/edg/circuits/UsbBitBang.py @@ -30,7 +30,7 @@ def digital_external_from_link(link_port: DigitalBidir) -> DigitalBidir: def __init__(self) -> None: super().__init__() - self.usb = self.Port(UsbDevicePort.empty(), [Output]) + self.usb = self.Port(UsbDevicePort(speed=(UsbLink.UsbLowSpeed, UsbLink.UsbFullSpeed)), [Output]) # Internally, this behaves like a bridge, with defined 'external' (USB) and 'internal' (FPGA) # sides and propagating port data from internal to external as with bridge semantics. diff --git a/edg/circuits/UsbSeriesResistor.py b/edg/circuits/UsbSeriesResistor.py index fa893b4e9..450df0545 100644 --- a/edg/circuits/UsbSeriesResistor.py +++ b/edg/circuits/UsbSeriesResistor.py @@ -10,7 +10,9 @@ def __init__(self, resistance: RangeLike) -> None: super().__init__() self.resistance = self.ArgParameter(resistance) self.interior = self.Port(UsbHostPort(), [Input]) - self.exterior = self.Port(UsbDevicePort(), [Output]) + self.exterior = self.Port( + UsbDevicePort(speed=self.interior.link().speed, _passive_speed=self.interior.link().passive_speed), [Output] + ) @override def contents(self) -> None: diff --git a/edg/electronics_interfaces/UsbPort.py b/edg/electronics_interfaces/UsbPort.py index 385eca295..aeaa197f8 100644 --- a/edg/electronics_interfaces/UsbPort.py +++ b/edg/electronics_interfaces/UsbPort.py @@ -13,6 +13,7 @@ class UsbLink(Link): UsbHighSpeed = 480_000_000 AllUsb2Speeds = Range(UsbLowSpeed, UsbHighSpeed) # all USB2.0 (since diffpair) speeds + UsbFullSpeedOnly = Range.exact(UsbFullSpeed) def __init__(self) -> None: super().__init__() @@ -51,7 +52,7 @@ class UsbHostBridge(PortBridge): def __init__(self) -> None: super().__init__() self.outer_port = self.Port(UsbHostPort.empty()) - self.inner_link = self.Port(UsbDevicePort.empty()) + self.inner_link = self.Port(UsbDevicePort(speed=Range.all())) # dummy @override def contents(self) -> None: @@ -65,12 +66,15 @@ def contents(self) -> None: self.connect(self.outer_port.dp, self.dp_bridge.outer_port) self.connect(self.dp_bridge.inner_link, self.inner_link.dp) + self.assign(self.outer_port.speed, self.inner_link.link().speed) + self.assign(self.outer_port._passive_speed, self.inner_link.link().passive_speed) + class UsbHostPort(Port[UsbLink]): link_type = UsbLink bridge_type = UsbHostBridge - def __init__(self, *, speed: RangeLike = UsbLink.AllUsb2Speeds, _passive_speed=RangeExpr.ALL) -> None: + def __init__(self, *, speed: RangeLike = UsbLink.AllUsb2Speeds, _passive_speed: RangeLike = RangeExpr.ALL) -> None: super().__init__() self.speed = self.Parameter(RangeExpr(speed)) self._passive_speed = self.Parameter(RangeExpr(_passive_speed)) # used to propagate through bridges @@ -82,7 +86,7 @@ class UsbDeviceBridge(PortBridge): def __init__(self) -> None: super().__init__() self.outer_port = self.Port(UsbDevicePort.empty()) - self.inner_link = self.Port(UsbHostPort.empty()) + self.inner_link = self.Port(UsbHostPort(speed=Range.all())) # dummy @override def contents(self) -> None: @@ -96,14 +100,15 @@ def contents(self) -> None: self.connect(self.outer_port.dp, self.dp_bridge.outer_port) self.connect(self.dp_bridge.inner_link, self.inner_link.dp) - self.assign(self.outer_port._passive_speed, self.inner_link._passive_speed) + self.assign(self.outer_port.speed, self.inner_link.link().speed) + self.assign(self.outer_port._passive_speed, self.inner_link.link().passive_speed) class UsbDevicePort(Port[UsbLink]): link_type = UsbLink bridge_type = UsbDeviceBridge - def __init__(self, *, speed: RangeLike = UsbLink.AllUsb2Speeds, _passive_speed=RangeExpr.ALL) -> None: + def __init__(self, *, speed: RangeLike = UsbLink.AllUsb2Speeds, _passive_speed: RangeLike = RangeExpr.ALL) -> None: super().__init__() self.speed = self.Parameter(RangeExpr(speed)) self._passive_speed = self.Parameter(RangeExpr(_passive_speed)) # used to propagate through bridges diff --git a/edg/parts/connector/UsbPorts.py b/edg/parts/connector/UsbPorts.py index 9da1926bf..6c1f054d0 100644 --- a/edg/parts/connector/UsbPorts.py +++ b/edg/parts/connector/UsbPorts.py @@ -1,3 +1,5 @@ +from typing import Any + from typing_extensions import override from ...circuits import * @@ -12,7 +14,7 @@ def __init__(self) -> None: self.pwr = self.Port( VoltageSink(voltage_limits=UsbConnector.USB2_VOLTAGE_RANGE, current_draw=UsbConnector.USB2_CURRENT_LIMITS) ) - self.usb = self.Port(UsbDevicePort(), optional=True) + self.usb = self.Port(UsbDevicePort(speed=UsbLink.AllUsb2Speeds), optional=True) self.shield = self.Port(Ground(), optional=True) @override @@ -35,8 +37,8 @@ def contents(self) -> None: class UsbAReceptacle(UsbHostConnector, GeneratorBlock): - def __init__(self, *, speed: RangeLike = UsbLink.AllUsb2Speeds, generate_esd_diode: BoolLike = True) -> None: - super().__init__(speed=speed, generate_esd_diode=generate_esd_diode) + def __init__(self, **kwargs: Any) -> None: + super().__init__(**kwargs) self.conn = self.Block(Molex_105057_Device()) self.generator_param(self.usb.is_connected(), self.generate_esd_diode) @@ -71,7 +73,7 @@ def __init__( self.gnd = self.Port(Ground()) self.pwr = self.Port(VoltageSource(voltage=voltage, current_limits=current_limits), optional=True) - self.usb = self.Port(UsbHostPort(), optional=True) + self.usb = self.Port(UsbHostPort(speed=UsbLink.AllUsb2Speeds), optional=True) self.shield = self.Port(Ground(), optional=True) self.cc = self.Port(UsbCcPort(), optional=True) @@ -110,10 +112,9 @@ def __init__( self, voltage: RangeLike = UsbConnector.USB2_VOLTAGE_RANGE, # allow custom PD voltage and current current_limits: RangeLike = UsbConnector.USB2_CURRENT_LIMITS, - *, - generate_esd_diode: BoolLike = True, + **kwargs: Any, ) -> None: - super().__init__(generate_esd_diode=generate_esd_diode) + super().__init__(**kwargs) self.conn = self.Block(UsbCReceptacle_Device(voltage=voltage, current_limits=current_limits)) self.cc = self.Port(UsbCcPort.empty(), optional=True) # external connectivity defines the circuit @@ -159,7 +160,7 @@ def __init__(self) -> None: self.pwr = self.Port( VoltageSource(voltage=UsbConnector.USB2_VOLTAGE_RANGE, current_limits=UsbConnector.USB2_CURRENT_LIMITS) ) - self.usb = self.Port(UsbHostPort()) + self.usb = self.Port(UsbHostPort(speed=UsbLink.AllUsb2Speeds)) self.shield = self.Port(Ground(), optional=True) @override @@ -183,8 +184,8 @@ def contents(self) -> None: class UsbMicroBReceptacle(UsbDeviceConnector, GeneratorBlock): - def __init__(self, *, generate_esd_diode: BoolLike = True) -> None: - super().__init__(generate_esd_diode=generate_esd_diode) + def __init__(self, **kwargs: Any) -> None: + super().__init__(**kwargs) self.conn = self.Block(Molex_105017_0001_Device()) self.generator_param(self.usb.is_connected(), self.generate_esd_diode) @@ -231,7 +232,7 @@ def contents(self) -> None: # PESD5V0X1BT,215 (different architecture, but USB listed as application) super().contents() self.gnd.init_from(Ground()) - self.usb.init_from(UsbPassivePort()) + self.usb.init_from(UsbPassivePort(speed=UsbLink.AllUsb2Speeds)) # up to 6 GBps self.footprint( "U", "Package_TO_SOT_SMD:SOT-23", @@ -253,7 +254,7 @@ class Pesd5v0x1bt(UsbEsdDiode, FootprintBlock, JlcPart): def contents(self) -> None: super().contents() self.gnd.init_from(Ground()) - self.usb.init_from(UsbPassivePort()) + self.usb.init_from(UsbPassivePort(speed=UsbLink.AllUsb2Speeds)) self.assign(self.lcsc_part, "C456094") self.assign(self.actual_basic_part, False) self.footprint( @@ -277,7 +278,7 @@ class Pgb102st23(UsbEsdDiode, FootprintBlock, JlcPart): def contents(self) -> None: super().contents() self.gnd.init_from(Ground()) - self.usb.init_from(UsbPassivePort()) + self.usb.init_from(UsbPassivePort(speed=UsbLink.AllUsb2Speeds)) self.assign(self.lcsc_part, "C126830") self.assign(self.actual_basic_part, False) self.footprint( diff --git a/edg/parts/interface/UsbInterface_Ft232h.py b/edg/parts/interface/UsbInterface_Ft232h.py index e4e915f1c..e5e262b2a 100644 --- a/edg/parts/interface/UsbInterface_Ft232h.py +++ b/edg/parts/interface/UsbInterface_Ft232h.py @@ -55,7 +55,7 @@ def __init__(self) -> None: CrystalDriver(frequency_limits=12 * MHertz(tol=30e-6), voltage=self.vccd.link().voltage) ) # assumed self.ref = self.Port(AnalogSource.from_supply(self.gnd, self.vcca)) # assumed, connect 12k 1% resistor to GND - self.usb = self.Port(UsbDevicePort()) + self.usb = self.Port(UsbDevicePort(speed=(UsbLink.UsbFullSpeed, UsbLink.UsbHighSpeed))) self._dio_model = DigitalBidir.from_supply( # except USB pins which are not 5v tolerant self.gnd, diff --git a/edg/parts/interface/UsbUart_Cp2102.py b/edg/parts/interface/UsbUart_Cp2102.py index 8bfe2b78e..a4eb7c20e 100644 --- a/edg/parts/interface/UsbUart_Cp2102.py +++ b/edg/parts/interface/UsbUart_Cp2102.py @@ -27,7 +27,7 @@ def __init__(self) -> None: ) ) - self.usb = self.Port(UsbDevicePort()) + self.usb = self.Port(UsbDevicePort(speed=UsbLink.UsbFullSpeedOnly)) dio_model = DigitalBidir.from_supply( self.gnd, diff --git a/edg/parts/microcontroller/Ch32v203.py b/edg/parts/microcontroller/Ch32v203.py index b770602ef..de71ac09e 100644 --- a/edg/parts/microcontroller/Ch32v203.py +++ b/edg/parts/microcontroller/Ch32v203.py @@ -236,7 +236,9 @@ def _io_pinmap(self) -> PinMapUtil: # unavailable on K8 # PeripheralFixedResource("USART3", uart_model, {"tx": ["PB10"], "rx": ["PB11"]}), # PeripheralFixedResource("USART4", uart_model, {"tx": ["PB0", "PA5"], "rx": ["PB1", "PB5"]}), - PeripheralFixedResource("USB", UsbDevicePort(), {"dm": ["PA11"], "dp": ["PA12"]}), + PeripheralFixedResource( + "USB", UsbDevicePort(speed=UsbLink.UsbFullSpeedOnly), {"dm": ["PA11"], "dp": ["PA12"]} + ), # PeripheralFixedResource("USBFS", UsbDevicePort(DigitalBidir.empty()), {"dm": ["PB6"], "dp": ["PB7"]}), PeripheralFixedResource("I2C1", i2c_model, {"scl": ["PB6", "PB8"], "sda": ["PB7", "PB9"]}), PeripheralFixedResource("I2C1_T", i2c_target_model, {"scl": ["PB6", "PB8"], "sda": ["PB7", "PB9"]}), diff --git a/edg/parts/microcontroller/Esp32s3.py b/edg/parts/microcontroller/Esp32s3.py index da596dd94..4d7c6bba0 100644 --- a/edg/parts/microcontroller/Esp32s3.py +++ b/edg/parts/microcontroller/Esp32s3.py @@ -220,7 +220,9 @@ def _io_pinmap(self) -> PinMapUtil: PeripheralAnyResource( "DVP", dvp8_model ), # TODO this also eats an I2S port, also available as 16-bit - PeripheralFixedResource("USB", UsbDevicePort(), {"dp": ["GPIO20"], "dm": ["GPIO19"]}), + PeripheralFixedResource( + "USB", UsbDevicePort(speed=UsbLink.UsbFullSpeedOnly), {"dp": ["GPIO20"], "dm": ["GPIO19"]} + ), ] ) .remap_pins(self._PIN_MAPPING) diff --git a/edg/parts/microcontroller/Lpc1549.py b/edg/parts/microcontroller/Lpc1549.py index 5259e1dec..e5c243e7d 100644 --- a/edg/parts/microcontroller/Lpc1549.py +++ b/edg/parts/microcontroller/Lpc1549.py @@ -195,7 +195,11 @@ def _io_pinmap(self) -> PinMapUtil: I2cTarget(DigitalBidir.empty()), {"scl": ["PIO0_22"], "sda": ["PIO0_23"]}, # TODO shared resource w/ I2C controller ), - PeripheralFixedPin("USB", UsbDevicePort(), {"dp": "USB_DP", "dm": "USB_DM"}), + PeripheralFixedPin( + "USB", + UsbDevicePort(speed=(UsbLink.UsbLowSpeed, UsbLink.UsbFullSpeed)), + {"dp": "USB_DP", "dm": "USB_DM"}, + ), # Figure 49: requires a pull-up on SWDIO and pull-down on SWCLK PeripheralFixedResource( "SWD", diff --git a/edg/parts/microcontroller/Rp2040.py b/edg/parts/microcontroller/Rp2040.py index 77cf1fe72..c0b7c11c0 100644 --- a/edg/parts/microcontroller/Rp2040.py +++ b/edg/parts/microcontroller/Rp2040.py @@ -221,7 +221,10 @@ def _io_pinmap(self) -> PinMapUtil: PinResource("GPIO28", {"GPIO28": self._dio_std_model, "ADC2": adc_model}), PinResource("GPIO29", {"GPIO29": self._dio_std_model, "ADC3": adc_model}), # fixed-pin peripherals - PeripheralFixedPin("USB", UsbDevicePort(), {"dm": "USB_DM", "dp": "USB_DP"}), + # note, USB device in full speed only, USB host in low and full speed + PeripheralFixedPin( + "USB", UsbDevicePort(speed=UsbLink.UsbFullSpeedOnly), {"dm": "USB_DM", "dp": "USB_DP"} + ), # reassignable peripherals PeripheralFixedResource( "UART0", diff --git a/edg/parts/microcontroller/Stm32f103.py b/edg/parts/microcontroller/Stm32f103.py index d5758be69..a69ddad63 100644 --- a/edg/parts/microcontroller/Stm32f103.py +++ b/edg/parts/microcontroller/Stm32f103.py @@ -210,7 +210,9 @@ def _io_pinmap(self) -> PinMapUtil: CanControllerPort(DigitalBidir.empty()), {"txd": ["PA12", "PD1", "PB9"], "rxd": ["PA11", "PD0", "PB8"]}, ), - PeripheralFixedResource("USB", UsbDevicePort(), {"dm": ["PA11"], "dp": ["PA12"]}), + PeripheralFixedResource( + "USB", UsbDevicePort(speed=UsbLink.UsbFullSpeedOnly), {"dm": ["PA11"], "dp": ["PA12"]} + ), PeripheralFixedPin( "SWD", SwdTargetPort(dio_std_model), diff --git a/edg/parts/microcontroller/Stm32g431.py b/edg/parts/microcontroller/Stm32g431.py index 83b7b250d..67f068a86 100644 --- a/edg/parts/microcontroller/Stm32g431.py +++ b/edg/parts/microcontroller/Stm32g431.py @@ -216,7 +216,9 @@ def _io_pinmap(self) -> PinMapUtil: "swclk": ["PA14"], }, ), - PeripheralFixedResource("USB", UsbDevicePort(), {"dm": ["PA11"], "dp": ["PA12"]}), + PeripheralFixedResource( + "USB", UsbDevicePort(speed=UsbLink.UsbFullSpeedOnly), {"dm": ["PA11"], "dp": ["PA12"]} + ), PeripheralFixedResource("USBCC", UsbCcPort(), {"cc1": ["PB6"], "cc2": ["PB4"]}), ] ).remap_pins(self._PIN_MAPPING) diff --git a/edg/parts/microcontroller/Stm32l432.py b/edg/parts/microcontroller/Stm32l432.py index 06adae112..ccf5ced57 100644 --- a/edg/parts/microcontroller/Stm32l432.py +++ b/edg/parts/microcontroller/Stm32l432.py @@ -179,7 +179,9 @@ def _io_pinmap(self) -> PinMapUtil: PeripheralFixedResource( "CAN", CanControllerPort(DigitalBidir.empty()), {"tx": ["PA12"], "rx": ["PA11"]} ), - PeripheralFixedResource("USB", UsbDevicePort.empty(), {"dp": ["PA12"], "dm": ["PA11"]}), + PeripheralFixedResource( + "USB", UsbDevicePort(speed=UsbLink.UsbFullSpeedOnly), {"dp": ["PA12"], "dm": ["PA11"]} + ), PeripheralFixedResource("SPI3", spi_model, {"sck": ["PB3"], "miso": ["PB4"], "mosi": ["PB5"]}), PeripheralFixedResource("USART1", uart_model, {"tx": ["PB6"], "rx": ["PB7"]}), PeripheralFixedResource( diff --git a/edg/parts/microcontroller/nRF52840.py b/edg/parts/microcontroller/nRF52840.py index 4d3da872f..dc5b3e8e6 100644 --- a/edg/parts/microcontroller/nRF52840.py +++ b/edg/parts/microcontroller/nRF52840.py @@ -251,7 +251,7 @@ def _io_pinmap(self) -> PinMapUtil: "swdio": "SWDIO", }, ), - PeripheralFixedPin("USBD", UsbDevicePort(), {"dp": "D+", "dm": "D-"}), + PeripheralFixedPin("USBD", UsbDevicePort(speed=UsbLink.UsbFullSpeedOnly), {"dp": "D+", "dm": "D-"}), PeripheralFixedResource( "SPIM0", spi_model, From f78f00032278d23522d652125f35805c417836f8 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Tue, 7 Jul 2026 00:06:30 -0700 Subject: [PATCH 7/8] cleaning --- edg/abstract_parts/UsbConnectors.py | 6 ++++-- edg/parts/power/converter/Mp2722.py | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/edg/abstract_parts/UsbConnectors.py b/edg/abstract_parts/UsbConnectors.py index 378e211ec..22b9257b7 100644 --- a/edg/abstract_parts/UsbConnectors.py +++ b/edg/abstract_parts/UsbConnectors.py @@ -12,7 +12,8 @@ class UsbConnector(Connector): @abstract_block class UsbHostConnector(UsbConnector): - """Abstract base class for a USB 2.0 device-side port connector.""" + """Abstract base class for a USB 2.0 device-side port connector. + By default, generates a ESD diode on the data line if the data line is used.""" def __init__(self, *, generate_esd_diode: BoolLike = True) -> None: super().__init__() @@ -27,7 +28,8 @@ def __init__(self, *, generate_esd_diode: BoolLike = True) -> None: @abstract_block class UsbDeviceConnector(UsbConnector, PowerSource): - """Abstract base class for a USB 2.0 device-side port connector.""" + """Abstract base class for a USB 2.0 device-side port connector. + By default, generates a ESD diode on the data line if the data line is used.""" def __init__(self, *, generate_esd_diode: BoolLike = True) -> None: super().__init__() diff --git a/edg/parts/power/converter/Mp2722.py b/edg/parts/power/converter/Mp2722.py index 3f0ed7677..8a64cf852 100644 --- a/edg/parts/power/converter/Mp2722.py +++ b/edg/parts/power/converter/Mp2722.py @@ -73,7 +73,9 @@ def __init__(self, charging_current: RangeLike): # i2C up to 5v tolerant self.i2c = self.Port(I2cTarget(dio_model)) self.cc = self.Port(UsbCcPort(), optional=True) - self.usb = self.Port(UsbDevicePort(), optional=True) # BC protocol only + self.usb = self.Port( + UsbDevicePort(speed=Range.exact(UsbLink.UsbLowSpeed)), optional=True + ) # TODO: BC protocol only @override def contents(self) -> None: From f89f8e603041bed1fe63960265f705ebcf1eed81 Mon Sep 17 00:00:00 2001 From: Richard Lin Date: Tue, 7 Jul 2026 00:12:58 -0700 Subject: [PATCH 8/8] Update UsbPort.py --- edg/electronics_interfaces/UsbPort.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/edg/electronics_interfaces/UsbPort.py b/edg/electronics_interfaces/UsbPort.py index aeaa197f8..c6b6252c9 100644 --- a/edg/electronics_interfaces/UsbPort.py +++ b/edg/electronics_interfaces/UsbPort.py @@ -12,7 +12,7 @@ class UsbLink(Link): UsbFullSpeed = 12_000_000 UsbHighSpeed = 480_000_000 - AllUsb2Speeds = Range(UsbLowSpeed, UsbHighSpeed) # all USB2.0 (since diffpair) speeds + AllUsb2Speeds = Range(UsbLowSpeed, UsbHighSpeed) # all USB2.0 (single diffpair) speeds UsbFullSpeedOnly = Range.exact(UsbFullSpeed) def __init__(self) -> None: